PTPv3 in pillole - Corsi | Emagister · Uso di Dev-Cpp 1.1.2. Video C++ 1.2. Nasm Assembler 1.2.1....

33
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 nell’IT Security Home page del corso: http://www.elearnsecurity./course/penetration_testing/ Il migliore corso online sul Penetration Testing Questo corso di formazione è stato scelto da studenti di 92 paesi nel mondo e da grandi organizzazioni come:

Transcript of PTPv3 in pillole - Corsi | Emagister · Uso di Dev-Cpp 1.1.2. Video C++ 1.2. Nasm Assembler 1.2.1....

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 nell’IT Security

Home page del corso:

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

Il migliore corso online sul

Penetration Testing

Questo corso di formazione è stato

scelto da studenti di 92 paesi nel

mondo e da grandi organizzazioni

come:

2

La sezione System Security vi fornirà una conoscenza approfondita

dell’architettura 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 dell’architettura 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

3

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 un’analisi approfondita di tutte le debolezze esistenti. I tool più utilizzati per il cracking delle password saranno ricoperti in dettaglio.

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

Lo studente in questo modulo imparerà a trovare e sfruttare buffer overflow in reali applicazioni 32bit. Quello del Buffer Overflow è un argomento complesso reso facile da capire attraverso esempi spiegati passo passo, partendo dalle basi dello stack. Armati di assemblatori, compilatori e debugger gli studenti impareranno ad assumere il controllo dell'esecuzione di applicazioni. Al termine del modulo, lo studente verrà introdotto alle più moderne tecniche utilizzate per prevenire i buffer overflow e i metodi principali per bypassarli.

3. Buffer Overflow 3.1. Introduzione 3.2. Lo Stack

3.2.1. Esempi di Stack Frame X86 3.3. Buffer Overflow

3.3.1. Acquisire il controllo dell’EIP 3.3.2. Procedura per generare Buffer

Overflow 3.4. Trovare un Buffer Overflow

3.4.1. Fuzzing 3.4.2. Identificare Buffer overflow

dopo un crash 3.5. Exploitation di un’applicazione reale

3.5.1. Exploitation del client 32Bit FTP 3.6. ASLR e DEP

3.6.1. ASLR – Brute forcing 3.6.2. ASLR – NOP Sled 3.6.3. ASLR – Non randomized

memory 3.6.4. DEP

In questo modulo sono previsti laboratori pratici su Hera Lab

4

Con questo modulo l'arte dello Shellcoding diventerà alla portata di chiunque attraverso esempi e scenari reali, facili da capire. Una piccola parte di aspetti teorici introdurrà gli esempi pratici in cui lo studente creerà il proprio shellcode attraverso l'uso di compilatori e assemblatori. Sono mostrate diverse tecniche in modo da dare allo studente la possibilità di creare il miglior shellcode per ogni situazione. Tre esempi, con il rispettivo codice sorgente, saranno spigati riga per riga. Al termine del modulo si introdurrà il Framework per la creazione di driver in Windows.

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 4.3.3. Percentage encoding

4.4. Esempio 1 : Shellcoding framework 4.5. Sleep() Shellcode 4.6. Scrittura di Shellcode universali per

Windows 4.6.1. Trovare l’indirizzo di kernel32.dll 4.6.2. Risoluzione dei riferimenti in

fase di esecuzione 4.7. Esempio 2: Shellcode indipendenti

dal SO 4.8. Esempio 3: Shellcode di Privilege

escalation 4.8.1. Configurazione di Windows per

il debugging 4.8.2. La logica dietro la Privilege

Escalation 4.8.3. L’architettura di un Driver 4.8.4. Esempio di un Driver per Kernel

privilege escalation

In questo modulo sono previsti laboratori pratici su Hera Lab

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

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 l’accesso ai

file 6.4. Esempio 3 : Nascondere file

6

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

L’Information Gathering è la fase più importante di tutto l’engagement di un pentester. Così come fanno i criminali, un pentester utilizza le informazioni raccolte in questa fase per mappare la superficie di attacco e aumentare le possibilità di violare l'organizzazione. eLearnSecurity propone una metodologia di indagine estremamente approfondita, che tenga conto sia del business che dell'infrastruttura del cliente. Gli studenti impareranno a ottenere l'accesso a documenti sensibili e talvolta segreti, per mezzo di servizi gratuiti, database e motori di ricerca specializzati. L’information gathering sulle infrastrutture coinvolge l’enumerazione di DNS, Domini, Netblock e altre attività web di proprietà dell’organizzazione.

1. Information Gathering 1.1. Introduzione 1.2. OSINT / Motori di ricerca

1.2.1. Presenza sul Web 1.2.2. Trovare contratti governativi 1.2.3. Partners e terze parti 1.2.4. Annunci di lavoro 1.2.5. Informazioni finanziarie 1.2.6. Raccolta d’informazioni 1.2.7. Informazioni cashate

1.3. OSINT / Social Media 1.3.1. Ricerca di persone 1.3.2. Information Gathering di un

caso reale: eLSFoo 1.4. Information gathering

sull’infrastruttura 1.4.1. Domini

1.4.1.1. Enumerazione dei DNS 1.4.1.2. IP 1.4.1.3. Netblocks & AS

1.4.2. Netblock 1.4.2.1. Host attivi 1.4.2.2. Enumerazione di DNS

1.5. Tool 1.5.1. DNS Enum 1.5.2. DNS Map 1.5.3. Fierce 1.5.4. Foca & Shodan

In questo modulo sono previsti laboratori pratici su Hera Lab.

7

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

8

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. Sarà spiegato il protocollo SNMP in tutte le sue parti fondamentali e i principali tool che consentono di sfruttarne ogni debolezza.

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

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

9

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.

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

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. Metasploit è principe di questo modulo e ricoperto in oltre due ore di materiale video su exploitation client side e remota.

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

In questo modulo sono previsti laboratori pratici su Hera Lab

10

Frutto di anni di esperienza sul campo, gli istruttori di eLearnSecurity hanno definito una metodologia collaudata per quanto riguarda la fase di post-exploitation. 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 l’accesso 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 l’accesso 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 nell’ambito 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.

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

11

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 nell’ambito del SE: Social Engineering Toolkit.

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)

12

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. 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.

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

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 36

13

La raccolta d’informazioni 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 sull’obiettivo che la fase di exploitation sarà facile e divertente.

2. Raccolta d’informazioni 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 d’attacco

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 d’informazioni 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

14

Il Vulnerability Assessment è il processo attraverso il quale potrete scoprire tutte le vulnerabilità nell’applicazione 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. Alla fine di questo modulo lo studente sarà in grado di padroneggiare i due strumenti gratuiti più utilizzati: Nessus e Nikto

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

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à nell’exploitation 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

15

Questo modulo contiene le tecniche più avanzate per trovare e sfruttare SQL Injections. Si va dalla spiegazione delle SQL Injection più semplici fino a quelle più complicate, con un elevato grado di dettaglio. Verrano insegnati metodi avanzati tramite l’ausilio di esempi reali e dei migliori tool disponibili. Lo studente sarà in grado di eseguire il dump di database remoti, ma anche di ottenere privilegi di root sulla macchina remota attraverso tecniche avanzate di SQL Injection. La spiegazione dettagliata dei tool e una tassonomia aiuterà lo studente a scegliere gli strumenti giusti, a seconda dell'ambiente e dello scenario che si troveranno ad affrontare durante incarichi reali.

5. SQL Injection 5.1. Introduzione alle SQL Injection

5.1.1. Pericoli di una SQL Injection 5.1.2. Come le SQL Injection

funzionano 5.2. Come trovare le SQL injection

5.2.1. Come trovare SQL injection 5.2.2. Trovare le Blind SQL Injection

5.3. Exploit di SQL Injection 5.3.1. Exploit di Union SQL Injection

5.4. Exploit di Error Based SQL Injection 5.4.1. Recuperare dati dal database 5.4.2. Leggere file sul sistema remoto 5.4.3. Accedere alla rete remota

5.5. Exploit di Blind SQL Injection 5.5.1. Blind SQL Injection ottimizzate 5.5.2. Time Based SQL Injection

5.6. Tool 5.6.1. SQLmap, BSQL Hacker, Pangolin 5.6.2. Tassonomia dei Tool

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

16

I più moderni attacchi alle applicazioni web saranno oggetto di questo modulo. Session Fixation e CSRF sono vulnerabilità talvolta trascurate, ma non per noi, che in questo le abbiamo trattate con dovizia di particolari ed esempi reali. Un exploit funzionante di CSRF verrà creato passo dopo passo, per dimostrare una vulnerabilità CSRF trovata in un famoso CMS. Importantissime tecniche di attacco quali LFI e RFI saranno dimostrate in maniera pratica. Ultimo ma non meno importanti saranno le tecniche di analisi relative ad applicazioni che fanno utilizzo di Ajax.

6. Attacchi Web Avanzati 6.1. Introduzione 6.2. Attacchi alla sessione

6.2.1. HTTP Session Fixation 6.2.2. Prevenire le Session Fixation

6.3. CSRF 6.3.1. Trovare i CSRF 6.3.2. Exploit di CSRF 6.3.3. Prevenire i CSRF

6.4. Vulnerabilità Inclusione di File 6.4.1. Local File Inclusion 6.4.2. Remote File Inclusion

6.5. Attacchi Web 2.0 6.5.1. Come funziona Ajax 6.5.2. Bypassare httpOnly – XST & Ajax 6.5.3. Ajax API 6.5.4. Reverse engineering della logica

delle applicazioni Ajax 6.5.5. Funzioni amministrative esposte

In questo modulo sono inclusi laboratori in Coliseum Lab WAS 360

17

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 l’ambiente in modo da lavorare con Ruby. Una volta che l’ambiente è stato configurato, lo studente imparerà i concetti base come: avviare e scrivere script, usare l’interprete, installare gemme e molto altro. Lo studente imparerà anche i concetti base di Ruby come tipi di dati, variabili e altro ancora.

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

18

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.

19

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 un’esecuzione 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 l’introduzione ai metodi e ai blocchi, un argomento molto importante deve essere spiegato: lo scope.

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

20

3.2.3. Variabili globali 3.2.4. Istanze e variabili di classe 3.2.5. Costanti 3.2.6. 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.

4. Classi, moduli ed eccezioni 4.1. Classi

4.1.1. Una semplice classe 4.1.2. Variabili d’istanza 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

21

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.

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 un’istanza 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

22

5.3.1.1. Cartella corrente 5.3.1.2. Cambiare cartella 5.3.1.3. Creazione/eliminazione 5.3.1.4. Elencare cartelle 5.3.1.5. Provare le cartelle 5.3.1.6. Oggetto Dir 5.3.1.7. 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.

23

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).

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

24

7.2.1. Kernel exec 7.2.2. Kernel system 7.2.3. Kernel backticks 7.2.4. IO popen 7.2.5. 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 d’uso, utili per eseguire attacchi contro le applicazioni web e identificare vulnerabilità come XSS.

8. Il Web 8.1. Punto d’inizio

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

25

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 l’interprete 8.3.2.3.2. Un semplice tool

8.4. Esercizi 8.4.1. Identificazione CMS

26

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 un’applicazione 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. L’exploit 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. L’intero 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.

27

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à l’architettura 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.

28

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 dell’ambiente

- 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 d’attacco

Nel primo modulo della sezione Wi-Fi vedremo quali sono i prerequisiti hardware e software del corso.

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

In questo modulo lo studente imparerà come configurare in maniera corretta l’ambiente di test, in modo da ottenere il miglior risultato dai moduli successivi.

2. Configurazione dell’ambiente 2.1. Introduzione

2.1.1. Considerazioni sui driver Linux 2.2. Configurazione del dispositivo

2.2.1. Provare la configurazione

29

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 d’infrastruttura 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 Ad‐Hoc

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.

30

Il primo passo quando eseguiamo un penetration test su reti Wi-Fi è di scoprire e identificare il nostro target. In questo modulo vedremo come farlo tramite una serie di tool disponibili per piattaforme differenti.

4. Scoprire reti Wi-Fi 4.1. Tool

4.1.1. inSSIDer 4.1.2. Kismet 4.1.3. Airodump-ng

4.2. SSID nascosti 4.2.1. Network de-cloaking

È 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. Questo è un passaggio molto importante per tutti gli attacchi che si eseguiranno da questo momento in poi.

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

È possibile scaricare gli script utilizzati per questo modulo.

31

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 l’handshake 6.2.3. Usare aircrack-ng contro

l’handshake 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.

32

Nell’ultimo modulo di questa sezione, lo studente imparerà come usare Wi-Fi come vettore d’attacco. 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.

7. Wi-Fi come vettore d’attacco 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

33

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