
Nur einmal pro IP-Adresse scannen und Scanzeiten mit Nmap für große Datenmengen reduzieren.
Scanne nur einmal pro IP-Adresse und reduziere die Scanzeiten mit Nmap bei großen Datenmengen. Unimap ist eine Abkürzung für „Unique Nmap Scan“. Das Tool läuft problemlos unter Linux, OSX, Windows oder Android (Termux).
Wenn du planst, mit Nmap eine gesamte Organisation zu scannen, musst du bedenken, dass sicherlich dutzende, hunderte oder sogar tausende Subdomains auf dieselbe IP-Adresse zeigen werden, und es kommt ein Punkt, an dem es fast unmöglich wird, weiterzuscannen. Außerdem kann deine IP gesperrt werden, unter anderem aufgrund mehrerer Scans auf dieselbe Remote-Host-Adresse.
Unimap verwendet seine eigene Technologie, um zunächst die IP-Adressen aller Subdomains aufzulösen. Sobald dieser Prozess abgeschlossen ist, erstellt es einen Vektor mit den eindeutigen IP-Adressen und startet einen parallelen Scan mit Nmap entsprechend der Anzahl der Threads, die der Benutzer konfiguriert hat. Gleichzeitig analysiert es die Daten aus den mit Nmap erstellten Dateien, um herauszufinden, welche Informationen zu welcher IP gehören. Schließlich verknüpft Unimap die Informationen jeder der IPs, die mit den Subdomains verbunden sind. Wenn du also zum Beispiel 50 Subdomains hast, die auf dieselbe IP zeigen, führst du nur einen Nmap-Scan durch, hast aber gleichzeitig alle Daten, die mit jeder der Subdomains verbunden sind. Bei einem großen Scan spart das Tage oder Wochen.
Du benötigst Rust (1.88 oder neuer) und Nmap auf deinem Computer installiert, dann führe Folgendes aus:
1. git clone https://github.com/Edu4rdSHL/unimap.git && cd unimap
# Alternativ kannst du eine Version von https://github.com/Edu4rdSHL/unimap/releases/latest herunterladen,
# sie extrahieren und mit dem nächsten Schritt fortfahren.
2. cargo build --release
# Jetzt befindet sich die Binärdatei in ./target/release/unimap
# Der nächste Befehl funktioniert nur unter Linux und MacOS. Windows-Benutzer müssen den Zielpfad in der Umgebungsvariable angeben.
3. cp ./target/release/unimap /usr/local/bin
# Jetzt kannst du den Befehl `unimap` von überall verwenden.
Das Image edu4rdshl/unimap wird für linux/amd64 und linux/arm64
bei jeder Veröffentlichung unter latest und der Versionsnummer veröffentlicht:
docker pull edu4rdshl/unimap:latest
docker run --rm edu4rdshl/unimap:latest -t hackerone.com --fast-scan
# Behalte die CSV- und die Nmap-XML-Dateien: Mounte ein Verzeichnis auf /opt/unimap
docker run --rm -v "$(pwd):/opt/unimap" edu4rdshl/unimap:latest -f targets.txt --fast-scan -u results.csv
Siehe docker/README.md, um das Image selbst zu erstellen.
Lade die neueste Version für dein Betriebssystem herunter und verwende sie.
unimap kann aus verfügbaren AUR-Paketen mit einem AUR-Helfer installiert werden. Zum Beispiel,
$ paru -S unimap
Wenn du es bevorzugst, kannst du die AUR-Pakete klonen und sie dann mit makepkg kompilieren. Zum Beispiel,
git clone https://aur.archlinux.org/unimap.git && cd unimap && makepkg -si
Unimap benötigt Root-/Administratorrechte, um den Nmap TCP SYN (Stealth) Scan zu starten. Wir verwenden ihn aus Gründen der Genauigkeit und Leistung. Wenn du unter Linux oder Linux-basierten Systemen arbeitest, verwende einfach eine Root-Shell oder führe das Tool mit sudo aus. Unter Windows kannst du eine Eingabeaufforderung (CMD) als Administrator öffnen und das Tool wie gewohnt ausführen.
unimap -f targets.txt -u log.csv führt einen vollständigen Scan durch und schreibt die Ausgabe in log.csv.unimap -f targets.txt --fast-scan -o führt einen schnellen Scan durch und speichert die Logdatei im Ordner logs/.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 scannt Ports von 1-1000 mit Service- und Versionserkennung (wenn du einen schnellen Scan möchtest, verwende das Flag --fast-scan) mit einer min-rate von 5000.--threads und --min-rate an (letzteres ist am wichtigsten).Führe die Unit- und Integrationstests aus (kein Netzwerk, Root oder Nmap erforderlich):
cargo test
Führe einen kurzen End-to-End-Check aus, der das Docker-Image erstellt und echte Scans
gegen scanme.nmap.org startet (benötigt Docker und Internetzugang):
scripts/container-test.sh
Öffne ein Issue.