Saltar al contenido
OPS // KITitspentest.sh

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.

  1. 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.
  2. Instala commix (pip install commix, o clona el repo y ejecuta commix.py directamente).
  3. Apúntalo a la URL vulnerable, marcando el punto de inyección si no es el último parámetro.
  4. Deja que recorra las técnicas de detección; si alguna se confirma, decide si entrar en la shell pseudo-terminal ofrecida.
  5. 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" --batch

ANTES 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.

SIGUE EXPLORANDO

Ver toda la fase →