Sobre o projeto

Commix (abreviação de command injection exploiter) é uma ferramenta open-source de testes de intrusão, escrita em Python, que automatiza a deteção e exploração de vulnerabilidades de injeção de comandos e injeção de código. Destina-se principalmente a ser usada como ferramenta CLI autónoma e executa comandos do sistema operativo nos alvos que testa, pelo que só deve ser usada contra sistemas que lhe pertencem ou para os quais tem autorização explícita de teste. Principais capacidades descritas no README: - Cinco técnicas de injeção: baseada em resultados (clássica), boolean-based blind, time-based blind, file-based blind (incluindo uma variante baseada em tempfile para alvos com restrições de escrita) e out-of-band (OAST) sobre HTTP/S e DNS. As técnicas podem ser selecionadas com --technique ou filtradas pelo tipo reportado com --type. - Teste de injeção de código através de --eval, que testa a string que um alvo avalia como código em PHP ou Python, usando as mesmas técnicas. - Ampla superfície de injeção: parâmetros GET/POST, cabeçalhos HTTP, cookies, corpos de pedido JSON/XML, além de um módulo shellshock para alvos CGI. - Shells interativas e pós-exploração: uma os_shell no alvo, modos reverse_tcp e bind_tcp incorporados, download/upload de ficheiros através da shell estabelecida e enumeração do utilizador atual, hostname, privilégios, informação do sistema, utilizadores e hashes de palavras-passe. Os resultados podem ser reprovados com --proof, que executa a sua própria experiência e escreve um registo junto da saída da execução. - Evasão de filtros e WAF através de múltiplos scripts tamper combináveis aplicados numa ordem determinística. - Direcionamento flexível: um único URL, um crawl, formulários HTML, um sitemap, um log de proxy, um ficheiro em massa, um ficheiro de pedido HTTP em bruto ou stdin canalizado. - Análises retomáveis e saída legível por máquina: os resultados são armazenados por alvo num ficheiro de sessão e podem ser exportados como JSON, CSV abrangendo todos os alvos testados, ou um log HAR do tráfego HTTP da execução. As opções de execução podem ser guardadas como um perfil reutilizável. - Amplo suporte de back-end: PHP, Python, Perl, Ruby, ASP.NET, JSP e CGI, tanto em alvos do tipo Unix como Windows. A instalação é feita clonando o repositório Git (ou descarregando um tarball/zipball); é necessário Python 3.7 ou posterior e todas as outras dependências estão incluídas. Os exemplos de utilização no README abrangem o teste de um único parâmetro injetável e a entrada numa shell, a prova de execução out-of-band quando a resposta não devolve nada, e a análise de uma lista de alvos de forma não assistida com modo batch e relatório JSON. A deteção out-of-band usa por predefinição o servidor público interactsh oast.fun, pelo que os metadados de interação saem da sua rede a menos que --oob-server aponte para uma instância auto-hospedada. O projeto está em desenvolvimento ativo, com possíveis alterações disruptivas entre revisões; documentação, exemplos de utilização e exemplos de bypass de filtros estão disponíveis na wiki do projeto.