OSCP - Ricognizione Attiva

Per Information Gathering attiva si intendono tutte quelle attività che ci vedono estrarre informazioni entrando in contatto direttamente con i sistemi target.

Questa forma di Information Gathering, a differenza della passiva, ci espone a eventuali sistemi di allerta del target, a causa dell’attività che spesso richiede di effettuare parecchio “rumore” sulla rete e sui sistemi che stiamo analizzando.

In assoluto la prima attività che dovrebbe essere eseguita è quella dell’analisi dei DNS.

I DNS

Domain Name System sono sistemi (database distribuiti) che permettono la traduzione di un dominio leggibile (es. lucadelvecchio.it) in un indirizzo ip (es. x.x.x.x) che può essere usato dai sistemi per contattare direttamente il server dove risiede il sito richiesto.

Si basano su una struttura di tipo gerarchico, per raggiungere ed ottenere un indirizzo ip, il client effettua una verifica nella cache DNS locale, nel caso in cui non c’è corrispondenza inizierà la ricerca online andando ad effettuare: 

  • una richiesta al DNS ricorsivo;

  • il DNS ricorsivo contatterà i DNS root, responsabili delle informazioni dei top level domain, quindi ottenuto l’ip dei TLD (da parte dei dns root);

  • il dns ricorsivo contatta il TLD responsabile del dominio ricercato (es. .com, .it, .org …);

  • il DNS TLD risolverà l’indirizzo ip del server autorizzativo (o nameserver) responsabile del dominio, qui otterrà l’indirizzo ip del dominio (o sottodominio) ricercato.

DNS Enum

La prima prova da effettuare durante una scansione attiva dei dns è quella di utilizzare un tool presente sul sistema come host o dig*, *questi tool effettueranno una richiesta dns e otterremmo così l’indirizzo ip relativo al dominio (o sottodominio) ricercato. Questo è il primo passo per una scansione attiva, successivamente si effettua una ricerca inversa dell’ip, questo permetterà di verificare se i dns di tipo PTR sono stati gestiti da parte degli amministratori del dominio.

Un altro step essenziale è quello di enumerare eventuali sottodomini, questa operazione va eseguita con tool specifici (o scrivendo uno script). Tra i tools troviamo sicuramente dnsenum o dnsrecon che permettono, tramite wordlist, di effettuare chiamate DNS e restituirci in output i risultati degli eventuali sottodomini che rispondono alla richiesta. Questo ci permetterà di avere un quadro più dettagliato della superfice esposta del dominio.

Ottenuti gli indirizzi IP, il passo successivo è quello di effettuare un port scanner.

Il Port Scan

È la tecnica che viene utilizzata per mappare, identificare e censire le porte aperte (o chiuse) di un determinato host della rete.

Le porte sono gli strumenti che lo stack di rete utilizza per indirizzare i pacchetti di rete al processo che li deve ricevere (o inviare), lo stack di rete universalmente utilizzato è il TCP/IP che prevede la possibilità di utilizzare 65536 porte (per TCP e altrettante per UDP), di queste alcune sono definite Well Known Ports perché assegnate a specifici servizi.

Analizzando il modo in cui lo stack di rete risponde a determinate richieste per specifiche porte, possiamo definire che quella porta sia aperta e quindi c’è un processo/servizio in esecuzione sull’host; sapere che un servizio è attivo sull’host ci permette di capire il ruolo che quello specifico host ricopre nella rete, quale sistema operativo è in esecuzione e inoltre ci permette di determinare se quel dato servizio (in svariati casi) sia vulnerabili o meno, dandoci così un quadro più ampio della superfice di attacco a nostra disposizione.

Per effettuare un port scan possiamo utilizzare diverse tecniche e strumenti.

Netcat / Telnet

Questi strumenti ci permettono di creare delle connessioni TCP (o UDP) tra il nostro computer e l’host di destinazione indicando una specifica porta, se quella porta è aperta possiamo stabilire una connessione.

Questo metodo è sicuramente ottimo per analizzare il comportamento di una determinata porta, ma troppo lento e oneroso (in termini di tempo a disposizione) per un port scanner completo.

Per questo compito esistono altri sistemi più indicati e ottimizzati per un port scanner massivo, il più utilizzato è certamente Nmap.

Nmap

Nmap è uno strumento estremamente versatile e robusto per effettuare port scanner massivi sia su singolo host che su interi segmenti di rete, generando una quantità di traffico di rete che può andare da pochi KB a diversi GB di pacchetti che transitano sulla rete (quindi va usato sempre in maniera oculata).

Come detto uno dei punti di forza di Nmap è sicuramente la sua versatilità, in quanto ci permette di effettuare scansioni:

  • TCP e UDP;

  • host discovery;

  • scansione una singola porta o tutte quelle dello stack di rete;

  • scansionare un host o un intera classe di rete;

  • regolare e ottimizzare la velocità di scansione per rendere la scansione stessa più o meno aggressiva (per la banda di rete);

  • effettuare scansioni per identificare i servizi attivi con relativi banner e versioni;

  • effettuare scansioni molto “rumorose” (per eventuali sistemi perimetrali) o scansioni estremamente “difficili da individuare”;

  • e grazie all’engine integrato NSE è possibile scrivere degli script per compiti specifici come ad esempio:

    • vulnerability assessment,

    • analisi di certificati ssl e tls,

    • brute force su protocolli come ftp o smb

per una lista completa https://nmap.org/book/nse-usage.html#nse-categories

Ottenute le informazioni degli host attivi e dei relativi servizi, si procederà testando i singoli servizi (con tool specifici o con script nmap) per verificare l’effettiva presenza e cercando di estrarre informazioni utili per continuare ad espandere la superfice di attacco del target.

Subscribe to Morryk
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.