Sobre el proyecto

Commix (abreviatura de command injection exploiter) es una herramienta de pruebas de penetración de código abierto, escrita en Python, que automatiza la detección y explotación de vulnerabilidades de inyección de comandos e inyección de código. Está pensada principalmente como herramienta CLI independiente y ejecuta comandos del sistema operativo en los objetivos que prueba, por lo que solo debe usarse contra sistemas de tu propiedad o para los que tengas autorización explícita de prueba. Capacidades clave descritas en el README: - Cinco técnicas de inyección: basada en resultados (clásica), booleana ciega, basada en tiempo ciega, ciega basada en archivos (incluida una variante basada en archivo temporal para objetivos con restricciones de escritura) y fuera de banda (OAST) sobre HTTP/S y DNS. Las técnicas pueden seleccionarse con --technique o filtrarse por tipo reportado con --type. - Pruebas de inyección de código mediante --eval, que prueba la cadena que un objetivo evalúa como código en PHP o Python, usando las mismas técnicas. - Amplia superficie de inyección: parámetros GET/POST, cabeceras HTTP, cookies, cuerpos de solicitud JSON/XML, además de un módulo shellshock para objetivos CGI. - Shells interactivos y post-explotación: un os_shell en el objetivo, modos integrados reverse_tcp y bind_tcp, descarga/carga de archivos a través del shell establecido y enumeración del usuario actual, nombre de host, privilegios, información del sistema, usuarios y hashes de contraseñas. Los hallazgos pueden volver a demostrarse con --proof, que ejecuta su propio experimento y escribe una transcripción junto a la salida de la ejecución. - Evasión de filtros y WAF mediante múltiples scripts tamper combinables aplicados en un orden determinista. - Selección flexible de objetivos: una única URL, un rastreo, formularios HTML, un sitemap, un registro de proxy, un archivo masivo, un archivo de solicitud HTTP sin procesar o stdin por tubería. - Escaneos reanudables y salida legible por máquina: los resultados se almacenan por objetivo en un archivo de sesión y pueden exportarse como JSON, CSV que cubre cada objetivo probado o un registro HAR del tráfico HTTP de la ejecución. Las opciones de ejecución pueden guardarse como un perfil reutilizable. - Amplio soporte de back-end: PHP, Python, Perl, Ruby, ASP.NET, JSP y CGI, tanto en objetivos tipo Unix como Windows. La instalación se realiza clonando el repositorio Git (o descargando un tarball/zipball); se requiere Python 3.7 o posterior y todas las demás dependencias están incluidas. Los ejemplos de uso del README cubren probar un único parámetro inyectable y entrar en un shell, demostrar ejecución fuera de banda donde la respuesta no devuelve nada, y escanear una lista de objetivos de forma desatendida con modo por lotes y reporte JSON. La detección fuera de banda usa por defecto el servidor público interactsh oast.fun, por lo que los metadatos de interacción salen de tu red a menos que --oob-server apunte a una instancia autoalojada. El proyecto está en desarrollo activo, con posibles cambios disruptivos entre revisiones; la documentación, ejemplos de uso y ejemplos de omisión de filtros están disponibles en la wiki del proyecto.