eJPT · Footprinting & Scanning
Nmap Fundamentals
Difficoltà: Beginner Time to Master: 2h Prerequisiti: 00-Fundamentals/02-Networking-Basics.md Lab: INE PTS, Network Scanning
Obiettivo
Se dovessi salvare un solo tool prima dell’esame, sarebbe questo: nmap è lo strumento che userai più di ogni altro in tutto l’eJPTv2, e vale la pena conoscerlo a fondo — tipi di scan, timing, formati di output — prima ancora di arrivare a host discovery e port scanning avanzato. Non è solo “il comando che lancio e aspetto”: ogni flag che scegli qui ha un compromesso preciso tra velocità, accuratezza e rilevabilità, ed è quel compromesso che deciderai consapevolmente andando avanti nei prossimi file.
Concetti chiave
Tipi di scan principali
| Flag | Nome | Note |
|---|---|---|
-sS |
SYN scan (half-open) | default se root, veloce, non completa il 3-way handshake |
-sT |
TCP connect scan | completa la connessione, usato se non si è root |
-sU |
UDP scan | lento, spesso servizi non rispondono (filtrato/open assunto) |
-sV |
Version detection | identifica versione software dietro la porta |
-sC |
Script scan (default NSE) | esegue script della categoria “default” |
-A |
Aggressive | combina -sV -sC -O –traceroute |
-O |
OS detection | fingerprint dello stack TCP/IP |
Timing templates
| Template | Velocità | Uso |
|---|---|---|
-T0 |
Paranoid | massima evasione IDS, molto lento |
-T2 |
Polite | riduce banda, ambienti sensibili |
-T3 |
Normal | default |
-T4 |
Aggressive | uso comune in lab/CTF |
-T5 |
Insane | rischio falsi negativi, solo reti stabili |
Formati di output
| Flag | Formato | Uso |
|---|---|---|
-oN |
Normal | leggibile a schermo |
-oX |
XML | parsing automatico (es. Nessus, tool terzi) |
-oG |
Grepable | parsing veloce con grep/awk (deprecato ma ancora usato) |
-oA |
All | salva tutti e tre i formati con lo stesso basename |
Strumenti
| Tool | Comando base | Output | Note |
|---|---|---|---|
| nmap | nmap -sV -sC target |
porte, versioni, script default | tool principale |
| masscan | masscan -p1-65535 target --rate=10000 |
porte aperte, molto veloce | usato per scan rapidi di range grandi, meno accurato |
| rustscan | rustscan -a target -- -sV -sC |
porte + pipe automatico a nmap | wrapper veloce moderno |
Payload / Esempi
Esempio 1: scan completo di tutte le porte
nmap -p- --min-rate=5000 -oN scan-allports.txt 10.10.10.5
Output atteso:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
Spiegazione: -p- scansiona tutte le 65535 porte TCP, --min-rate forza un throughput minimo di pacchetti/sec per velocizzare lo scan su reti stabili come i lab.
Esempio 2: scan di versione e script default sulle porte trovate
nmap -sV -sC -p 22,80,445,3389 -oN scan-services.txt 10.10.10.5
Spiegazione: una volta note le porte aperte (esempio 1), si ripete lo scan solo su quelle con -sV -sC per ottenere versioni software e output degli script NSE di default (es. smb-os-discovery, http-title).
Esempio 3: scan UDP delle porte più comuni
nmap -sU --top-ports 20 -oN scan-udp.txt 10.10.10.5
Spiegazione: UDP è senza stato, nmap non può distinguere facilmente “open” da “filtered” senza risposta; per questo si limita lo scan alle porte più comuni (--top-ports) per contenere i tempi.
Evasion / Bypass Techniques
-f: frammenta i pacchetti per evadere IDS/firewall semplici basati su pattern matching-D RND:10: decoy scan, genera pacchetti da IP falsi insieme al reale--data-length 25: aggiunge padding random per evitare firme basate su lunghezza pacchetto- In un contesto di esame/lab autorizzato l’evasion serve più a capire il concetto che a essere strettamente necessaria: la maggior parte dei target di lab non ha IDS attivo
Lab Hands-On
Lab 1: TryHackMe, Nmap
Obiettivo: esercitarsi con tutti i tipi di scan e timing template su un target controllato Difficulty: Facile Time: 45 min
Walkthrough breve:
- Esegui
-sS,-sT,-sUsullo stesso target e confronta i risultati - Prova i 6 timing template e misura il tempo di esecuzione
- Salva l’output in tutti e 3 i formati con
-oA
Common Mistakes
- Fidarsi solo di
--top-portssenza mai fare uno scan completo-p--> si perdono servizi su porte non standard - Usare
-T5su reti VPN lente (tipico dei lab) -> falsi negativi, porte segnate come chiuse quando non lo sono - Dimenticare
-Pnquando l’host blocca ping ma le porte sono comunque raggiungibili
Link Utili
Connessioni
- Prerequisito: 00-Fundamentals/02-Networking-Basics.md
- Prossimo Step: 02-Host-Discovery.md
- Combinazione con: 03-Port-Scanning-Techniques.md
Checklist di padronanza
- Conosco a memoria i flag principali (-sS/-sT/-sU/-sV/-sC/-A)
- So scegliere il timing template giusto per il contesto
- So salvare output in tutti i formati utili
- Ho provato almeno una tecnica di evasion