Commix (abreviatura de [comm]and [i]njection e[x]ploiter) es una herramienta de pruebas de penetración de código abierto, escrita por Anastasios Stasinopoulos (@ancst), que automatiza la detección y explotación de vulnerabilidades de tipo command (y code) injection.
Puede visitar la colección de capturas de pantalla que muestra algunas de las funcionalidades disponibles en el wiki.
Important
Este proyecto está en desarrollo activo. Es posible que se produzcan cambios incompatibles entre revisiones. Consulte el registro de cambios antes de actualizar.
Commix está pensado principalmente para usarse como herramienta autónoma de línea de comandos, y ejecuta comandos del sistema operativo en los objetivos que analiza. Ejecutar commix como un servicio puede suponer riesgos de seguridad. Se recomienda usarlo con precaución, y únicamente contra sistemas de su propiedad o para los que cuente con autorización explícita.
- Cinco técnicas de inyección - classic, dynamic code evaluation, time-based, file-based (con una variante tempfile-based para objetivos con escritura restringida) y out-of-band (OAST) sobre HTTP/S y DNS.
- Amplia superficie de inyección - parámetros GET/POST, cabeceras HTTP, cookies y cuerpos de petición JSON/XML, además del módulo
shellshockpara objetivos CGI. - Shells interactivas - una
os_shellen el objetivo, los modos integradosreverse_tcpybind_tcp, y transferencia de archivos (download/upload) a través de la shell establecida. - Enumeración y acceso a archivos - usuario actual, nombre del host, privilegios, información del sistema, usuarios y hashes de contraseñas; lectura y escritura de archivos en el objetivo.
- Evasión de filtros y WAF - Múltiples scripts de manipulación (tamper) combinables, aplicados en un orden determinista.
- Objetivos flexibles - una única URL, un rastreo del sitio, formularios HTML, un sitemap, un registro de proxy, un archivo con varios objetivos, un archivo con una petición HTTP en bruto o entrada por
stdin. - Análisis reanudables - los resultados se almacenan por objetivo en un archivo de sesión y pueden exportarse a JSON.
- Amplio soporte de back-end - PHP, Python, Perl, Ruby y CGI, con soporte experimental para ASP.NET y JSP.
Puede descargar commix en cualquier plataforma clonando el repositorio Git oficial:
$ git clone https://github.com/commixproject/commix.git commix
Alternativamente, puede descargar la última versión tarball o versión zipball.
Note
Se necesita Python (versión 3.7 o posterior) para ejecutar commix. El resto de dependencias se incluyen con el programa, por lo que no hace falta ningún paso de instalación adicional.
Para obtener una lista de todas las opciones y parámetros disponibles:
$ python3 commix.py -h
Probar un único parámetro inyectable y abrir una shell en el objetivo:
$ python3 commix.py --url="http://www.target.com/vuln.php?addr=127.0.0.1" --os-shell
Demostrar la ejecución fuera de banda, cuando la respuesta no devuelve nada:
$ python3 commix.py --url="http://www.target.com/vuln.php" --data="addr=127.0.0.1" --oob
Note
La detección fuera de banda (OAST) con --oob utiliza de forma predeterminada el servidor
interactsh público oast.fun, por lo que los metadatos de las interacciones con su objetivo salen
de su red. Apunte --oob-server a una instancia propia para mantenerlos internos. Para una guía
detallada, consulte la página
techniques del wiki.
Analizar una lista de objetivos de forma desatendida y guardar los resultados en un archivo:
$ python3 commix.py -m targets.txt --batch --report-json=results.json
Para obtener una visión general de las opciones, parámetros y conceptos básicos de uso de commix, consulte las páginas del wiki Uso, Ejemplos de uso y Evasión de filtros.
- Manual de usuario: https://github.com/commixproject/commix/wiki
- Seguimiento de incidencias: https://github.com/commixproject/commix/issues

