Security and hacking engineering - metodologie di attacco e difesa con strumenti open source
1. #LINUX DAY NAPOLI 2012
Security && Hacking Engineering
- metodologie di attacco e difesa informatica con
strumenti opensource -
A CURA DI MARCO FERRIGNO
- Security & system independent researcher -
- International Cyber Threat Task Force member -
- Developer of the Italian Debian GNU/Linux HOWTOs -
2. root@host:/# intro
PROPEDEUTICITA':
Nozioni basilari sulle architetture di elaborazione e di rete
Nozioni basilari sull'utilizzo dei sistemi operativi
Curiosità e spirito di iniziativa
Think Evil
COSA IMPAREREMO DA QUESTO TALK:
Sicurezza dell'informazione. Cos'è?
Come ragiona un attacker
Attacco e difesa: casi studio e casi reali
Limiti e ostacoli
3. Sicurezza informatica: cos'è?
Non riguarda solo le grandi aziende
Non riguarda solo i governi
…
Ma i dati di tutti noi
Le nostre informazione (in special modo le
più sensibili) sono memorizzate on-line
in vasta quantità.
4. Security market
Analisi al 30 settembre 2012 rispetto ai sei mesi precedenti
Spam: +75%
Phishing via mail: 1 su 245 (vs 1 su 424)
Tutto questo ha un costo
E l'Italia? Detentrice di un triste primato:
manca totalmente di una reale politica
aziendale in fatto di sicurezza
5. Sicurezza informatica: un'attitudine mentale
Attacco vs difesa
… sono davvero inscindibili?
Black Hat vs White Hat
… una differenza etica (e non solo)
6. L'evoluzione della sicurezza: il rischio
Perchè ”think evil”?
”perchè per catturare un ladro devi
pensare come un ladro”
Cosa serve?
a) passione incrollabile
b) capacità di prevedere le
minacce
c) difendersi in maniera pro-attiva
Senza la giusta mentalità la ”sicurezza” sarà limitata ad una verifica meccanica
delle liste di controllo ricavate in base all'esperienza del passato. E sarete
destinati a ripetere i fallimenti del passato.
7. Il nemico principale della sicurezza è ...
… la compiacenza!
Sappiamo solo reagire e non pro-agire.
Non facciamo prevenzione ma aspettiamo che succeda qualcosa. E allora è tardi.
… meglio evitare situazioni del genere
8. Come ragiona un attacker
Footprinting
Scansione
Enumerazione
Hacking
… ma prima di esaminare le singole fasi ...
9. Bersaglio individuato! Un caso di studio
repetita iuvant: Think Evil
Step 1. l'anonimato è fondamentale il caso Tor (The Onion Router), Freenet e Tails
Step 2. individuare il bersaglio
Step 3. analisi del bersaglio
”the swiss army”: nmap
Il 'nostro' caso studio:
L'attacker protagonista del nostro caso studio è particolarmente attratto dalle vulnerabilità sui
server web.
Utilizzare {motore di ricerca ad personam} !!
intitle:Test.Page.for.Apache ”It worked!” ”this Web site!”
10. Bersaglio individuato! Un caso di studio
Viene visualizzato un elenco di sistemi che utilizzano l'installazione di default del server web
Apache
#Ora l'attacker conosce:
Server web (è quello che voleva!)
Nome di dominio associato
#Cosa vuole:
L'indirizzo ip corrispondente
#In che modo:
host
oppure
tor-resolve
#Esempio:
user@host:~$ tor-resolve www.casostudio.com
10.10.10.100
11. Bersaglio individuato! Un caso di studio
Dopo il dovuto footprinting, l'attacker passa ad analizzare il bersaglio tramite una scansione
modus operandi: proxychains feat. nmap
user@host:~$ proxychains nmap -sT -PN -n -sV -p 21,22,53,80,110,139,143,443 10.10.10.100
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:139-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:110-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:21-<--OK
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:143-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:443-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:22-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:80-<--OK
|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:53-<--OK
Nmap scan report for 10.10.10.100
Host is up (0.00032s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp PureFTPd
22/tcp closed ssh
53/tcp open domain
80/tcp open http Apache httpd
110/tcp closed pop3
139/tcp closed netbios-ssn
143/tcp closed imap
443/tcp closed https
12. Bersaglio individuato! Un caso di studio
Una miniera di informazioni che devono essere scremate.
Altro step: l'attacker si concentra su delle specifiche vulnerabilità.
Sfruttare le vulnerabilità di Apache!
Come si procede:
Identificare versione in uso
Scelta dello swiss army: netcat | proxychains + netcat | socat
user@host:~$ socat TCP4-LISTEN:8080, fork
SOCKS4a:127.0.0.1:10.10.100:80, socksport=9050 &
user@host:~$ nc 127.0.0.1 8080
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Sun, 21 Oct 2012 16:42:48 GMT
Server: Apache/1.3.19 (Unix) (SuSE/Linux) PHP/4.3.4
Last-Modified: Mon, 15 Oct 2012 07:41:30 GMT
ETag:””8549c-304-2deb0e32””
Accept-Rangers: bytes
Content-Length: 773
Connection: close
Content-Type: text/html
13. Bersaglio individuato! Un caso di studio
In conclusione:
il caso studio trattato ha evidenziato come il web server
trovato sia fermo ad una versione piuttosto vecchia e
vulnerabile … il resto è cosa nota ...
14. Footprinting: cos'è?
”Se conosci il tuo nemico e conosci te stesso, non devi temere il risultato di cento battaglie.
Se conosci te stesso ma non il tuo nemico, per ogni vittoria subirai anche una sconfitta.
Se non conosci il tuo nemico e nemmeno te stesso, perderai ogni battaglia”
(Sun Tzu – L'arte della guerra)
Footprinting: l'arte di raccogliere informazioni sull'obiettivo a cui si è interessati
Cosa occorre?
Tecnica
Pazienza
Riflessione
Qual'è l'obiettivo?
Ridurre il bersaglio ad una serie specifica di nomi di dominio, blocchi di rete, sottoreti, router
e singoli indirizzi IP
15. Footprinting: informazioni accessibili al pubblico
Caso studio: PMI (… e non solo). Elementi ”utili” ed eventuali azioni da compiere
Pagine web aziendali → mirroring (uso di wget) dell'intero sorgente HTML con
particolare attenzione alle righe di commento; ricerca di indirizzi VPN ...
Organizzazioni correlate → possono trovarsi sia in chiaro che a mezzo codice
Dettagli sulla sede → Google Earth / Maps, Terraserver
Dipendenti: vita, morte && miracoli →networking sociale (Facebook, G+ …);
networking professionale (Linkedin …); carriera lavorativa (Monster, Careerbuilder
…); genealogia familiare (Ancestry)
Eventi correnti → fusioni, acquisizioni, scandali, licenziamenti, outsourcing … e il
sito della CONSOB
Politiche di sicurezza → ogni dettaglio fa la differenza
Informazioni archiviate → cache di Google (http://google.com/search?q=cache:www.esempio.com)
Dipendenti (o clienti) scontenti → azioni di dubbia moralità!
Motori di ricerca → il caso GHDB: le stringhe di ricerca
ed altro ancora, come ...
16. Footprinting: informazioni accessibili al pubblico
Caso studio: PMI (… e non solo). Elementi ”utili” ed eventuali azioni da compiere
Enumerazione dei server WHOIS e DNS → whois da terminale oppure
whois.iana.org
Interrogazione del DNS →tecnica del trasferimento di zona (tecnica obsoleta)
tramite nslookup: distinzione tra DNS interni ed esterni
Riconoscimento della rete → tecnica del tracerouting (traceroute nomehost da
terminale): consente di visualizzare il percorso seguito da un pacchetto IP nel suo
viaggio da un host all'altro
user@host:~$ traceroute esempio.it
traceroute to esempio.it (173.194.35.159), 30 hops max, 60 byte packets
1 10.220.0.1 (10.220.0.1) 10.157 ms 11.051 ms 11.416 ms
2 172.31.190.29 (172.31.190.29) 11.580 ms 11.890 ms 19.408 ms
3 143.225.190.82 (143.225.190.82) 118.120 ms 118.313 ms 118.446 ms
4 ru-unina-l1-rx1-na1.na1.garr.net (193.206.130.5) 20.217 ms 20.580 ms 20.671 ms
5 rx1-na1-rx1-rm2.rm2.garr.net (90.147.80.161) 21.109 ms 27.706 ms 28.013 ms
6 rx1-rm2-rx1-mi2.mi2.garr.net (90.147.80.62) 28.644 ms 24.772 ms 19.223 ms
7 rt-mi2-rx1-mi2.mi2.garr.net (90.147.94.46) 19.509 ms 22.120 ms 22.580 ms
…
17. Footprinting: contromisure
Dall'attacco alla difesa
Contromisure per la sicurezza dei database pubblici
Site security Handbook - http://www.faqs.org/rfcs/rfc2196.html
Utilizzo costante di alias
Funzioni di anonimato offerte dal provider del dominio
Sistema di autenticazione forte
Contromisure per la sicurezza del DNS
Caso d'uso: BIND: upgrade e allow-transfer in named.conf
Configurazione di un router/firewall con blocco a connessioni non autorizzare su
TCP 53
TSIG – Transaction SIGnature
Record HINFO: sconsigliato! Permette di individuare con precisione il sistema
operativo usato
18. Footprinting: contromisure
Dall'attacco alla difesa
Contromisure contro il tracerouting
NIDS – Network Intrusion Detection System
IPS – Intrusion Prevention System – come Snort - http://www.snort.org/
RotoRouter – www.usseback.com - registra richieste di traceroute in arrivo e
genare risposte fasulle
E ancora:
Configurazione dei router di confine in modo da limitare il traffico ICMP e UDP solo a
sistemi specifici, al fine di ridurre al minimo l'esposizione al pubblico
19. Scansione: cos'è?
”picchiettare” contro le pareti per trovare tutte le porte e le
finestre (magari già aperte)
tecniche adottate
ping sweep tramite:
fping → invia in parallelo ping in raound-robin
nmap → con l'opzione -sP
icmpenum → enumerazione ICMP per il rilevamento di
sistemi attivi
query ICMP tramite:
icmpquery
icmpush
Individuare servizi in esecuzione | ascolto tramite:
strobe → cattura il banner di ogni porta TCP
udp_scan → come strobe, per UDP … ma genera ”rumore”
netcat → l'arma definitiva
nmap → scansione di base per TCP e UDP
20. Scansione: un particolare caso d'uso
Lo strumento nmap mette a disposizione un'altra funzionalità di scansione così detta
”civetta”, pensata per sommergere un sito bersaglio con informazioni superflue, tramite
l'opzione -D.
Queste scansioni civetta vanno lanciate conteporanemante ad una scansione reale,
falsificando l'indirizzo di origine dei messaggi indicando server legittimi e mescolando a
queste scansioni di disturbo la scansione della porta reale.
Il sistema bersaglio risponderà agli indirizzi falsificati e anche alla scansione di porta reale;
inoltre, dovrà tenere traccia di tutte le scansioni per determinare quali sono legittime e quali
no
ATTENZIONE: l'indirizzo civetta deve essere un indirizzo valido altrimenti si giunge ad
una condizione di indisponibilità del servizio
21. Scansione: strumenti di rilevamento
Cheops - http://cheops-ng.sourceforge.net
Strumento onnicompresivo per la mappatura di rete. Integra funzionalità di ping,
traceroute, scansione di porte e rilevamento del sistema operativo.
Tkined:
Integra vari strumenti di gestione della
rete per consentire il rilevamento delle
reti IP.
Estensibile e dotato di GUI.
Non consente il rilevamento del SO
22. Scansione: contromisure
Diverse metodologie:
Rilevamento:
a) firewall e/o proxy ben configurato
b) utilizzo massiccio di IDS (Snort, Scanlog, Protolog)
Esempio: ecco come Snort evidenzia una scansione di tipo Query ICMP
[**] PING-ICMP Timestamp [**]
10/25-22:04:40.535502 192.168.0.2 → 192.168.0.5
ICMP TTL:255 TOS:0X0 ID:4321
TIMESTAP REQUEST
Prevenzione:
a) disabilitare i servizi non indispensabili [un'occhiata al nostro init system non fa male]
b) Occorre considerare con attenzione quali tipi di traffico ICMP consentire
c) ACL verso specifici indirizzi IP
d) uso di pingd: demone userland che gestisce il traffico ICMP a livello host
rimuovendo dal kernel il supporto dell'elaborazione del suddetto protocollo
23. Enumerazione: cos'è?
Esame dettagliato dei servizi identificati, mirato alla ricerca di eventuali punti deboli al
fine di valutarne il livello di intrusività.
L'enumerazione comporta l'utilizzo di connessioni attive verso i sistemi bersaglio e di
interrogazioni dirette, che potrebbero/dovrebbero essere registrate nei file di log (fatevi
aiutare da logcheck)
Tra le informazioni che gli attacker cercano attraverso l'enumerazione vi sono
Nomi di account utente
Risorse condivise mal configurate
Vecchie versioni di software con note vulnerabilità
Una volta che il servizio è stato enumerato, solitamente è solo questione di tempo prima
che l'intruso comprometta il sistema in qualche modo, se non del tutto.
Chiudendo queste falle, che si riparano facilmente, si elimina il primo appiglio dell'attacker
24. Enumerazione: la tecnica
Le tecniche di enumerazione sono specifiche per singola piattaforma e quindi dipendono
fortemente dalle informazioni raccolte tramite footprinting e scansione.
Molti software includo scansione ed enumerazione in un unico pacchetto, anche perchè,
umanamente, enumerare 65535 porte TCP e UDP potrebbe essere leggermente difficoltoso
Gli strumenti
telnet www.sito.com 80 → sessioni di login remoto di tipo riga di comando tra host
netcat nc [luuuunga lista di opzioni] www.sito.com 80 → comunicazione remota TCP/UDP
ftp ftp.sito.com → … ci si diverte quando l'accesso è anonimo
nslookup → enumerazione del DNS con trasferimento di zona
dig @192.168.0.9 sito.com [opzioni] → come nslookup (con qualche dettaglio in più)
tftp 192.168.0.9 → ftp senza autenticazione sulla UDP 69
finger [opzioni] @sito.com → nomi utenti, tempi di login e di inattività
….
e qualche altro migliaio di comandi!
25. Enumerazione: contromisure
In pratica … le stesse trattate per la scansione!
Particolare attenzione va rivolta verso:
Architettura di base del sistema operativo
Servizi in esecuzione|ascolto non sicuri
Firewall e/o Proxy
e ancora …
Strumenti di scansione da remoto - https://www.grc.com/x/ne.dll?bh0bkyd2
Elenco e spiegazione sulle porte -
http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
26. Hacking: cos'è?
E' l'insieme dei metodi (conclusivi), delle tecniche e delle operazioni volte a conoscere,
accedere e/o modificare un sistema hardware o software.
Hacking in 3 macroaree:
Hacking del Sistema Operativo
Hacking delle infrastrutture
Hacking di applicazioni e dati
… perdonatemi, sarò breve!
27. Mappatura delle vulnerabilità
Sala server Servizi mal configurati, mancato monitoraggio delle Mancanza di autenticazione
Servizi non necessari
Password deboli
vulenerabilità, directory scrivibili
Utenti con eccessivi privilegi
Software senza patch o vulnerabile
Postazione di lavoro
Funzionalità di
log/monitoraggio/rilevamento
non attive
LAN
Controllo accessi Mancanza di politiche per la sicurezza
mal configurati
Router di confine Firewall Router interno
Controllo accessi
mal configurati LAN
Mancanza di politiche per la sicurezza
Server accesso remoto
Utente mobile/da casa
Postazione di lavoro
Ufficio periferico
Punti di accesso Eccessive politiche di Mancanza di autenticazione Software senza patch o vulnerabile
remoto non protetti fiducia Password deboli
Utenti con eccessivi privilegi
28. Strumenti per la messa in sicurezza: limiti e ostacoli
Crittografia: scegliamo al meglio il protocollo di codifica
Attenzione a:
→ file temporanei
→ file cancellati
→ backup
Steganografia: inserire informazioni nascoste all'interno di un file vettore
Data hiding: saper nascondere i dati all'interno di un sistema informativo
Virtualizzazione: perchè no!?
Diavolerie geek: provate ad installare una distro gnu/linux su … ;)
29. La palestra degli hacker
Creata ad-hoc per lo studio della sicurezza del sistema operativo GNU/Linux
Contiene volutamente ogni sorta di bug e problema di sicurezza
Creata dall'International Institute for Training, Assessment and Certification (IITAC) e dal
Secure Software Engineering (S2E)
ATTENZIONE: è INUSABILE (meglio virtualizzare)
Le esercitazioni sono divise in 3 macroaree
Binary exploitation
Web exploitation
Reverse code engineering
… il premio finale?
NB: lo stato di sviluppo di DVL è discontinuo e
attualmente il sito di riferimento risulta offline.
Si consiglia il download ”per via alternative”
30. root@host:/# exit
Note a margine
Le immagini nelle slides 3-7, 13 sono state curate dal International Cyber
Threat Task Force in occasione del Cyber Threat Summit 2012
Riferimenti e contatti:
Marco Ferrigno
- Security & system independent researcher -
- International Cyber Threat Task Force member -
- Developer of the Italian Debian GNU/Linux HOWTOs -
http://marcoferrigno.wordpress.com
Grazie. Best regards :)