Há algum tempo, escrevi sobre , mas de forma um pouco escassa e confusa. Depois, decidi expandir a lista de ferramentas na revisão, adicionar estrutura ao artigo e levar em conta as críticas (muito obrigado pelas sugestões) e a enviei para um concurso no SecLab (e publiquei , mas por todas as razões compreensíveis, ninguém a viu). O concurso terminou, os resultados foram anunciados e agora posso publicá-la (o artigo) no Habra.
Ferramentas gratuitas para pentesters de aplicações web
Neste artigo, falarei sobre as ferramentas mais populares para pentesting (testes de penetração) de aplicações web, seguindo a estratégia de "caixa-preta".
Para isso, analisaremos utilitários que ajudarão nesse tipo de teste. Veremos as seguintes categorias de produtos:
- Scanners de rede
- Scanners de vulnerabilidades em scripts web
- Exploitagem
- Automatização de injeções
- Depuradores (sniffers, proxies locais, etc.)
Alguns produtos têm um "caráter" universal, por isso os classificarei na categoria onde eles têm ummaiorresultado (opinião subjetiva).
Scanners de rede.
A principal tarefa é revelar serviços de rede disponíveis, determinar suas versões, identificar o SO, etc.
Nmap
é um utilitário gratuito de código aberto para análise de rede e auditoria de segurança de sistemas. Os amantes de interfaces gráficas podem usar o Zenmap, que é uma GUI para o Nmap.
Não é apenas um "scanner inteligente", é uma ferramenta séria e expansível (entre as "particularidades" está a presença de um script para verificar se um nó está infectado com o worm "" (mencionado ). Um exemplo típico de uso:
nmap -A -T4 localhost
-A para determinar a versão do SO, escaneamento usando scripts e rastreamento
-T4 configuração da gestão de tempo (mais é mais rápido, de 0 a 5)
localhost — host de destino
Algo mais intenso?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Este é um conjunto de opções do perfil "slow comprehensive scan" no Zenmap. Leva um tempo considerável, mas no final fornece informações mais detalhadas sobre o sistema de destino. , se você decidir se aprofundar, e também recomendo a tradução do artigo .
O Nmap recebeu o status de “Produto de Segurança do Ano” por revistas e comunidades como Linux Journal, Info World, LinuxQuestions.Org e Codetalker Digest.
Um fato interessante é que o Nmap pode ser visto em filmes como “Matrix: Reloaded”, “Duro de Matar 4”, “O Ultimato Bourne”, “Hot Tub Time Machine” e .
IP-Tools
é um conjunto de várias utilidades de rede, oferecido com GUI, voltado para usuários do Windows.
Scanner de portas, recursos compartilhados (impressoras/pastas compartilhadas), WhoIs/Finger/Lookup, cliente telnet e muito mais. Apenas uma ferramenta conveniente, rápida e funcional.
Não há muito sentido em considerar outros produtos, pois existem muitas utilidades nessa área e todas têm um princípio de operação e funcionalidades semelhantes. No entanto, o Nmap continua sendo o mais utilizado.
Scanners de vulnerabilidades em scripts web
Tentam encontrar vulnerabilidades populares (SQL inj, XSS, LFI/RFI, etc.) ou erros (arquivos temporários não removidos, indexação de diretórios, etc.)
Acunetix Web Vulnerability Scanner
— no link, parece ser um scanner XSS, mas na verdade não é bem assim. A versão gratuita, disponível no link, oferece uma funcionalidade bastante ampla. Normalmente, uma pessoa que executa este scanner pela primeira vez e recebe o relatório sobre seu recurso fica um pouco chocada, e você entenderá o porquê ao fazê-lo. É um produto muito poderoso para analisar praticamente todas as vulnerabilidades em um site e funciona não apenas com sites em php, mas também em outras linguagens (embora a diferença de linguagem não seja um indicador). Não há muito sentido em descrever o manual, pois o scanner simplesmente “captura” as ações do usuário. Algo semelhante a “próximo, próximo, próximo, pronto” em uma instalação típica de qualquer software.
Nikto
é um scanner web Open Source (GPL). Elimina o trabalho manual rotineiro. Procura no site alvo scripts não removidos (como test.php, index_.php, etc.), ferramentas de administração de banco de dados (/phpmyadmin/, /pma e semelhantes) e verifica o recurso em busca dos erros mais comuns, geralmente causados pelo fator humano.
Além disso, se encontra algum script popular, verifica se há exploits disponíveis (que estão no banco de dados).
Informa sobre métodos "indesejados" disponíveis, como PUT e TRACE.
E assim por diante. É muito conveniente se você trabalha como auditor e realiza análises de sites diariamente.
Entre os pontos negativos, eu destacaria a alta taxa de falsos positivos. Por exemplo, se o seu site, ao invés de retornar um erro 404 (quando deveria ocorrer), sempre exibe a página inicial, o scanner dirá que todos os scripts e vulnerabilidades do seu site estão presentes em sua base. Na prática, isso não ocorre com tanta frequência, mas, de fato, muito depende da estrutura do seu site.
Uso clássico:
.\/nikto.pl -host localhost
Se for necessário estar autorizado no site, pode-se definir um cookie no arquivo nikto.conf, na variável STATIC-COOKIE.
Wikto
— Nikto para Windows, mas com algumas adições, como a lógica "fuzzy" ao verificar o código em busca de erros, uso do GHDB, obtenção de links e pastas do recurso, monitoramento em tempo real de requisições/respostas HTTP. Wikto é escrito em C# e requer o .NET framework.
skipfish
— scanner de vulnerabilidades web de (conhecido pelo apelido lcamtuf). Escrito em C, é multiplataforma (para Windows precisa do Cygwin). Faz um percurso recursivo (e muito demorado, cerca de 20 a 40 horas, embora da última vez tenha funcionado por 96 horas) por todo o site e encontra várias brechas de segurança. Também gera um tráfego muito alto (vários gigabytes de entrada/saída). Mas todos os métodos são válidos, especialmente se houver tempo e recursos.
Uso típico:
./skipfish -o /home/reports www.example.com
Na pasta "reports", haverá um relatório em html, .
w3af 
— Web Application Attack and Audit Framework, scanner de vulnerabilidades web de código aberto. Possui GUI, mas pode ser utilizado a partir do console. Na verdade, trata-se de um framework, com .
Falar sobre suas vantagens pode levar tempo, é melhor testá-lo :]
O trabalho típico com ele consiste em selecionar um perfil, indicar um alvo e, finalmente, executar.
Mantra Security Framework
é um sonho que se tornou realidade. Uma coleção de ferramentas livres e abertas de segurança da informação, integradas ao navegador da web.
Muito úteis para testar aplicações web em todas as etapas.
O uso resume-se a instalar e iniciar o navegador.
Na verdade, existem muitas utilidades nesta categoria e é bastante difícil destacar uma lista específica. Na maioria das vezes, cada pentester determina seu conjunto de ferramentas necessárias.
Exploitagem
Para um uso automatizado e mais conveniente de vulnerabilidades em softwares e scripts, são escritos exploits que apenas precisam receber parâmetros para explorar uma brecha de segurança. Existem também produtos que eliminam a necessidade de busca manual de exploits, aplicando-os "em tempo real". É sobre esta categoria que falaremos agora.
Metasploit Framework 
— um verdadeiro monstro em nosso campo. Ele tem tantas funcionalidades que o guia pode se estender por vários artigos. Vamos abordar a exploração automática (nmap + metasploit). A ideia é que o Nmap analise a porta necessária, identifique o serviço, e o metasploit tentará aplicar exploits, dependendo da classe do serviço (ftp, ssh, etc.). Em vez de uma instrução textual, vou inserir um vídeo, bastante popular sobre o tema autopwn.

Ou podemos simplesmente automatizar o trabalho do exploit que precisamos. Por exemplo:
msf > usar auxiliar/admin/cisco/vpn_3000_ftp_bypass
msf auxiliar(vpn_3000_ftp_bypass) > definir RHOST [TARGET IP]
msf auxiliar(vpn_3000_ftp_bypass) > executar
Na verdade, as capacidades deste framework são muito amplas, portanto, se você decidiu se aprofundar, acesse
Armitage
— OVA do gênero cyberpunk GUI para Metasploit. Visualiza o alvo, recomenda exploits e oferece recursos avançados deste framework. Em suma, para aqueles que gostam que tudo pareça bonito e impressionante.
Screencast:

Tenable Nessus®
— tem muitas funcionalidades, mas o que precisamos dele é uma certa capacidade — determinar para quais serviços há exploits. A versão gratuita do produto é "home only".
Uso:
- Baixamos (para o nosso sistema), instalamos, registramos (a chave chega por e-mail).
- Iniciamos o servidor, adicionamos o usuário no Nessus Server Manager (botão Manage users)
- Acessamos pelo endereço
https://localhost:8834/
e recebemos o cliente flash no navegador.
- Scans -> Add -> preenchemos os campos (escolhendo o perfil de varredura adequado) e clicamos em Scan.
Após algum tempo, o relatório da varredura aparecerá na aba Reports.
Para verificar a vulnerabilidade prática dos serviços a exploits, podemos usar o Metasploit Framework descrito acima ou tentar encontrar um exploit (por exemplo, em , , e outros) e usá-lo manualmente contra seu sistema.
IMHO: muito complexo. Apresentei-o como um dos líderes nesta área da indústria de software.
Automação de injeções.
A busca de injeções é realizada por muitos scanners de segurança de aplicativos web, mas eles ainda são apenas scanners gerais. Existem utilitários que se dedicam especificamente à busca e exploração de injeções. É sobre eles que iremos falar agora.
sqlmap
— é um utilitário de código aberto para busca e exploração de injeções SQL. Suporta bancos de dados como: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
O uso típico se resume à linha:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Existem muitos manuais disponíveis, inclusive em português. O software facilita bastante o trabalho do pentester ao lidar com esta área.
Adicionarei uma demonstração em vídeo oficial:

bsqlbf-v2
— é um script em Perl, bruteforcer de injeções SQL "cegas". Funciona tanto com valores inteiros na URL quanto com strings.
Suporta bancos de dados:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Exemplo de uso:
.\/bsqlbf-v2-3.pl -url www.somehost.com\/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Link com parâmetros
-blind u — parâmetro para injeção (por padrão, o último da string de endereço é utilizado)
-sql "select table_name from information_schema.tables limit 1 offset 0" — nossa consulta arbitrária ao banco de dados
-database 1 — servidor de banco de dados: MSSQL
-type 1 — tipo de ataque, injeção "cega" baseada em respostas True e Error (por exemplo, erros de sintaxe)
Depuradores
Essas ferramentas são usadas principalmente por desenvolvedores, quando há problemas com os resultados da execução de seu código. Mas esta abordagem é útil também em pentesting, permitindo alterar os dados que precisamos "no voo", analisar o que é retornado a partir de nossos parâmetros de entrada (por exemplo, em fuzzing) etc.
Burp Suite
— um conjunto de utilitários que ajudam em testes de penetração. Na internet há em português de Raz0r (embora de 2008).
A versão gratuita inclui:
- Burp Proxy — um proxy local, permite modificar as requisições já formadas pelo navegador
- Burp Spider — um 'aranha', procura arquivos e diretórios existentes
- Burp Repeater — envio manual de requisições HTTP
- Burp Sequencer — análise de valores aleatórios em formulários
- Burp Decoder — codificador-decodificador padrão (html, base64, hex, etc.), existem milhares que podem ser rapidamente escritos em alguma linguagem
- Burp Comparer — componente para comparação de strings
Este pacote, em princípio, resolve praticamente todas as questões relacionadas a essa área.
Fiddler
— Fiddler é um proxy de depuração que registra todo o tráfego HTTP(S). Permite explorar esse tráfego, definir pontos de interrupção e manipular os dados de entrada ou saída.
Há também , um monstro e outros, a escolha é do usuário.
Conclusão
Naturalmente, cada pentester tem seu arsenal e suas ferramentas, pois existem muitas delas. Tentei apresentar algumas das mais convenientes e populares. Mas para que todos possam conhecer outras ferramentas nesta área, fornecerei links abaixo.
Vários tops/listas de scanners e utilitários
- .
Distribuições Linux que já incluem várias utilidades para pentesting
upd: em russo pela equipe "Hack4Sec" (adicionado )
P.S. Não posso deixar de mencionar o XSpider. Não participa da revisão, embora seja condicionalmente gratuito (descobri isso ao enviar o artigo para o SecLab, devido a isso (por falta de conhecimento e também por não ter a última versão 7.8) e não o incluí no artigo). E, em teoria, estava planejado revisar o mesmo (tenho testes difíceis preparados para ele), mas não sei se o mundo o verá.
P.P.S. Parte do material do artigo será usada para seu propósito original na próxima palestra em 2012 na seção QA, que cobrirá ferramentas não mencionadas aqui (gratuitas, é claro), além de explicar o algoritmo sobre a ordem de uso, quais resultados esperar, quais configurações usar e várias dicas e truques ao trabalhar (estou refletindo sobre a palestra quase todos os dias e tentarei compartilhar o melhor que aprendi sobre o tópico)
A propósito, houve uma atividade sobre este artigo na Open InfoSec Days (, ), é possível saquear caravanas dar uma olhada .
Fonte: habr.com
