
Uno strumento di sicurezza per la raccolta di informazioni multithread e l'enumerazione dei servizi mentre costruisce strutture di directory per archiviare i risultati, insieme alla scrittura di raccomandazioni per ulteriori test.

Uno strumento di ricognizione realizzato per i laboratori OSCP per automatizzare la raccolta di informazioni e l'enumerazione dei servizi, creando al contempo una struttura di directory per memorizzare risultati, scoperte ed exploit utilizzati per ciascun host, comandi raccomandati da eseguire e strutture di directory per conservare bottino e flag.
I contributi sono più che benvenuti!
Reconnoitre, sebbene sia uno strumento molto amato che ho mantenuto per alcuni anni, secondo me è inferiore in termini di funzionalità rispetto alla creazione del proprio approccio di enumerazione con Interlace. Consiglio vivamente a chiunque voglia portare la sicurezza informatica oltre l'OSCP di dedicare del tempo a questo progetto.
Questo strumento si basa pesantemente sul lavoro reso pubblico da Mike Czumak (T_v3rn1x) nella sua recensione OSCP (link) insieme a notevole influenza e codice presi da mix-recon di Re4son (link). Lo scanning di host virtuali è originariamente adattato dal lavoro di teknogeek, fortemente influenzato dallo script di discovery di host virtuali di jobertabma (link). Ulteriori codice per lo scanning di host virtuali è stato adattato da un progetto di Tim Kent e mio, disponibile qui (link).
Per installare Reconnoitre, crea prima una copia locale del repository eseguendo quanto segue nella posizione desiderata:
git clone https://github.com/codingo/Reconnoitre.git
Dopo averlo fatto, esegui setup.py con il seguente comando:
python3 setup.py install
Una volta completata l'installazione, Reconnoitre sarà ora nel tuo PATH (come reconnoitre) e potrai avviarlo da qualsiasi punto usando:
reconnoitre <argomenti>
Questo strumento può essere utilizzato e copiato per uso personale liberamente, ma è doveroso attribuire il merito a Mike Czumak, che ha originariamente avviato il processo di automazione di questo lavoro.
Nota che questi sono alcuni esempi per darti un'idea dei possibili casi d'uso di questo strumento. Le righe di comando possono essere aggiunte o rimosse in base a ciò che desideri ottenere con la tua scansione.
reconnoitre -t 192.168.1.5 -o /root/Documents/labs/ --services
Un esempio di output sarebbe:
root@kali:~/# reconnoitre -t 192.168.1.5 --services -o /root/Documents/labs/
__
|"""\-= RECONNOITRE
(____) Uno scanner OSCP
[#] Esecuzione scansioni dei servizi
[*] Caricato singolo target: 192.168.1.5
[+] Creazione struttura directory per 192.168.1.5
[>] Creazione directory scans in: /root/Documents/labs/192.168.1.5/scans
[>] Creazione directory exploit in: /root/Documents/labs/192.168.1.5/exploit
[>] Creazione directory loot in: /root/Documents/labs/192.168.1.5/loot
[>] Creazione file proof in: /root/Documents/labs/192.168.1.5/proof.txt
[+] Avvio scansione nmap rapida per 192.168.1.5
[+] Scrittura risultati per 192.168.1.5
[>] Trovato servizio HTTP su 192.168.1.5:80
[>] Trovato servizio MS SMB su 192.168.1.5:445
[>] Trovato servizio RDP su 192.168.1.5:3389
[*] Scansione TCP rapida completata per 192.168.1.5
[+] Avvio scansioni dettagliate TCP/UDP nmap per 192.168.1.5
[+] Scrittura risultati per 192.168.1.5
[>] Trovato servizio MS SMB su 192.168.1.5:445
[>] Trovato servizio RDP su 192.168.1.5:3389
[>] Trovato servizio HTTP su 192.168.1.5:80
[*] Scansioni TCP/UDP Nmap completate per 192.168.1.5
Ciò scriverebbe anche il seguente file di raccomandazioni nella cartella scans per ogni target:
[*] Trovato servizio HTTP su 192.168.1.50:80
[>] Usa nikto & dirb / dirbuster per l'enumerazione dei servizi, ad es.
[=] nikto -h 192.168.1.50 -p 80 > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_nikto.txt
[=] dirb http://192.168.1.50:80/ -o /root/Documents/labs/192.168.1.50/scans/192.168.1.50_dirb.txt -r -S -x ./dirb-extensions/php.ext
[=] java -jar /usr/share/dirbuster/DirBuster-1.0-RC1.jar -H -l /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -r /root/Documents/labs/192.168.1.50/scans/192.168.1.50_dirbuster.txt -u http://192.168.1.50:80/
[=] gobuster -w /usr/share/seclists/Discovery/Web_Content/common.txt -u http://192.168.1.50:80/ -s '200,204,301,302,307,403,500' -e > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_gobuster_common.txt -t 50
[=] gobuster -w /usr/share/seclists/Discovery/Web_Content/cgis.txt -u http://192.168.1.50:80/ -s '200,204,301,307,403,500' -e > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_gobuster_cgis.txt -t 50
[>] Usa curl per recuperare le intestazioni web e trovare informazioni sull'host, ad es.
[=] curl -i 192.168.1.50
[=] curl -i 192.168.1.50/robots.txt -s | html2text
[*] Trovato servizio MS SMB su 192.168.1.5:445
[>] Usa script nmap o enum4linux per ulteriore enumerazione, ad es.
[=] nmap -sV -Pn -vv -p445 --script="smb-* -oN '/root/Documents/labs/192.168.1.5/nmap/192.168.1.5_smb.nmap' -oX '/root/Documents/labs/192.168.1.5/scans/192.168.1.5_smb_nmap_scan_import.xml' 192.168.1.5
[=] enum4linux 192.168.1.5
[*] Trovato servizio RDP su 192.168.1.5:3389
[>] Usa cracking di password ncrack, ad es.
[=] ncrack -vv --user administrator -P /root/rockyou.txt rdp://192.168.1.5
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --hostnames
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services --quick
Questo scansionerà tutti i servizi all'interno di un intervallo target per creare una struttura di file degli host attivi, oltre a scrivere raccomandazioni per altri comandi da eseguire in base ai servizi scoperti su queste macchine. Rimuovendo --quick si eseguirà un ulteriore sondaggio, ma aumenterà notevolmente i tempi di esecuzione.
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services
Il requisito minimo per la scansione di host e servizi con questo strumento è avere sia nbtscan che nmap installati. Se non stai usando la scansione degli host e desideri solo eseguire un ping sweep e una scansione dei servizi, puoi cavartela installando solo nmap. Il file findings.txt generato spesso raccomanderà strumenti aggiuntivi che potrebbero non essere disponibili nella tua distribuzione se non usi Kali Linux. Tutti i requisiti e le raccomandazioni sono nativi di Kali Linux, che è la distribuzione consigliata (anche se non obbligatoria) per l'uso di questo strumento.
Oltre a questi requisiti, gli output spesso faranno riferimento a wordlist che potresti dover trovare. Se stai seguendo l'OSCP, queste possono essere trovate nel thread "Lista degli strumenti raccomandati" di g0tmilk. Altrimenti, puoi trovare la maggior parte di esse online o già all'interno di un'installazione di Kali Linux.
Il primo passo è installare Docker se non lo hai già. Installazione di Docker
Utilizzo di base:
cd <Directory Reconnoitre>
docker build -t reconnoitre .
docker run reconnoitre -o outputdir -t 127.0.0.1
Se desideri che i file esistano localmente, puoi montare una directory nel container Docker
cd <Directory Reconnoitre>
docker build -t reconnoitre .
mkdir /percorso/della/directory
docker run -v /percorso/della/directory:/outputdir --services -o outputdir -t 127.0.0.1
| Argomento | Descrizione |
|---|
| -h, --help | Mostra il messaggio di aiuto ed esce |
| -t TARGET_HOSTS | Imposta un intervallo di indirizzi target o un singolo host da colpire. Può anche essere un file contenente host. |
| -o OUTPUT_DIRECTORY | Imposta la directory di destinazione in cui scrivere i risultati. |
| -w WORDLIST | Opzionalmente specifica la tua wordlist da utilizzare per comandi precompilati o attacchi eseguiti. |
| --pingsweep | Scrive un nuovo file target.txt nella DIRECTORY_OUTPUT eseguendo un ping sweep e scoprendo gli host attivi. |
| --dns, --dnssweep | Trova i server DNS dalla lista di target. |
| --snmp | Trova gli host che rispondono alle richieste SNMP dalla lista di target. |
| --services | Esegue una scansione dei servizi sui target e scrive raccomandazioni per ulteriori comandi da eseguire. |
| --hostnames | Tenta di scoprire i nomi host dei target e scrive su hostnames.txt. |
| --virtualhosts | Tenta di scoprire host virtuali usando la wordlist specificata. Può essere espansa tramite i nomi host scoperti. |
| --ignore-http-codes | Elenco separato da virgole di codici HTTP da ignorare durante le scansioni di host virtuali. |
| --ignore-content-length | Ignora lunghezze di contenuto di un ammontare specificato. Può essere utile quando un server restituisce una pagina statica per ogni tentativo di host virtuale. |
| --quiet | Sopprime il banner e le intestazioni e limita il feedback a risultati greppabili con grep. |
| --quick | Passa al target successivo dopo aver eseguito una scansione rapida e scritto le raccomandazioni di primo round. |
| --no-udp | Disabilita la scansione dei servizi UDP, che è attiva per impostazione predefinita. |