X-COM
commix
Herramienta automatizada de detección y explotación de inyección de comandos que convierte un parámetro vulnerable en una shell semi-interactiva.
Sitio oficialVolver al catálogo
RESUMEN
commix (github.com/commixproject/commix, de 'commands injection exploiter') es una herramienta en Python dedicada a una sola clase de vulnerabilidad: la inyección de comandos del sistema operativo. Apuntada a una URL, un archivo de petición o una petición HTTP en crudo con el punto de inyección marcado, recorre técnicas clásicas, ciegas (basadas en tiempo) y basadas en archivos para determinar si un parámetro llega a un comando de shell y, si es así, qué operador y técnica de inyección funcionan realmente.
Una vez confirma la inyección, va más allá de la detección hacia la explotación: puede abrir una shell pseudo-terminal, leer o escribir archivos, o establecer una conexión reversa/bind, lo que la convierte tanto en una herramienta de explotación posterior a la detección como en un escáner — más cercana en espíritu a sqlmap para inyección de comandos que a un verificador pasivo.
CASOS DE USO
Casos de uso en un engagement
- 01
Probar un parámetro sospechoso (query string, body POST, header, cookie) en busca de inyección de comandos clásica, ciega o basada en archivos.
- 02
Confirmar un hallazgo de inyección de comandos y demostrar su impacto mediante una shell pseudo-terminal durante un engagement autorizado.
- 03
Automatizar la enumeración de técnicas de inyección contra una API o formulario web que ejecuta comandos del sistema internamente.
- 04
Encadenar una inyección de comandos confirmada hacia una reverse shell para pivotar más adentro de la red objetivo.
PRIMEROS PASOS
Cuando un parámetro parece llegar a un comando de shell, para probar sistemáticamente técnicas de inyección y, si se confirma, entrar en una shell.
- Confirma que el parámetro objetivo y la inyección están dentro del alcance autorizado, y que ejecutar un comando de shell es una prueba aceptable.
- Instala commix (pip install commix, o clona el repo y ejecuta commix.py directamente).
- Apúntalo a la URL vulnerable, marcando el punto de inyección si no es el último parámetro.
- Deja que recorra las técnicas de detección; si alguna se confirma, decide si entrar en la shell pseudo-terminal ofrecida.
- Registra exactamente qué técnica y payload funcionaron, y qué comandos se ejecutaron realmente, para el informe.
commix -u "http://target.example.com/page.php?id=1" --batchANTES DE USARLA
Qué revisar antes de lanzarla
Una inyección de comandos confirmada ejecuta comandos reales en el host objetivo — acuerda de antemano qué comandos (o ninguno más allá de una prueba de concepto inocua como sleep o echo) son aceptables antes de ejecutarlo.
La shell pseudo-terminal que ofrece es una sesión interactiva en vivo sobre el objetivo; trátala con el mismo cuidado que cualquier otro acceso a shell y registra todo lo ejecutado a través de ella.
Las técnicas ciegas basadas en tiempo pueden ser lentas y producir falsos positivos por jitter de red — confirma los hallazgos basados en tiempo con un segundo método independiente.