
Scannez une seule fois par adresse IP et réduisez les temps d'analyse avec Nmap pour de grandes quantités de données.
Analysez une seule fois par adresse IP et réduisez les temps de scan avec Nmap pour de grandes quantités de données. Unimap est une abréviation de « Unique Nmap Scan ». L'outil fonctionne sous Linux, OSX, Windows ou Android (Termux) sans problème.
Si vous prévoyez d'exécuter un Nmap sur toute une organisation, vous devez considérer que des dizaines, des centaines, voire des milliers de sous-domaines pointeront sûrement vers la même adresse IP, et il arrivera un moment où il deviendra presque impossible de continuer à scanner. De plus, votre IP peut finir par être bloquée en raison de multiples scans vers la même adresse hôte distante, entre autres choses.
Unimap utilise sa propre technologie pour résoudre initialement les adresses IP de tous les sous-domaines. Une fois ce processus terminé, il crée un vecteur avec les adresses IP uniques et lance un scan parallèle avec Nmap selon le nombre de threads que l'utilisateur a configuré. En même temps, il analyse les données des fichiers créés avec Nmap pour déterminer quelles informations correspondent à chaque IP. Enfin, Unimap relie les informations de chacune des IP associées aux sous-domaines. Ainsi, par exemple, si vous avez 50 sous-domaines qui pointent vers la même IP, vous n'effectuerez qu'un seul scan Nmap mais vous aurez toutes les données associées à chacun des sous-domaines en même temps. Pour un grand scan, cela permet d'économiser des jours ou des semaines.
Vous devez avoir Rust (version 1.88 ou plus récente) et Nmap installés sur votre ordinateur, puis exécutez :
1. git clone https://github.com/Edu4rdSHL/unimap.git && cd unimap
# Vous pouvez également télécharger une version depuis https://github.com/Edu4rdSHL/unimap/releases/latest
# l'extraire et passer à l'étape suivante.
2. cargo build --release
# Le binaire se trouve maintenant dans ./target/release/unimap
# La commande suivante ne fonctionne que sous Linux et MacOS. Les utilisateurs Windows doivent spécifier le chemin cible dans la variable d'environnement
3. cp ./target/release/unimap /usr/local/bin
# Vous pouvez maintenant utiliser la commande `unimap` de partout.
L'image edu4rdshl/unimap est publiée pour linux/amd64 et linux/arm64
à chaque version, sous latest et la version de la release :
docker pull edu4rdshl/unimap:latest
docker run --rm edu4rdshl/unimap:latest -t hackerone.com --fast-scan
# Conservez le CSV et les fichiers XML de Nmap : montez un répertoire sur /opt/unimap
docker run --rm -v "$(pwd):/opt/unimap" edu4rdshl/unimap:latest -f targets.txt --fast-scan -u results.csv
Consultez docker/README.md pour construire l'image vous-même.
Téléchargez la dernière version pour votre système d'exploitation et utilisez-la.
unimap peut être installé à partir des paquets AUR disponibles à l'aide d'un assistant AUR. Par exemple,
$ paru -S unimap
Si vous préférez, vous pouvez cloner les paquets AUR puis les compiler avec makepkg. Par exemple,
git clone https://aur.archlinux.org/unimap.git && cd unimap && makepkg -si
Unimap nécessite des privilèges root/administrateur pour lancer le scan TCP SYN (Stealth) de Nmap, nous l'utilisons pour des raisons de précision et de performance. Si vous êtes sous Linux ou un système basé sur Linux, utilisez simplement un shell root ou exécutez l'outil avec sudo. Sous Windows, vous pouvez ouvrir une invite de commandes (CMD) en tant qu'administrateur et exécuter l'outil comme d'habitude.
unimap -f targets.txt -u log.csv effectue un scan complet et écrit la sortie dans log.csv.unimap -f targets.txt --fast-scan -o effectue un scan rapide et enregistre le fichier journal dans le dossier logs/.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 scanne les ports de 1 à 1000 avec détection de service et de version (si vous voulez un scan rapide, utilisez le drapeau --fast-scan) avec un min-rate de 5000.--threads et --min-rate (ce dernier étant le plus important).Exécutez les tests unitaires et d'intégration (aucun réseau, root ou Nmap requis) :
cargo test
Exécutez un test de bout en bout court qui construit l'image Docker et lance de vrais scans
contre scanme.nmap.org (nécessite Docker et un accès Internet) :
scripts/container-test.sh
Ouvrez une issue.