inter-recon
Skript zur automatischen anfänglichen Web- und Schwachstellenreconnaissance.
Es verfügt über einige Überprüfungen im Fehlerfall.
Es besteht die Möglichkeit, einige Prüfungen zu überspringen, sie neu zu starten und/oder an dem Punkt fortzufahren, an dem Sie aufgehört haben. (Dies liegt daran, dass es manchmal Netzwerkprobleme gibt, wie z. B. Zeitlimits in VPN.)
Denken Sie daran: Wenn Sie das inter-recon-Skript in den Bin-Pfad kopieren oder verlinken (z. B. /usr/bin/), können Sie das Skript von überall aus ausführen. Es erstellt die Ausgabe dort, wo Sie sich befinden.
WICHTIG: SEHEN SIE DAS WFUZZ-PROBLEM UND DIE WORKAROUND-AM ENDE DER README (Abschnitt Zusätzliche Informationen)
Um mehrere bekannte Domains/IPs zu verwenden, z. B.:
- Erstellen Sie die Datei domains.txt mit allen Domains oder verschiedenen IPs
- Ausführen: inter-recon -T $(pwd)/domains.txt -d $(pwd)/known-domains -w /home/kali/Desktop/tools/inter-recon/dictionaries/without-slash/dict-small-without-slash.txt -s all -a true
Um das Netzwerk/die IP zu verwenden, z. B.:
- Ausführen: inter-recon -t 10.11.1.1/24 -w /home/kali/Desktop/tools/inter-recon/dictionaries/without-slash/dict-small-without-slash.txt -s all -a true
Verwendung:
inter-recon.sh [OPTIONEN]
-t {NET oder IP}
-T {Target-PFAD}
-d {Wörterbuchpfad}
-w {WÖRTERBUCH-PFAD}
-s {Scan-Typ}
-a optional für den superautomatischen Scan, der alles überspringt und beim ersten Ausführen des Wfuzz-Prozesses nichts fragt
Scan-Typen
- all
- portscan
- nmap TCP -> vollständige Ports, Überprüfung auf Host-Up, wenn einer der folgenden Ports offen ist (1025,1028,1029,10443,111,135,139,1521,161,1917,21,22,23,25,2869,3306,3389,443,445,49000,497,5000,515,53,548,5985,5986,6000,79,80,8080,8081,8090,9001,9002,9100,993,995)
- nmap UDP -> Top-100-Ports mit Standard-Host-Up-Prozess
- vulnscan
- nmap UDP- und TCP-Scans in Dateien parsen
- nmap UDP- und TCP-Scans in Dienstordner nach Dienst parsen
- nmap UDP und TCP für offene Ports mit port/versionsbezogenen Skripten ausführen
- smbmap guest execution -> Prüfen, ob ohne Benutzer geschrieben/gelesen werden kann
- enum4linux guest execution -> Informationen aus Samba abrufen
- smbversion execution -> Version von Samba abrufen (manchmal auf Linux-Servern die einzige Möglichkeit, die Samba-Version zu sehen)
- webscan
- HTTP-Erkennung mit httpx aus nmap-Ausführung
- Fuzzing der entdeckten URLs mit wfuzz
- Screenshot von Status-200-URLs aus Fuzzing mit aquatone
- 403-Bypass-Techniken mit byp4xx
- following steps -> Kurze Erklärung der nächsten Schritte nach Skriptausführung
- Dokumentationsordner und Template-Struktur -> Einen Ordner für Nachweise erstellen und .md-Dateien mit Informationen zu den Scans hinzufügen
- vuln
- portscan (wie oben)
- vulnscan (wie oben)
- following steps (wie oben)
- Dokumentationsordner und Template-Struktur
- web
- portscan (wie oben)
- webscan (wie oben)
- following steps (wie oben)
- Dokumentationsordner und Template-Struktur
Struktur:
- Zuerst Port-Scan TCP und UDP mit Version (nmap, benötigt sudo)
- Schwachstellen-Recon-Scan (Befehl zum Parsen von Ports in eine Datei mit Format IP,Port,Service,Version, in Dienstdateien parsen, nmap mit vollständigen port/versionsbezogenen Skripten ausführen)
- Web-Fuzzing-Recon-Scan, wenn httpx einen HTTP-Port findet (httpx, wfuzz, aquatone, byp4xx 403-Dateien <- falls Status 403 vorhanden)
Verwendete Anwendungen:
- nmap (normale Version und mit nmap-vulners-Skript, beide benötigen sudo, verwenden TCP (volle Ports, wenn der Host UP ist mit -PS und einigen Ports) und UDP (nur Top-100-Ports))
- httxp (HTTP-Ports aus nmap-Ausführung abrufen)
- aquatone (Screenshots von Status-200-Antworten aus HTTP-Erkennung erstellen)
- wfuzz (Fuzzing der HTTP-Ports)
- byp4xx (Bypass von 403-URLs durch verschiedene Methoden versuchen)
- smbmap (Gastberechtigungen für Netzwerkfreigabeordner abrufen)
- enum4linux (SMB-Informationen mit Gastberechtigungen abrufen)
- smbversion (Echte Version von SMB abrufen)
- dnsrecon (Zonenübertragung an DNS-Server versuchen)
- crackmapexec (Namen zum Server abrufen)
- host (Hostname des DNS-Servers abrufen)
- dig (Hostname des DNS-Servers abrufen, den Server als ns "@" verwenden)
Ausgabeordnerstruktur: (Beispiel)
- 192.168.122.1-24/ -> Ausgangsordner
- nmap/ -> Ordner mit TCP- und UDP-nmap in XML und grepable Ausgabe mit Version
- nmap-tcp-target.xml -> nmap-Ausgabe zum Importieren in einige Tools
- nmap-udp-target.xml -> nmap-Ausgabe zum Importieren in einige Tools
- nmap-tcp-target.xml -> grepable nmap zum Parsen und lesbarer machen
- nmap-udp-target.xml -> grepable nmap zum Parsen und lesbarer machen
- aux/ -> Ordner zur Kontrolle der vorherigen Ausführung und übersprungenen WFuzz-URLs
- nmap/ -> hier sind alle nmaps für httpx; wir entfernen die verarbeiteten nmap-Dateien im httpx-Prozess, für den Fall eines Fehlers mit dieser nmap-Datei fortfahren.
- full-initial-files.txt -> hier werden die URLs entfernt, bei denen die Ausführung korrekt war
- wfuzz-skipped-urls.txt -> hier werden URLs hinzugefügt, die wegen eines Fehlers übersprungen wurden ((Gesamte Anfragen + 1) - Verarbeitete Anfragen != 0)
- debug/ -> Ordner zum Debuggen der Ausführungen
- nmap-tcp-output.txt -> nmap (nur Version) Ausgabe
- nmap-tcp-cve-output.txt -> nmap mit -A-Option zur Ausführung aller zugehörigen Skripte
- nmap-udp-output.txt -> nmap (nur Version) Ausgabe
- nmap-udp-output.txt -> nmap mit -A-Option zur Ausführung aller zugehörigen Skripte
- wfuzz-output.txt -> wfuzz Ausgabe
- screenshot-output.txt -> aquatone Ausgabe
- fuzzing/ -> Ordner mit wfuzz-Ausführungen (Wichtig: Status 50* und 40* prüfen)
- *.txt -> wfuzz-Ausgabedateien
- services/ -> Ordner mit allen aus nmap geparsten Diensten
- {SERVICE-NAME}-services.txt -> Dienstausführung mit IP, PORT, Extra-service-info Ausgabe
- cve/ -> Ordner mit Schwachstellen pro Host, gefunden durch nmap-vulners-Skript
- {IPs}.txt -> nmap-vulners-Skriptausgabe
- http-discover/ -> Ordner zum Speichern und Steuern der httpx-Ausführung
- httpx_aux.txt -> Datei mit allen Domains+Ports für die httpx-Ausführung
- screenshots/ -> Ordner mit Screenshots von Status-200-URLs, gefunden von wfuzz
- screens -> Ordner mit allen Screenshots
- report.html -> Bericht mit strukturierten Informationen
- {ANDERES} -> andere Elemente für report.html
- full-initial-files.txt -> Dateien mit anfänglicher HTTP-Erkennung, von httpx gefundene URLs zum Fuzzing mit wfuzz
- urls-status-{200,401,403,etc}.txt -> Endstatus-URLs, gefunden von wfuzz; ändert sich je nach Variable $status (Status der gefundenen URLs)
- targets.txt -> Datei mit IP oder Netzwerk, das Sie mit dem Parameter -t angegeben haben
To-Do:
- URL-Statusdateien von wfuzz direkt in die Dokumentation einfügen (200, 401, 403, 503, um nichts zu vergessen)
- In den Schwachstellenscan den "OPENVAS-Scan" einbeziehen
- Den Web-Scan um von wfuzz gefundene HTTP-URLs und Domains erweitern
- Neuen Scan-Typ OSINT hinzufügen, der Informationen aus dem Web oder aus verschiedenen Skriptausführungen abrufen kann
- Der UDP-nmap scannt nur die Top-100-Ports; wenn Sie Zeit haben, führen Sie im Hintergrund einen zusätzlichen nmap mit allen UDP-Ports durch.
- Der TCP-nmap überprüft einige Ports, um festzustellen, ob der Host UP ist, und scannt ihn nur, wenn er UP ist; wenn Sie Zeit haben, führen Sie im Hintergrund einen zusätzlichen nmap mit allen TCP-Ports mit -Pn durch.
- Ich habe einige Male gesehen, dass wfuzz das Skript blockiert. Es scheint ein Problem mit einem Deadlock zu geben, wenn ein Fehler bei den URLs auftritt. Ein Workaround, bis das Problem behoben ist, ist, das th.join() auszukommentieren und ein pass in die Datei /usr/local/lib/python3.9/dist-packages/wfuzz/myhttp.py in der Funktion "Cleanup" einzufügen.