
Gera listas de hosts ativos e URLs para direcionamento, automatizando o uso de MassDNS, Masscan e nmap para filtrar hosts inalcançáveis e coletar informações de serviços.
Gera listas de hosts ativos e URLs para segmentação, automatizando o uso de Massdns, Masscan e nmap para filtrar hosts inalcançáveis
Dado um arquivo de entrada com nomes de domínio, este script automatizará o uso do MassDNS para filtrar hosts não resolvíveis e, em seguida, passará os resultados para o Masscan confirmar que os hosts estão acessíveis e em quais portas. O script gerará então uma lista de URLs completas para uso em segmentação adicional (passando para ferramentas como gobuster ou dirsearch, ou fazendo requisições HTTP), uma lista de nomes de domínio acessíveis e uma lista de endereços IP acessíveis. Como etapa opcional final, você pode executar uma varredura de versão com nmap nesta lista reduzida de hosts, verificando se os hosts anteriormente acessíveis estão ativos e coletando informações de serviço de suas portas abertas.
Este script é especialmente útil para conjuntos grandes de domínios, como enumerações de subdomínios coletadas de um domínio raiz com milhares de subdomínios. Com essas listas grandes, uma varredura nmap levaria tempo demais. O objetivo aqui é primeiro usar o MassDNS — menos preciso, mas muito mais rápido — para reduzir rapidamente o tamanho da sua lista de entrada removendo domínios não resolvíveis. Em seguida, o Masscan poderá pegar a saída do MassDNS e confirmar ainda se os hosts estão acessíveis e em quais portas. O script então analisará esses resultados e gerará listas dos hosts ativos descobertos.
Agora, a lista de hosts deve estar reduzida o suficiente para ser adequada para varreduras/testes adicionais. Se quiser ir além, você pode instruir o script a executar uma varredura nmap na lista de hosts acessíveis, o que deve levar um tempo mais razoável com a lista mais curta de hosts. Após executar o nmap, quaisquer falsos positivos fornecidos pelo Masscan serão filtrados. A saída bruta do nmap será armazenada no formato XML padrão do nmap, e informações adicionais da detecção de versão serão adicionadas a um banco de dados SQLite.

Se estiver usando a opção de varredura nmap, esta ferramenta pressupõe que você já tenha o nmap instalado
Nota: Executar o script de instalação só é necessário se você ainda não tiver o MassDNS e o Masscan instalados, ou se quiser reinstalá-los dentro deste repositório. Se não executar o script, você pode fornecer os caminhos para os respectivos executáveis como argumentos. O script também espera que a lista de resolvedores incluída com o MassDNS esteja localizada em {massDNS_directory}/lists/resolvers.txt.
git clone https://github.com/allyomalley/LiveTargetsFinder.git
cd LiveTargetsFinder
sudo pip3 install -r requirements.txt
(OPCIONAL)
chmod +x install_deps.sh
./install_deps.sh
Se você ainda não tiver o MassDNS e o Masscan instalados e preferir instalá-los manualmente, consulte a documentação para instruções:
Eu testei este script apenas no macOS e Linux — o script Python em si deve funcionar em uma máquina Windows, embora eu acredite que a instalação do MassDNS e do Masscan será diferente.
python3 liveTargetsFinder.py [domainList] [options]
-s, (--hashmap-size) em particular foi escolhido por questões de desempenho — você provavelmente conseguirá aumentar esse valor.-c 25 -o J -r ./massdns/lists/resolvers.txt -s 100 -w massdnsOutput -t A targetHosts--max-rate para o Masscan — você provavelmente vai querer ajustá-lo.
-iL ipFile -oD masscanOutput --open-only --max-rate 5000 -p80,443 --max-retries 10--script http-server-header.nse,http-devframework.nse,http-headers -sV -T4 -p80,443 -oX {output.xml}Se executou o script de instalação:
python3 liveTargetsFinder.py --target-list victim_domains.txt
Se NÃO executou o script de instalação:
python3 liveTargetsFinder.py --target-list victim_domains.txt --massdns-path ../massdns/bin/massdns --masscan-path ../masscan/bin/masscan
Executar uma varredura nmap e escrever/anexar ao caminho padrão do banco de dados (liveTargetsFinder.sqlite3)
python3 liveTargetsFinder.py --target-list victim_domains.txt --nmap
Executar uma varredura nmap e escrever/anexar ao banco de dados especificado
python3 liveTargetsFinder.py --target-list victim_domains.txt --nmap --db-path serviceinfo_victim.sqlite3
Entrada: victimDomains.txt
| Bandeira | Descrição | Padrão | Obrigatório |
|---|
--target-list | Arquivo de entrada contendo lista de domínios, ex: google.com | Sim | |
--massdns-path | Caminho para o executável do MassDNS, se não for o padrão | ./massdns/bin/massdns | Não |
--masscan-path | Caminho para o executável do Masscan, se não for o padrão | ./masscan/bin/masscan | Não |
--nmap | Executar uma varredura de detecção de versão com nmap nos hosts ativos coletados | Desabilitado | Não |
--db-path | Se usar a opção --nmap, forneça o caminho para o banco de dados ao qual deseja anexar (será criado se não existir) | output/liveTargetsFinder.sqlite3 | Não |
| Arquivo | Descrição | Exemplos |
|---|
| output/victimDomains_targetUrls.txt | Lista de URLs ativas e acessíveis | https://github.com, http://github.com |
| output/victimDomains_domains_alive.txt | Lista de nomes de domínio ativos | github.com, google.com |
| output/victimDomains_ips_alive.txt | Lista de endereços IP ativos | 10.1.0.200, 52.3.1.166 |
| Caminho do banco de dados fornecido ou padrão | Banco de dados SQLite armazenando hosts ativos e informações sobre seus serviços em execução | |
| output/victimDomains_massdns.txt | A saída bruta do MassDNS, no formato ndjson | |
| output/victimDomains_masscan.txt | A saída bruta do Masscan, no formato ndjson | |
| output/victimDomains_nmap.txt | A saída bruta do nmap, no formato XML |