Revisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2

Há algum tempo escrevi sobre esta, mas um pouco escasso e caótico. Depois decidi ampliar a lista de ferramentas da revisão, adicionar estrutura ao artigo e levar em consideração as críticas (muito obrigado Lefty para aconselhamento) e enviou-o para um concurso no SecLab (e publicou link, mas por todas as razões óbvias ninguém a viu). O concurso acabou, os resultados foram anunciados e com a consciência tranquila posso publicar (o artigo) no Habré.

Ferramentas Pentester gratuitas para aplicativos da Web

Neste artigo falarei sobre as ferramentas mais populares para pentesting (testes de penetração) de aplicações web utilizando a estratégia “caixa preta”.
Para fazer isso, veremos utilitários que ajudarão nesse tipo de teste. Considere as seguintes categorias de produtos:

  1. Scanners de rede
  2. Verificadores de violação de script da Web
  3. Exploração
  4. Automação de injeções
  5. Depuradores (sniffers, proxies locais, etc.)


Alguns produtos possuem um “caráter” universal, por isso vou classificá-los na categoria em que possuemоmelhor resultado (opinião subjetiva).

Scanners de rede.

A principal tarefa é descobrir os serviços de rede disponíveis, instalar suas versões, determinar o sistema operacional, etc.

NmapRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Nmap ("Mapeador de Rede") é um utilitário gratuito e de código aberto para análise de rede e auditoria de segurança de sistema. Oponentes violentos do console podem usar o Zenmap, que é uma GUI para o Nmap.
Este não é apenas um scanner “inteligente”, é uma ferramenta extensível séria (um dos “recursos incomuns” é a presença de um script para verificar um nó quanto à presença de um worm "Stuxnet" (mencionado aqui). Exemplo de uso típico:

nmap -A -T4 localhost

-A para detecção de versão do sistema operacional, verificação e rastreamento de scripts
-Configuração de controle de tempo T4 (mais é mais rápido, de 0 a 5)
localhost - host de destino
Algo mais difícil?

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 "varredura abrangente lenta" no Zenmap. Leva muito tempo para ser concluído, mas, em última análise, fornece informações mais detalhadas que podem ser encontradas sobre o sistema de destino. Guia de Ajuda em Russo, se você decidir se aprofundar, recomendo também traduzir o artigo Guia para iniciantes no Nmap.
O Nmap recebeu o status de "Produto de Segurança do Ano" de revistas e comunidades como Linux Journal, Info World, LinuxQuestions.Org e Codetalker Digest.
Um ponto interessante, o Nmap pode ser visto nos filmes “The Matrix Reloaded”, “Die Hard 4”, “The Bourne Ultimatum”, “Hottabych” e outro.

IP-ToolsRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
IP-Tools - uma espécie de conjunto de diversos utilitários de rede, vem com uma GUI, “dedicada” aos usuários do Windows.
Scanner de porta, recursos compartilhados (impressoras/pastas compartilhadas), WhoIs/Finger/Lookup, cliente telnet e muito mais. Apenas uma ferramenta conveniente, rápida e funcional.

Não faz sentido considerar outros produtos, uma vez que existem muitas utilidades nesta área e todos possuem princípios de funcionamento e funcionalidades semelhantes. Ainda assim, o nmap continua sendo o usado com mais frequência.

Verificadores de violação de script da Web

Tentando encontrar vulnerabilidades populares (SQL inj, XSS, LFI/RFI, etc.) ou erros (arquivos temporários não excluídos, indexação de diretório, etc.)

Verificador de vulnerabilidade da web AcunetixRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Verificador de vulnerabilidade da web Acunetix — no link você pode ver que este é um scanner xss, mas isso não é totalmente verdade. A versão gratuita, disponível aqui, oferece muitas funcionalidades. Normalmente, a pessoa que executa este scanner pela primeira vez e recebe um relatório sobre seus recursos pela primeira vez experimenta um leve choque, e você entenderá o porquê depois de fazer isso. Este é um produto muito poderoso para analisar todos os tipos de vulnerabilidades em um site e funciona não apenas com sites PHP comuns, mas também em outras linguagens (embora a diferença de linguagem não seja um indicador). Não faz muito sentido descrever as instruções, pois o scanner simplesmente “capta” as ações do usuário. Algo semelhante a “próximo, próximo, próximo, pronto” em uma instalação típica de software.

NinguémRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Ninguém Este é um rastreador da web de código aberto (GPL). Elimina o trabalho manual rotineiro. Pesquisa o site de destino em busca de scripts não excluídos (alguns test.php, index_.php, etc.), ferramentas de administração de banco de dados (/phpmyadmin/, /pma e similares), etc., ou seja, verifica o recurso em busca dos erros mais comuns geralmente causada por fatores humanos.
Além disso, se encontrar algum script popular, ele verifica se há exploits lançados (que estão no banco de dados).
Relata métodos "indesejados" disponíveis, como PUT e TRACE
E assim por diante. É muito conveniente se você trabalha como auditor e analisa sites todos os dias.
Das desvantagens, gostaria de destacar a alta porcentagem de falsos positivos. Por exemplo, se o seu site sempre apresenta o erro principal em vez de um erro 404 (quando deveria ocorrer), o scanner dirá que o seu site contém todos os scripts e todas as vulnerabilidades de seu banco de dados. Na prática isso não acontece com tanta frequência, mas na verdade depende muito da estrutura do seu site.
Uso clássico:

./nikto.pl -host localhost

Se precisar de autorização no site, você pode definir um cookie no arquivo nikto.conf, a variável STATIC-COOKIE.

WikitoRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Wikito — Nikto para Windows, mas com algumas adições, como lógica “fuzzy” na verificação de erros no código, uso de GHDB, obtenção de links e pastas de recursos, monitoramento em tempo real de solicitações/respostas HTTP. Wikto é escrito em C# e requer o framework .NET.

baiacuRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
baiacu - scanner de vulnerabilidade da web de Michal Zalewski (conhecido como lcamtuf). Escrito em C, multiplataforma (Win requer Cygwin). Recursivamente (e por muito tempo, cerca de 20 a 40 horas, embora a última vez que funcionou para mim tenha sido 96 horas), ele rastreia todo o site e encontra todos os tipos de falhas de segurança. Também gera muito tráfego (vários GB de entrada/saída). Mas todos os meios são bons, especialmente se você tiver tempo e recursos.
Uso típico:

./skipfish -o /home/reports www.example.com

Na pasta “relatórios” haverá um relatório em html, exemplo.

w3af Revisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
w3af — Web Application Attack and Audit Framework, scanner de vulnerabilidades da web de código aberto. Possui uma GUI, mas você pode trabalhar a partir do console. Mais precisamente, é uma estrutura com um monte de plug-ins.
Você pode falar muito sobre suas vantagens, é melhor experimentar:] O trabalho típico com ele se resume a escolher um perfil, especificar um objetivo e, de fato, lançá-lo.

Estrutura de segurança MantraRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
mantra é um sonho que se tornou realidade. Uma coleção de ferramentas de segurança da informação gratuitas e abertas integradas em um navegador da web.
Muito útil ao testar aplicações web em todos os estágios.
O uso se resume à instalação e inicialização do navegador.

Na verdade, existem muitos utilitários nesta categoria e é muito difícil selecionar uma lista específica deles. Na maioria das vezes, cada pentester determina o conjunto de ferramentas de que precisa.

Exploração

Para uma exploração automatizada e mais conveniente de vulnerabilidades, as explorações são escritas em software e scripts, que só precisam receber parâmetros para explorar a falha de segurança. E existem produtos que eliminam a necessidade de procurar explorações manualmente e até mesmo aplicá-las em tempo real. Esta categoria será discutida agora.

Metasploit Framework Revisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
A estrutura Metasploit® - uma espécie de monstro em nosso negócio. Ele pode fazer tanto que as instruções abrangerão vários artigos. Veremos a exploração automática (nmap + metasploit). O resultado final é o seguinte: o Nmap analisará a porta que precisamos, instalará o serviço e o metasploit tentará aplicar explorações a ela com base na classe de serviço (ftp, ssh, etc.). Em vez de instruções de texto, inserirei um vídeo bastante popular no tópico autopwn

Ou podemos simplesmente automatizar a operação do exploit que precisamos. Por exemplo:

msf > use auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > set RHOST [TARGET IP] msf auxiliary(vpn_3000_ftp_bypass) > run

Na verdade, as capacidades deste framework são muito extensas, então se você decidir se aprofundar, vá para link

ArmitageRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Armitage — OVA da GUI do gênero cyberpunk para Metasploit. Visualiza o alvo, recomenda explorações e fornece recursos avançados do framework. Em geral, para quem gosta que tudo fique lindo e impressionante.
Transmissão de tela:

Tenável Nessus®Revisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Verificador de vulnerabilidade Tenable Nessus® - pode fazer muitas coisas, mas uma das capacidades que precisamos dele é determinar quais serviços possuem explorações. Versão gratuita do produto “apenas para casa”

Использование:

  • Baixado (para o seu sistema), instalado, cadastrado (a chave é enviada para o seu e-mail).
  • Iniciou o servidor, adicionou o usuário ao Nessus Server Manager (botão Gerenciar usuários)
  • Vamos para o endereço
    https://localhost:8834/

    e obtenha o cliente flash no navegador

  • Varreduras -> Adicionar -> preencha os campos (selecionando o perfil de varredura que nos convém) e clique em Varredura

Depois de algum tempo, o relatório de verificação aparecerá na guia Relatórios
Para verificar a vulnerabilidade prática dos serviços a explorações, você pode usar o Metasploit Framework descrito acima ou tentar encontrar uma exploração (por exemplo, em Explot-db, tempestade de pacotes, explorar pesquisa etc.) e use-o manualmente contra seu sistema
IMHO: muito volumoso. Eu o trouxe como um dos líderes nessa direção da indústria de software.

Automação de injeções

Muitos dos scanners de aplicativos da web procuram injeções, mas ainda são apenas scanners gerais. E existem utilitários que tratam especificamente da busca e exploração de injeções. Falaremos sobre eles agora.

sqlmapRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
sqlmap — utilitário de código aberto para pesquisar e explorar injeções de SQL. Suporta servidores de banco 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 manuais suficientes, inclusive em russo. O software facilita muito o trabalho de um pentester ao trabalhar nesta área.
Vou adicionar um vídeo de demonstração oficial:

bsqlbf-v2
bsqlbf-v2 - um script perl, uma força bruta para injeções SQL “cegas”. Funciona tanto com valores inteiros em url quanto com valores de string.
Banco de dados suportado:

  • 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 www.somehost.com/blah.php?u=5 — Link com parâmetros
-cegar você — parâmetro para injeção (por padrão o último é retirado da barra de endereço)
-sql "selecione nome_tabela de imformation_schema.tables limite 1 deslocamento 0" — nossa solicitação arbitrária ao banco de dados
-banco de dados 1 — servidor de banco de dados: MSSQL
-tipo 1 — tipo de ataque, injeção “cega”, baseada em respostas Verdadeiras e Erro (por exemplo, erros de sintaxe)

Depuradores

Essas ferramentas são usadas principalmente por desenvolvedores quando eles têm problemas com os resultados da execução de seu código. Mas essa direção também é útil para pentesting, quando podemos substituir os dados que precisamos em tempo real, analisar o que vem em resposta aos nossos parâmetros de entrada (por exemplo, durante a difusão), etc.

Suíte Burp
Suíte Burp — um conjunto de utilitários que auxiliam nos testes de penetração. Está na Internet boa revisão em russo da Raz0r (embora para 2008).
A versão gratuita inclui:

  • Burp Proxy é um proxy local que permite modificar solicitações já geradas no navegador
  • Burp Spider - spider, procura arquivos e diretórios existentes
  • Burp Repeater - enviando manualmente solicitações HTTP
  • Burp Sequencer - analisando valores aleatórios em formulários
  • Burp Decoder é um codificador-decodificador padrão (html, base64, hex, etc.), dos quais existem milhares, que podem ser escritos rapidamente em qualquer idioma
  • Burp Comparer - Componente de comparação de strings

Em princípio, este pacote resolve quase todos os problemas relacionados com esta área.

ViolinistaRevisão de ferramentas gratuitas para pentesting de recursos da web e muito mais v2
Violinista — Fiddler é um proxy de depuração que registra todo o tráfego HTTP(S). Permite examinar esse tráfego, definir pontos de interrupção e “brincar” com dados de entrada ou saída.

Também há Carneiro de fogo, monstro Wireshark e outros, a escolha é do usuário.

Conclusão

Naturalmente, cada pentester tem seu próprio arsenal e seu próprio conjunto de utilitários, já que existem muitos deles. Tentei listar alguns dos mais convenientes e populares. Mas para que qualquer pessoa possa se familiarizar com outras utilidades nesse sentido, disponibilizarei os links abaixo.

Vários tops/listas de scanners e utilitários

Distribuições Linux que já incluem vários utilitários de pentesting diferentes

upd: Documentação BurpSuite em russo da equipe “Hack4Sec” (adicionado Anton Kuzmin)

PS Não podemos ficar calados sobre o XSpider. Não participa da revisão, embora seja shareware (descobri quando enviei o artigo para o SecLab, na verdade por causa disso (não conhecimento, e falta da última versão 7.8) e não incluí no artigo). E em teoria foi planejada uma revisão (tenho testes difíceis preparados para isso), mas não sei se o mundo verá.

PPS Parte do material do artigo será usado para o propósito pretendido em um próximo relatório em Codefest 2012 na seção QA, que conterá ferramentas não mencionadas aqui (gratuitas, é claro), bem como o algoritmo, em que ordem usar o quê, que resultado esperar, quais configurações usar e todo tipo de dicas e truques quando trabalhando (penso no relatório quase todos os dias, tentarei contar a vocês o que há de melhor sobre o assunto)
A propósito, houve uma lição sobre este artigo em Dias InfoSec Abertos (tag em Habré, site), posso roubar as vacas dê uma olhada Materiais.

Fonte: habr.com

Adicionar um comentário