Ultima modifica:
L'enumerazione del target è la fase più importante di ogni attacco hacker e ne può decretare il successo o il fallimento ancora prima dell'inizio dell'attività.
L'enumerazione del target è la fase più importante di ogni attacco hacker e ne può decretare il successo o il fallimento ancora prima dell'inizio dell'attività.
Nell'immaginario comune, forse a causa dell'influenza hollywoodiana, forse a causa della classica rappresentazione giornalistica, un attacco hacker non è niente di più che indossare una maschera o un cappuccio, individuare il proprio target, inserire qualche strano comando in qualche terminale nero di un qualche laptop, premere tanti tasti velocemente e concludere con la solita, classica, frase:
"siamo dentro!"
...
Ma la verità è ben altra.
Restando sul tema dell'immaginario collettivo e delle metafore popolari, un attacco hacker, così come un'attività di red teaming, è simile a una rapina in banca: l'attacco è paragonabile al colpo, gli attaccanti sono i rapinatori, il server/target è la banca, gli amministratori di sistema sono le guardie e i dati contenuti nel server la refurtiva. Così come un colpo in banca, però, anche un attacco hacker ha bisogno di un piano. Non si può rapinare una banca senza sapere quali siano le entrate, dove siano le telecamere e quali siano i punti deboli della catena di sicurezza. Allo stesso modo, non si può iniziare un attacco senza prima conoscere quali siano le porte e i servizi esposti, le loro versioni, gli utenti interessati, le inter-connessioni tra utenti e macchine, le tecnologie utilizzate, ecc.
Ecco perchè l'enumerazione è la fase più importante di ogni attacco! Come disse Abraham Lincoln:
Ecco perchè l'enumerazione è la fase più importante di ogni attacco! Come disse Abraham Lincoln:
Dammi sei ore per abbattere un albero e spenderò le prime quattro ore per affilare l’ascia
E' questa la mentalità che sta dietro ad un attacco con alte probabilità di successo rispetto invece a uno fallimentare: la ricerca di quante più informazioni possibili.
L'obiettivo principale durante la fase di information gathering, e più in particolare nella sotto-fase dell'enumerazione, è quello di ampliare il più possibile la superficie d'attacco: ogni nuova informazione, ogni nuovo minimo dettaglio è un potenziale nuovo tassello nel nostro piano finale.
La maggior parte dei corsi professionali insiste molto su questa fase poichè è il punto crucciale tra riuscire a bucare una macchina oppure fallire. A volte basta non aver trovato una specifica pagina web o uno specifico utente per mandare in fumo l'intero piano.
L'obiettivo principale durante la fase di information gathering, e più in particolare nella sotto-fase dell'enumerazione, è quello di ampliare il più possibile la superficie d'attacco: ogni nuova informazione, ogni nuovo minimo dettaglio è un potenziale nuovo tassello nel nostro piano finale.
La maggior parte dei corsi professionali insiste molto su questa fase poichè è il punto crucciale tra riuscire a bucare una macchina oppure fallire. A volte basta non aver trovato una specifica pagina web o uno specifico utente per mandare in fumo l'intero piano.
Quali sono gli step per eseguire una corretta enumerazione?
Data l'esistenza di numerosi servizi, programmi e sistemi operativi, tutti differenti tra di loro, è impossibile indicare con precisione la maniera corretta per enumerare ognuno di questi. Al contrario però è possibile delineare una metodologia in grado di permetterci di aumentare esponenzialmente le possibilità di successo.
I principali controlli che accomunano una corretta e approfondita enumerazione sono:
I principali controlli che accomunano una corretta e approfondita enumerazione sono:
- Identificare tutte le porte aperte (1-65535) sui propri target, sia TCP che UDP, in modo da identificare tutte le possibili entrate
- Identificare quali servizi siano in esecuzione sulle rispettive porte e cercare di individuare la loro versione
- Eseguire il banner grabbing di ogni servizio, ove possible
- Verificare se è possibile accedere al servizio tramite credenziali di default o addirittura senza credenziali
- Identificare tutte le cartelle e i file pubblicamente accessibili
- Identificare le tecnologie in utilizzo (PHP? .NET? Oracle? Vecchie versioni SMB? ecc.)
- Abbiamo permessi di scrittura da qualche parte?
- Sono presenti indirizzi email o nomi utente? Potremmo usarli per attacchi di phishing, ricerche mirate o cercare di accedere ai loro account
- Sono presenti interconnessioni tra i vari servizi? (es. cartelle FTP il cui contenuto è richiamabile tramite HTTP, etc.)
Una volta identificate tutte queste informazioni, mettere assieme i pezzi e trovare una possibile entrata risulterà molto più facile rispetto a cercare di penetrare un sistema andando alla cieca. Inoltre metterà a disposizione anche diverse alternative, in modo da avere un piano B in caso il piano principale non andasse in porto!
Automatizzazione del processo
Siccome l'attività di enumeration è molto lunga e dispendiosa, nel corso del tempo sono stati ideati diversi tools con lo scopo di automatizzare e velocizzare le attività più comuni di ricerca delle informazioni. Tra i più famosi e degni di nota ci sono:
L'Nmap Scripting Engine (NSE) è una delle feature più potenti e flessibili di Nmap. Permette agli utenti di scrivere (e condividere) semplici script (utilizzando il linguaggio di programmazione Lua) per automatizzare un gran varietà di networking task. Questi script vengono eseguito in parallelo con la velocità e l'efficienza che ci si aspetta da Nmap. Gli utenti possono fare affidamento sui crescenti e diversi set di script distribuiti da Nmap, oppure scriverli loro stessi in base alle proprie necessità.
The main goal for this script is to automate the process of enumeration & recon that is run every time, and instead focus our attention on real pentesting.
AutoRecon is a multi-threaded network reconnaissance tool which performs automated enumeration of services. It is intended as a time-saving tool for use in CTFs and other penetration testing environments (e.g. OSCP). It may also be useful in real-world engagements.
Risorse tecniche specifiche:
Poichè ongni sistema funziona in maniera differente, per effettuare una corretta enumerazione occorre conoscere come interagire propriamente con il servizio in questione. Se col tempo tutto ciò verrà spontaneo, all'inizio (o per servizi non comuni) non è così e avere dei cheatsheet o delle piccole guide può fare la differenza.
Di seguito dunque potete trovare un elenco delle risorse più complete e utili disponibili sul web:
- HackTricks
- infosecsanyam / Recon (Scanning & Enumeration)
- infosecsanyam / Preparation Notes
- Red Team Field Manual - CLI version
- pwk-cheatsheet / linux-template
- pwk-cheatsheet / windows-template
- Penetration Testing Tools CheatSheet
- PayloadAllTheThings / Methodology and enumeration
- Total OSCP guide (sushant)
Made with ❤ for Inforge