candidato luca eusebi “mitm e hacking di...
TRANSCRIPT
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
Classe 5 A
Candidato
Luca Eusebi
“MITM e Hacking di rete”
1
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
“THE QUIETER YOU BECOME,
THE MORE YOU ARE ABLE TO HEAR”
2
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
ABSTRACT
La sicurezza di rete è un problema che va gestito nel migliore dei modi per evitare che
terze parti possano accedere in modo illecito ad informazioni sensibili come
credenziali di accesso. Verrà qui dimostrato come questi riescono a prelevare
informazioni sensibili senza il consenso dei detentori di queste credenziali.
3
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
ABSTRACT (ENGLISH VERSION)
The network security is a problem that must be managed in the best way, preventing
that third parties may obtain sensitive information like passwords, Here will be
explained, how this subjects can obtain sensitive information without the permission of
the holder of that credentials.
4
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
INDICE
INTRODUZIONE …......….......................................................................... PAG. 6
1 LINUX E LA STORIA DELL'HACKING.............................................................. PAG. 8
2 METODI DI ACCESSO E CRITTOGRAFIA ….................................................... PAG. 11
2.1 CRITTOGRAFIA............................................................…............. PAG. 12
3 HACKING ….......................................................................................... PAG. 19
3.1 HACKING E CRAKING ….............................................................….. PAG. 20
3.2 ATTACCHI ALLE PASSWORD ….…........................................................ PAG. 21
3.2.1 BRUTE FORCE ….......................................................................... PAG 22
3.2.2 ATTACCHI A DIZIONARIO …............................. .................................. PAG 23
3.2.3 SOCIAL ENGINEERING ….................................................................... PAG 24
3.3 MAN IN THE MIDDLE …...................................................................... PAG. 26
3.4 SQL INJECTION …............................................................................. PAG. 29
3.5 XSS INJECTION …........................................................................... PAG. 31
3.6 DENIAL OF SERVICE ….......................................................................... PAG. 33
4 DIMOSTRAZIONE PRATICA ….................................................................... PAG. 35
4.1 ARP POISON MANUALE …................................................................... PAG. 36
4.2 ETTERCAP E METODO AUTOMATICO ….................................................... PAG. 38
5
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
INTRODUZIONE
Internet, oltre che ad essere un luogo meraviglioso, può rivelarsi un luogo molto
pericoloso se non si conoscono i rischi e le truffe ad esso contenute.
Nel corso della storia abbiamo fatto la conoscenza con degli individui molto
intelligenti, capaci di sfruttare il minimo segno di debolezza di un sistema informatico,
sia in buona che mala fede.
E' quindi importante mantenere un sistema aggiornato e bug-free in modo che sia
dichiarato da mani esperte come sicuro.
Questo è quello che viene definito come “Penetration testing”, lavoro svolto da
individui con una profonda conoscenza delle reti. Quando un sistema non è sicuro, è
soggetto a varie tipologie di attacco che possono compromettere anche in modo grave
l'intero sistema. Tra le varie categorie di attacco, possiamo trovare principalmente due
categorie che possono risultare fatali per il nostro sistema: L'exploiting e il credentials
harvesting. Rimanendo sulla seconda categoria, essa si divide in diversi gruppi
principali che racchiudono una metodologia per raggiungere il proprio obiettivo.
Il principale obiettivo del credentials harvesting è quello di ottenere nel modo più
pulito una o più credenziali di accesso al sistema, arrivando quindi ad utilizzare in
modo lecito il metodo di accesso di persone autorizzate a modificare il sistema, una
volta ottenute queste credenziali, l'attacker è in grado di prendere il completo controllo
del sistema in quanto possessore di tutti gli strumenti dello stesso amministratore.
La prima categoria invece, prevede di ottenere accesso al sistema, aggirando ogni
possibile difesa del sistema stesso, questo, attraverso la lettura del codice sorgente del
sistema alla ricerca di punti deboli all'interno del sistema stesso, quando questi
vengono ritrovati, vengono chiamati bug, al ritrovamento del bug, l'attacker tramite le
sue conoscenze sulla programmazione, svilupperà un programma in grado di sfruttare
6
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
quella debolezza per accedere in modo illecito al sistema, questo programma verrà
quindi chiamato “exploit”.
Gli exploit vanno ad occupare qualsiasi categoria presente nell'informatica, e vengono
suddivisi in categorie più o meno pericolose.
Lo scopo nel creare un exploit è quello di ottenere un bug non ancora scoperto,
ottenendo quindi la certezza di poter accedere in modo illecito al sistema, quindi,
questi exploit, in quanto molto pericolosi, poiché non ancora scoperti
dall'amministratore, vengono inseriti in una categoria definita “0day” e sono tra i più
fatali nelle prime settimane del ritrovamento del bug.
7
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
CAPITOLO 1
LINUX
Linux viene considerato dalla comunità degli esperti di hacking come uno strumento
indispensabile per chi vuole avventurarsi in questo mondo, la principale differenza tra
Linux e Windows è la libertà di poter modificare il proprio sistema operativo e
adattarlo alle proprie esigenze, inoltre sono presenti tantissimi software freeware
installabili semplicemente da riga di comando, anche se meno intuitivo, Linux è
decisamente uno strumento di lavoro molto più veloce di Windows.
Dato ciò, linux viene utilizzato largamente da chi vuole esplorare sistemi informatici
con più facilità.
La storia dell'hacking inizia nel 1950 all'interno del MIT (Massachusetts Institute of
Technology ) con un club che si dedicava al costante miglioramento di un modellino
di un treno, già da li, quelle persone potevano essere definite hacker dato la loro
caratteristica del volersi sempre mettere alla prova ed esplorare fino in fondo tutto ciò
che avevano intorno. Con il tempo, arrivarono i primi computer e da li la cultura
hacker iniziò a svilupparsi con l'intento positivo di “dominare” ogni caratteristica del
computer, un hacker non distrugge, un hacker esplora, trova il bug e migliora il
sistema, fino a renderlo perfetto.
Nel frattempo, nel New Jersey, circa nel 1969, l'anno di nascita di ARPAnet, fu anche
l'anno in cui un hacker dei Laboratori Bell, di nome Ken Thompson, inventò il sistema
Unix che avrebbe inevitabilmente sviluppato ulteriormente la cultura dell'hacking. Il
primo Unix era un sistema molto complesso, ma reso talmente semplice da capire che
sarebbe risultato banale anche per un programmatore, in seguito i laboratori Bell si
tirarono fuori dal progetto Unix.
8
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
In seguito, un uomo di nome Dennis Ritchie, inventò un nuovo linguaggio di
programmazione e lo chiamò "C", utilizzabile nella versione più primitiva del' Unix di
Thompson . “C” fu un linguaggio molto semplice da utilizzare e molto divertente per
chi ai tempi era già considerato un hacker.
Per tradizione, i vari sistemi operativi erano stati elaborati in Assembler in modo da
ottenere la maggiore efficienza nella macchina. Ma Thompson fu tra i primi a capire
che la tecnologia dell'hardware e dei compilatori aveva raggiunto un tale livello da
poter programmare in C un intero sistema operativo e fu così che fu sviluppato Unix
nella sua versione in C.
Questa combinazione efficiente in svariate operazioni, incluse alcune completamente
non previste. Nel 1980,l'uso del C e di Unix si era già allargato a un gran numero di
università e siti di ricerca informatica, e centinaia di hacker la consideravano come la
propria dimora e ARPAnet stessa ospitò alcuni siti Unix che allargò ulteriormente il
fenomeno Unix.
Il primo personal computer in assoluto fu immesso sul mercato nel 1975 e il suo
progresso avvenne con impressionante rapidità negli anni che seguirono. Il potenziale
dei microcomputer fu una manna dal cielo per i vecchi e nuovi hacker, nuovi poiché
non l'arrivo del personal computer, avvenne l'avvento della “seconda generazione di
hacker”. Il loro linguaggio era il BASIC, talmente primitivo che le vecchie generazioni
e gli utilizzatori di Unix lo considerarono subito indegno di una qualsiasi
considerazione.
Nel 1982, un gruppo di hacker Unix di Berkeley, fondò la compagnia Sun
Microsystems con la convinzione che Unix funzionante su un hardware con una base
relativamente economica, il che sarebbe stata la combinazione vincente dal punto di
vista applicativo. L'intuizione si rivelò esatta e la loro idea definì così il modello che
l'intera industria avrebbe seguito. Le workstation erano relativamente economiche per
università e grandi aziende ma ancora non alla portata di ogni utente che avesse un
personal computer a casa.
9
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
Nel 1984 Unix divenne ufficialmente per la prima volta un prodotto commerciale
molto conosciuto e il mondo degli hacker si adattò a questa convinzione.
Numerosi furono in seguito i tentativi di semplificare l'uso degli strumenti delle
workstation. Il sistema che prevalse in questa lotta fu l'X Window System. Uno dei
fattori che determinarono il suo successo fu dato dalla disponibilità dei suoi
sviluppatori a fornire in maniera assolutamente gratuita i codici sorgente delle
macchine, esattamente come secondo l'etica hacker.
Nell'ambito degli hacker della rete, la grande rivalità negli anni '80 era tra i supporter
della versione Unix di Berkeley e quella di AT&T. Gli hacker di Berkeley amavano
vedersi come i ribelli di guerre stellari contro i crudeli imperi aziendali della AT&T.
Agli inizi degli anni '90, la tecnologia delle workstation del decennio precedente
cominciava a vedersi seriamente minacciata da nuovi personal computer, con le loro
alte prestazioni e reperibilità.
Per la prima volta, ogni singolo hacker poteva finalmente permettersi di avere anche a
casa un dispositivo pari, per potenza di calcolo, ai minicomputer di un decennio prima.
Il ritmo dei cambiamenti era talmente veloce che ben cinquanta diverse culture hacker
nacquero e cessarono di esistere con una rapidità impressionante e l'assenza di una rete
non permise loro di diventare una network nation.
Ciò che dava davvero motivo di preoccupazione era che, con l'inizio degli anni 90, si
cominciava a vedere il fallimento di 10 anni di commercializzazione di Unix.
I detentori di Unix diedero prova di tanta lentezza e inesperienza nel campo del
marketing, che Microsoft inglobò tutto il mercato con il suo Windows, incredibilmente
inferiore a quella Unix.
La prima generazione di hacker Unix sembrava invecchiata e stanca e nel 1994, la
compagnia di Berkeley si disgregò, il periodo non era tra i più felici ma
fortunatamente in futuro, questa situazione avrebbe portato la cultura a imboccare una
strada completamente nuova e inesplorata, disseminata di incredibili successi.
10
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
CAPITOLO 2
METODI DI ACCESSO E CRITTOGRAFIA
Nell'informatica, si definisce come metodo di accesso un qualsiasi sistema che richiede
delle credenziali per poter accedere al medesimo, nella prassi di internet viene definito
come “login” e può esistere solo con la presenza di:
• Una lista di utenti
• Una lista di credenziali( definite password)
• Dei permessi di accesso che definiscono le azioni che un utente può
eseguire
• Delle azioni permesse solamente all'amministratore
Il sistema di accesso deve contenere necessariamente un sistema che associ il nome di
un utente alla sua corrispettiva password e non deve permettere di modificare i
parametri tramite exploitation come l'SQL injection [Pag “DAINSERIRE”] e i dati
passanti sulla rete al momento del login devono essere cifrati in modo da mantenere la
loro confidenzialità. In questo ambito, la crittografia è fondamentale per evitare che
terze parti, possano ricavare dalla rete le password e i nomi degli utenti che passano
all'interno dei pacchetti dati, il termine crittografia nasce dal greco kryptós ovvero
nascondere e graphía ovvero scrittura, consiste nel nascondere il contenuto di un
messaggio e viene utilizzato sin dall'antica Roma con il primo metodo crittografico, il
“cifrario di Cesare”.
In tal modo si garantisce la segretezza dei dati che è uno dei requisiti essenziali per la
sicurezza di una rete e per impedire così la realizzazione di diversi tipi di attacchi
informatici. Il tentare di comprendere e rompere un meccanismo crittografico porta il
termine di Crittoanalisi che rappresenta un'altra ala della crittologia.
La crittoanalisi oggi ha garantito sicurezza assoluta e avendo risolto il problema adesso si dedica al superamento dei limiti d'uso della stessa.
11
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
2.1 CRITTOGRAFIA
La storia della crittografia nasce sin dall'antica Roma, con il cifrario di Cesare che, per
quanto basilare, riusciva a nascondere dei messaggi agli occhi del nemico, il cifrario
consisteva nel sostituire una lettera del messaggio con un'altra lettera, formando quindi
parole per occhi esterni, apparentemente insensate. Il problema principale di questo
cifrario era la ridondanza delle lettere, in quanto la presenza di molte vocali,
permetteva una quasi chiara comprensione del messaggio.[Fig.1]
questo cifrario però, per quanto “inutile” gettò le basi per una scienza che si sarebbe
sviluppata in modo esponenziale nel tempo, difatti la
crittografia moderna, nasce nel 1553 dal napoletano
Giovanni Battista della Porta, il cui cifrario,
prevedeva di usare più cifrari ogni due o tre parole,
da cui poi, si sviluppo il famoso “Enigma” [ Pag.14]
questo permetteva di mettere ancora più in difficoltà
il crittoanalista che tentava di risolvere il problema,
in quanto, anche cifrando la prima parola,
il lavoro doveva essere ripetuto per la seconda volta.
[FIG 1: ESEMPIO DI In seguito Auguste Kerckhoff nel 1883 scrisse il suo libro
CIFRARIO DI CESARE] La Cryptographie Militaire che definiva lo standart di
Crittografia con il suo “Principio di Kerckhoffs” , da li,
celebre fu la frase “La sicurezza di un crittosistema non deve dipendere dal tener celato il
crittoalgoritmo. La sicurezza deve dipendere solo dal tener celata la chiave. “ che definì in
futuro, gli standart moderni di crittografia che prevedeva il dover tenere sicuro il
sistema, anche se il crittoanalista era a conoscenza dell'algoritmo crittografico, nel suo
libro, Kerckhoffs definì inoltre una serie di punti che possano definire un sistema
crittografico come sicuro e riporta:
• Il sistema deve essere praticamente, se non matematicamente, indecifrabile.
12
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
• Questo non deve essere segreto, dev'essere in grado di cadere nelle mani del
nemico senza inconvenienti.
• La sua chiave deve essere comunicabile senza l'aiuto di note scritte, e
modificabile o modificabili a piacimento dei corrispondenti.
• Deve essere applicabile alla corrispondenza telegrafica.
• Deve essere portatile e il suo utilizzo e uso non deve richiedere il concorso di
più persone.
• È necessario che la sua applicazione sia facile da usare e che non richieda la
conoscenza e l'uso di una lunga serie di regole.
Essi sono “consigli” che ancora oggi vengono seguiti nei moderni sistemi crittografici.
Famoso invece, fu “Enigma” una macchina elettro-meccanica, usata dalle forze armate
tedesche nella seconda guerra mondiale per cifrare e decifrare messaggi.
Enigma in linea di principio è un'estensione del metodo dei cifrari multipli, ma in
questo caso, dentro Enigma era assente una chiave di decifratura, che invece doveva
essere prevista all'interno dei sistemi crittografici del XVI secolo. Altra differenza
principale risiede nel fatto che i dischi cifranti sono più di uno, posti fra loro "in
cascata".
Enigma aveva l'aspetto di una macchina per scrivere con due tastiere: una in cui era
possibile scrivere nella parte bassa inferiore e la seconda nella quale i tasti erano
sostituiti da lettere luminose che si accendevano quando veniva premuto un tasto sulla
tastiera inferiore: la sequenza delle lettere che si illuminavano restituiva il messaggio
codificato o decodificato.
Il suo funzionamento era basato su tre dischi cablati detti "rotori", che contenevano
l'intero alfabeto tedesco. I dischi erano collegati a ciascuna lettera su un lato e all'altra
lettera cifrata dell'altro lato.
Per cifrare un messaggio l'operatore, quando riceveva un messaggio. Componeva il
messaggio, sulla tastiera luminosa compariva la corrispondente lettera cifrata e
13
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
l'operatore la scriveva su un foglio. Al termine della cifratura il foglio sul quale era
stato scritto il messaggio cifrato veniva consegnato agli operatori che provvedevano a
inviarlo via radio o via filo a seconda del momento. Stessa cosa per la decifratura:
l'operatore di Enigma riceveva un messaggio cifrato, lo scriveva sulla tastiera e le
lettere in chiaro comparivano via via sulla tastiera luminosa, ottenendo così il
messaggio decifrato.
La macchina Enigma nasce dalla mente di Arthur Scherbius, ispirato dal disco cifrante.
Arthur creò la sua società a Berlino, la Scherbius & Ritter, per produrre Enigma su
scala commerciale e mise in vendita la prima versione nel 1923. Anche se i
crittogrammi prodotti sono stati considerati effettivamente indecifrabili per l'epoca e la
tecnologia, molti dei clienti di Arthur pensarono che la possibilità di avere messaggi
sicuri non giustificasse l'esagerato prezzo della macchina.
Dopo la scoperta da parte da parte dei tedeschi del fatto che le comunicazioni navali
effettuate durante la prima guerra mondiali erano state decriptate dalla Gran Bretagna,
Il governo tedesco decise di brevettare Enigma come cifratore per i messaggi,
Scherbius realizzò quindi una versione in grado di impedire la decodifica dei messaggi
nel caso che una delle macchine in circolazione fosse caduta in mani nemiche. Diversi
esemplari furono acquistati dall'esercito Nazista nel 1926 ma solo nel 1929 il
dispositivo utilizzato su larga scala dai Nazisti.
Versioni di Enigma furono usate per quasi tutte le comunicazioni radio tedesche,
spesso anche per quelle telegrafiche, durante la guerra .
Nel novembre 1931 un impiegato tedesco che poteva accedere alla macchina Enigma
nella forma militare, aveva fornito ai Francesi due documenti, chiamati
“Gebrauchsanweisung für die Chiffriermaschine Enigma” e “Schlüsselanleitung für
die Chiffriermaschine Enigma”, ovvero i manuali d'istruzioni della macchina tramite i
quali gli ingegneri Francesi e Inglesi, riuscirono a ricostruire una macchina Enigma.
La Francia, visti gli schemi e che cosa avrebbero dovuto decifrare, si arrese poiché il
meccanismo era troppo difficile per essere decifrato dai vari crittoanalisti e non si
preoccupò neanche di finire la realizzazione del proprio prototipo. La Polonia invece
sapeva che se la Germania avesse cominciato una una guerra, la Polonia sarebbe stata
14
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
la prima vittima e chiese alla Francia i progetti e tutto ciò che era stato recuperato per
la realizzazione di un prototipo di Enigma per provare a crackare il codice.
Vista la natura tecnologica di Enigma, l'ufficio di cifratura polacco decise di
interpellare gli accademici dell' Università Poznań, sperando di trovare qualcuno in
grado di violare il codice. [Fig 1]
Gli accademici, grazie sia a una debolezza del
sistema cifrante, riuscirono a violare Enigma
e L'intelligence polacca, progettò una
macchina apposita chiamata Bomba in grado
di ottenere da un messaggio cifrato, le chiavi
di regolazione della macchina che aveva
eseguito la cifratura rendendo quindi il codice
decifrabile. Sfortunatamente, la decodifica
[Fig 1 Dimostrazione del durò poco, poiché i tedeschi cambiarono il
funzionamento di Enigma] funzionamento di Enigma introducendo un
insieme di cinque dischi cifranti, dei quali ne
venivano utilizzati tre selezionati a caso ogni giorno. Questo rese quindi Bomba
totalmente inutile contro la nuova macchina Enigma.
Il progetto di Enigma fu passato agli Inglesi ai quali fu affidato il compito di rompere
nuovamente il codice di Enigma e decifrazione i messaggi arrivati, quindi, a
Bletchkey Park con l'aiuto di un gruppo di Matematici, tra i quali fu presente Alan
Turing, riprogettarono la macchina Bomba e idearono diversi metodi per forzare le
chiavi di codifica tedesche, riuscendo quindi a crackare nuovamente la cifratura di
Enigma.
Nell'arco di 30 anni, la tecnologia ormai obsoleta di enigma fu sostituita grazie
all'arrivo dei primi compilatori con i primi sistemi crittografici Simmetrici,
precisamente il primo in assoluto fu sviluppato dall'IBM e prendeva il nome di DES,
sviluppato nel 1976. La crittografia simmetrica è caratterizzata dalla presenza di una
chiave di cifratura, di facile calcolabilità che corrisponde anche alla chiave di
decifratura, quindi, la chiave in questione, verrà utilizzata sia in fase di cifratura, sia in
15
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
fase di decifratura, questo rende il processo di creazione della chiave molto semplice,
ma anche pericoloso per la sicurezza della chiave.
La crittografia simmetrica, per la generazione della chiave, utilizza l'algoritmo XOR,
davvero molto semplice da calcolare[Fig 2], nella crittografia simmetrica, è molto
importante mantenere la segretezza della chiave, poiché, il passaggio frequente della
chiave, comporta un possibile
problema alla sicurezza della stessa, è
quindi importante che la chiave venga
passata nelle mani di altre persone in
maniera sicura.
In seguito nel 1977 venne creato il
cifrario RSA che segnò una svolta
nella storia della crittografia; prima
[Fig 2 Schema dell'algoritmo XOR] del suo sviluppo, tutti i cifrari erano
stati ideati con il meccanismo a
chiave simmetrica ma, i matematici Ronald
Rivest, Adir Shamir, Leonard Adleman, crearono questo nuovo cifrario che prevedeva
l'utilizzo di una chiave asimmetrica, ovvero con la presenza di due chiavi, una serviva
per cifrare il messaggio, mentre la seconda permetteva di decifrare il messaggio.
L'RSA fu brevettato dal MIT nel 1983 e lo rese uno standart per l'industria, in quanto
molto più sicuro del suo precedessore DES.
L'idea dietro l'RSA fu quella di sfruttare la difficoltà di fattorizzare un numero; infatti,
la chiave pubblica si ottiene moltiplicando due numeri primi di notevoli dimensioni.
Il sistema si basa sul risultato ottenuto applicando il teorema di Eulero.
Anche oggi, l'RSA è il principale metodo crittografico utilizzato su internet, tanto che
anche le informazioni passanti per i protocolli HTTPS vengono criptati in RSA,
inoltre, questo metodo viene usato anche per la generazione delle firme digitali.
16
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
In risposta alla creazione dell'RSA e ai vari attacchi, mirati a crackare l'algoritmo del
cifrario DES, l'IBM sviluppò il Triple-DES, che non è altro che una versione del DES,
che prevedeva la codifica per 3 volte prima di restituire il messaggio cifrato, questo
rendeva molto più sicuro l'algoritmo, il Triple-DES venne pubblicato per la prima
volta nel 1978, esso creava delle chiavi a 168 bit, sfruttando, esattamente come il suo
derivato DES, la cifratura simmetrica a chiave unica e dato che il meccanismo,
permetteva di eseguire la cifratura per tre volte, era possibile ricavare tre chiavi
pubbliche. Più tardi, precisamente 20 anni dopo, il NIST (National Institute of
Standards and Technology) indette un concorso per la creazione di una nuovo cifrario
in grado di sostituire l'ormai obsoleto DES e definirlo come nuovo standart
crittografico, il bando venne vinto da Vincent Rijmen e Joan Daemen, due ingegneri
Belgi con il loro AES, un cifrario a chiave simmetrica sviluppato dal cifrario Squadre.
L'AES può creare chiavi cifrate fino a 256 bit e prevede dei passaggi che quando uniti,
vengono definiti “round” in ordine questi passaggio eseguono:
• SubBytes: in cui tutti i byte del messaggio vengono sostituiti in modo
non lineare, vengono sostituiti secondo una specifica tabella.[Fig 1]
• ShiftRows: In cui i byte vengono spostati di posizione in modo
dipendente dalla riga di appartenenza.[Fig 2]
• MixColums: In cui i byte vengono combinati con un'operazione lineare,
essi vengono combinati colonna per colonna. [Fig 3]
• AddRoundKey: Nell'ultimo passaggio i byte vengono combinati con la
chiave di sessione, essa viene calcolata dal gestore di chiave. [Fig 4]
17
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
[Fig 1] [Fig 2] [Fig 3]
[Fig 4]
Un'altra “sfaccettatura” della crittografia è quella dell'hashing, ovvero un tipo di
cifratura non invertibile, esse vengono utilizzate spesso per la creazione di firme
digitali e per il passaggio di password, le funzioni di hash, trasformano una stringa di
qualsiasi dimensione, in una stringa di dimensione univoca e forma una firma digitale
di quel testo cui si è applicata la funzione di hash, in modo teorico dovrebbe essere
quasi impossibile poter crackare un hash poiché la possibilità di generare lo stesso
hash da un testo è di 22128 possibili combinazioni ma, in svariati anni si è dimostrato
che con una “smisurata” potenza di calcolo, è possibile crackare un algoritmo hash,
generando lo stesso hash e quindi restituendo il risultato, nonostante ciò, senza questa
suddetta potenza di calcolo, un normale compilare moderno ci impiegherebbe anni e
anni per poter crackare con successo un Hash[Vedi pag. DACREARE] , tra i più distinti
metodi di hashing, possiamo trovare l'MD5, lo SHA-1 , lo SHA-2 e lo SHA-256 che è
tra i metodi più sicuri di hashing.
18
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
CAPITOLO 3
HACKING
L'hacking, come spiegato, è quella branca dell'informatica che si occupa ad esplorare
dall'interno qualsiasi applicazione telematica, che vada dall'hardware al software e nel
corso della storia, numerosi hacker si sono dilettati per divertimento, per svago o per
lavoro all'esplorazione e al superamento dei sistemi di sicurezza sempre più difficili e
complicati. Nella storia il termine hacker venne rigirato, ampliato e modificato dagli
stessi hacker e dai social media, definendo tantissime etimologie alcuni esempi sono
quelle del Cracker, del Phreaker e del Leaker, tutte figure che occupano settori diversi
dell'hacking e si differenziano per metodi di condotta e specializzazioni, inoltre, a
seconda dell'etica dell'hacker, egli viene categorizzato in tre differente aree:
• White Hat: Questo hacker prima di tentare di entrare nelle difese di un
software o un web site, chiede il permesso del possessore dello stesso,
tenendolo cosciente di ciò che sta facendo e gli eventuali progressi,
comprese le soluzioni per sistemare il problema.
• Black Hat: Questo hacker o per meglio dire cracker, entra illecitamente
all'interno dei sistemi senza chiedere alcun permesso e per scopi nocivi,
come rubare dati sensibili e utilizzarli per proprio guadagno personale.
• Grey Hat: Questi hacker cadono tra le due categorie, questi individui
entrano illecitamente nei sistemi ma senza chiedere alcun permesso al
possessore del website o dell'applicazione, individuata la vulnerabilità,
provvederà ad avvertire l'amministratore della stessa spiegando come
funziona la vulnerabilità e come si può sistemare il problema.
19
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.1 HACKING E CRACKING
Il termine Cracker, definisce un individuo con delle conoscenza tali da poter entrare
abusivamente all'interno di un sistema informatico ma, al contrario di un hacker, questi
non sono guidati da alcuna etica e non ci penseranno due volte prima di nuocere il
sistema attaccato per interesse personale, quindi per definizione essi vengono anche
chiamati Black Hat Hacker.
La parola Cracker venne creata dagli stessi Hacker allo scopo di differenziarsi da
queste persone e per tentare di sviarsi dall'essere categorizzati criminali dai social
media, è infatti il periodo in cui vennero attuati i primi atti criminali telematici, dove i
social media definivano questi individui come Hacker, questo portò molta vergogna
alla comunità hacker e anche per questo persero la fiducia delle persone che si
avvicivano ad essi.
20
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.2 ATTACCHI ALLE PASSWORD
Con il termine attacco ad una password, definiamo l'atto informatico con cui si tenta di
aggirare un sistema di autenticazione o di farci riconoscere come un altro utente allo
scopo di entrare all'interno del sistema per scopi più o meno nocivi, possiamo quindi
dire che un attacco ad una password può risultare fatale solo se effettuato ai danni del
giusto utente, che potrebbe essere di norma un amministratore. L'hacker che ottiene le
credenziali di un amministratore, ne diventa all'amministratore stesso, ottenendo tutti i
privilegi conseguenti e avendo quindi, controllo più o meno completo dell'intero
sistema.
Di norma una password è protetta da un solido sistema di crittografia, quindi nel corso
della storia si è studiato come poter sviare questo problema e si sono trovati due
diversi metodi fondamentali: Gli attacchi a forza bruta e gli attacchi a ingegneria
sociale.
Di norma un hacker esperto sa che il secondo metodo è il più facile anche se esso
richiede un contatto con la vittima dell'attacco, aumentando così il rischio di essere
scoperti.
Il primo metodo invece, richiede una quantità di tempo proporzionale alla potenza
della nostra macchina, anche se pure il computer può potente può impiegare ore se non
giorni e settimane per violare la password più semplice.
A favore degli hacker, è da tenere anche in considerazione il possibile utilizzo
dell'amministratore di una password relativamente semplice spesso legata alla propria
persona o di piccole parole/giochi di parole di semplice memorizzazione, sapendo ciò,
vennero sviluppati gli attacchi a dizionario, un'altra tipologia che rientra negli attacchi
a forza bruta.
21
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.2.1 BRUTE FORCE
Con il termine Brute Force ovvero attacco a forza bruta, intendiamo quegli attacchi
alle password mirate al violare in maniera massiccia la password di un utente, con un
metodo molto lento ma sicuro al 100% .
Gli attacchi a forza bruta mirando all'utilizza in sequenza ogni possibile password
iniziando dai numeri, passando poi alle lettere e ai caratteri speciali, per questo anche
violare una password di 6 caratteri richiede una grande potenza di calcolo, poiché il
sistema dovrà calcolare una per una ogni possibile combinazione con la sua relativa
successione. Per salvarsi dagli attacchi a forza bruta, è quindi semplicemente
necessario digitare una password alfanumerica con l'eventuale presenza di caratteri
speciali e di almeno 8 caratteri, in questo modo, l'hacker che tenterà di eseguire il brute
force della nostra password, ci impiegherà anni se non decenni prima di completare
l'attacco.
Come già citato, l'efficacia di un brute force coesiste con la potenza del calcolare con
cui si effettua l'attacco, per questo un'università Americana, progettò un cluster di 5
server con 5 GPU per server, creando così una delle macchine più potenti per
effettuare un attacco a forza bruta, questo cluster permette di crackare qualsiasi
password di windows in circa 5 ore che, per qualsiasi calcolatore domestico sarebbe
impossibile; il cluster sfrutta la potenza delle GPU anziché della CPU come fanno
molti altri calcolatori, questo perché una GPU ha una potenza di calcolo decisamente
maggiore di una GPU dato che deve calcolare i dati matematici di animazioni,video e
immagini, si approssima che il calcolatore in questione possa calcolare fino a 958
combinazioni di password per ogni 5.5 ore. Un altro fattore fondamentale per il brute
force è anche il sistema operativo su cui gira l'operazione, è stato infatti dimostrato
dalla compagnia sviluppatrice di HashCat, un noto software per lo sviluppo di un brute
force attack che i sistemi con un sistema operativo Ubuntu, sono generalmente più
veloci nel calcolo rispetto a quelli windows, anche per questo quindi, le distribuzioni
linux sono molto più adatte a questi scopi.
22
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.2.2 ATTACCHI A DIZIONARIO
Gli attacchi a dizionario rientrano sempre nella categoria degli attacchi a forza bruta
ma a differenza di quest'ultimi, sfruttano un metodo più ingegnoso ma con meno
probabilità di successo, gli attacchi a dizionario sfruttano la convinzione che l'utente
abbia messo una password di uso comune, quindi prevede di tentare il login in maniera
massiccia seguendo un ordine di parole dettate di un file di testo in sequenza, un
dizionario, può contenere quante parole l'utente desideri e alcuni dizionari online
arrivano a pesare anche centinaia di Gigabyte.
Nonostante la grande quantità di possibili combinazioni e la relativa velocità
dell'operazione, spesso questo attacco non viene portato a compimento, questo perché
la probabilità di scegliere una password uguale a quella inserita all'interno di un
dizionario è molto bassa, considerando anche la possibile presenza di altri caratteri
unite alle stesse parole.
Un metodo efficace per contrastare sia un attacco a dizionario, sia un brute force, è
quello di inserire nel sistema di login un numero di tentativi massimi, in modo da
rendere pressochè nullo l'attacco.
Gli attacchi brute force sono fortemente usati anche per ricavare le password delle
connessioni Wi-Fi anche se i più vecchi sistemi utilizzanti come protocollo di
sicurezza, la crittografia WEP, permettono ad un hacker di ricavare la password del
dispositivo in meno di 10 minuti dall'inizio dell'attacco.
23
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.2.3 SOCIAL ENGINEERING
Il social engineering non si definirebbe una vera e propria tecnica di hacking, poiché
non richiede un'enorme conoscenza della programmazione, difatti il social engineering
sfrutta la possibilità dell'hacker di ingannare la vittima in modo da farsi dire la stessa
password direttamente dall'utente interessato, per fare ciò si può sfruttare la
conoscenza della vittima, ponendo le domande giuste, è possibile farsi rivelare
informazioni utili che possano poi arrivare alla password dell'utente con per esempio,
quella del campo di inserimento della domanda segreta al recupero della password,
infatti molte delle domande segrete riguardano la vita personale dell'utente.
Un altro metodo molto utilizzato che rientra nella fascia del social engineering è quella
che sfrutta la debolezza di una rete per redirectare il traffico di un PC sul proprio PC, a
questo punto l'hacker provvederà a clonare la pagina di login del portale web
interessato dall'utente quindi, l'utente credendo di essere sulla pagina effettiva, inserirà
inconsapevolmente i propri dati all'interno della pagina che anziché essere inviati al
server destinato al ricevimento dei dati di login, essi verranno inviati all'hacker.[Fig 1]
[Fig 1 Interfaccia di setool, uno dei tool di social
engineering presenti su Kali linux]
24
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
L'hacker in questione che ha intenzione di incominciare un'operazione di social
engineering comincia raccogliendo informazioni sulla vittima per poi arrivare al vero e
proprio attacco. Durante la prima fase che dura giorni se non settimane, l'attaccante
cercherà di ricavare tutte le informazioni di cui necessita sul suo bersaglio come e-mail
e numeri di telefono. Fatto ciò, l'attaccante passerà alla fase successiva, in cui
verificherà la veridicità delle informazioni ottenute, anche telefonando all'azienda del
bersaglio e chiedendo di parlare con la vittima. In questa fase l'attaccante avrà sempre
vicino a sé i propri appunti con tutte le informazioni raccolte nella prima fase
dimostrandosi pertanto sicuro e fluido nei suoi discorsi.
Se la vittima cade nel tranello, l'hacker avrà ottenuto il suo obiettivo, ossia un punto
debole nel sistema della vittima, da cui potrà iniziare una fase di sperimentazione allo
scopo di violare il sistema stesso.
25
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.3 MAN IN THE MIDDLE
Con il termine Man in the middle intendiamo tutte quelle azioni svolte da un hacker
allo scopo di ricavare dati sensibili attraverso la rete, infatti, l'hacker che effettua un
attacco Man in the middle, riesce ad analizzare i pacchetti passanti per la rete e
ricavarne i dati inviati attraverso i protocolli HTTP, spesso l'hacker in questione è in
grado di effettuare una sequenza di attacchi in modo da poter effettuare l'attacco vero e
proprio. Per fare ciò, l'hacker è in grado di entrare all'interno del canale di
comunicazione tra due client, così il primo client, credendo di inviare il suo dato al
client 2, in realtà invierà il dato al Man in the middle che provvederà a inviare il dato
al vero client 2 come se fosse un HUB [Fig 1] .
Al giorno d'oggi però, normalmente le connessioni e quindi i canali di comunicazione
vengono cifrate attraverso il protocollo HTTPS, in questo modo è possibile far si che
l'hacker non possa vedere quello
che passa per la rete in quanto i
dati passanti vengono criptati
dall'RSA [Vedi pagina 17].
Purtroppo però, quella della
sicurezza informatica non viene
considerata nelle normali reti
delle piccole aziende e i dati
passanti per la rete non vengono
cifrati, in questo modo però,
[Fig 1 Schema pratico di un qualsiasi hacker può in teoria
MIMT(Man in the middle)] teoria ricavare ogni dato presente nei
pacchetti HTTP comprese email, password e
username compromettendo l'intero sistema.
Effettuare un attacco MIMT richiede una discreta conoscenza dei protocolli di rete ma
nella teoria, qualsiasi persona anche inesperta potrebbe effettuarne uno avesse a
disposizione i giusti strumenti.
26
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
Per inizializzare un attacco MIMT è necessario prima di tutto riuscire a “infiltrarsi” nel
canale di comunicazione di un altro PC, per fare ciò, bisogna ingannare lo stesso PC
con una tecnica.
Nell'ambito delle reti, ogni PC possiede una tabella chiamata Tabella ARP che
stabilisce l'IP del gateway e dei dispositivi con cui si è messo in comunicazione
all'interno della propria rete, sapendo ciò, dobbiamo anche sapere che il gateway
ovvero il router, invia un pacchetto “identificativo” ad ogni host della rete per fargli
sapere che quel dispositivo è effettivamente il gateway a cui inviare i dati da re-inviare
fuori dalla rete, è possibile quindi inviare lo stesso identico pacchetto ma con dati
differenti in questo modo, una volta inviato il pacchetto modificato al PC vittima, esso
crederà che il nostro PC sia effettivamente il Gateway a cui invierà i dati, questa
tipologia di attacco viene definita ARP Poison ed è il primo passo per inizializzare
MIMT. [Fig 1] Dopo aver effettuato un ARP poison, l'hacker effettuerà una scansione
dei pacchetti passanti per la rete
ma, con la differenza che
il traffico in arrivo proverrà
anche da PC che è stato
attaccato dal nostro MIMT.
Una volta che l'hacker è riuscito
a ottenere un pacchetto HTTP
provvederà ad analizzarlo in
[Fig 1 Esempio di un attacco MIMT modo da verificare l'eventuale
portato con successo] presenza di credenziali di accesso che
siano di interesse all'hacker o che siano utilizzabili.
Questo tipo di attacco è particolarmente fatale per chi non possiede un
canale di comunicazione sicuro e anche i grandi colossi dell'informatica col tempo
hanno scoperto la pericolosità di questi attacchi, tra gli attacchi più famosi possiamo
vedere quello svolto in Iran ai danni di Google Iran in cui tutti gli utenti collegati a
google hanno involontariamente dato le loro credenziali ad un hacker che stava
intercettando le comunicazioni di google Iran tramite Man in the middle attack.
27
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
Tramite un attacco Man in the middle è inoltre possibile ricavare degli Hash di
protocolli come il MySQL che, se crackato con un calcolatore di notevole potenza, è
possibile compromettere un intero database provocando danni proporzionali
all'importanza del database stesso.
28
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.4 SQL INJECTION
L'SQL Injection per definizione è un tipo di attacco che mira a sfruttare le debolezze di
un sito web per modificare/rovinare il database dello stesso, ottenendo le password e i
nomi di tutti gli utenti registrati. Per applicare un SQL injection è prima necessario
trovare un sito contenente un Input che consente di valicare l'input e modificare la
Query SQL originaria a nostro piacimento. L'SQL injection venne discusso per la
prima volta nel 1998 all'interno del Phrack magazine anche se la sua esistenza fu
scoperta dal momento stesso che venne rilasciato il MySQL un DBMS molto noto e
ancora oggi molto utilizzato.
Per capire meglio come funziona un attacco SQL injection, capiamo prima come
funziona una normale pagina di login senza alcuna protezione a questa tipologia di
attacco:
<form action='login.php' method='post'>
Username: <input type='text' name='user' />
Password: <input type='password' name='pwd' />
<input type='submit' value='Login' />
</form>
Come vediamo nell'esempio, la semplice pagina HTML richiede come input un
username di tipo Text e una password di tipo Password, andiamo quindi, i dati
vengono spediti alla pagina login.php attraverso il metodo POST.
Andiamo ora ad analizzare un ipotetico esempio di login.php:
<?php
$query = "SELECT * FROM users WHERE user='".$_POST['user']."'
AND pwd='".$_POST['pwd']."'";
$sql = mysql_query($query,$db);
29
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
if(mysql_affected_rows($sql)>0)
{
(Convalida dell'utente)
}
?>
Nel caso sopracitato, i dati passati dal file precedente, vengono immesse all'interno di
una query dal metodo post, prendendo i dati user e pwd, la query va a ricercare
all'interno del database, nella tabella denominata users, l'username definito dalla
variabile user e la password definita dalla variabile PD, conoscendo queste due
informazioni, possiamo facilmente modificare la querele permettendo ad esempio di
forzare in ogni caso il login come nell'esempio seguente:
$querele = "SELECT * FROM user WHERE user='Luca AND
PD=' ' OR user='Luca';
Come si può facilmente notare, abbiamo inserito un nuovo pezzo all'interno della
querele necessaria al login, forzando la variabile User ad essere sempre uguale a
“Luca” possiamo quindi intuire come può essere facile modificare una querele di login
costringendo al sistema di stamparci una tabella contenente tutte le informazioni di
ogni utente registrato.
Gli attacchi SQL sono potenzialmente i più fatali per un sistema vulnerabile poiché
permettono potere a livello applicativo della macchina pressoché illimitato.
Nel corso della storia dell'informatica però, è diventato sempre più raro trovare un web
site che permetta un attacco SQL poiché ormai si sono conosciute delle tecniche di
escare dei caratteri che permettono di riconoscere l'inserimento di potenziali caratteri
dannosi per la stringa di codice come ad esempio : “ , ' , < , > .
30
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.5 XSS INJECTION
L'XSS Injection definito anche Cross-site scripting è un'altra categoria di vulnerabilità
che come l'SQL Injection sfrutta la vulnerabilità di una stringa all'interno del Web Site
che in questo caso, contiene pagine dinamiche con script in Javascript, in PHP o in
ASP. Il Cross-site scripting al contrario dell'SQL Injection che prevede la presenza di
un input all'interno del sito, questo permette di essere sfruttato direttamente sul link del
website, inserendo particolari combinazioni e modificando il normale funzionamento
dell'URL, è possibile eseguire piccoli script che il Web site eseguirà come azioni come
l'esempio seguente.
www.host.com/forum/member.phps=&action=aimmessage&aim=
<script>alert(“Sito vulnerabile”)</script>
In questo caso, se il sito corrispondente, è vulnerabile al Cross scripting, eseguirà lo
script nel momento in cui andrà a caricare sulla pagina la variabile “aim” prevista da
un'altra pagina del sito web. Potenzialmente un attacco Cross site può risultare letale
per il web site in quanto è possibile scrivere direttamente con il linguaggio Javascript,
che inoltre, fornisce una funzione per stampare a schermo i cookie di connessione, che,
anche se cifrati contengono dati come username e password, ciò può potenzialmente
permettere all'aggressore di scambiare con noi la sua identità, loggando con il nostro
account mentre noi siamo ancora connessi, semplicemente iniettando il nostro cookie
all'interno del suo browser.
Esattamente come l'SQL injection, ormai l'XSS injection è molto conosciuto, ed è
quindi molto complesso trovare un website vulnerabile a tale vulnerabilità, è però
anche noto come la sicurezza dei piccoli siti web e delle Intranet è molto poco
considerata, infatti le stesse sono categorizzate come le più soggette ad attacchi sia
SQL sia XSS.
31
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
L'abilità di un hacker che tenta di inviare un XSS injection sta anche nell'abilità di
mascherare il link da inviare al web site, infatti, è possibile che molti siti web
riconoscano la presenza dei caratteri < e > ovvero i markup sia dell'HTML, sia
dell'inizio di uno script javascript, quindi una soluzione potrebbe essere quella di
mascherare quei caratteri con caratteri che il browser possa comunque interpretare
come validi e che eseguano la stessa istruzione, conoscendo la codifica dei caratteri,
possiamo scoprire che i codici ASCII vengono perfettamente interpretati dal browser,
quindi se per esempio convertissimo <script> in %3Cscript%3E, il browser penserà lui
stesso a riconoscere il carattere, eseguendo comunque il codice.
32
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
3.6 DENIAL OF SERVICE
Con il termine Denial of Service intendiamo tutti quegli attacchi mirati a mettere
momentaneamente offline un servizio e come dice la parola stessa, negare un servizio.
Questa tipologia di attacco è spesso usata come forma di dissenso contro un servizio in
rete, infatti è noto come molti gruppi hacktivist utilizzino questo metodo per rendere
offline servizi web di dubbia moralità o di utilizzo illegale.
Un attacco DOS visionato da un grafico del traffico internet, viene visualizzato come
un improvviso picco di connessioni simultanee che vanno a consumare la banda
massima del servizio fino a saturare completamente il canale di comunicazione e
quindi, rendere inaviabile il servizio.
Per capire meglio come funziona un attacco DOS, analizziamo meglio come funziona
il banalissimo ping presente su ogni versione
del pronta dei comandi di windows, il
comando ping[Fig 1] in questione invia un
pacchetto all'indirizzo IP selezionato per
verificare la presenza di quell'indirizzo, un
attacco DOS non è altro che un pacchetto di
[Fig 1. Esempio del Ping su windows] verifica ma inviato ad altissima velocità e in
quantità enormi, se la banda del server
selezionato non è abbastanza ampia, allora i pacchetti non verranno più risposti,
insieme a quelli provenienti da altri IP, provocando quindi il blocco totale degli
Handshake. Solitamente la capacità della banda dell'aggressore non è mai abbastanza
per mandare offline su sito web dato che un web server è stato creato allo scopo di
garantire stabilità anche in presenza di tante connessioni, a questo proposito gli hacker
idearono una strategia “comunitaria” per valicare questo problema, dato che un solo
hacker non riusciva a rendere offline un web site, si optò a passare a due hacker, poi
tre, poi quattro e così via, finché il server non veniva messo offline, questo fenomeno,
viene definito DDOS (Distribuited Denial of Service) e consiste nell'appunto nel
33
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
raggruppamento di più attacchi DOS sferrati simultaneamente.
Spesso però, l'hacker non ha nemmeno bisogno dei suoi “colleghi” poiché i più esperti
di loro sono in grado di entrare nelle difese di PC altrui, soggiogando così le
operazioni della macchina e costringendola a sferrare attacchi DOS da quella
postazione, in questo caso il PC in questione viene definito “zombie” ed entra a far
parte degli zombie dell'aggressore, l'accumulo di macchine sotto il controllo del
singolo viene definita “botnet” ed una di esse se abbastanza ampia, sarebbe in grado di
rendere inutilizzabile gran parte dei servizi presenti su internet con un breve sforzo.
Un'altra tipologia che rientra nella categoria di Denial Of service è quella che prende il
nome di “Fork Bomb” ma, al contrario del DOS, esso è un attacco mirato al singolo
Client anziché ad un servizio online. Un attacco Fork Bomb mira a saturare le risorse
di un PC con dei processi simultanei e molto pesanti, si differenziano però attacchi che
invece mirano a saturare la memoria cache del computer vittima con un singolo
processo ma di grandi dimensioni. Tra gli attacchi Fork Bomb più celebri possiamo
vedere il caso di 42.zip, un file compresso di 42 Kilobyte che nascondeva al suo
interno una moltitudine di altri file compressi, quando il file veniva scompattato,
arrivava a pesare fino a 4 Terabyte rendendo il processo di scompattazione
inutilizzabile. Solitamente l'utilizzo di una Fork Bomb viene impiegato quando
l'hacker in questione deve inserire all'interno del PC della vittima altri processi
malevoli, così da offuscarli in quanto le difese del PC sono già impegnate a verificare
il contenuto della Fork Bomb.
34
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
CAPITOLO 4
DIMOSTRAZIONE PRATICA
Con le conoscenze acquisite fin ora, sarebbe possibile anche per i non esperti effettuate
un piccolo attacco ad una rete conosciuta, prenderemo ora in esame una rete su cui
faremo dei test per verificare le sue vulnerabilità, l'esame preso in questione riguarderà
un attacco di tipo Man In The Middle, con cui è possibile estrarre informazioni
sensibili da un pacchetto spedito in rete.
Nella pratica odierna, è possibile effettuare questo tipo di attacco in due modi:
Manualmente ma con il requisito di avere abbastanza conoscenza della
programmazione e della codifica ASCII, In maniera automatica grazie ad alcuni
software distribuiti gratuitamente all'interno di una particolare distribuzione di Linux,
ovvero Kali Linux.
Ricordiamo che l'atto di violare la sicurezza di un sistema telematico viene sanzionato
dal codice penale secondo l'articolo 615 Ter che cita:
“Chiunque abusivamente si introduce in un sistema informatico o telematico protetto da misure
di sicurezza ovvero vi si mantiene contro la volontà espressa o tacita di chi ha il diritto di
escluderlo, è punito con la reclusione fino a tre anni. “
Quindi, l'atto penale viene attivato nel momento in cui l'hacker si introduce all'interno
dello stesso sistema valicando i sistemi di sicurezza, l'atto di analizzare dei pacchetti
contenenti delle informazioni sensibili è sanzionato non prima del momento del loro
utilizzo, rendendo legale questa pratica se non si fa utilizzo delle suddette credenziali.
Per inizializzare un attacco MIMT è prima di tutto necessario effettuare
preventivamente un attacco di tipo ARP Poison[Vedi Pagina 27] con cui
convinceremo il PC vittima ad inviarci le sue credenziali, dopo di che, tramite un
software denominato Wireshark, analizzeremo i pacchetti ottenuti.
35
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
4.1 ARP POISON MANUALE
Iniziamo col dire che per effettuare manualmente un attacco MIMT è necessario
possedere una distribuzione di Linux oltre che essere muniti di un analizzatore di rete e
di un qualsiasi software per inviare pacchetti all'interno di una LAN, questi strumenti
vengono tutti forniti all'interno della distribuzione di Linux chiamata “Kali Linux”.
Per sferrare l'attacco, iniziamo con il trovare, grazie al nostro analizzatore di rete, un
pacchetto di tipo ARP proveniente dal Gateway e diretto verso il nostro PC[Fig 1],
quello sarà il pacchetto che verrà modificato in modo da poter ingannare gli altri
computer presenti nella rete. Per ottenere nel modo più veloce possibile questo
pacchetto, basterà effettuare un comando ping su un qualsiasi sito internet in modo da
interrogare il nostro router.
[Fig 1 esempio di un pacchetto ARP all'interno di WireShark]
Una volta ottenuto il pacchetto avremmo bisogno delle seguenti informazioni:
• L'IP e il MAC Address del nostro Gateway
• L'IP e il MAC Address della nostra vittima
• L'IP e il MAC Address del nostro PC
Ottenuto ciò, possiamo iniziare a modificare il pacchetto catturato in modo da risultare
nocivo per il PC vittima. Prendiamo un software per l'editing di Esadecimali e apriamo
il file, otteremo una schermata come quella che segue.
Dalla schermata possiamo vedere che i primi 6 valori esadecimali corrispondono
36
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
I 6 valori successivi invece, corrispondono al MAC Address del Gateway e andranno
sostituiti con il nostro MAC Address, in parallelo, sotto al secondo gruppo di
Esadecimali, possiamo notare di nuovo il MAC Address del Gateway che andrà
nuovamente sostituito con il nostro MAC.
Nella terza riga, i primi 6 valori andranno sostituiti nuovamente con il MAC Address
della vittima e seguirà subito dopo una squenza di 4 valori inizianti nel 100% dei casi a
C0, quei 4 valori corrispondono al nostro IP immesso in forma esadecimale, andiamo
quindi a convertire in HEX l'ip della vittima sostituendo così i valori.
Alla fine otterremmo un pacchetto ARP in grado di confondere le tabelle ARP del PC
della vittima.
Possiamo ora passare all'attacco vero e proprio, tramite un software presente su Kali
Linux chiamato file2cable, siamo in grado di inviare il pacchetto modificato sulla rete
tramite la stringa “file2cable -v -i eth0 -f NOMEFILE” in cui specifichiamo che il
file modificato, verrà inviato nell'interfaccia eth0 e il risultato dell'invio verrà stampato
a schermo tramite l'opzione -v .
Una volta fatto ciò, andando a controllare il nostro PC vittima ed eseguendo il
comando “arp -a” possiamo verificare che il MAC Address del gateway, risulterà
identico al nostro MAC, se è questo il caso, allora l'attacco è stato portato a
compimento.
Una volta fatto ciò, tramite il nostro analizzatore di rete, possiamo vedere qualsiasi
pacchetto passante per quel determinato client compresi quindi i pacchetti HTML
contenenti credenziali e informazioni sensibili.
E' importante ricordare che i pacchetti verranno catturati solo dal momento in cui il
nostro analizzatore è in funzione, quindi eventuali accessi effettuati precedentemente
non verranno scovati.
37
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
4.2 ETTERCAP E METODO AUTOMATICO
Un metodo molto più veloce, semplice ed efficace per portare a termine un attacco
MIMT è quello di utilizzare i software pre-installati all'interno della nostra
distribuzione di Linux, in nostro aiuto viene incontro Ettercap un software dedito al
MIMT e all'analisi di rete sviluppato da un gruppo di programmatori indipendenti, il
software è disponibile in quasi tutte le distribuzioni di Linux ma anche piattaforme
come MAC OSX.
I tempi di impiego dei due metodi sono subito visibili e mentre che, nel metodo
manuale per portare a compimento l'attacco ci impiegheremo circa 10 minuti, per
effettuare un attacco con Ettercap utilizzeremo solo 1 minuto circa.
Ettercap offre al suo utilizzatore due modalità, la modalità ad interfaccia testuale dove
tutto il software viene messo a disposizione tramite la console dei comandi e una
versione ad interfaccia grafica che risulterà particolarmente semplice nel suo utilizzo.
Nel nostro caso, vedremo come utilizzare l'interfaccia testuale per portare a
compimento l'attacco.
Una volta messa a disposizione un'interfaccia di Command Line, iniziamo col scoprire
ciò che Ettercap ci permette di fare tramite il comando “ettercap -h” , il software ci
invierà una serie di comandi utilizzabili.
Ettercap nel suo sistema, utilizza una serie di modalità dette “Modules” che andremo a
richiamare tramite il comando “-M” al suo interno troveremo svariati Plugin di varia
natura come l'ARP Poison e i DNS Spoof, tramite ettercap inoltre, è possibile
38
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
selezionare più Modules all'interno dello stesso comando per filtrare i risultati che
vorremmo ottenere in modo sempre più preciso.
Tramite il comando “-w” ovvero Write, abbiamo la possibilità di salvare i nostri
risultati all'interno di un file, permettendo di rileggere tutti i nostri risultati in seguito.
Conoscendo questi comandi quindi, possiamo ottenere la stringa che porterà il nostro
software a compiere in modo automatico un attacco MIMT ed ottenere col tempo
svariate credenziali inviate all'interno della rete LAN.
Come risultato, otterremmo una stringa simile a questa:
“ettercap -T -w Risultati -M ARP // // “
In questo caso, il comando -T indicherà che il software è in modalità testuale, il
comando -w invece, salverà sul file denominato Risultati tutti i pacchetti trovati e
infine, il comando -M ARP starà ad indicare il modulo ARP chiedendo al software di
compiere l'ARP Poison su tutti gli indirizzi IP indicati appunto con i due “//” .
Una volta fatto ciò, il software provvederà a iniziare l'attacco, riportando testualmente
tutti i pacchetti passanti. Compresi appunto, quelli di login.
Una particolarità di ettercap e che delinea aappunto il suo utilizzo, è quella di
segnalare in maniera particolarmente visibile quando il nostro analizzatore trova
all'interno di un pacchetto delle credenziali di accesso, infatti, mentre nel metodo
manuale avremmo dovuto analizzare di persona ogni singolo pacchetto HTML in
cerca della credenziale, ettercap ci mostra in modo chiaro la parola “USER:” ,
“PASSWORD:” e l'indirizzo IP dove sono state utilizzate queste credenziali senza
mostrare tutto il contenuto del pacchetto rendendo la lettura molto semplice.
39
Istituto Tecnico Industriale “Don Orione Fano”
a. s. 2014-2015
ESAME DI STATO
BIBLIOGRAFIA
http://www.altrodiritto.unifi.it/ Storia del MIT
http://www.crittologia.eu/ Storia della crittografia
http://it.wikipedia.org/ Storia di Enigma
40