Explotacion 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:

eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0

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铆:

eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("whoami; hostname", "r"); local res = f:read("*a"); f:close(); return res' 0

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