
Pwnspoof Repository
pwnSpoof (von Punk Security) generiert realistische gefälschte Log-Dateien für gängige Webserver mit anpassbaren Angriffsszenarien.
Jedes Log-Bundle ist einzigartig und vollständig anpassbar, was es perfekt für die Erstellung von CTF-Szenarien und für Schulungsserien macht.
Kannst du die Angreifersession finden und das Vorfallbild erstellen?
pwnSpoof entstand im Rahmen einer Bedrohungsjagd-Schulungsübung, die Punk Security für einen Kunden durchführte. Die Schulungsübung bestand darin, ein Log-Analyse-Tool wie Splunk (andere Log-Analyse-Tools sind verfügbar) und IIS-Logs zu verwenden, um Brute-Force-Angriffe auf Logins und Command Injections zu finden.
Die Idee hinter der pwnSpoof-Anwendung ist:
Sobald du eine Reihe von Logs erstellt hast, besteht die Idee darin, sie in Splunk zu laden und verschiedene Techniken zu verwenden, um die folgenden Fragen zu beantworten:
Im Folgenden wird erklärt, wie du mit pwnSpoof loslegen kannst.
pwnSpoof ist in Python geschrieben und wurde mit Python3 getestet. Es werden keine zusätzlichen Module benötigt; wir verwenden nur die Standardbibliothek.
Wenn du die folgende Fehlermeldung erhältst, gib bitte python3 an, wenn du pwnSpoof ausführst. Python2 wird nicht unterstützt.
File "pwnspoof.py", line 176
print("{:6.2f}% ".format(y * x), end="\r", flush=True)
^
SyntaxError: invalid syntax
git clone https://github.com/punk-security/pwnspoof
cd pwnspoof
python pwnspoof.py --help
positionale Argumente:
{banking,wordpress,generic}
Zu emulierende App
Optionen:
-h, --help Zeigt diese Hilfemeldung an und beendet das Programm
--out OUT Ausgabedatei (Standard: pwnspoof.log)
--iocs Möchtest du die IOCs des Angreifers für eine einfachere Suche erfahren? (Standard: False)
Log-Generatoreinstellungen:
--log-start-date LOG_START_DATE
Startdatum der Logs im Format YYYYMMDD, z. B. "20210727"
--log-end-date LOG_END_DATE
Enddatum der Logs im Format YYYYMMDD, z. B. "20210727"
--session-count SESSION_COUNT
Anzahl der zu fälschenden legitimen Sessions (Standard: 2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
Maximale Anzahl legitimer Sessions pro Benutzer (Standard: 3)
--server-fqdn SERVER_FQDN
Überschreibt den Standard-FQDN der emulierten Web-App
--server-ip SERVER_IP
Überschreibt die randomisierte IP der emulierten Web-App
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
Zu fälschender Server (Standard: IIS)
--uri-file URI_FILE Datei mit Web-URIs zum Überschreiben der Vorgaben; keine Erweiterungen angeben
--noise-file NOISE_FILE
Datei mit Noise-URIs zum Überschreiben der Vorgaben; Erweiterungen angeben
Angriffseinstellungen:
--spoofed-attacks SPOOFED_ATTACKS
Anzahl der zu fälschenden Angreifer-Sequenzen (Standard: 1)
--attack-type {bruteforce,command_injection}
Anzahl der zu fälschenden Angreifer-Sequenzen (Standard: bruteforce)
--attacker-geo ATTACKER_GEO
Setze das Gebiet des Angreifers über einen 2-Buchstaben-Regionscode. Verwende RD für zufällig (Standard: RD)
--attacker-user-agent ATTACKER_USER_AGENT
Setze den User-Agent des Angreifers. Verwende RD für zufällig (Standard: RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
Zusätzliche IP-Adressen des Angreifers, kommagetrennt (Standard: ). Wenn du diese Liste ausschließlich verwenden möchtest, setze spoofed-attacks auf 0
Das folgende Beispiel erstellt einen Satz IIS-Logs für einen Brute-Force-Angriff auf pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
Das folgende Beispiel erstellt einen Satz NGINX-Logs für eine Command Injection gegen pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
Das folgende Beispiel erstellt einen Satz Logs mit 5000 Routine-Sessions und 3 Angriffssessions.
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
Das folgende Beispiel erstellt einen Satz Logs und gibt die IP-Adressen des Angreifers aus.
python pwnspoof.py banking --spoofed-attacks 3 --iocs
Das folgende Beispiel erstellt einen Satz Logs und verwendet ausschließlich die angegebenen IP-Adressen.
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof wurde entwickelt, um authentische Web-Angriffs-Logs zu produzieren, und das tut es sehr gut. Im Moment konzentrieren wir uns auf die Überarbeitung des Codes, den Ausbau unserer Testsuite und den ersten Push zu PyPi, aber wir haben riesige Ambitionen für pwnSpoof.
Hinzufügen weiterer Web-Apps über das Banking hinaus, um mehr Abwechslung in die Logs zu bringen.
Hinzufügen zusätzlicher und dynamischerer Web-Angriffe
Schulungsvideos!
pwnSpoof wurde entwickelt, um ein großartiges Tool für das Training des Blue Teams zu sein, daher ist es nur sinnvoll, einige Schulungsmaterialien zu erstellen, um es zu präsentieren.
Nicht nur Web-Logs
Wir würden pwnSpoof gerne auch für die Generierung aller Arten von Bedrohungsjagd-Logs sehen, z. B. Office365-Audit-Logs für SharePoint, OneDrive und AzureAD.
Blackhat Arsenal
Wir haben pwnSpoof bei Blackhat Arsenal zur Prüfung eingereicht, und es wäre GROSSARTIG, es auf der Blackhat London in diesem Jahr (2021) vorzuführen.
Warum uns nicht mit weiteren Ideen kontaktieren oder zum Projekt beitragen?
Dieses Produkt enthält IP2Location LITE-Daten von https://lite.ip2location.com