Strumenti TCP

netcat

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

Hping

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 di tcphdrlen / 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

Idlescan

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

Synflood

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

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 con grep
  • -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