Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-12124 — Exploit de prueba de concepto para CVE-2020-12124 dirigido al router Wavlink AC1200, que demuestra inyección de comandos no autenticada y desbordamiento de búfer en la pila en interfaces CGI. | Kitploit
Herramientas/GitHubGitHub/scorpion-security-labs/cve-2020-12124
Seguridad de Sistemas EmbebidosSeguridad IoTAnálisis de VulnerabilidadesExplotaciónIngeniería InversaExplotación de Aplicaciones WebComando y ControlAnálisis de Binarios

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Papers e Investigación
Aprendizaje y Educación
Análisis de Firmware
GitHubscorpion-security-labs/cve-2020-12124

CVE-2020-12124

Exploit de prueba de concepto para CVE-2020-12124 dirigido al router Wavlink AC1200, que demuestra inyección de comandos no autenticada y desbordamiento de búfer en la pila en interfaces CGI.

Ver Repositorio
24hace 7 mesesAún no revisado

Anatomía de un Exploit de IoT, del Práctico al RCE

originalmente en https://www.klogixsecurity.com/scorpion-labs-blog/anatomy-of-an-iot-exploit-from-hands-on-to-rce

por David E. Baker, publicado el 1 de junio de 2023

Prefacio

Este estudio trata sobre el firmware del router Gigabit inalámbrico Wavlink AC1200 de junio de 2020. Las vulnerabilidades aquí discutidas pueden o no haber sido parcheadas por el fabricante, pero este es un caso de investigación de vulnerabilidades que mostrará el viaje como recompensa más que su conclusión. El autor realizó esta investigación antes de la divulgación pública de las vulnerabilidades, pero después de que otros investigadores las descubrieran de forma independiente y las reportaran al fabricante.

El fabricante pone a disposición el firmware de sus productos en la sección de soporte de su sitio web; esta es una forma común de obtener firmware de IoT y una alternativa útil a extraerlo de la memoria del dispositivo. El firmware no está cifrado, por lo que se puede extraer fácilmente con binwalk. El análisis dinámico se realizó con acceso a un ejemplar físico del dispositivo, y el análisis estático se realizó a través de Ghidra.

tl;dr

La interfaz web del router Gigabit inalámbrico Wavlink AC1200 tiene varios endpoints vulnerables que permiten la copia sin restricciones de datos proporcionados por el usuario en la pila de la aplicación o incluso directamente en la línea de comandos para lograr la ejecución arbitraria de comandos. 

Práctico y Local

Los escaneos iniciales del dispositivo sugieren que el único recurso expuesto era la consola web administrativa, accesible para usuarios autenticados en la interfaz LAN a través de HTTP en el puerto TCP 80. El dispositivo puede ofrecer más servicios, pero estos no están habilitados de fábrica y por defecto. Por lo tanto, esta investigación se centra únicamente en la interfaz web.


Un escaneo nmap del dispositivo ejemplar, mostrando solo la interfaz web escuchando.

Las pruebas habituales — como las típicas inyecciones de comandos que se encuentran en los paneles de diagnóstico de dispositivos que permiten una inyección de comandos en los parámetros de un comando ping o traceroute — no arrojaron resultados inmediatamente interesantes, lo que fue decepcionante. 


Opciones de gestión disponibles después de autenticarse en el panel web administrativo. "USB Storage" se puede ver como la segunda opción.

La primera interfaz (finalmente explotable) que se examinó aquí se encontró en el panel "USB storage", que se puede ver como la segunda opción en la captura de pantalla anterior. El dispositivo tiene un puerto USB junto a sus conectores Ethernet 802.2, lo que sugiere que podría ofrecer funcionalidad de almacenamiento conectado a la red (NAS).


Una fotografía de la parte trasera del ejemplar real, mostrando la disponibilidad de USB.

Un principio simple en la investigación de vulnerabilidades es que cuantos más componentes interactúe un fragmento de código y más partes móviles tenga, más probable será que haya código explotable cerca. La presencia de capacidades NAS es prometedora porque indica la presencia de código que interactúa simultáneamente con la capa de software del dispositivo, la capa de hardware y la periferia conectada (el propio almacenamiento USB). 

La interfaz de gestión de la consola de Almacenamiento USB se muestra a continuación. La presencia del campo "Workgroup" por sí sola es prometedora, ya que esto sugeriría que este router WiFi podría incluso intentar interactuar a través del Server Message Block (SMB) — una gran carga para un router IoT. No puedo contar las veces que he visto entrada proporcionada por el usuario enviada directamente a la línea de comandos como argumento a la función Unix smbpasswd.


Opciones de almacenamiento USB disponibles para usuarios autenticados.

Los intentos iniciales de manipular estos ajustes fallaron debido a que el dispositivo no detectaba una unidad USB, como se ve a continuación.


Los cambios de configuración en las opciones de Almacenamiento USB no se guardarán a menos que se conecte manualmente una unidad formateada adecuadamente al puerto USB del dispositivo.

Sin embargo, una vez que se conecta una unidad formateada correctamente, el dispositivo permitió establecer un nombre de usuario y contraseña FTP. Como se sospechaba, colocó esta entrada proporcionada por el usuario en la línea de comandos:


Una inyección de comandos en el campo 'password' otorga el primer acceso al shell directamente al sistema operativo del dispositivo.

Aunque interesante, esta vulnerabilidad es difícil de generar un entusiasmo abrumador: requiere no solo acceso con credenciales a la interfaz administrativa del dispositivo, sino también acceso físico al dispositivo para manipular su unidad USB. El exploit anterior permite a un investigador interactuar con los componentes individuales del sistema operativo (y exfiltrarlos con fines de ingeniería inversa).

Podemos Hacerlo Mejor

El dispositivo era un sistema Linux centrado en busybox con una interfaz web impulsada por Lighttpd. La funcionalidad de Interfaz de Entrada Común (CGI) era proporcionada por binarios individuales en /etc\_ro/lighttpd/www/cgi-bin/, con solicitudes web a los URI de CGI que lanzaban estos binarios directamente. Una mirada rápida a nas.cgi en Ghidra muestra la inyección de comandos en la línea 38 a continuación, que envía una contraseña proporcionada por el usuario directamente a la función do\_system (que es simplemente un envoltorio alrededor de la llamada al sistema estándar de libc).


La entrada del usuario se coloca en la línea de comandos como argumento para el script chpasswd.sh en la Línea 38, resultando en una inyección de comandos y acceso al shell directamente al sistema operativo del dispositivo.

Mirando a través del directorio /cgi-bin/ se reduce la tarea de encontrar un exploit más interesante a enumerar las interfaces CGI disponibles para el usuario, mostradas a continuación:

Descargar herramienta