Sei sulla pagina 1di 33

Il migliore corso online sul

Penetration Testing

PTPv3 in pillole:
Online, accesso flessibile e a vita
4500+ slide interattive e 14+ ore di
lezioni video
Cinque autori di livello
internazionale
Cinque macro-aree
Copertura estremamente
dettagliata di ogni tecnica
Due laboratori virtuali per
Network, System e Web Security

Decine di reti e siti web vulnerabili


Guida alla scrittura di un Report
Preparazione per la certificazione
eCPPT

Fondamentale per qualsiasi


carriera nellIT Security
Questo corso di formazione stato
scelto da studenti di 92 paesi nel
mondo e da grandi organizzazioni
come:

Home page del corso:


http://www.elearnsecurity./course/penetration_testing/

La sezione System Security vi fornir una conoscenza approfondita


dellarchitettura x86 e dei suoi punti deboli.
- Modulo 1: Introduzione
- Modulo 2: Crittografia e Password Cracking
- Modulo 3: Buffer Overflow
- Modulo 4: Shellcoding
- Modulo 5: Malware
- Modulo 6: Programmazione di Rootkit

In questo modulo lo studente imparer


le basi dei linguaggi di programmazione
come C++ e ASM oltre che i fondamenti
dellarchitettura x86.
Nel corso del modulo saranno forniti
esempi di codici sorgente C++ e
Assembly in modo che lo studente
possa acquisire familiarit con questi
linguaggi.
Sfruttamento di Buffer Overflow
avanzati, Shellcoding e la
programmazione di Rootkit
richiederanno compilatori e
assemblatori con cui lo studente
acquister familiarit durante questo
modulo.

1. Introduzione
1.1. Dev-Cpp
1.1.1. Uso di Dev-Cpp
1.1.2. Video C++
1.2. Nasm Assembler
1.2.1. NasmX Assembler: Introduzione
1.2.2. Lo Stack X86
1.2.3. PUSH e POP
1.2.4. I registri EBP/ESP
1.3. Immunity Debugger
1.3.1. Driver Esempio
1.3.2. Compilazione del vostro Driver
1.3.3. Uso di un Driver
1.3.4. Driver Output

In questo modulo sono previsti laboratori pratici su Hera Lab

Questo modulo garantisce allo


studente di essere al passo con le
ultime tecnologie di crittografia e la
conoscenza degli algoritmi pi comuni.
Ci soffermeremo sugli algoritmi di
generazione di password da Windows
98 a Windows 7, con unanalisi
approfondita di tutte le debolezze
esistenti.
I tool pi utilizzati per il cracking delle
password saranno ricoperti in dettaglio.

Lo studente in questo modulo imparer


a trovare e sfruttare buffer overflow in
reali applicazioni 32bit.

2. Crittografia e Password Cracking


2.1. Introduzione
2.2. Classificazione
2.3. Funzioni Hash
2.4. Infrastruttura Public Key
2.5. PGP
2.6. Secure Shell (SSH)
2.6.1. SSH Tunneling
2.7. Attacchi Crittografici
2.8. Debolezze dei Sistemi Crittografici
2.9. Password di Windows
2.9.1. Hash LM e NT
2.9.2. SAM
2.9.3. Rubare gli hash Remoto
2.9.4. Rubare gli hash Locale
2.9.5. Rubare gli hash Live host
2.9.6. Rubare gli hash Offline
2.9.7. Pass the hash
2.9.8. Craccare gli hash

3. Buffer Overflow
3.1. Introduzione
3.2. Lo Stack
3.2.1. Esempi di Stack Frame X86
Quello del Buffer Overflow un
3.3. Buffer Overflow
argomento complesso reso facile da
3.3.1. Acquisire il controllo dellEIP
capire attraverso esempi spiegati passo
3.3.2. Procedura per generare Buffer
passo, partendo dalle basi dello stack.
Overflow
3.4. Trovare un Buffer Overflow
Armati di assemblatori, compilatori e
3.4.1. Fuzzing
debugger gli studenti impareranno ad
3.4.2. Identificare Buffer overflow
assumere il controllo dell'esecuzione di
dopo un crash
applicazioni.
3.5. Exploitation di unapplicazione reale
3.5.1. Exploitation del client 32Bit FTP
Al termine del modulo, lo studente
3.6. ASLR e DEP
verr introdotto alle pi moderne
3.6.1. ASLR Brute forcing
tecniche utilizzate per prevenire i
3.6.2. ASLR NOP Sled
buffer overflow e i metodi principali per
3.6.3. ASLR Non randomized
bypassarli.
memory
3.6.4. DEP
In questo modulo sono previsti laboratori pratici su Hera Lab

4. Shellcoding
4.1. Esecuzione di Shellcode
4.2. Tipi di Shellcode
4.3. Codifica di Shellcode
4.3.1. Shellcode Null free
4.3.2. Shellcode alfanumerici
Una piccola parte di aspetti teorici
4.3.3. Percentage encoding
introdurr gli esempi pratici in cui lo
4.4. Esempio 1 : Shellcoding framework
studente creer il proprio shellcode
4.5. Sleep() Shellcode
attraverso l'uso di compilatori e
4.6. Scrittura di Shellcode universali per
assemblatori.
Windows
4.6.1. Trovare lindirizzo di kernel32.dll
Sono mostrate diverse tecniche in
4.6.2. Risoluzione dei riferimenti in
modo da dare allo studente la
fase di esecuzione
possibilit di creare il miglior shellcode
4.7. Esempio 2: Shellcode indipendenti
per ogni situazione.
dal SO
4.8. Esempio 3: Shellcode di Privilege
Tre esempi, con il rispettivo codice
escalation
sorgente, saranno spigati riga per riga.
4.8.1. Configurazione di Windows per
il debugging
Al termine del modulo si introdurr il
4.8.2. La logica dietro la Privilege
Framework per la creazione di driver in
Escalation
Windows.
4.8.3. Larchitettura di un Driver
4.8.4. Esempio di un Driver per Kernel
privilege escalation
In questo modulo sono previsti laboratori pratici su Hera Lab
Con questo modulo l'arte dello
Shellcoding diventer alla portata di
chiunque attraverso esempi e scenari
reali, facili da capire.

Una classificazione completa e


dettagliata dei tipi di malware
l'introduzione di questo modulo
contenenti le tecniche pi avanzate,
utilizzate dai moderni malware.
Il modulo arricchito dalla spiegazione
di ogni riga di codice sorgente,
relativamente a tre malware: un
Keylogger, un Trojan e un Virus.

5. Malware
5.1. Classificazione
5.2. Tecniche usate dai Malware
5.2.1. Streams
5.2.2. Hooking SSDT
5.2.3. Hooking IRP
5.2.4. Hiding su un processo
5.2.5. API Hooking
5.2.5.1.
IAT Hooking
5.2.5.2.
EAT Hooking
5.2.5.3.
Inline Hooking
5.2.6. Metodi Anti-Debugging

5.2.7. Metodi Anti-Virtual machine


5.2.8. Offuscamento
5.2.9. Packers
5.2.10. Polimorfismo
5.2.11. Metamorfismo
5.2.11.1. Garbage Insertion
5.2.11.2. Scambio di registri
5.2.11.3. Permutazione
5.3. Come si diffondono i malware
5.3.1. Null free shellcode
5.3.2. Shellcode alfanumerici
5.3.3. Percentage encoding
5.4. Esempi reali
5.4.1. Esempio 1 : Keylogger
5.4.2. Esempio 2 : Trojan
5.4.3. Esempio 3 : Virus

Dai creatori del primo BIOS Rootkit per


Windows 7, un modulo che affronta le
basi e gli aspetti pi importanti della
programmazione di rootkit.
Dopo una breve classificazione, lo
studente avr la possibilit di scoprire
le tecniche pi avanzate utilizzate dai
rootkit tramite tre frammenti di codice
sorgente di rootkit reali.
Lo studente sar in grado di codificare e
comprendere rootkit in maniera
autonoma, usando il Windows Driver
Development Kit.

6. Rootkit
6.1. Classificazione di Rootkits
6.2. Esempio 1 : Nascondere un processo
6.3. Esempio 2 : Controllare laccesso ai
file
6.4. Esempio 3 : Nascondere file

La sezione Network Security tratter le metodologie, le tecniche e gli strumenti


usati per testare la sicurezza di PC e i dispositivi collegati in rete.
- Modulo 1: Information Gathering
- Modulo 2: Scanning
- Modulo 3: Enumeration
- Modulo 4: Sniffing e attacchi MITM
- Modulo 5: Exploitation
- Modulo 6: Post-exploitation
- Modulo 7: Anonymity
- Modulo 8: Social Engineering

1. Information Gathering
LInformation Gathering la fase pi
1.1. Introduzione
importante di tutto lengagement di un
1.2. OSINT / Motori di ricerca
pentester.
1.2.1. Presenza sul Web
1.2.2. Trovare contratti governativi
Cos come fanno i criminali, un
1.2.3. Partners e terze parti
pentester utilizza le informazioni
1.2.4. Annunci di lavoro
raccolte in questa fase per mappare la
1.2.5. Informazioni finanziarie
superficie di attacco e aumentare le
1.2.6. Raccolta dinformazioni
possibilit di violare l'organizzazione.
1.2.7. Informazioni cashate
1.3. OSINT / Social Media
eLearnSecurity propone una
1.3.1. Ricerca di persone
metodologia di indagine estremamente
1.3.2. Information Gathering di un
approfondita, che tenga conto sia del
caso reale: eLSFoo
business che dell'infrastruttura del
1.4. Information
gathering
cliente.
sullinfrastruttura
1.4.1. Domini
Gli studenti impareranno a ottenere
1.4.1.1. Enumerazione dei DNS
l'accesso a documenti sensibili e
1.4.1.2. IP
talvolta segreti, per mezzo di servizi
1.4.1.3. Netblocks & AS
gratuiti, database e motori di ricerca
1.4.2. Netblock
specializzati.
1.4.2.1. Host attivi
1.4.2.2. Enumerazione di DNS
Linformation gathering sulle
1.5. Tool
infrastrutture coinvolge lenumerazione
1.5.1. DNS Enum
di DNS, Domini, Netblock e altre attivit
1.5.2. DNS Map
web di propriet dellorganizzazione.
1.5.3. Fierce
1.5.4. Foca & Shodan
In questo modulo sono previsti laboratori pratici su Hera Lab.

Allo studente viene inoltre richiesto di condurre una indagine per un caso reale:eLSFoo

Questo modulo affronta uno dei passi


pi importanti nel pentest di una rete:
lo scanning delle porte e la teoria che vi
dietro.
Armati di sniffer e di Hping2, forgeremo
pacchetti in maniera manuale e
studieremo, a tutti i livelli della pila OSI,
le risposte da parte di host e server.
Successivamente verr spiegato come
usare i principali tool per il rilevamento
di host, delle porte aperte e dei relativi
servizi in esecuzione.
Attraverso Nmap e hping2, lo studente
potr imparare come trovare zombie
da utilizzare per eseguire scansioni
delle porte del target e rimanere
completamente invisibili con tecniche
di Idle Scan.
Infine verranno spiegate
approfonditamente tecniche per il
Passive/Active fingerprinting dei sistemi
operativi.

2. Scanning
2.1. Introduzione
2.2. Rilevare host attivi e porte aperte
2.2.1. Nmap
2.2.1.1. SYN scan
2.2.1.2. Connect scan
2.2.1.3. UDP scan
2.2.1.4. Idle scan
2.2.1.5. NULL / FIN / Xmas
2.2.1.6. ACK scan
2.2.1.7. IP scan
2.2.2. SuperScan
2.2.2.1. Win Enumeration
2.2.3. Hping2
2.3. Tecniche di bypass per Firewall/IDS
2.3.1. Fragmentation
2.3.2. Decoys
2.3.3. Timing
2.3.4. Usare le porte sorgenti
2.4. Determinare i servizi
2.4.1. Raccolta del Banner
2.4.2. Fingerprinting Attivo/Passivo
2.5. Altri tool
2.5.1. Amap
2.5.2. UnicornScan
2.5.3. P0f

In questo modulo sono previsti laboratori pratici su Hera Lab

Lo scopo di questo modulo di fornire


le tecniche che i professionisti di
penetration testing utilizzano per
enumerare le risorse del target.
Lo studente sar in grado di esplorare,
enumerare e mappare la rete remota e
i suoi servizi disponibili attraverso
diversi strumenti sia per Windows che
per Unix.
NetBIOS l'oggetto della prima parte di
questo Modulo: utilizzeremo esempi
reali per mostrare le tecniche pi
importanti e gli strumenti principali per
enumerare le risorse remote.
Lo studente potr inoltre imparare a
cercare sessioni NetBIOS Null che
ancora oggi affliggono vecchie versioni
di Windows.

3. Enumerazione
3.1. Introduzione
3.2. NetBIOS
3.2.1. Che cosa NetBIOS
3.2.2. Come funziona NetBIOS
3.2.3. Comandi NetBIOS e tool
3.2.3.1. NAT
3.2.3.2. Winfo
3.2.3.3. Winfingerprint
3.2.3.4. SID2USER / USER2SID
3.3. SNMP
3.3.1. Che cosa
3.3.2. Come funziona (Agents, MIB,
OID)
3.3.3. Comandi SNMP
3.3.4. Attacchi SNMP
3.3.4.1. Cracking delle community
string
3.3.4.2. Snmpwalk
3.3.4.3. Snmpenum
3.3.4.4. Snmpset
3.3.4.5. Snmpbrute
3.3.4.6. Onesixtyone

Sar spiegato il protocollo SNMP in


tutte le sue parti fondamentali e i
principali tool che consentono di
sfruttarne ogni debolezza.
In questo modulo sono previsti laboratori pratici su Hera Lab

In questo modulo iniziamo con lo


studiare ARP: come funziona e come
pu essere manipolato per creare
attacchi di sniffing sofisticati.
Il Modulo ricopre basi di teoria delle
reti, prima di presentare scenari reali
da attaccare utilizzando i migliori
strumenti disponibili.

4. Sniffing & MITM


4.1. Che cosa lo sniffing
4.2. Sniffing
4.2.1. Sniffing passivo
4.2.2. Sniffing attivo
4.2.2.1. MAC Flooding
4.2.2.2. ARP Poisoning
4.2.2.3. Basics of ARP
4.2.3. Tool
4.2.3.1. Dsniff

Lo studente sar in grado di capire


come funziona lo Sniffing nei suoi
aspetti pi pratici ovvero le migliori
tecniche di sniffing in ambiente
switchato.
L'attacco Man-In-The-Middle una
delle tecniche di pi utilizzate nei test
di oggi: lo studente sar in grado di
creare un attacco MITM all'interno di
reti locali e su Internet.

Questo Modulo insegner allo studente


come padroneggiare Nessus, al fine di
eseguire analisi approfondite e mirate
anche di grandi reti.
I protocolli di autenticazione di
Windows, da XP a 7, da Server 2003 a
2008 R2, verranno esaminati in grande
dettaglio per mostrarne le principali
debolezze e le relative tecniche di
attacco.

4.2.3.2. Wireshark
4.2.3.3. Tcpdump
4.2.3.4. Windump
4.3. Attacchi Man in the middle (MITM)
4.3.1. Che cosa sono
4.3.2. ARP Poisoning per MITM
4.3.3. MITM locale e remoto
4.3.4. DHCP Poisoning
4.3.5. MITM nello scambio di Public
Key
4.3.6. Come funziona (Agents, MIB,
OID)
4.3.7. Comandi SNMP
4.4. Intercettare traffico SSL
4.4.1. SSLStrip & Ettercap

5. VA & Exploitation
5.1. Vulnerability Assessment
5.1.1. Nessus
5.2. Low Hanging Fruits
5.2.1. Cracking di servizi di rete: SSH,
SMB, VNC, RDP, Telnet, FTP
5.3. Exploitation
5.3.1. Introduzione a Metasploit
5.3.2. Debolezze
di
Windows
LM/NTLM/NTLMv2
5.3.3. Utilizzo avanzato di Metasploit e
SET: Client Side exploitation
contro machine Windows e
Linux
5.3.4. Utilizza avanzato di Metasploit:
Remote exploitation

Metasploit principe di questo modulo


e ricoperto in oltre due ore di materiale
video su exploitation client side e
remota.
In questo modulo sono previsti laboratori pratici su Hera Lab

Frutto di anni di esperienza sul campo,


gli istruttori di eLearnSecurity hanno
definito una metodologia collaudata
per quanto riguarda la fase di postexploitation.
Una volta che lo studente ha preso
confidenza con le pi recenti tecniche
di Exploitation, pronto per la fase di
Post Exploitation e le sue sotto fasi
cicliche.
Questa la fase in cui un attaccante si
garantisce accesso con privilegi elevati
alla rete remota, al fine di rubare
documenti sensibili dell'organizzazione.
I penetration tester devono garantire di
possedere la stessa conoscenza e gli
stessi strumenti per verificare non solo
la sicurezza, ma anche qualsiasi tipo di
debolezza interna che coinvolge
l'organizzazione.
Metasploit impiegato in ogni fase
della metodologia.

6. Post Exploitation
6.1. Introduzione alla metodologia
6.2. Mantenere laccesso e Privilege
escalation
6.2.1. Privilege escalation
6.2.1.1. Migrazione e Getsystem
6.2.1.2. Privilege Escalation su Win
Server 2008 e Windows 7
6.2.2. Mantenere
laccesso
sulla
macchina compromessa
6.2.2.1. Crack / Pass the hash
6.2.2.2. Backdoor
6.2.2.3. RDP / Telnet
6.3. Raccolta dati
6.3.1. Determinare il ruolo della
macchina nella rete remota
6.3.2. Raccotlta di documenti
6.3.3. Raccolta
di
credenziali
memorizzate
6.3.4. Raccolta di dati di Browser Web
6.3.5. Keylogging
6.4. Mappare la rete interna
6.4.1. ARP Scanning
6.4.2. Pivoting
6.4.3. Port scanning della rete interna
6.5. Ulteriore exploitation via Pivoting
6.5.1. Pass the hash

In questo modulo sono previsti laboratori pratici su Hera Lab

Quando la simulazione di un attacco


stealth inclusa nellambito dei test, il
penetration tester deve dar prova di
saper ricoprire le proprie tracce.
Questo Modulo ricopre le migliori
tecniche per eseguire un penetration
test senza lasciar traccia.

10

7. Anonimit
7.1. Anonimit nella navigazione Web
7.1.1. Proxy HTTP
7.1.2. Rete Tor
7.2. Tunneling per anonimit
7.2.1. Creare tuttne SSH
7.3. Eliminare le tracce

Questo modulo guider lo studente nel


mondo del Social Engineering
attraverso le tecniche pi moderne.
Saranno illustrati attacchi reali che
sfruttano le potenzialit dei social
network come Facebook, Twitter o
Spokeo.
Quasi 1 ora di video vi insegner tutto
ci che c' da sapere per padroneggiare
il pi importante software nellambito
del SE: Social Engineering Toolkit.

11

8. Social Engineering
8.1. Che cosa il Social Engineering
8.2. Tipi di Social Engineering
8.2.1. Pretexting
8.2.2. Phishing
8.2.3. Baiting
8.2.4. Physical
8.3. Esempi di attacchi di Social
Engineering
8.3.1. Lotteria Canadese
8.3.2. FBI E-mail
8.4. Esempi di Pretexting
8.5. Ruolo nei Social Networks nel Social
Engineering
8.5.1. Pipl
8.5.2. Spokeo
8.6. Social engineering toolkit (SET)

Un Penetration Tester non pu non padroneggiare tecniche di attacco e difesa,


relative ad applicazioni web: questa sezione, ricca di laboratori, ricopre una
completa metodologia di penetration testing per applicazioni web.
- Modulo 1: Introduzione
- Modulo 2: Information Gathering
- Modulo 3: Vulnerability assessment
- Modulo 4: Cross site scripting
- Modulo 5: SQL Injection
- Modulo 6: Advanced Web Attacks

Questo modulo vi introdurr al mondo


della sicurezza delle applicazioni web e
alla sua terminologia di base.

1. Introduzione alle Applicazioni Web


1.1. Introduzione
1.1.1. Sessioni
1.1.2. Header
1.1.3. Politica della stessa origine
1.2. Terminologia
1.3. Tool
1.3.1. Burp Suite

Se vi affacciate in questo campo solo


ora, non preoccupatevi, questo modulo
riunisce tutte le competenze necessarie
per comprendere al meglio il resto della
sezione.
In questo modulo sono inclusi laboratori in Coliseum Lab WAS 36

12

La raccolta dinformazioni riguardanti le


applicazioni Web un processo lungo e
complesso. Ci vuole intuizione e
perseveranza.
Imparerete le migliori metodologie per
raccogliere e memorizzare le
informazioni sulle attivit web del
vostro target.
Queste informazioni saranno utilizzate
in fasi successive durante il processo di
exploitation.
Al termine di questo modulo lo
studente sar in grado di avere cos
tante informazioni sullobiettivo che la
fase di exploitation sar facile e
divertente.

2. Raccolta dinformazioni
2.1. Ottenere informazioni sul Target
2.1.1. Trovare il proprietario, indirizzi
IP e Indirizzi email
2.1.1.1. Tool WHOIS
2.1.1.2. Query DNS e zone transfer
2.1.1.3. Usare Nslookup
2.2. Infrastruttura
2.2.1. Fingerprinting del Webserver
2.2.1.1. Fingerprinting
di
moduli del Webserver
2.2.1.2. Servizi HTTP
2.3. Fingerprinting di Frameworks e
Applicazioni
2.3.1. Fingerprinting di Add-on di terze
parti
2.4. Fingerprinting
di
applicazioni
personalizzate
2.4.1. Mappare la superficie dattacco
2.5. Enumaerazione di risorse
2.5.1. Crawling del sito web
2.5.2. Trovare file nascosti
2.5.2.1. Trovare file di back-Up e
codici sorgenti
2.5.3. Enumerazione di account utente
con Burp Proxy
2.6. Recuper dinformazioni attraverso
errori di configurazione
2.6.1. Directory Listing
2.6.2. Log e file di configurazione
2.7. Google Hacking

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

13

Il Vulnerability Assessment il processo


attraverso il quale potrete scoprire
tutte le vulnerabilit nellapplicazione
web.
Questo passaggio assolutamente
necessario quando il server web
remoto fa parte dello scopo dei test o
quando il target usa applicazioni web
create da terzi.

3. Vulnerability Assessment
3.1. Vulnerability Assessment
3.1.1. Vulnerability assessment VS
Penetration testing
3.2. Assessing vulnerabilities con Nessus
3.3. Nikto
3.3.1. Creare moduli in Nikto

Alla fine di questo modulo lo studente


sar in grado di padroneggiare i due
strumenti gratuiti pi utilizzati: Nessus
e Nikto
In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

La pi diffusa vulnerabilit delle


applicazioni web sar studiata in tutte
le sue parti.
In un primo momento sar fornita una
spiegazione teorica. Questo vi aiuter
nellexploitation e nel processo di
remediation.
Pi avanti lo studente podroneggier
tutte le tecniche per trovare le
vulnerabilit XSS attraverso test black
box e analisi di codice PHP.
Il Modulo terminer con alcuni esempi
reali di exploitation: Rubare cookie di
sessione, modificare il DOM del sito
web ed eseguire attacchi avanzati di
phishing.

4. XSS
4.1. Cross site scripting
4.1.1. Le basi
4.2. Anatomia di un XSS
4.3. Tre tipi di XSS
4.3.1. XSS Riflesso
4.3.2. XSS Persistente
4.3.3. DOM-based XSS
4.4. Trovare XSS
4.4.1. Trovare XSS in codice PHP
4.5. Exploitation di XSS
4.5.1. XSS, Browser e politica della
stessa origine
4.5.2. Attacchi reali
4.5.2.1. Rubare cookie tramite XSS
4.5.2.2. Defacement
4.5.2.3. Attacchi Phishing avanzati

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

14

5. SQL Injection
Questo modulo contiene le tecniche pi
5.1. Introduzione alle SQL Injection
avanzate per trovare e sfruttare SQL
5.1.1. Pericoli di una SQL Injection
Injections. Si va dalla spiegazione delle
5.1.2. Come
le
SQL
Injection
SQL Injection pi semplici fino a quelle
funzionano
pi complicate, con un elevato grado di
5.2. Come trovare le SQL injection
dettaglio.
5.2.1. Come trovare SQL injection
5.2.2. Trovare le Blind SQL Injection
Verrano insegnati metodi avanzati
5.3. Exploit di SQL Injection
tramite lausilio di esempi reali e dei
5.3.1. Exploit di Union SQL Injection
migliori tool disponibili.
5.4. Exploit di Error Based SQL Injection
5.4.1. Recuperare dati dal database
Lo studente sar in grado di eseguire il
5.4.2. Leggere file sul sistema remoto
dump di database remoti, ma anche di
5.4.3. Accedere alla rete remota
ottenere privilegi di root sulla macchina
5.5. Exploit di Blind SQL Injection
remota attraverso tecniche avanzate di
5.5.1. Blind SQL Injection ottimizzate
SQL Injection.
5.5.2. Time Based SQL Injection
5.6. Tool
La spiegazione dettagliata dei tool e
5.6.1. SQLmap, BSQL Hacker, Pangolin
una tassonomia aiuter lo studente a
5.6.2. Tassonomia dei Tool
scegliere gli strumenti giusti, a seconda
dell'ambiente e dello scenario che si
troveranno ad affrontare durante
incarichi reali.

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

15

6. Attacchi Web Avanzati


I pi moderni attacchi alle applicazioni
6.1. Introduzione
web saranno oggetto di questo modulo.
6.2. Attacchi alla sessione
6.2.1. HTTP Session Fixation
Session Fixation e CSRF sono
6.2.2. Prevenire le Session Fixation
vulnerabilit talvolta trascurate, ma
6.3. CSRF
non per noi, che in questo le abbiamo
6.3.1. Trovare i CSRF
trattate con dovizia di particolari ed
6.3.2. Exploit di CSRF
esempi reali.
6.3.3. Prevenire i CSRF
6.4. Vulnerabilit Inclusione di File
Un exploit funzionante di CSRF verr
6.4.1. Local File Inclusion
creato passo dopo passo, per
6.4.2. Remote File Inclusion
dimostrare una vulnerabilit CSRF
6.5. Attacchi Web 2.0
trovata in un famoso CMS.
6.5.1. Come funziona Ajax
6.5.2. Bypassare httpOnly XST & Ajax
Importantissime tecniche di attacco
6.5.3. Ajax API
quali LFI e RFI saranno dimostrate in
6.5.4. Reverse engineering della logica
maniera pratica.
delle applicazioni Ajax
6.5.5. Funzioni amministrative esposte
Ultimo ma non meno importanti
saranno le tecniche di analisi relative ad
applicazioni che fanno utilizzo di Ajax.

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

16

La sezione Ruby per Pentesters e Metasploit copre le tecniche di


programmazione in Ruby, dalle basi fino ad argomenti pi avanzati di
programmazione orientata al Penetration Testing. Una volta che lo studente
conosce il linguaggio di programmazione e le sue caratteristiche, questa sezione
copre argomenti come exploiting con Ruby di applicazioni vulnerabili, cos come
creare e modificare moduli di Metasploit
- Modulo 1: Basi di Ruby: Installazione e fondamenta
- Modulo 2: Basi di Ruby: Strutture di controllo
- Modulo 3: Basi di Ruby: Metodi, variabili e scope
- Modulo 4: Ruby avanzato: Classi, Moduli e Eccezioni
- Modulo 5: Ruby avanzato: Prerequisiti per Pentester
- Modulo 6: Ruby per Pentesters: Input / Output
- Modulo 7: Ruby per Pentesters: Network e interazione con il SO
- Modulo 8: Ruby per Pentesters: Il Web
- Modulo 9: Ruby per Pentesters: Exploitation con Ruby
- Modulo 10: Ruby per Pentesters: Metasploit

In questo primo modulo della sezione


Ruby, lo studente vedr come installar
e configurare lambiente in modo da
lavorare con Ruby.
Una volta che lambiente stato
configurato, lo studente imparer i
concetti base come: avviare e scrivere
script, usare linterprete, installare
gemme e molto altro. Lo studente
imparer anche i concetti base di Ruby
come tipi di dati, variabili e altro
ancora.

17

1. Installazione e fondamenta
1.1. Installazione & Primo utilizzo
1.1.1. Installazione
1.1.1.1. Windows
1.1.1.2. Altri sistemi
1.1.1.3. Suggerimenti
1.1.2. Primi passi in Ruby
1.1.2.1. Ruby da file
1.1.2.2. Ruby da linea di comando
1.1.2.3. Ruby interattivo
1.1.2.4. Suggerimenti
1.1.3. Il potere di Ruby
1.1.3.1. Calcolatrice interattiva
1.1.3.2. Ruby one liner
1.1.3.3. Suggerimenti
1.1.4. Librerie
1.1.4.1. Gemme di Ruby

1.2. Tipi di dati


1.2.1. Numeri
1.2.1.1. Integer
1.2.1.2. Float
1.2.1.3. Numeric
1.2.1.4. Anticipazioni
1.2.1.5. Commenti
1.2.2. Stringhe
1.2.2.1. Apici singoli o doppi?
1.2.2.2. Alternative agli apici
1.2.2.3. Informazioni sulle stringhe
1.2.2.4. Notazione Here document
1.2.2.5. Aritmetica delle stringhe
1.2.2.6. Interpolazione
1.2.2.7. Metodi utili
1.2.3. Array
1.2.3.1. Creazione di Array
1.2.3.2. Accedere agli elementi
degli array
1.2.3.3. Array Multi-type
1.2.3.4. Array multi-dimensionali
1.2.3.5. Variabili e array
1.2.3.6. Inserimento
1.2.3.7. Cancellazione
1.2.3.8. Operazioni tra array
1.2.3.9. Stack
1.2.3.10. Metodi utili
1.2.3.11. Array e Stringhe
1.2.4. Range & Hashe
1.2.4.1. Ranges (fondamenta)
1.2.4.2. Ranges (metodi)
1.2.4.3. Range e variabili
1.2.4.4. Hashes (fondamenta)
1.2.4.5. Hashes (metodi)
possibile scaricare gli script utilizzati per questo modulo.

18

Una delle pi importanti strutture che


un programmatore deve padroneggiare
sono le strutture di controllo di
flusso.
In questo modulo lo studente imparer
a scrivere e definire diversi tipi di
strutture di controllo. Questo
permetter allo studente di creare
script e programmi che non sono
limitati a unesecuzione lineare.

2. Strutture di controllo
2.1. Operatori di comparazione
2.2. Operatori di condizione
2.2.1. if
2.2.2. unless
2.2.3. case
2.2.4. Operatori ternari
2.3. Loop
2.3.1. while
2.3.2. until
2.3.3. for
2.4. Iteratori e enumeratori
2.4.1. Iteratori
2.4.2. Oggetti enumerabili
2.4.3. Enumeratori
2.4.4. Iteratori esterni
2.4.5. Conclusioni
2.5. Alterare il flusso della struttura di
controllo
2.5.1. break
2.5.2. next
2.5.3. redo
2.5.4. Alcune considerazioni
2.6. BEGIN / END

possibile scaricare gli script utilizzati per questo modulo.

Ogni programma deve essere pulito e


avere del codice riutilizzabile.
In questo modulo lo studente imparer
a definire e usare i metodi, blocchi,
alias e molto altro. Questo utile per
creare tool e script molto potenti.
Con lintroduzione ai metodi e ai
blocchi, un argomento molto
importante deve essere spiegato: lo
scope.

19

3. Metodi, variabili e scope


3.1. Metodi
3.1.1. Definizione di metodi
3.1.2. Parentesi
3.1.3. Alias
3.1.4. Valori di default dei parametri
3.1.5. Lunghezza argomenti variabile
3.1.6. Hash come argomenti
3.1.7. Argomenti di blocchi
3.1.8. Metodo bang
3.1.9. Valori di ritorno
3.2. Variabili e scope
3.2.1. Tipi di variabili
3.2.2. Variabili locali

3.2.3.
3.2.4.
3.2.5.
3.2.6.

Variabili globali
Istanze e variabili di classe
Costanti
Alcuni suggerimenti

possibile scaricare gli script utilizzati per questo modulo.

Ruby un linguaggio di programmazione


orientato agli oggetti. Detto questo un
programma OO include classi e oggetti.
In questo modulo inizieremo coprendo
argomenti pi avanzati e vedremo come
definire classi, funzioni, moduli, mixin,
namespace e molto altro.
Insieme a questi argomenti, vedremo
anche come gestire le eccezioni; le
eccezioni sono molto utili e saperle
utilizzare permette di prendere il controllo
del comportamento dei programmi.

20

4. Classi, moduli ed eccezioni


4.1. Classi
4.1.1. Una semplice classe
4.1.2. Variabili distanza
4.1.3. Getter/Setter tramite
Metaprogramming
4.1.4. La classe Methods
4.1.5. La classe Variables
4.1.6. Constanti
4.1.7. Qualcosa in pi sulle classi
4.1.8. Classi aperte
4.1.9. Metodi per operare sulle classi
4.1.10. Valori mutabili/immutabili
4.2. Visibilit dei metodi
4.2.1. Metodi privati
4.2.2. Metodi protetti
4.2.3. Ricapitoliamo
4.3. Sottoclassi & eredit
4.3.1. Estensioni
4.3.2. Sovrascrivere i metodi
4.3.3. Specializzare un metodo
4.3.4. Istanze e variabili di classi
4.3.5. Costanti
4.3.6. Metodi privati
4.3.7. Metodi protetti
4.4. Moduli
4.4.1. Namespace
4.4.2. Mixin
4.4.2.1. Namespace e Mixin
4.5. Eccezioni
4.5.1. Raise
4.5.1.1. RuntimeError
4.5.1.2. Other Errors
4.5.1.3. CustomError
4.5.2. Rescue
4.5.2.1. Rescue

4.5.2.2. Oggetti Exception


4.5.2.3. Gestion delle eccezioni
4.5.2.4. Rescue di un modificatore
4.5.3. Altre clausole
4.5.3.1. retry
4.5.3.2. else
4.5.3.3. ensure
4.5.4. Metodi, classi e moduli
4.6. Conclusioni
possibile scaricare gli script utilizzati per questo modulo.

Ruby un linguaggio di
programmazione molto potente e
grazie alle sue tante funzionalit, pu
essere usato per scopi differenti.
Da questo modulo in poi, ci
focalizzeremo su come usare Ruby in
maniera orientate al penetration
testing. Uno dei primi argomenti che
studieremo sono le Regular Expression
Espressioni regolari.
Le regex sono molto utilizzate nel
campo della sicurezza, ad esempio per
trovare informazioni importanti salvate
nei file, pagine web, comunicazioni di
rete e cosi via.
Una buona conoscenza di come usare e
definire le regex, necessaria per un
buon penetration tester!
Durante lo studio di questo modulo, lo
studente imparer anche come usare le
classi date e time, cosi come gestire ed
interagire con file e cartelle: lettura,
scrittura, cancellazione e cos via.

21

5. Prerequisiti per Pentesters


5.1. Espressioni regolari
5.1.1. Concetti base
5.1.1.1. Un esempio
5.1.1.2. Oggetto Regexp
5.1.1.3. Modificatore Regexp
5.1.1.4. Metodo Match
5.1.1.5. Caratteri speciali
5.1.2. Sintassi
delle
espressioni
regolari
5.1.2.1. Classe character
5.1.2.2. Sequenze
5.1.2.3. Alternative
5.1.2.4. Gruppi
5.1.2.5. Ripetizioni
5.1.2.6. Ancore
5.1.2.7. Un esempio reale
5.1.2.8. Qualcosa in pi sulle regex
5.1.3. Espressioni regolari in Ruby
5.1.3.1. Variabili globali
5.1.3.2. Lavorare con le stringhe
5.2. Date e time
5.2.1. Classe Time
5.2.1.1. Creare unistanza time
5.2.1.2. Componenti del time
5.2.1.3. Predicati e conversioni
5.2.1.4. Aritmetica
5.2.1.5. Confronto
5.2.1.6. Da time a stringa
5.2.2. Altre classi
5.3. File e Cartelle
5.3.1. Cartelle

5.3.1.1.
5.3.1.2.
5.3.1.3.
5.3.1.4.
5.3.1.5.
5.3.1.6.
5.3.1.7.

Cartella corrente
Cambiare cartella
Creazione/eliminazione
Elencare cartelle
Provare le cartelle
Oggetto Dir
Esempio: Windows
application directory listing

5.3.2. File
5.3.2.1. Provare i file
5.3.2.2. Lavorare con i nomi
5.3.2.3. Creare/cancellare/rinomin
are
5.3.2.4. Cambiare permessi
5.4. Conclusioni
possibile scaricare gli script utilizzati per questo modulo.

In questo modulo lo studente imparer


come utilizzare differenti meccanismi e
tecniche di input/output in modo da
trovare (leggere) o memorizzare
(scrivere) informazioni sui file.
Vedremo diversi esempi e script che
possono essere usati insieme ad altri
tool (i.e. nmap) in modo da ottenere,
filtrare e memorizzare informazioni
importanti.

6. Input / Output
6.1. File Stream
6.1.1. Leggere da file
6.1.2. Scrivere su file
6.2. Lavorare con file di NMAP Files
6.2.1. Estrazione di IP
6.2.1.1. Formato Normal
6.2.1.2. Formato Grepable
6.2.1.3. Formato XML
6.2.1.4. Tutto insieme
6.2.2. Estrazione porte aperte
6.2.2.1. Formato Normal
6.2.2.2. Formato Grepable
6.2.2.3. Formato XML
6.2.2.4. Tutto insieme
6.3. Conclusione

possibile scaricare gli script utilizzati per questo modulo.

22

Un altro argomento molto


importante che un penetration
tester deve padroneggiare sono le
comunicazioni di rete.
In questo modulo lo studente
imparer come usare Ruby per
creare, forgiare e intercettare le
comunicazioni di rete.
Grazie ai tanti esempi e script, lo
studente imparer come creare
raw socket, forgiare pacchetti,
scanner TCP/UDP e molto altro.
Nel modulo seguente vedremo
inoltre come interagire con il
sistema operativo in remoto e in
locale.
Questo, assieme alle
comunicazioni di rete, pu essere
molto utile per la creazione di
potenti tool (ad esempio backdoor
che sono in grado di recuperare
informazioni dal sistema remoto,
cos come inviare o eseguire
specifici comandi).

23

7. Interazione con la rete e il SO


7.1. La rete
7.1.1. Le basi dei Socket
7.1.1.1. Client TCP
7.1.1.1.1. RFC868
7.1.1.1.2. Connessioni
7.1.1.1.3. Gestire i risultati
7.1.1.1.4. Sockets e blocchi
7.1.1.1.5. Vista in Wireshark
7.1.1.1.6. Pi nel dettaglio
7.1.1.2. Client UDP
7.1.1.2.1. RFC868
7.1.1.2.2. Datagram inviare/ricevere
7.1.1.2.3. Gestire i risultati
7.1.1.2.4. Vista in Wireshark
7.1.1.2.5. Comportamento UDP
7.1.1.2.6. Pi nel dettaglio
7.1.1.3. Servizio Client/Server TCP
7.1.1.3.1. Il Server
7.1.1.3.2. Il Client
7.1.1.3.3. Esecuzione
7.1.2. Attivit di Penetration testing
7.1.2.1. Ping sweep
7.1.2.1.1. Net-Ping Gem
7.1.2.1.2. Lo script
7.1.2.2. Port scan TCP
7.1.2.2.1. Strategia
7.1.2.2.2. Lo script
7.1.2.3. Port scan - UDP
7.1.2.3.1. Strategia
7.1.2.3.2. Lo script
7.1.3. Raw Sockets
7.1.3.1. PacketFu
7.1.3.1.1. Installazione
7.1.3.1.2. Uso
7.1.3.1.3. Forgiare un pacchetto
personalizzato
7.1.3.1.4. Forgiare un pacchetto (il
modo migliore)
7.1.3.2. TCP SYN port scanner
7.1.3.2.1. Strategia
7.1.3.2.2. Lo script
7.1.4. Conclusioni
7.2. Interazione con il SO

7.2.1.
7.2.2.
7.2.3.
7.2.4.
7.2.5.

Kernel exec
Kernel system
Kernel backticks
IO popen
Open3 popen3

possibile scaricare gli script utilizzati per questo modulo.


Laboratori di Hera sono inclusi in questo modulo.

Nel modulo precedente lo


studente ha visto come creare
delle connessioni di rete e come
interagire con il SO. Ora arrivato
il momento di focalizzarci sulle
applicazioni web.
Vedremo come creare e
intercettare richieste e risposte
HTTP/HTTPS, cos come
inviare/ricevere parametri GET e
POST, e molto altro.
Insieme a questi argomenti, allo
studente saranno anche mostrati
alcuni script e casi duso, utili per
eseguire attacchi contro le
applicazioni web e identificare
vulnerabilit come XSS.

24

8. Il Web
8.1. Punto dinizio
8.1.1. Protocolli HTTP
8.1.2. Alternative di Ruby
8.1.2.1. Usare socket
8.1.2.2. Libreria Net::HTTP
8.1.2.3. Libreria Open-uri
8.1.2.4. Oggetto URI
8.2. Richieste e risposte
8.2.1. Classe e istanze di Net::HTTP
8.2.2. GET
8.2.2.1. Net::HTTP get
8.2.2.2. Net::HTTP get_response
8.2.2.3. Oggetto HTTPResponse
8.2.2.3.1. Status
8.2.2.3.2. Headers
8.2.2.3.3. Body
8.2.2.3.4. Tipi di oggetti di risposta
8.2.2.4. Parametri
8.2.2.4.1. Url encapsulation
8.2.2.4.2. Parametri dinamici
8.2.2.5. Istanza Net::HTTP
8.2.2.5.1. Usare il metodo get
Instance
8.2.2.5.2. Usare Http::Get
8.2.2.5.3. URI e parametri
8.2.2.6. Header di richiesta
8.2.2.6.1. Usare il metodo get
Instance
8.2.2.6.2. Usare Http::Get
8.2.2.7. Lavorare con Open-uri
8.2.2.7.1. Metodi aperti

8.2.2.7.2. Header di richiesta


8.2.3. POST
8.2.3.1. Usare Net::HTTP post_form
8.2.3.1.1. Sessione e cookie
8.2.3.2. Usare Http::Post request object
8.2.3.3. Header di richiesta
8.2.3.3.1. Usare metodo post
Instance
8.2.3.3.2. Usare Http::Post
8.2.3.4. Esempio: Post flooding
8.2.4. Connessioni persistenti
8.2.4.1. Esempio: Bruteforce form di
login
8.2.4.1.1. Identificazione delle
risposte
8.2.4.1.2. Trovare una UserName
8.2.4.1.3. Usare un dizionario
8.2.4.1.4. Usare un generatore di
stringhe
8.2.5. HTTPS
8.2.6. Reindirizzamenti
8.2.6.1. Identificazione
8.2.6.2. Seguire la catena
8.2.7. Proxy
8.2.7.1. HTTP Proxy
8.2.7.2. HTTPS Proxy
8.2.8. Altri verbi
8.2.8.1. OPTIONS
8.2.8.2. HEAD
8.2.8.3. Others
8.2.9. Conclusioni
8.3. Estrazione di dati
8.3.1. Espressioni regolari
8.3.1.1. Esempio: estrazione di email
8.3.2. Analisi di documenti
8.3.2.1. Nokogiri
8.3.2.1.1. Installazione
8.3.2.1.2. Documentazione e
tutorial
8.3.2.2. Esempio: estrazione dei form
8.3.2.3. Esempio: Identificare XSS
Riflessi
8.3.2.3.1. Usare linterprete
8.3.2.3.2. Un semplice tool
8.4. Esercizi
8.4.1. Identificazione CMS

25

8.4.2. File nascosti


8.4.3. Indexing & Crawling
8.4.4. Enumerazioni dei sottodomini
possibile scaricare gli script utilizzati per questo modulo.
Laboratori di Hera sono inclusi in questo modulo.

Durante lo studio del modulo


precedente, lo studente
dovrebbe aver acquisito le
giuste competenze di
programmazione in Ruby.
ora tempo di sfruttare queste
conoscenze e usare Ruby in
modo da scrivere ed exploitare
servizi vulnerabili.
In questo modulo vi
presenteremo unapplicazione
vulnerabile, che pu essere
utilizzata dallo studente per
imparare a scrivere un exploit
funzionante in Ruby.

9. Exploitation con Ruby


9.1. ELS Echo Server
9.1.1. Il servizio
9.1.2. Identificazione di bug
9.2. Lexploit
9.2.1. Identificare lo spazio del buffer overflow
9.2.1.1. Fuzzing
9.2.1.2. Usare un debugger
9.2.2. Scrivere il payload
9.2.2.1. Preambolo
9.2.2.2. Indirizzo di ritorno
9.2.2.3. Il payload
9.2.3. Exploitation
9.2.3.1. Lintero codice
9.2.3.2. Exploit
9.2.4. Shell sulla vittima
9.2.4.1. Creazione del payload
9.2.4.2. Scrivere lo script
9.2.4.3. Exploitation
9.3. Conclusione

possibile scaricare gli script utilizzati per questo modulo.


Laboratori di Hera sono inclusi in questo modulo.

26

Ora che lo studente


padroneggia Ruby e le sue
funzionalit, il momento di
iniziare a lavorare con il pi
potente tool scritto in Ruby:
Metasploit.
In questo modulo lo studente
vedr larchitettura di
Metasploit ed imparer a
creare, aggiungere o modificare
i moduli di Metasploit.
Grazie ai nostri laboratori
virtuali, lo studente pu anche
provare i propri moduli su vere
macchine virtuali.

10. Metasploit
10.1.Introduzione
10.2.ELS Echo Server
10.2.1. Il service
10.2.2. La vulnerabilit
10.2.3. Exploitation con Metasploit
10.3.Architettura e Framework
10.3.1. Architettura
10.3.1.1. Descrizione sintetica
10.3.1.2. File e cartelle
10.3.2. Interfacce
10.3.2.1. MSFConsole
10.3.2.2. MSFCli
10.3.2.3. Interfaccia Web
10.3.2.4. Altre
10.3.3. Librerie
10.3.3.1. Rex
10.3.3.2. Libreria Core
10.3.3.3. Libreria Base
10.3.4. Moduli
10.3.4.1. Exploit
10.3.4.2. Auxiliary
10.3.4.3. Payloads
10.3.4.4. Nop,Encoders
10.3.4.5. Post
10.3.5. Plugins
10.3.6. Tools
10.3.7. Alcune considerazioni
10.4.Esplorare e scrivere il modulo ELS Echo
10.4.1. Posizione e tipo del modulo
10.4.2. Struttura ad alto livello del modulo
10.4.3. Informazioni del modulo
10.4.4. Il metodo check
10.4.5. Il metodo exploit
10.4.6. Considerazioni sui target
10.4.7. Conclusioni
10.5.Meterpreter scripting
10.5.1. API base di Meterpreter
10.5.2. Meterpreter scripts

possibile scaricare gli script utilizzati per questo modulo.


Laboratori di Hera sono inclusi in questo modulo.

27

La sezione Sicurezza delle reti Wi-Fi una sezione estremamente dettagliata che
copre le pi importanti tecniche di attacco usate contro le reti Wi-Fi. Lo studente
imparer i meccanismi di sicurezza implementati nelle architetture Wi-Fi, cos
come le loro debolezze e come queste possono essere sfruttate.
- Modulo 1: Prerequisiti
- Modulo 2: Configurazione dellambiente
- Modulo 3: Standard e Reti Wireless
- Modulo 4: Scoprire le reti Wi-FI
- Modulo 5: Analisi del traffico
- Modulo 6: Attaccare reti Wi-Fi
- Modulo 7: Wi-Fi come vettore dattacco

Nel primo modulo della sezione Wi-Fi


vedremo quali sono i prerequisiti
hardware e software del corso.

In questo modulo lo studente imparer


come configurare in maniera corretta
lambiente di test, in modo da ottenere
il miglior risultato dai moduli successivi.

28

1. Prerequisiti
1.1. Software
1.2. Hardware
1.2.1. Antenne
1.2.2. Una nota sulla potenza di
segnale
1.2.3. Conclusioni

2. Configurazione dellambiente
2.1. Introduzione
2.1.1. Considerazioni sui driver Linux
2.2. Configurazione del dispositivo
2.2.1. Provare la configurazione

Nel modulo seguente lo studente


imparer i concetti alla base delle
infrastrutture Wi-Fi.
Vedremo quali tipi di configurazioni
Wi-Fi esistono, come funzionano e
quali sono le misure e i meccanismi
di sicurezza implementati.
Presenteremo inoltre una
panoramica delle pi importanti
debolezze che affliggono i differenti
tipi dinfrastruttura e protocolli
Wireless.

3. Standard e Reti Wireless


3.1. Standard IEEE 802.11
3.2. Tipi di rete Wireless
3.2.1. Rete Infrastructure
3.2.2. Rete AdHoc
3.3. Frame Wireless
3.3.1. Frame di gestione
3.3.1.1. Beacon
3.3.1.2. Probe requests
3.3.1.3. Probe responses
3.3.1.4. Autenticazione
3.3.1.5. Richiesta di associazione
3.3.1.6. Risposta di associazione
3.3.1.7. Frame di disassociazione
3.3.1.8. Frame di deautenticazione
3.3.1.9. Richieste e risposte di
riassociazione
3.4. Caratteristiche di sicurezza
3.4.1. Cifratura
3.4.1.1. WEP
3.4.1.1.1. Initialization vector
3.4.1.1.2. RC4
3.4.1.1.3. Integrity Check Value
3.4.1.2. Debolezze WEP
3.4.1.2.1. Paradosso Birthday
(compleanno)
3.4.1.2.2. Riuso del Keystream
3.4.1.2.3. Attacco known plaintext
3.4.1.2.4. CRC-32
3.4.1.2.5. Attacco Bit-flipping
3.4.1.2.6. Attacco FSM
3.4.1.2.7. KoreK
3.4.1.2.8. PTW
3.4.1.3. WPA
3.4.1.3.1. Protocollo Temporal Key
Integrity
3.4.1.3.2. CCMP/AES
3.4.1.4. WPA2
3.4.2. Autenticazione
3.4.2.1. Open System
3.4.2.2. Shared Key Authetication

possibile scaricare gli script utilizzati per questo modulo.

29

4. Scoprire reti Wi-Fi


Il primo passo quando eseguiamo un
4.1. Tool
penetration test su reti Wi-Fi di scoprire e
4.1.1. inSSIDer
identificare il nostro target.
4.1.2. Kismet
4.1.3. Airodump-ng
In questo modulo vedremo come farlo
4.2. SSID nascosti
tramite una serie di tool disponibili per
4.2.1. Network de-cloaking
piattaforme differenti.
possibile scaricare gli script utilizzati per questo modulo.

Dopo che la rete target stata


identificata, il passo successivo di
configurare i nostri tool in modo da
sniffare e intercettare il traffico.

5. Analisi del traffico


5.1. Cattura del traffico
5.2. Monitor mode
5.3. Channel Hopping
5.4. Filtri Wireshark
5.5. Decifrare il traffico

Questo un passaggio molto


importante per tutti gli attacchi che si
eseguiranno da questo momento in poi.

possibile scaricare gli script utilizzati per questo modulo.

30

Il seguente modulo si concentra sugli


attacchi che possono essere eseguiti su
reti Wi-Fi.
Dipendentemente dalla configurazione
e dei meccanismi di sicurezza
implementati, lo studente imparer
come attaccare e accedere a reti Wi-Fi
remote, ottenere le chiavi, le password
e molto altro.
Inizieremo esplorando gli attacchi
contro WEP e poi focalizzeremo i nostri
test su reti pi sicure: WPA, WPA2 e
WPS.

6. Attaccare reti Wi-Fi


6.1. WEP
6.1.1. Panoramica e configurazione
6.1.2. Attacco di deautenticazione
6.1.3. Attacco ARP replay
6.1.4. Cracking delle chiavi con with
aircrack-ng
6.1.4.1. Attacco PTW con
aircrack-ng
6.1.4.2. Attacco KoreK
6.1.5. Cracking WEP senza client
6.1.6. Bypassare la Shared Key
Authentication
6.1.7. Attaccare il client
6.1.7.1. Caffe-Latte
6.1.7.2. Attacco Caffe-Latte
6.2. WPA e WPA2
6.2.1. Il Four-Way Handshake
6.2.2. Catturare lhandshake
6.2.3. Usare
aircrack-ng
contro
lhandshake
6.2.3.1. Creare una wordlist con
crunch
6.2.3.2. Una nota sulla velocit di
cracking
6.2.4. Sfruttare la potenza delle GPU
6.2.4.1. oclHashCat
6.2.5. Cracking as a Service
6.2.5.1. CloudCracker
6.2.6. Space-time tradeoff
6.2.6.1. Pyrit
6.2.6.2. Pre-built hash
6.3. WPS
6.4. Conclusioni

possibile scaricare gli script utilizzati per questo modulo.

31

Nellultimo modulo di questa


sezione, lo studente imparer
come usare Wi-Fi come vettore
dattacco.
Questo significa che non si
eseguiranno degli attacchi alle reti
Wi-Fi, piuttosto si utilizzer Wi-Fi
in modo da creare false reti,
ottenere credenziali, eseguire
attacchi MitM e molto altro.

32

7. Wi-Fi come vettore dattacco


7.1. Rogue AP
7.1.1. Scenario tipo di Rogue AP
7.1.2. Recuperare PRGA con un rogue AP
7.1.3. Inizializzare
un
handshake
WPA/WPA2
7.1.4. Attacco Man in the Middle
7.2. Wardriving

eLearnSecurity
Con sede a Pisa (Italia), eLearnSecurity un'azienda operante nel campo della
formazione a distanza in ambito di sicurezza informatica.
La "mission" aziendale quella di aumentare le competenze di professionisti che
operano nel campo della sicurezza informatica, fornendo istruzione teorica e
pratica. Tutti i corsi eLearnSecurity sono accompagnati da reali esercitazioni pratiche
in cui lo studente mette in campo le competenze acquisite. eLearnSecurity ha
portato vere e proprie innovazioni nella formazione pratica a distanza in ambito di
sicurezza.
Grazie all'utilizzo delle migliori tecnologie di virtualizzazione e alla progettazione di
laboratori virtuali come Coliseum (Web Application Security Framework) e Hera
(Network Security Lab), ha cambiato il modo in cui gli studenti acquisiscono
competenze, immediatamente spendibili sul mercato del lavoro.

Per maggiori informazioni visitate http://www.elearnsecurity.it.

2014 eLearnSecurity S.R.L


Via Matteucci 36/38
56124 Pisa, Italia

33