Consiglio Tesi Di Laurea

Ciao a tutti,
Sono in procinto di scrivere la mia tesi di laurea. Il corso di laurea che ho seguito è specifico in ambito security.
Ho un'idea penso abbastanza interessante ma non saprei da dove iniziare a svilupparla.
Provo a raccontarvela e aspetto vostri riscontri :)

Quello che vorrei realizzare è uno strumento di password hacking che possa essere da supporto di un team di penetration test. In quanto durante le attività di assessment, spesso i penetration tester si trovano ad ottenere la codifica hash delle password, quello che vorrei fare è ricavare degli hash a partire da un dizionario di password abbastanza vasto per poi memorizzarli ed indicizzarli in una struttura apposita. In questo modo sarà poi possibile per i penetration testers effettuare una ricerca dell'hash che hanno trovato e ottenere in modo immediato la corrispondente password in chiaro.

Come potrei creare questa infrastruttura? Che linguaggi utilizzare?
Grazie a tutti!
 

cdtux

Utente Èlite
1,673
719
Hardware Utente
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
Hard Disk
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
Scheda Video
EVGA GTX670 SC
Monitor
Dell U2412M
Alimentatore
Corsair TX850M
Case
Corsair Graphite 760T
Sistema Operativo
Debian / Kali Linux / Win
Ciao a tutti,
Sono in procinto di scrivere la mia tesi di laurea. Il corso di laurea che ho seguito è specifico in ambito security.
Ho un'idea penso abbastanza interessante ma non saprei da dove iniziare a svilupparla.
Provo a raccontarvela e aspetto vostri riscontri :)

Quello che vorrei realizzare è uno strumento di password hacking che possa essere da supporto di un team di penetration test. In quanto durante le attività di assessment, spesso i penetration tester si trovano ad ottenere la codifica hash delle password, quello che vorrei fare è ricavare degli hash a partire da un dizionario di password abbastanza vasto per poi memorizzarli ed indicizzarli in una struttura apposita. In questo modo sarà poi possibile per i penetration testers effettuare una ricerca dell'hash che hanno trovato e ottenere in modo immediato la corrispondente password in chiaro.

Come potrei creare questa infrastruttura? Che linguaggi utilizzare?
Grazie a tutti!

Forse sarebbe stato meglio postare nella sezione programmazione..

Io utilizzerei un database su un server (quindi "as service") e l'applicativo sui client.
Per quanto riguarda il linguaggio di programmazione da utilizzare, dipende molto da quale linguaggio conosci. Puoi anche fare un semplice sito web..
Discorso diverso invece se vuoi implementare anche il reverse dell'hash, quindi fare un programma tipo hashcat, in questo caso va utilizzato un linguaggio di "basso" livello tipo il C per avere maggiori performance.
 

1nd33d

Utente Attivo
652
278
Hardware Utente
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
Hard Disk
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
Scheda Video
XFX RX480 GTR Black Edition
Scheda Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
Alimentatore
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
Sistema Operativo
Windows 10 64bit - Linux Mint 18
Sicuro che basti per una tesi? Cioè... così a occhio penso che in un giorno o due fai tutto.
L'hash lo puoi calcolare con qualsiasi linguaggio che disponga delle librerie, è un calcolo che è sufficiente fare una sola volta per cui anche se non è velocissimo poco importa. Memorizzi gli hash in una Map come chiavi associate alle password in chiaro. Poi fai una interfaccia per la ricerca (che sarà piuttosto semplice).
Non mi è chiaro cosa intende @cdtux come reverse dell'hash
 

cdtux

Utente Èlite
1,673
719
Hardware Utente
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
Hard Disk
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
Scheda Video
EVGA GTX670 SC
Monitor
Dell U2412M
Alimentatore
Corsair TX850M
Case
Corsair Graphite 760T
Sistema Operativo
Debian / Kali Linux / Win
Sicuro che basti per una tesi? Cioè... così a occhio penso che in un giorno o due fai tutto.
L'hash lo puoi calcolare con qualsiasi linguaggio che disponga delle librerie, è un calcolo che è sufficiente fare una sola volta per cui anche se non è velocissimo poco importa. Memorizzi gli hash in una Map come chiavi associate alle password in chiaro. Poi fai una interfaccia per la ricerca (che sarà piuttosto semplice).
Non mi è chiaro cosa intende @cdtux come reverse dell'hash
Forse "reverse" non è il termine corretto, visto che per definizione un hash non è invertibile, comunque rende bene l'idea di: trovare la password partendo dall'hash (ad esempio tramite bruteforce, ecc..).
 

Tinwor

Utente Attivo
929
142
Hardware Utente
Imho credo sia realmente molto banale, anche aggiungendo il calcolo su GPU per calcolare MD5 l'applicativo non porta via più di un giorno lavorativo.
Inoltre il salvataggio andrebbe fatto su un hashset e generalmente hanno tempo di accesso O(1).
Secondo me ti conviene pensare a qualcos'altro.
 
Sicuro che basti per una tesi? Cioè... così a occhio penso che in un giorno o due fai tutto.
L'hash lo puoi calcolare con qualsiasi linguaggio che disponga delle librerie, è un calcolo che è sufficiente fare una sola volta per cui anche se non è velocissimo poco importa. Memorizzi gli hash in una Map come chiavi associate alle password in chiaro. Poi fai una interfaccia per la ricerca (che sarà piuttosto semplice).
Non mi è chiaro cosa intende @cdtux come reverse dell'hash
Imho credo sia realmente molto banale, anche aggiungendo il calcolo su GPU per calcolare MD5 l'applicativo non porta via più di un giorno lavorativo.
Inoltre il salvataggio andrebbe fatto su un hashset e generalmente hanno tempo di accesso O(1).
Secondo me ti conviene pensare a qualcos'altro.
Avete qualche suggerimento su come implementare qualcosa di più grande partendo comunque da questa idea / rimanendo in questo ambito?
Per esempio, qualcosa legato al machine learning e costruzione della rainbow table. Magari un modulo filtro di apache che sta davanti alla maschera di login, riconosce i tentativi di attacco e impara nuove parole nel dizionario mandando ad arricchire la mia rainbow table?
 
Ultima modifica:

1nd33d

Utente Attivo
652
278
Hardware Utente
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
Hard Disk
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
Scheda Video
XFX RX480 GTR Black Edition
Scheda Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
Alimentatore
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
Sistema Operativo
Windows 10 64bit - Linux Mint 18
Di solito le tesi sono proposte dai docenti relatori o comunque discusse in accordo con loro, fatti consigliare da un professore per opinioni di fattibilità e adeguatezza, così almeno hai un relatore che ti segue.
 

Tinwor

Utente Attivo
929
142
Hardware Utente
Avete qualche suggerimento su come implementare qualcosa di più grande partendo comunque da questa idea / rimanendo in questo ambito?
Per esempio, qualcosa legato al machine learning e costruzione della rainbow table. Magari un modulo filtro di apache che sta davanti alla maschera di login, riconosce i tentativi di attacco e impara nuove parole nel dizionario mandando ad arricchire la mia rainbow table?
Come detto da @1nd33d: chiedi la tesi ad un professore altrimenti rischi di andare fuori tema.
Potrei consigliarti numerose cose, fra cui creare un tool che cerca di classificare N-grammi (url, testi, byte) per verificare il possibile rischio (utilizzando filtri di Bloom per i falsi negativi) o altre cose che riguardano machine learning non supervisionato e security ma non ho idea del tuo effettivo percorso di studi.
 

Entra

oppure Accedi utilizzando