Scan réseau
sommaire
Scan réseau — automatique
Outils qui automatisent l’énumération. À lancer en tâche de fond pendant qu’on travaille à la main.
AutoRecon
autorecon 10.10.10.10
autorecon -t targets.txt # plusieurs cibles
# resultats dans ./results/<ip>/ (scans, web, etc.)
https://github.com/Tib3rius/AutoRecon
RustScan (ultra-rapide) → Nmap
rustscan -a 10.10.10.10 --ulimit 5000 -- -sVC -oA rust
rustscan -a 10.10.10.10 -r 1-65535 --ulimit 5000
nmapAutomator
./nmapAutomator.sh -H 10.10.10.10 -t All
Scan réseau — manuel (Nmap)
Découverte d’hôtes (ping sweep)
nmap -sn 10.10.10.0/24 -oA hosts # ping sweep (pas de scan de ports)
fping -asgq 10.10.10.0/24 # alternative rapide
# extraire les IP vivantes :
grep Up hosts.gnmap | cut -d' ' -f2
Scan de ports — méthode 2 étapes (rapide puis détaillé)
# 1) tous les ports TCP, tres vite
nmap -p- --min-rate 5000 -T4 10.10.10.10 -oA allports
# 2) recuperer les ports ouverts
ports=$(grep -oP '\d+/open' allports.gnmap | cut -d/ -f1 | paste -sd,)
# 3) scan detaille (version + scripts par defaut) sur ces ports
nmap -p$ports -sVC -oA detail 10.10.10.10
Variantes Nmap utiles
nmap -sVC -O 10.10.10.10 # version + scripts defaut + OS (top 1000)
nmap -p- -sS -T4 10.10.10.10 # SYN scan, tous les ports TCP
sudo nmap -sU --top-ports 100 10.10.10.10 -oA udp # UDP (lent)
nmap -Pn 10.10.10.10 # si l'hote bloque le ping (ICMP)
nmap -sVC -oA scan 10.10.10.10 --script-args http.useragent='Mozilla'
nmap ... -oA base # -oA = sortie .nmap/.gnmap/.xml en une fois
Scripts NSE
ls /usr/share/nmap/scripts | grep -i smb # lister les scripts d'un service
nmap --script vuln 10.10.10.10 # categorie 'vuln'
nmap -p80 --script 'http-*' 10.10.10.10 # tous les scripts http
nmap -p445 --script 'smb-enum-*,smb-vuln-*' 10.10.10.10
Masscan (balayage très rapide)
sudo masscan -p1-65535 10.10.10.10 --rate=1000 -e tun0
sudo masscan -p80,443 10.10.10.0/24 --rate=1000 -e tun0
Scan sans Nmap (Netcat / bash)
nc -zvn 10.10.10.10 1-1000 2>&1 | grep -i succeeded # TCP
nc -zvun 10.10.10.10 53 123 161 # UDP
# pur bash (sans nc) :
for p in 21 22 80 139 445 3389; do (echo >/dev/tcp/10.10.10.10/$p) 2>/dev/null && echo "$p ouvert"; done