
Escaneie apenas uma vez por endereço IP e reduza os tempos de varredura com o Nmap para grandes volumes de dados.
Faça a varredura apenas uma vez por endereço IP e reduza os tempos de varredura com o Nmap para grandes quantidades de dados. Unimap é uma abreviação de "Unique Nmap Scan". A ferramenta pode ser executada em Linux, OSX, Windows ou Android (Termux) sem problemas.
Se você planeja executar um Nmap em uma organização inteira, precisa considerar que certamente dezenas, centenas ou até milhares de subdomínios apontarão para o mesmo endereço IP e chegará um ponto em que se tornará quase impossível continuar a varredura. Além disso, seu IP pode acabar sendo bloqueado devido a múltiplas varreduras para o mesmo endereço de host remoto, entre outras coisas.
O Unimap usa sua própria tecnologia para inicialmente resolver os endereços IP de todos os subdomínios. Uma vez concluído esse processo, ele cria um vetor com os endereços IP únicos e lança uma varredura paralela com o Nmap de acordo com o número de threads que o usuário configurou. Ao mesmo tempo, ele analisa os dados dos arquivos criados com o Nmap para descobrir quais informações correspondem a cada IP. Finalmente, o Unimap relaciona as informações de cada um dos IPs associados aos subdomínios. Assim, por exemplo, se você tiver 50 subdomínios que apontam para o mesmo IP, fará apenas uma varredura Nmap, mas terá todos os dados associados a cada um dos subdomínios ao mesmo tempo; em uma varredura grande, isso economiza dias ou semanas.
Você precisa ter Rust (1.88 ou mais recente) e Nmap instalados no seu computador, então execute:
1. git clone https://github.com/Edu4rdSHL/unimap.git && cd unimap
# Alternativamente, você pode baixar uma versão de https://github.com/Edu4rdSHL/unimap/releases/latest
# extraí-la e continuar para o próximo passo.
2. cargo build --release
# Agora o binário está em ./target/release/unimap
# O próximo comando funciona apenas em Linux e MacOS. Usuários de Windows precisam especificar o caminho de destino na variável de ambiente
3. cp ./target/release/unimap /usr/local/bin
# Agora você pode usar o comando `unimap` de qualquer lugar.
A imagem edu4rdshl/unimap é publicada para linux/amd64 e linux/arm64
em cada versão, sob latest e a versão da release:
docker pull edu4rdshl/unimap:latest
docker run --rm edu4rdshl/unimap:latest -t hackerone.com --fast-scan
# Mantenha o CSV e os arquivos XML do Nmap: monte um diretório em /opt/unimap
docker run --rm -v "$(pwd):/opt/unimap" edu4rdshl/unimap:latest -f targets.txt --fast-scan -u results.csv
Consulte docker/README.md para construir a imagem você mesmo.
Baixe a versão mais recente para o seu sistema operacional e use-a.
unimap pode ser instalado a partir dos pacotes AUR disponíveis usando um auxiliar AUR. Por exemplo,
$ paru -S unimap
Se preferir, você pode clonar os pacotes AUR e então compilá-los com makepkg. Por exemplo,
git clone https://aur.archlinux.org/unimap.git && cd unimap && makepkg -si
O Unimap requer privilégios de root/administrador para lançar a Varredura TCP SYN (Stealth) do Nmap; nós a usamos por razões de precisão e desempenho. Se você estiver em Linux ou baseado em Linux, basta usar um shell root ou executar a ferramenta com sudo; no Windows, você pode abrir um Prompt de Comando (CMD) como Administrador e executar a ferramenta normalmente.
unimap -f targets.txt -u log.csv realiza uma varredura completa e grava a saída em log.csv.unimap -f targets.txt --fast-scan -o realiza uma varredura rápida e salva o arquivo de log na pasta logs/.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 varre as portas de 1 a 1000 fazendo detecção de serviço e versão (se quiser uma varredura rápida, use a flag --fast-scan) com um min-rate de 5000.--threads e --min-rate (sendo este o mais importante).Execute os testes unitários e de integração (sem necessidade de rede, root ou Nmap):
cargo test
Execute uma verificação ponta a ponta curta que constrói a imagem Docker e lança varreduras reais
contra scanme.nmap.org (requer Docker e acesso à internet):
scripts/container-test.sh
Abra uma issue.