Strumenti TCP
netcat
nc [opzioni] [hostname] [porte]
Il coltellino svizzero delle utilities di rete. Capace di:
- Aprire connessioni TCP
- Ascoltare su porte TCP e UDP
- Inviare datagrammi UDP
- Eseguire scansioni di porte
- Gestire IPv4 ed IPv6
Il client legge da standard input, il server scrive a standard output
Genera errori su standard error
Esempi d'uso
Porta locale, 5 secondi di timeout connessione:
nc -p 31337 -w 5 host.example.com 42
Usa protocollo UDP:
nc -u host.example.com 53
Spoofing dell'idirizzo sorgente:
nc -s 10.1.2.3 host.example.com 42
Ascolta su socket Unix:
nc -lU /var/tmp/dsocket
Proxy HTTPS e utente indicato:
nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42
Scansione porte:
nc -z host.example.com 20-30
Packet Crafting con hping3
Autore: Salvatore Sanfilippo.
Costruzione di pacchetti con riempimento dei campi.
Invia un pacchetto con flag SYN alla porta 80:
hping3 -I eth0 -S 192.168.10.1 -p 80
Opzioni per flag:
-F FIN -R RST -S SYN
-P PUSH -A ACK -U URG
-X Xmas(1st unused) -Y Ymas(2nd unused)
Scansione dalla porta 79 in poi:
hping3 -I eth0 -S 192.168.10.1 -p ++79
Ritorna flags=SA per porta aperta e flags=RA per porta chiusa
Altre opzioni:
-s --baseport
- porta sorgente base (default random) – incrementata di 1 ad ogni invio-p --destport[+][+]<port>
- porta destinazione (default 0)-k --keep
- mantiene porta sorgente-w --win
- dimensione finestra (default 64)-O --tcpoff
- offset dati (invece ditcphdrlen / 4
)-Q --seqnum
- mostra solo il numero di sequenza-b --badcksum
- invia checksum sbagliato (non sempre funziona)-M --setseq
- setta il numero di sequenza TCP-L --setack
- setta il numero di acknoledge TCP
Idle Scan
Richiede una macchina Zombie con sequenza prevedibile di generazione di ID di pacchetto.
- P.es. Windows, Stampanti
Testare uno Zombie:
hping3 -I eth0 -SA 192.168.10.1
Se lo id incrementa di 1 va bene
Scansione. Finestra 1 con intervallo di 5 secondi:
hping3 -I eth0 -i 5 -a 192.168.10.1 -S 192.168.10.33 -p ++20
Finestra 2:
hping3 -I eth0 -r -S 192.168.10.1 -p 2000
-r
display degli incrementi, non degli id interi; se +1: porta server chiusa, se +2: porta server aperta
Attacco SYN
Acquisizione Informazioni
Fingerprinting
Determinare il sistema operativo dei target. A volte anche versioni e implementazioni specifiche.
- Fingerprinting attivo
- Invia stimoli e riceve responsi
- Comportamento target allo stimolo con pacchetti errati
- Database di responsi possibili
- Fingerprinting passivo
- Ispezionare i dettagli interni dei pacchetti ricevuti
- Campi inutilizzati delle testate TCP/IP
- Presenza e tipo di opzioni
- Uso dei flag TCP - Push, Urgent, Fin *Frequenza di vari tipi di traffico
Scanning
Fondamento dello Intelligence Gathering Attivo.
Enumerazione di:
- Indirizzi IP
- Nomi host
- Porte e servizi
- Sistemi operativi
- Numeri di sequenza IP
- Vulnerabilità palesi
Può essere più o meno rumoroso o Stealth:
- Il sistema operativo target non compie il logging delle sonde di scansione
- Lo Intrusion Detection System di rete non nota anomalie di traffico, per composizione o frequnze
nmap
Gordon “Fyodor” Lyon, dal 1997.
nmap [tipi] [opzioni] target
Opzioni:
-g
- porta sorgente--spoof-mac
- MAC sorgente falso-S
- indirizzo sorgente-e
- seleziona interfaccia ethernet-F
- fast scan alle 100 porte più importanti-p
- specifica range di porte-R
- forza il reverse lookup-N
- risoluzione DNS-n
- disabilita risoluzione DNS-O
- informazioni sul sistema operativo-h
- help-6
- abilita IPv6-A
- aggressivo – usare con cautela-T(0-5)
- livello di aggressività--scan_delay
- aggiunge un ritardo tra le sonde-sV
- sonda le versioni del software-P0
- disabilita il ping della vittima-A
- compie un traceroute--max_hostgroup
- limita il numero delle vittime scandite simultaneamente--max_retries
. setta il numero di tentativi aggiuntivi di contatto porte--max_parallelism
- setta il numero massimo di sonde in parallelo
Tipi di scansioni
-sA
- ACK-sP
- ping-sS
- SYN – scansione half open-sT
- connessione TCP completa-sU
- UDP-sX
- XMAS – buono per i sistemi Unix-sL
- list scan – lista gli indirizzi IP-sO
- protocolli supportati dalle vittime-sM
- FIN/ACK – buono per i sistemi Unix-sI
- idle scan – usa zombie-sW
- scan della finestra TCP dei pacchetti RST
Tipi di output:
-oA
- tutti-oG
- che può essere usato congrep
-oX
- XML-oN
- normale
Esempi di nmap
nmap -A 10.10.10.2
- Rileva porte e informazioni sulla vittima. Compie un traceroute.
- Provare con firewall e senza
nmap -P0 -n -sS --max_hostgroup 1 --max_retries 0 --max_parallelism 10 10.10.10.0/24 | grep -v Warning
- Scan stealth di un'intera rete con accorgimenti per basso carico e intrusività
- Il grep toglie i messaggi di Warning per eccesso di retries su vittime non esistenti
nmap-D10.10.10.18,10.10.10.27,10.10.10.44,ME -p 80,21,22,25,443 -Pn 10.10.10.3
- Uso di Decoys: randomizza l'indirizzo sorgente tra gli indirizzi indicati dall'opzione -D