Kali Pentest Toolkit - Recon und Enumeration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 51: Zeile 51:
  
 
== ffuf ==
 
== ffuf ==
 +
FUZZ ist ein Platzhalter, den ffuf durch jeden Eintrag der Wortliste ersetzt –
 +
er kann an jeder Stelle des Requests stehen: Pfad, Host, Parameter oder Header.
  
ffuf ist ein schneller Web-Fuzzer. Der Platzhalter <code>FUZZ</code> markiert die
+
=== Inhalte auf dem Webserver finden ===
Stelle, an der die Wortliste eingesetzt wird.
+
;Wortliste holen
;Liste ziehen
 
 
*wget https://xinux.de/downloads/lists/wordlist.txt
 
*wget https://xinux.de/downloads/lists/wordlist.txt
 
+
;Nach Verzeichnissen suchen
;Grundlegende Content-Discovery
 
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ
 
+
;Auch nach Dateien suchen – Wortliste um Endungen erweitern
;Rekursive Discovery mit Tiefe 2
+
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -e .php,.txt,.html,.bak,.sql,.sql.org,.org
 +
;In gefundenen Verzeichnissen eine Ebene tiefer suchen
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -recursion -recursion-depth 2
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -recursion -recursion-depth 2
  
;Gängige Dateiendungen mitfuzzen
+
=== Ausgabe steuern ===
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -e .php,.txt,.bak
+
;Fehlseiten ausblenden (404 und leere Antworten)
 +
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -e .php,.sql,.bak -fc 404 -fs 0
 +
;Nur verwertbare Statuscodes anzeigen
 +
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -mc 200,204,301,302
 +
;Laufzeit begrenzen
 +
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -maxtime 60
 +
;Ergebnisse in eine Datei sichern
 +
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -o results.json -of json
  
;Virtual-Host-Discovery
+
=== FUZZ an anderen Stellen einsetzen ===
 +
;Weitere virtuelle Hosts hinter derselben IP suchen
 
*ffuf -w vhosts.txt -u https://opfer.secure.local -H "Host: FUZZ.secure.local" -fs 4242
 
*ffuf -w vhosts.txt -u https://opfer.secure.local -H "Host: FUZZ.secure.local" -fs 4242
 
+
;Unbekannte GET-Parameter suchen
;GET-Parameternamen fuzzen
 
 
*ffuf -w params.txt -u https://opfer.secure.local/app.php?FUZZ=test -fs 4242
 
*ffuf -w params.txt -u https://opfer.secure.local/app.php?FUZZ=test -fs 4242
 
+
;Gültige Werte eines Parameters durchprobieren
;Wert eines bekannten Parameters fuzzen
 
 
*ffuf -w values.txt -u https://opfer.secure.local/app.php?id=FUZZ -fc 401
 
*ffuf -w values.txt -u https://opfer.secure.local/app.php?id=FUZZ -fc 401
 
+
;Zugangsdaten über ein Formular durchprobieren
;POST-Daten fuzzen
 
 
*ffuf -w postdata.txt -X POST -d "user=admin&pass=FUZZ" -u https://opfer.secure.local/login.php -fc 401
 
*ffuf -w postdata.txt -X POST -d "user=admin&pass=FUZZ" -u https://opfer.secure.local/login.php -fc 401
 
+
;Header-Werte durchprobieren
;Header fuzzen
 
 
*ffuf -w headers.txt -u https://opfer.secure.local -H "X-Forwarded-For: FUZZ"
 
*ffuf -w headers.txt -u https://opfer.secure.local -H "X-Forwarded-For: FUZZ"
 
;Nur nützliche Statuscodes matchen
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -mc 200,204,301,302
 
 
;Rauschen aus den Ergebnissen filtern
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -fc 404 -fs 0
 
 
;Nach 60 Sekunden abbrechen
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -maxtime 60
 
 
;Ergebnisse als JSON speichern
 
*ffuf -w wordlist.txt -u https://opfer.secure.local/FUZZ -o results.json -of json
 
  
 
== feroxbuster ==
 
== feroxbuster ==
 +
feroxbuster ist ein Content-Discovery-Scanner, der gefundene Verzeichnisse
 +
automatisch rekursiv weiterverfolgt (Standardtiefe 4). Bei selbstsigniertem
 +
Zertifikat bricht er mit SSL-Fehler ab, daher überall <code>--insecure</code>.
  
feroxbuster ist ein rekursiver Content-Discovery-Scanner.
+
=== Inhalte auf dem Webserver finden ===
 
+
;Wortliste holen
;Basis-Scan einer Ziel-URL
+
*wget https://xinux.de/downloads/lists/wordlist.txt
*feroxbuster -u https://opfer.secure.local
+
;Basis-Scan mit der eingebauten Wortliste
 
+
*feroxbuster -u https://opfer.secure.local --insecure
 
;Eigene Wortliste verwenden
 
;Eigene Wortliste verwenden
*feroxbuster -u https://opfer.secure.local -w /usr/share/seclists/Discovery/Web-Content/common.txt
+
*feroxbuster -u https://opfer.secure.local --insecure -w wordlist.txt
 
+
;Auch nach Dateien suchen – Endungen anhängen
;Gängige Dateiendungen durchsuchen
+
*feroxbuster -u https://opfer.secure.local --insecure -w wordlist.txt -x php,txt,html,sql,bak
*feroxbuster -u https://opfer.secure.local -x php,txt,html
+
;Weiterleitungen verfolgen
 
+
*feroxbuster -u https://opfer.secure.local --insecure -r
;Redirects folgen
 
*feroxbuster -u https://opfer.secure.local -r
 
 
 
 
;Rekursionstiefe begrenzen
 
;Rekursionstiefe begrenzen
*feroxbuster -u https://opfer.secure.local -d 2
+
*feroxbuster -u https://opfer.secure.local --insecure -d 2
 
 
;Bestimmten Statuscode herausfiltern
 
*feroxbuster -u https://opfer.secure.local -C 404
 
 
 
;Nur nützliche Statuscodes anzeigen
 
*feroxbuster -u https://opfer.secure.local -s 200 204 301 302 403
 
 
 
;Anzahl gleichzeitiger Threads erhöhen
 
*feroxbuster -u https://opfer.secure.local -t 50
 
 
 
;Ungültige TLS-Zertifikate ignorieren
 
*feroxbuster -u https://opfer.secure.local -k
 
  
;Ergebnisse in eine Datei speichern
+
=== Ausgabe steuern ===
*feroxbuster -u https://opfer.secure.local -o ferox.txt
+
;Bestimmten Statuscode ausblenden
 +
*feroxbuster -u https://opfer.secure.local --insecure -C 404
 +
;Nur verwertbare Statuscodes anzeigen
 +
*feroxbuster -u https://opfer.secure.local --insecure -s 200 204 301 302 403
 +
;Mehr Threads fürs Tempo
 +
*feroxbuster -u https://opfer.secure.local --insecure -t 50
 +
;Ergebnisse in eine Datei sichern
 +
*feroxbuster -u https://opfer.secure.local --insecure -o ferox.txt
  
;URLs von der Standardeingabe scannen
+
=== Weitere Einsatzarten ===
*cat urls.txt | feroxbuster --stdin
+
;URL-Liste über die Standardeingabe scannen
 
+
*cat urls.txt | feroxbuster --stdin --insecure
;Traffic über Burp proxien
+
;Traffic zur Analyse über Burp leiten
*feroxbuster -u https://opfer.secure.local -p http://127.0.0.1:8080
+
*feroxbuster -u https://opfer.secure.local --insecure -p http://127.0.0.1:8080
  
 
== gobuster ==
 
== gobuster ==
 +
gobuster ist ein Enumerations-Tool, das systematisch Namen durchprobiert und den
 +
Server fragt, welche davon existieren. Es kennt mehrere Modi; hier nutzen wir
 +
<code>dns</code>: gobuster hängt jedes Wort aus der Liste vor die Domain
 +
(z.B. <code>dc01.zweebrigge.de</code>) und prüft per DNS-Anfrage, ob der Host
 +
existiert. So findet man aktive Subdomains, ohne sie vorher zu kennen.
  
gobuster kennt verschiedene Modi (<code>dir</code>, <code>dns</code>,
+
=== dns – Subdomains raten ===
<code>vhost</code>, <code>fuzz</code>) für Verzeichnis-, DNS- und Vhost-Enumeration.
+
;Subdomain-Liste holen
 
+
*wget https://xinux.de/downloads/lists/subdomains.txt
;Grundlegender Verzeichnis-Scan
+
;Subdomains von zweebrigge.de raten
*gobuster dir -u https://opfer.secure.local -w wordlist.txt
+
*gobuster dns --domain zweebrigge.de -w subdomains.txt
 
 
;Gängige Dateiendungen durchsuchen
 
*gobuster dir -u https://opfer.secure.local -w wordlist.txt -x php,html,js,txt
 
 
 
;Anzahl der Threads erhöhen
 
*gobuster dir -u https://opfer.secure.local -w wordlist.txt -t 50
 
 
 
;TLS-Zertifikatsprüfung überspringen
 
*gobuster dir -u https://opfer.secure.local -w wordlist.txt -k
 
 
 
;Bestimmte Statuscodes anzeigen
 
*gobuster dir -u https://opfer.secure.local -w wordlist.txt -s 200,301,302,403
 
 
 
;Statuscode ausschließen
 
*gobuster dir -u https://opfer.secure.local -w wordlist.txt -b 404
 
 
 
;Ausgabe in eine Datei speichern
 
*gobuster dir -u https://opfer.secure.local -w wordlist.txt -o results.txt
 
 
 
;DNS-Subdomain-Enumeration
 
*gobuster dns -d secure.local -w subdomains.txt
 
 
 
 
;Schnelleres DNS-Scanning
 
;Schnelleres DNS-Scanning
*gobuster dns -d secure.local -w subdomains.txt -t 50
+
*gobuster dns --domain zweebrigge.de -w subdomains.txt -t 50
 
 
;Virtual-Host-Discovery
 
*gobuster vhost -u https://opfer.secure.local --append-domain -w vhosts.txt
 
 
 
;Basis-Fuzz-Modus
 
*gobuster fuzz -u https://opfer.secure.local?FUZZ=test -w wordlist.txt
 
 
 
;Header-Wert fuzzen
 
*gobuster fuzz -u https://opfer.secure.local -H "X-Test: FUZZ" -w wordlist.txt
 
  
 
== enum4linux-ng ==
 
== enum4linux-ng ==

Aktuelle Version vom 12. August 2026, 17:04 Uhr

Kali Pentest Toolkit - Recon und Enumeration

Diese Übersicht fasst die wichtigsten Kommandos der Recon-, Web- und Enumeration-Tools zusammen, die wir im Kurs gegen das Übungsziel opfer.secure.local einsetzen. Alle Befehle werden ausschließlich in der internen Laborumgebung (secure.local) gegen eigene, dafür bereitgestellte Systeme ausgeführt.

Als Ziel wird durchgängig der Hostname opfer.secure.local bzw. die Domain secure.local verwendet.

AutoRecon

AutoRecon führt automatisiert mehrere Scan-Phasen (Port, Service, Web) gegen ein oder mehrere Ziele aus und legt die Ergebnisse strukturiert ab.

Einzelnes Ziel scannen
  • autorecon opfer.secure.local
Mehrere Ziele gleichzeitig scannen
  • autorecon opfer.secure.local opfer2.secure.local
Ziele aus einer Datei einlesen
  • autorecon -t targets.txt
Scan auf ausgewählte Ports begrenzen
  • autorecon -p 80,443 opfer.secure.local
TCP- und UDP-Ports gemischt auswählen
  • autorecon -p 53,T:21-25,80,U:123 opfer.secure.local
Ergebnisse in ein eigenes Ausgabeverzeichnis schreiben
  • autorecon -o results opfer.secure.local
Flaches Single-Target-Layout verwenden
  • autorecon --single-target -o results opfer.secure.local
feroxbuster für die Web-Content-Discovery nutzen
  • autorecon --dirbuster.tool feroxbuster opfer.secure.local
Scans über proxychains routen
  • autorecon --proxychains opfer.secure.local
Domain-Wert für passende Plugins setzen
  • autorecon --global.domain secure.local opfer.secure.local
Globales und Ziel-Zeitlimit setzen
  • autorecon --timeout 60 --target-timeout 30 opfer.secure.local
Verfügbare Service-Scan-Plugins auflisten
  • autorecon --list service

ffuf

FUZZ ist ein Platzhalter, den ffuf durch jeden Eintrag der Wortliste ersetzt – er kann an jeder Stelle des Requests stehen: Pfad, Host, Parameter oder Header.

Inhalte auf dem Webserver finden

Wortliste holen
Nach Verzeichnissen suchen
Auch nach Dateien suchen – Wortliste um Endungen erweitern
In gefundenen Verzeichnissen eine Ebene tiefer suchen

Ausgabe steuern

Fehlseiten ausblenden (404 und leere Antworten)
Nur verwertbare Statuscodes anzeigen
Laufzeit begrenzen
Ergebnisse in eine Datei sichern

FUZZ an anderen Stellen einsetzen

Weitere virtuelle Hosts hinter derselben IP suchen
Unbekannte GET-Parameter suchen
Gültige Werte eines Parameters durchprobieren
Zugangsdaten über ein Formular durchprobieren
Header-Werte durchprobieren

feroxbuster

feroxbuster ist ein Content-Discovery-Scanner, der gefundene Verzeichnisse automatisch rekursiv weiterverfolgt (Standardtiefe 4). Bei selbstsigniertem Zertifikat bricht er mit SSL-Fehler ab, daher überall --insecure.

Inhalte auf dem Webserver finden

Wortliste holen
Basis-Scan mit der eingebauten Wortliste
Eigene Wortliste verwenden
Auch nach Dateien suchen – Endungen anhängen
Weiterleitungen verfolgen
Rekursionstiefe begrenzen

Ausgabe steuern

Bestimmten Statuscode ausblenden
Nur verwertbare Statuscodes anzeigen
Mehr Threads fürs Tempo
Ergebnisse in eine Datei sichern

Weitere Einsatzarten

URL-Liste über die Standardeingabe scannen
  • cat urls.txt | feroxbuster --stdin --insecure
Traffic zur Analyse über Burp leiten

gobuster

gobuster ist ein Enumerations-Tool, das systematisch Namen durchprobiert und den Server fragt, welche davon existieren. Es kennt mehrere Modi; hier nutzen wir dns: gobuster hängt jedes Wort aus der Liste vor die Domain (z.B. dc01.zweebrigge.de) und prüft per DNS-Anfrage, ob der Host existiert. So findet man aktive Subdomains, ohne sie vorher zu kennen.

dns – Subdomains raten

Subdomain-Liste holen
Subdomains von zweebrigge.de raten
  • gobuster dns --domain zweebrigge.de -w subdomains.txt
Schnelleres DNS-Scanning
  • gobuster dns --domain zweebrigge.de -w subdomains.txt -t 50

enum4linux-ng

enum4linux-ng dient der SMB-/NetBIOS-Enumeration von Windows- und Samba-Systemen.

Grundlegende SMB-Enumeration
  • enum4linux-ng opfer.secure.local
Alle einfachen Checks ausführen
  • enum4linux-ng -A opfer.secure.local
Schneller Scan ohne NetBIOS-Lookup
  • enum4linux-ng -As opfer.secure.local
SMB-Shares enumerieren
  • enum4linux-ng -S opfer.secure.local
Benutzer enumerieren
  • enum4linux-ng -U opfer.secure.local
Gruppen enumerieren
  • enum4linux-ng -G opfer.secure.local
Passwort-Richtlinie abrufen
  • enum4linux-ng -P opfer.secure.local
Betriebssystem-Informationen abrufen
  • enum4linux-ng -O opfer.secure.local
RID-Cycling zur Benutzer-Discovery
  • enum4linux-ng -R -r 500-2000 opfer.secure.local
Authentifizierte Enumeration
  • enum4linux-ng -A -u admin -p Password123 opfer.secure.local
Ausgabe als JSON speichern
  • enum4linux-ng -A opfer.secure.local -oJ results.json
JSON und YAML speichern
  • enum4linux-ng -A opfer.secure.local -oA scan_out

dnsrecon

dnsrecon führt verschiedene DNS-Enumerationstechniken gegen die Domain aus.

Grundlegende DNS-Enumeration
  • dnsrecon -d secure.local
Standard-Record-Lookup
  • dnsrecon -d secure.local -t std
Subdomains per Bruteforce ermitteln
  • dnsrecon -d secure.local -t brt -D subs.txt
Zonentransfer testen
  • dnsrecon -d secure.local -t axfr
SRV-Records enumerieren
  • dnsrecon -d secure.local -t srv
DNSSEC-Zone-Walk versuchen
  • dnsrecon -d secure.local -t zonewalk
Reverse-Lookup über einen CIDR-Bereich
  • dnsrecon -r 192.168.1.0/24
Bestimmten Nameserver verwenden
  • dnsrecon -d secure.local -n 8.8.8.8
Gecachte Records aus einer Liste prüfen
  • dnsrecon -d secure.local -c cache.txt
Ausgabe als XML speichern
  • dnsrecon -d secure.local -x dnsrecon.xml
Ausgabe als JSON speichern
  • dnsrecon -d secure.local -j dnsrecon.json
Google-basierte Enumeration versuchen
  • dnsrecon -d secure.local -t goo

whatweb

whatweb identifiziert Webtechnologien (Server, CMS, Frameworks) eines Ziels.

Grundlegendes Website-Fingerprinting
Aggressionsstufe erhöhen
Ausführliche Plugin-Ausgabe
Mehrere Ziele aus einer Datei scannen
  • whatweb -i targets.txt
Nur ausgewählte Plugins ausführen
Redirects immer folgen
Ausgabe als JSON speichern
Ausgabe als XML speichern
Eigenen User-Agent setzen
Session-Cookie mitsenden
Traffic über einen Proxy leiten
Fehlermeldungen unterdrücken

hydra

hydra prüft im Labor die Widerstandsfähigkeit von Diensten gegen Wörterbuch-Angriffe. Die Passwort-Audits laufen ausschließlich gegen die eigenen Übungssysteme.

SSH-Passwort-Audit
FTP-Credential-Test
SMB-Login-Audit
  • hydra -L users.txt -P passwords.txt smb://opfer.secure.local
RDP-Credential-Test
  • hydra -L users.txt -P passwords.txt rdp://opfer.secure.local
MySQL-Passwort-Audit
  • hydra -l root -P passwords.txt mysql://opfer.secure.local
Abweichenden Port ansprechen
Anzahl paralleler Tasks begrenzen
Web-Login mit einzelnem Passwort testen
  • hydra -l admin -p Password123 http-get://opfer.secure.local/login
HTTP-POST-Formular auditieren
  • hydra -l admin -P passwords.txt opfer.secure.local http-post-form "/login:user=^USER^&pass=^PASS^:F=incorrect"
Ausführliche Ausgabe der Versuche
Ergebnisse in eine Datei speichern
Vorherige Session wiederherstellen
  • hydra -R