
unimap v0.8.0
Escaneie apenas uma vez por endereço IP e reduza os tempos de varredura com o Nmap para grandes volumes de dados.
Unimap
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.
Por quê?
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.
Como?
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.
Instalação
A partir do código-fonte
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.
Suporte a Docker
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.
Usando binários pré-compilados
Baixe a versão mais recente para o seu sistema operacional e use-a.
Usando os pacotes AUR. (Arch Linux)
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
Uso
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.
Exemplos
unimap -f targets.txt -u log.csvrealiza uma varredura completa e grava a saída em log.csv.unimap -f targets.txt --fast-scan -orealiza uma varredura rápida e salva o arquivo de log na pasta logs/.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000varre 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.
Considerações
- O Unimap é pré-configurado para rodar em redes mais rápidas (VPS em nuvem); se você executar uma varredura em uma rede doméstica que não tem muita capacidade, acabará desconectado devido à limitação de rede.
- O anterior não significa que você não pode usar o Unimap de casa, apenas ajuste o número de
--threadse--min-rate(sendo este o mais importante). - Não envolvemos o Nmap de nenhuma forma nem varremos portas por conta própria; usamos as opções corretas do Nmap para obter o máximo desempenho. O Nmap é excelente e é o scanner de portas mais rápido que existe atualmente.
- Analisamos os dados de saída do Nmap e fornecemos uma saída mais compreensível, ao mesmo tempo que evitamos que você varra o mesmo IP várias vezes; esse é nosso principal objetivo.
Desenvolvimento
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
Encontrou um bug?
Abra uma issue.