2Explotacion de CVE-2022-0543

En todo proceso de pentesting, es esencial realizar una búsqueda exhaustiva de los objetivos que estamos analizando, con el fin de identificar si ya existe alguna prueba de concepto (PoC) conocida y funcional que pueda ser aprovechada. El verdadero desafío radica en saber qué buscar y cómo buscarlo de manera eficiente, ya que esto puede acelerar significativamente el proceso de explotación.

Una estrategia recomendada es buscar pruebas de concepto relacionadas con las vulnerabilidades del servicio objetivo, utilizando fuentes confiables como bases de datos de exploits, repositorios de GitHub, o foros especializados en ciberseguridad. En muchos casos, es posible encontrar PoCs que ya han sido desarrolladas y compartidas por la comunidad.

Como ejemplo, se puede sugerir realizar una búsqueda que conduzca a la prueba de concepto para la vulnerabilidad CVE-2022-0543, la cual podría estar disponible en el siguiente enlace:

Este tipo de búsqueda proporciona una base sólida para verificar si la vulnerabilidad puede ser explotada en el entorno objetivo, facilitando el trabajo del pentester al contar con una guía práctica que ya ha sido probada en escenarios similares.

Al analizar el código de la prueba de concepto, observamos que el payload original ejecuta únicamente el comando id, que devuelve información sobre el usuario y los grupos asociados al proceso que lo ejecuta. Este comando es un buen punto de partida para verificar si la vulnerabilidad está presente y si es posible ejecutar comandos arbitrarios en el sistema objetivo.

El payload es el siguiente:

Este código utiliza la función io.popen para abrir un proceso que ejecuta el comando id, leer su salida y devolver el resultado. Esto confirma que el atacante puede ejecutar comandos arbitrarios en el sistema remoto aprovechando la vulnerabilidad.

Para obtener información adicional, como el usuario y el nombre del host, el payload se puede modificar para ejecutar los comandos whoami y hostname. De esta manera, el atacante puede obtener detalles relevantes del sistema comprometido y ajustar su estrategia.

El payload modificado quedaría así:

Con este cambio, se verifica no solo la presencia de la vulnerabilidad, sino también información adicional del entorno comprometido.

Tambien podriamos utilizar directamente un exploit encontrado en GitHub:

Last updated