1
Introduzione
all’Information
Gathering
Salvatore Lentini
Junior Penetration Tester
salvatorelentini91@gmail.com
5 LUGLIO, ISPRA (VA), Italia
2
Cenno alle fasi di un processo di Penetration
Testing
IL PROCESSO
●
Ingaggio
●
Information Gathering
●
Foorprinting & Scanning
●
Vulnerability Assessment
●
Exploitation
●
Reporting
Non è un processo lineare bensì un
processo ciclico.
EngagementEngagement Information
Gathering
Information
Gathering
Footprinting &
Scanning
Footprinting &
Scanning
Vulnerability
Assessment
Vulnerability
Assessment ExploitationExploitation ReportingReporting
Information Gathering
Processo di Vulnerability Assessment
Processo completo di Penetration Testing
3
Information Gathering
Raccolta delle informazioni
1
4
INFORMATION GATHERING
E’ la fase durante la quale un
attaccante raccoglie informazioni
sulla vittima:
●
Singolo individuo
●
Azienda
Dobbiamo indossare i panni
dell’investigatore che vuol
raccogliere il maggior numero di
informazioni
5
CHE TIPO DI INFORMAZIONI?
Singolo individuo
Data di nascita e luogo di nascita, indirizzo di residenza, numero/i di telefono, email
Luogo di lavoro, Azienda di lavoro, CV, lavori svolti,...
Istruzione, corsi di formazione, specializzazioni, campi di interesse
Hobby, Sport, Musica favorita
Orientamento politico, orientamento religioso, credenze e convinzioni.
Legami affettivi (famiglia), amici, conoscenti, …
Luoghi visitati, vacanze, ...
6
CHE TIPO DI INFORMAZIONI?
Azienda
Indirizzi email di:
●
Membri del consiglio di amministrazione
●
Investitori
●
Dirigenti e impiegati
●
Sedi con i relativi indirizzi
Sul sito dell’azienda:
●
Quali servizi l’azienda fornisce
●
Quali social l’azienda usa per comunicare con i propri clienti e sponsorizzare i
propri servizi
●
Quali sono i principali fornitori e partner dell’azienda
●
Quanti e quali sedi ha l’azienda (indirizzi, numeri di telefono, … )
Cercare su google maps l’azienda e fare un analisi delle infrastrutture:
●
Muri e recinzioni
●
Telecamere
●
Guardiole
●
Entrate e Uscite
●
Presenza di personale (anche armato) [Serve un sopralluogo]
Navigare sui social in cerca di informazioni su:
●
Progetti e scadenze
●
Seminari e corsi
●
Informazioni pubblicate dai dipendenti (Ex. Linkedin e Twitter)
●
Trasferte
7
Social
Engineering
Tutte queste informazioni servono per
montare attacchi di tipo
Oltre che ad essere la base per
montare attacchi di vario genere
“
8
Non possiamo attaccare qualcosa o
qualcuno che non conosciamo
Allo stesso modo
Non possiamo difenderci da
qualcuno o da qualcosa che non
conosciamo
9
Information Gathering Infrastrutturale
Footprinting & Scanning
2
10
INFORMATION GATHERING
In questa fase bisogna trasformare gli indirizzi IP o i
domini in scope in informazioni utili:
●
Enumerazione dei sistemi in rete
●
Porte aperte per ogni sistema
●
Nome dei servizi (demoni in ascolto) e versione
●
Nome sistema operativo e versione
●
Tipologia dei sistemi in rete: client o server?
●
Informazioni sull’infrastruttura (whois)
●
Informazioni estratte dal DNS
●
Banner Grabbing
Possiamo allargare la ricerca spostandoci altrove:
●
Presenza di webapplication
●
Crowling WebApplication:
●
Numero di pagine
●
Numero di cartelle
●
Sottodomini
●
Tecnologia in uso : PHP, Java, .NET, …
●
Framework e content manager in uso (Drupal,
Joomla, Wordpress, … )
11
DEMO Information Gathering su di una rete di computer
Nmap:
●
Pingscan (Ping Sweep) (-sP)
nmap -sP 192.168.83.0/24 oppure nmap -sP 192.168.83.1-255
●
Listscan (-sL)
nmap -sL 192.168.83.0/24
●
Portscan (-sT, -sS, … )
Connect Scan: nmap -sT 192.168.83.141
Stealth Scan: nmap -sS 192.168.83.141 oppure nmap 192.168.83.141
(La stealth scan di default su Nmap)
●
Service Scan (-sV)
nmap -sV 192.168.83.141
●
Footprinting OS (-O)
nmap -O 192.168.83.141
●
Una certa porta? Range di porte?
nmap -p 80 192.168.83.141 oppure nmap -p 1-1024 192.168.83.141
12
Connect Scan vs Stealth Scan
Connect Scan
Stealth Scan
Port Closed
13
DEMO
Fping:
●
Ping Scan (Ping sweep)
fping -a -g 192.168.83.0/24 (mostra anche hosts offline)
fping -a -g 192.168.83.0/24 2>/dev/null (mostra solo hosts online)
… in Kali Linux ci sono molti strumenti, non
basterebbe una lezione per elencarli e provarli
tutti
14
DEMO
WPScan (su Kali Linux)
WPScans.com (Online)
15
Cenno al FingerPrinting Web Server (Banner Grabbing)
●
Web Application girano su Server Web. Testare se un Server
Web è sicuro da un attacco interno/esterno è fondamentale.
Fare fingerprinting di un Web Server significa identificare:
●
Il demone del servizio (IIS, Apache, nginx … )
●
La sua versione
●
Sistema operativo sulla macchina in cui gira il servizio
Questa attività prende il nome di Banner Grabbing ossia raccolta
di banner. Per ottenere il banner, basta connettersi al demone in
ascolto e poi leggere il banner (messaggio) che viene spedito al
client.
16
Cenno al FingerPrinting Web Server (Banner Grabbing)
●
Bisogna connettersi alla porta (netcat)
●
Mandare una richiesta HTTP valida (verbi http)
Esempio
nc <ip> 80
(se usi HEAD devi dare due volte OK per inviare il pacchetto. Il motivo risiede nel
come è fatto un pacchetto HTTP)
HEAD / HTTP/1.1
Host: www.site.it
HEAD / HTTP/1.0
Headersrn
rn
Message Bodyrn
17
Cenno al FingerPrinting Web Server (Banner Grabbing)
Verbi HTTP più comuni:
GET, POST, HEAD, PUT, DELETE
Mandando OPTIONS vedremo quali verbi HTTP sono permessi
sulla macchina
Nota: A volte i verbi HTTP abilitati dipendono dal nome dell’host
che si sta testando.
OPTIONS / HTTP/1.1
Host: www.site.it
OPTIONS / HTTP/1.0
(la versione 1.0 forza a non
inviare l’header “host”)
VERBI HTTP Malconfigurati
sono difficili da trovare
Ma ancora:
●
Dispositivi Embedded
●
Telecamere IP
●
Videoregistratori Digitali
●
Dispositivi Smart (IoT)
18
DEMO
Shodan
●
Motore di ricerca sviluppato da John Matherly
●
E’ un motore di ricerca ma si comporta in modo differente rispetto
ai tipici motori come Google, Bing, Yahoo
●
I tipici motori di ricerca eseguono una scansione tramite pagine
web e poi indicizzano la ricerca. Shodan interroga le porte
leggendo i grabbers e indicizza questi ultimi (invece che il loro
contenuto web).
●
Shodan è progettatto per trovare desktops, server, routers,
switches, cams, dispositivi IoT, … (e non le solite pagine web!)
19
DEMO
Qualche “semplice” ricerca...
●
Computer che hanno Windows XP? “Windows XP”
●
Computer che hanno Windows XP SP2? “Windows XP SP2”
●
Computer che hanno la versione vulnerabile di Heartbleed
(tieni conto 1.0.1<=OpenSSL<=1.0.1f) “OpenSSL 1.0.1”
●
Computer che usano Apache/Ngnix? “Apache”/”nginx”
●
Router Netgear? “Netgear”
●
Server vulnerabili a Proftpd 1.3.3a (Remote Command
Execution) “Proftpd 1.3.3a”
20
DEMO
21
DEMO
22
DEMO
23
DEMO
24
DEMO
25
DEMO
Plugin per Firefox e Chrome
26
DEMO
Plugin per Firefox e Chrome
27
Vulnerability Assessment & Exploitation
Tutte le informazioni scoperte fino adesso saranno usate durante la fase di
Vulnerability Assessment scopo della quale è cercare le vulnerabilità
presenti in tutti i sistemi in rete.
Per questo fase saranno usati degli Scanner di Vulnerability Assessment:
●
Nessus
●
OpenVAS
La fase di vulnerability assessment produrrà una lista di vulnerabilità le quali
potranno essere sfruttate nella fase di Exploitation.
E’ bene far notare che quanto visto finora serve a rafforzare la conoscenza
sulle macchine che vogliamo attaccare, poiché senza di essa, non
potremmo portare un attaco. Maggiori sono le informazioni che riusciamo a
recupare, maggiore è la probabilità che l’attacco vada a buon fine.
28
Breve nota concettuale
Immaginiamo un attaccate alle prime armi che ha
saltato la fase di Information Gathering
intenzionalmente e che adesso si ritrova a lanciare
exploit tipici per Linux, incurante del fatto che sulla
macchina che sta attaccando giri Windows.
Questo accade perché non ha portato una fase di
Information Gathering.
Questa sua non curanza lo porta a:
●
Fallire l’attacco
●
Attivare campanelli di allarme
●
Danneggiare i sistemi del cliente (nel caso di un
Penetration Testing) e rischiare un DoS dei
servizi.
“
29
Quello che facciamo è un Hacking
Etico, puramente professionale al
fine di mettere in sicurezza la rete
del cliente. Soltanto attaccando ed
effettuando un analisi dei vari
sistemi possiamo a quel punto
difenderci da un “attaccante reale”
30
Grazie per l’ascolto
salvatorelentini91@gmail.com

Introduzione all'Information Gathering

  • 1.
    1 Introduzione all’Information Gathering Salvatore Lentini Junior PenetrationTester salvatorelentini91@gmail.com 5 LUGLIO, ISPRA (VA), Italia
  • 2.
    2 Cenno alle fasidi un processo di Penetration Testing IL PROCESSO ● Ingaggio ● Information Gathering ● Foorprinting & Scanning ● Vulnerability Assessment ● Exploitation ● Reporting Non è un processo lineare bensì un processo ciclico. EngagementEngagement Information Gathering Information Gathering Footprinting & Scanning Footprinting & Scanning Vulnerability Assessment Vulnerability Assessment ExploitationExploitation ReportingReporting Information Gathering Processo di Vulnerability Assessment Processo completo di Penetration Testing
  • 3.
  • 4.
    4 INFORMATION GATHERING E’ lafase durante la quale un attaccante raccoglie informazioni sulla vittima: ● Singolo individuo ● Azienda Dobbiamo indossare i panni dell’investigatore che vuol raccogliere il maggior numero di informazioni
  • 5.
    5 CHE TIPO DIINFORMAZIONI? Singolo individuo Data di nascita e luogo di nascita, indirizzo di residenza, numero/i di telefono, email Luogo di lavoro, Azienda di lavoro, CV, lavori svolti,... Istruzione, corsi di formazione, specializzazioni, campi di interesse Hobby, Sport, Musica favorita Orientamento politico, orientamento religioso, credenze e convinzioni. Legami affettivi (famiglia), amici, conoscenti, … Luoghi visitati, vacanze, ...
  • 6.
    6 CHE TIPO DIINFORMAZIONI? Azienda Indirizzi email di: ● Membri del consiglio di amministrazione ● Investitori ● Dirigenti e impiegati ● Sedi con i relativi indirizzi Sul sito dell’azienda: ● Quali servizi l’azienda fornisce ● Quali social l’azienda usa per comunicare con i propri clienti e sponsorizzare i propri servizi ● Quali sono i principali fornitori e partner dell’azienda ● Quanti e quali sedi ha l’azienda (indirizzi, numeri di telefono, … ) Cercare su google maps l’azienda e fare un analisi delle infrastrutture: ● Muri e recinzioni ● Telecamere ● Guardiole ● Entrate e Uscite ● Presenza di personale (anche armato) [Serve un sopralluogo] Navigare sui social in cerca di informazioni su: ● Progetti e scadenze ● Seminari e corsi ● Informazioni pubblicate dai dipendenti (Ex. Linkedin e Twitter) ● Trasferte
  • 7.
    7 Social Engineering Tutte queste informazioniservono per montare attacchi di tipo Oltre che ad essere la base per montare attacchi di vario genere
  • 8.
    “ 8 Non possiamo attaccarequalcosa o qualcuno che non conosciamo Allo stesso modo Non possiamo difenderci da qualcuno o da qualcosa che non conosciamo
  • 9.
  • 10.
    10 INFORMATION GATHERING In questafase bisogna trasformare gli indirizzi IP o i domini in scope in informazioni utili: ● Enumerazione dei sistemi in rete ● Porte aperte per ogni sistema ● Nome dei servizi (demoni in ascolto) e versione ● Nome sistema operativo e versione ● Tipologia dei sistemi in rete: client o server? ● Informazioni sull’infrastruttura (whois) ● Informazioni estratte dal DNS ● Banner Grabbing Possiamo allargare la ricerca spostandoci altrove: ● Presenza di webapplication ● Crowling WebApplication: ● Numero di pagine ● Numero di cartelle ● Sottodomini ● Tecnologia in uso : PHP, Java, .NET, … ● Framework e content manager in uso (Drupal, Joomla, Wordpress, … )
  • 11.
    11 DEMO Information Gatheringsu di una rete di computer Nmap: ● Pingscan (Ping Sweep) (-sP) nmap -sP 192.168.83.0/24 oppure nmap -sP 192.168.83.1-255 ● Listscan (-sL) nmap -sL 192.168.83.0/24 ● Portscan (-sT, -sS, … ) Connect Scan: nmap -sT 192.168.83.141 Stealth Scan: nmap -sS 192.168.83.141 oppure nmap 192.168.83.141 (La stealth scan di default su Nmap) ● Service Scan (-sV) nmap -sV 192.168.83.141 ● Footprinting OS (-O) nmap -O 192.168.83.141 ● Una certa porta? Range di porte? nmap -p 80 192.168.83.141 oppure nmap -p 1-1024 192.168.83.141
  • 12.
    12 Connect Scan vsStealth Scan Connect Scan Stealth Scan Port Closed
  • 13.
    13 DEMO Fping: ● Ping Scan (Pingsweep) fping -a -g 192.168.83.0/24 (mostra anche hosts offline) fping -a -g 192.168.83.0/24 2>/dev/null (mostra solo hosts online) … in Kali Linux ci sono molti strumenti, non basterebbe una lezione per elencarli e provarli tutti
  • 14.
    14 DEMO WPScan (su KaliLinux) WPScans.com (Online)
  • 15.
    15 Cenno al FingerPrintingWeb Server (Banner Grabbing) ● Web Application girano su Server Web. Testare se un Server Web è sicuro da un attacco interno/esterno è fondamentale. Fare fingerprinting di un Web Server significa identificare: ● Il demone del servizio (IIS, Apache, nginx … ) ● La sua versione ● Sistema operativo sulla macchina in cui gira il servizio Questa attività prende il nome di Banner Grabbing ossia raccolta di banner. Per ottenere il banner, basta connettersi al demone in ascolto e poi leggere il banner (messaggio) che viene spedito al client.
  • 16.
    16 Cenno al FingerPrintingWeb Server (Banner Grabbing) ● Bisogna connettersi alla porta (netcat) ● Mandare una richiesta HTTP valida (verbi http) Esempio nc <ip> 80 (se usi HEAD devi dare due volte OK per inviare il pacchetto. Il motivo risiede nel come è fatto un pacchetto HTTP) HEAD / HTTP/1.1 Host: www.site.it HEAD / HTTP/1.0 Headersrn rn Message Bodyrn
  • 17.
    17 Cenno al FingerPrintingWeb Server (Banner Grabbing) Verbi HTTP più comuni: GET, POST, HEAD, PUT, DELETE Mandando OPTIONS vedremo quali verbi HTTP sono permessi sulla macchina Nota: A volte i verbi HTTP abilitati dipendono dal nome dell’host che si sta testando. OPTIONS / HTTP/1.1 Host: www.site.it OPTIONS / HTTP/1.0 (la versione 1.0 forza a non inviare l’header “host”) VERBI HTTP Malconfigurati sono difficili da trovare Ma ancora: ● Dispositivi Embedded ● Telecamere IP ● Videoregistratori Digitali ● Dispositivi Smart (IoT)
  • 18.
    18 DEMO Shodan ● Motore di ricercasviluppato da John Matherly ● E’ un motore di ricerca ma si comporta in modo differente rispetto ai tipici motori come Google, Bing, Yahoo ● I tipici motori di ricerca eseguono una scansione tramite pagine web e poi indicizzano la ricerca. Shodan interroga le porte leggendo i grabbers e indicizza questi ultimi (invece che il loro contenuto web). ● Shodan è progettatto per trovare desktops, server, routers, switches, cams, dispositivi IoT, … (e non le solite pagine web!)
  • 19.
    19 DEMO Qualche “semplice” ricerca... ● Computerche hanno Windows XP? “Windows XP” ● Computer che hanno Windows XP SP2? “Windows XP SP2” ● Computer che hanno la versione vulnerabile di Heartbleed (tieni conto 1.0.1<=OpenSSL<=1.0.1f) “OpenSSL 1.0.1” ● Computer che usano Apache/Ngnix? “Apache”/”nginx” ● Router Netgear? “Netgear” ● Server vulnerabili a Proftpd 1.3.3a (Remote Command Execution) “Proftpd 1.3.3a”
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    27 Vulnerability Assessment &Exploitation Tutte le informazioni scoperte fino adesso saranno usate durante la fase di Vulnerability Assessment scopo della quale è cercare le vulnerabilità presenti in tutti i sistemi in rete. Per questo fase saranno usati degli Scanner di Vulnerability Assessment: ● Nessus ● OpenVAS La fase di vulnerability assessment produrrà una lista di vulnerabilità le quali potranno essere sfruttate nella fase di Exploitation. E’ bene far notare che quanto visto finora serve a rafforzare la conoscenza sulle macchine che vogliamo attaccare, poiché senza di essa, non potremmo portare un attaco. Maggiori sono le informazioni che riusciamo a recupare, maggiore è la probabilità che l’attacco vada a buon fine.
  • 28.
    28 Breve nota concettuale Immaginiamoun attaccate alle prime armi che ha saltato la fase di Information Gathering intenzionalmente e che adesso si ritrova a lanciare exploit tipici per Linux, incurante del fatto che sulla macchina che sta attaccando giri Windows. Questo accade perché non ha portato una fase di Information Gathering. Questa sua non curanza lo porta a: ● Fallire l’attacco ● Attivare campanelli di allarme ● Danneggiare i sistemi del cliente (nel caso di un Penetration Testing) e rischiare un DoS dei servizi.
  • 29.
    “ 29 Quello che facciamoè un Hacking Etico, puramente professionale al fine di mettere in sicurezza la rete del cliente. Soltanto attaccando ed effettuando un analisi dei vari sistemi possiamo a quel punto difenderci da un “attaccante reale”
  • 30.