
Ein Sicherheitstool für multithreaded Informationssammlung und Service-Enumeration, während es Verzeichnisstrukturen zur Speicherung von Ergebnissen aufbaut, und Empfehlungen für weitere Tests ausgibt.

Ein Reconnaissance-Tool für die OSCP-Labs, das die Informationssammlung und Dienstaufzählung automatisiert, während es eine Verzeichnisstruktur erstellt, um Ergebnisse, Erkenntnisse und Exploits für jeden Host zu speichern, empfohlene Befehle zur Ausführung und Verzeichnisstrukturen zum Speichern von Beute und Flags.
Beiträge sind mehr als willkommen!
Reconnoitre, obwohl ein von mir seit einigen Jahren gepflegtes und sehr geschätztes Tool, verblasst meiner Meinung nach in der Funktionalität gegenüber dem Erstellen eines eigenen Enumeration-Ansatzes innerhalb von Interlace. Ich empfehle jedem, der die Infosec über das OSCP hinaus weiterverfolgen möchte, sich eingehend mit diesem Projekt zu beschäftigen.
Dieses Tool basiert stark auf der Arbeit, die in Mike Czumaks (T_v3rn1x) OSCP-Review (Link) veröffentlicht wurde, sowie auf erheblichen Einflüssen und Code von Re4sons mix-recon (Link). Virtual-Host-Scanning wurde ursprünglich von teknogeeks Arbeit übernommen, die stark von jobertabmas Virtual-Host-Erkennungsskript (Link) beeinflusst wurde. Weitere Virtual-Host-Scanning-Codes wurden aus einem Projekt von Tim Kent und mir adaptiert, verfügbar hier (Link).
Um Reconnoitre zu installieren, erstellen Sie zunächst eine lokale Kopie des Repositorys, indem Sie Folgendes an dem gewünschten Speicherort ausführen:
git clone https://github.com/codingo/Reconnoitre.git
Führen Sie anschließend setup.py wie folgt aus:
python3 setup.py install
Nachdem das Setup ausgeführt wurde, befindet sich Reconnoitre nun in Ihrem Pfad (als reconnoitre) und Sie können es von überall aus starten mit:
reconnoitre <args>
Dieses Tool kann frei für den persönlichen Gebrauch verwendet und kopiert werden, jedoch sollten Mike Czumak, der ursprünglich mit der Automatisierung dieser Arbeit begann, Anerkennung und Credits erhalten.
Beachten Sie, dass dies einige Beispiele sind, um Ihnen Einblick in mögliche Anwendungsfälle dieses Tools zu geben. Befehlszeilen können je nach Zielsetzung Ihres Scans hinzugefügt oder entfernt werden.
reconnoitre -t 192.168.1.5 -o /root/Documents/labs/ --services
Eine Beispielausgabe würde wie folgt aussehen:
root@kali:~/# reconnoitre -t 192.168.1.5 --services -o /root/Documents/labs/
__
|"""\-= RECONNOITRE
(____) An OSCP scanner
[#] Performing service scans
[*] Loaded single target: 192.168.1.5
[+] Creating directory structure for 192.168.1.5
[>] Creating scans directory at: /root/Documents/labs/192.168.1.5/scans
[>] Creating exploit directory at: /root/Documents/labs/192.168.1.5/exploit
[>] Creating loot directory at: /root/Documents/labs/192.168.1.5/loot
[>] Creating proof file at: /root/Documents/labs/192.168.1.5/proof.txt
[+] Starting quick nmap scan for 192.168.1.5
[+] Writing findings for 192.168.1.5
[>] Found HTTP service on 192.168.1.5:80
[>] Found MS SMB service on 192.168.1.5:445
[>] Found RDP service on 192.168.1.5:3389
[*] TCP quick scan completed for 192.168.1.5
[+] Starting detailed TCP/UDP nmap scans for 192.168.1.5
[+] Writing findings for 192.168.1.5
[>] Found MS SMB service on 192.168.1.5:445
[>] Found RDP service on 192.168.1.5:3389
[>] Found HTTP service on 192.168.1.5:80
[*] TCP/UDP Nmap scans completed for 192.168.1.5
Außerdem würde die folgende Empfehlungsdatei im scans-Ordner für jeden Zielhost geschrieben werden:
[*] Found HTTP service on 192.168.1.50:80
[>] Use nikto & dirb / dirbuster for service enumeration, e.g
[=] 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
[>] Use curl to retreive web headers and find host information, e.g
[=] curl -i 192.168.1.50
[=] curl -i 192.168.1.50/robots.txt -s | html2text
[*] Found MS SMB service on 192.168.1.5:445
[>] Use nmap scripts or enum4linux for further enumeration, e.g
[=] 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
[*] Found RDP service on 192.168.1.5:3389
[>] Use ncrackpassword cracking, e.g
[=] 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
Dies wird alle Dienste innerhalb eines Zielbereichs scannen, um eine Dateistruktur der Live-Hosts zu erstellen sowie Empfehlungen für andere auszuführende Befehle basierend auf den auf diesen Maschinen entdeckten Diensten zu schreiben. Das Entfernen von --quick führt eine weitere Überprüfung durch, verlängert aber die Ausführungszeiten erheblich.
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services
Die grundlegende Voraussetzung für Host- und Service-Scans mit diesem Tool ist, dass sowohl nbtscan als auch nmap installiert sind. Wenn Sie kein Host-Scanning verwenden und nur einen Ping-Sweep und Service-Scan durchführen möchten, können Sie mit der Installation von nur nmap auskommen. Die ausgegebene findings.txt wird oft zusätzliche Tools empfehlen, die in Ihrer Distribution möglicherweise nicht verfügbar sind, wenn Sie nicht Kali Linux verwenden. Alle Anforderungen und Empfehlungen sind nativ in Kali Linux, der empfohlenen (aber nicht erforderlichen) Distribution für die Nutzung dieses Tools.
Zusätzlich zu diesen Anforderungen werden in den Ausgaben oft Wortlisten referenziert, die Sie möglicherweise finden müssen. Wenn Sie das OSCP absolvieren, finden Sie diese im Thread 'List of Recommended Tools' von g0tmilk. Andernfalls finden Sie die meisten davon online oder bereits in einer Kali Linux-Installation.
Der erste Schritt ist die Installation von Docker, falls Sie es noch nicht installiert haben. Docker-Installation
Grundlegende Verwendung:
cd <Reconnoitre Directory>
docker build -t reconnoitre .
docker run reconnoitre -o outputdir -t 127.0.0.1
Wenn Sie Dateien lokal speichern möchten, können Sie ein Verzeichnis in den Docker-Container einbinden
cd <Reconnoitre Directory>
docker build -t reconnoitre .
mkdir /path/to/dir
docker run -v /path/to/dir:/outputdir --services -o outputdir -t 127.0.0.1
| Argument | Beschreibung |
|---|
| -h, --help | Zeigt Hilfemeldung an und beendet |
| -t TARGET_HOSTS | Setzt entweder einen Zielbereich von Adressen oder einen einzelnen Zielhost. Kann auch eine Datei mit Hosts sein. |
| -o OUTPUT_DIRECTORY | Setzt das Zielverzeichnis, in das die Ergebnisse geschrieben werden sollen. |
| -w WORDLIST | Optional eigene Wortliste angeben, die für vorkompilierte Befehle oder ausgeführte Angriffe verwendet werden soll. |
| --pingsweep | Schreibt eine neue target.txt-Datei im OUTPUT_DIRECTORY, indem ein Ping-Sweep durchgeführt und Live-Hosts erkannt werden. |
| --dns, --dnssweep | DNS-Server aus der Liste der Ziel(e) finden. |
| --snmp | Hosts finden, die auf SNMP-Anfragen aus der Liste der Ziel(e) antworten. |
| --services | Führt einen Service-Scan über die Ziel(e) durch und schreibt Empfehlungen für weitere auszuführende Befehle. |
| --hostnames | Versucht, Ziel-Hostnamen zu ermitteln und in hostnames.txt zu schreiben. |
| --virtualhosts | Versucht, virtuelle Hosts mit der angegebenen Wortliste zu entdecken. Dies kann über entdeckte Hostnamen erweitert werden. |
| --ignore-http-codes | Durch Kommas getrennte Liste von HTTP-Codes, die bei Virtual-Host-Scans ignoriert werden sollen. |
| --ignore-content-length | Ignoriert Inhaltslängen eines bestimmten Betrags. Dies kann nützlich sein, wenn ein Server bei jedem virtuellen Host-Raten eine statische Seite zurückgibt. |
| --quiet | Unterdrückt Banner und Kopfzeilen und beschränkt Rückmeldungen auf grepbare Ergebnisse. |
| --quick | Wechselt zum nächsten Ziel nach einem schnellen Scan und dem Schreiben von Empfehlungen der ersten Runde. |
| --no-udp | Deaktiviert UDP-Service-Scanning, das standardmäßig aktiviert ist. |