
Eseguire la scansione una sola volta per indirizzo IP e ridurre i tempi di scansione con Nmap per grandi quantità di dati.
Esegui la scansione una sola volta per indirizzo IP e riduci i tempi di scansione con Nmap per grandi quantità di dati. Unimap è l'abbreviazione di "Unique Nmap Scan". Lo strumento può essere eseguito su Linux, OSX, Windows o Android (Termux) senza problemi.
Se hai intenzione di eseguire una scansione Nmap su un'intera organizzazione, devi considerare che sicuramente decine, centinaia o addirittura migliaia di sottodomini punteranno allo stesso indirizzo IP e arriverà un punto in cui diventerà quasi impossibile continuare la scansione. Inoltre, il tuo IP potrebbe finire bloccato a causa di più scansioni verso lo stesso indirizzo host remoto, tra le altre cose.
Unimap utilizza la propria tecnologia per risolvere inizialmente gli indirizzi IP di tutti i sottodomini; una volta terminato questo processo, crea un vettore con gli indirizzi IP univoci e lancia una scansione parallela con Nmap in base al numero di thread configurati dall'utente. Allo stesso tempo, analizza i dati dei file creati con Nmap per scoprire quali informazioni corrispondono a ciascun IP. Infine, Unimap mette in relazione le informazioni di ciascuno degli IP associati ai sottodomini. Quindi, ad esempio, se hai 50 sottodomini che puntano allo stesso IP, eseguirai una sola scansione Nmap ma avrai tutti i dati associati a ciascuno dei sottodomini contemporaneamente; in una scansione di grandi dimensioni risparmi giorni o settimane.
Devi avere Rust (1.88 o più recente) e Nmap installati sul tuo computer, quindi esegui:
1. git clone https://github.com/Edu4rdSHL/unimap.git && cd unimap
# In alternativa puoi scaricare una release da https://github.com/Edu4rdSHL/unimap/releases/latest
# estrarla e continuare al passaggio successivo.
2. cargo build --release
# Ora il binario si trova in ./target/release/unimap
# Il comando successivo funziona solo su Linux e MacOS. Gli utenti Windows devono specificare il percorso di destinazione nella variabile d'ambiente
3. cp ./target/release/unimap /usr/local/bin
# Ora puoi usare il comando `unimap` da qualsiasi luogo.
L'immagine edu4rdshl/unimap è pubblicata per linux/amd64 e linux/arm64
a ogni release, sotto latest e la versione della release:
docker pull edu4rdshl/unimap:latest
docker run --rm edu4rdshl/unimap:latest -t hackerone.com --fast-scan
# Conserva il CSV e i file XML di Nmap: monta una directory su /opt/unimap
docker run --rm -v "$(pwd):/opt/unimap" edu4rdshl/unimap:latest -f targets.txt --fast-scan -u results.csv
Consulta docker/README.md per creare l'immagine da solo.
Scarica l'ultima versione per il tuo sistema operativo e usala.
unimap può essere installato dai pacchetti AUR disponibili utilizzando un helper AUR. Per esempio,
$ paru -S unimap
Se preferisci, puoi clonare i pacchetti AUR e poi compilarli con makepkg. Per esempio,
git clone https://aur.archlinux.org/unimap.git && cd unimap && makepkg -si
Unimap richiede privilegi di root/amministratore per lanciare la scansione Nmap TCP SYN (Stealth); la usiamo per motivi di precisione e prestazioni. Se sei su Linux o basato su Linux, usa semplicemente una shell di root o esegui lo strumento con sudo; su Windows puoi aprire un Prompt dei comandi (CMD) come Amministratore ed eseguire lo strumento come al solito.
unimap -f targets.txt -u log.csv esegue una scansione completa e scrive l'output in log.csv.unimap -f targets.txt --fast-scan -o esegue una scansione rapida e salva il file di log nella cartella logs/.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 esegue la scansione delle porte da 1-1000 con rilevamento di servizio e versione (se vuoi una scansione rapida usa il flag --fast-scan) con un min-rate di 5000.--threads e --min-rate (quest'ultimo è il più importante).Esegui i test unitari e di integrazione (non richiedono rete, root o Nmap):
cargo test
Esegui un breve controllo end-to-end che crea l'immagine Docker e lancia scansioni reali
contro scanme.nmap.org (richiede Docker e accesso a internet):
scripts/container-test.sh
Apri un issue.