
Repository Pwnspoof
pwnSpoof (da Punk Security) genera file di log spoofati realistici per server web comuni con scenari di attacco personalizzabili.
Ogni bundle di log è unico e completamente personalizzabile, rendendolo perfetto per generare scenari CTF e per serie di training.
Riesci a trovare la sessione dell'attaccante e ricostruire il quadro dell'incidente?
pwnSpoof è stato creato sulla base di un esercizio di formazione sul threat hunting che Punk Security ha fornito per un cliente. L'esercizio formativo consisteva nell'utilizzare uno strumento di analisi dei log come Splunk (sono disponibili altri strumenti di analisi dei log) e i log IIS per trovare attacchi di brute-force al login e command injection.
L'idea alla base dell'applicazione pwnSpoof è:
Una volta creato un set di log, l'idea è di caricarli in Splunk e utilizzare varie tecniche per rispondere alle seguenti domande;
Quanto segue spiega come iniziare con pwnSpoof
pwnSpoof è scritto in Python ed è testato con Python3. Non sono necessari moduli aggiuntivi, usiamo solo la libreria standard.
Se ricevi il seguente messaggio di errore, specifica python3 quando esegui pwnSpoof. Python2 non è supportato.
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
positional arguments:
{banking,wordpress,generic}
App da emulare
options:
-h, --help mostra questo messaggio di aiuto ed esci
--out OUT File di output (default: pwnspoof.log)
--iocs Vuoi conoscere gli IOCs dell'attaccante per una ricerca più semplice? (default: False)
impostazioni del generatore di log:
--log-start-date LOG_START_DATE
Data di inizio dei log, nel formato AAAAMMGG es. "20210727"
--log-end-date LOG_END_DATE
Data di fine dei log, nel formato AAAAMMGG es. "20210727"
--session-count SESSION_COUNT
Numero di sessioni legittime da spoofare (default: 2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
Numero massimo di sessioni legittime per utente (default: 3)
--server-fqdn SERVER_FQDN
Sostituisce il FQDN predefinito dell'app web emulata
--server-ip SERVER_IP
Sostituisce l'IP randomizzato dell'app web emulata
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
Server da spoofare (default: IIS)
--uri-file URI_FILE File contenente URI web per sovrascrivere i predefiniti, non includere estensioni
--noise-file NOISE_FILE
File contenente URI di rumore per sovrascrivere i predefiniti, includere estensioni
impostazioni di attacco:
--spoofed-attacks SPOOFED_ATTACKS
Numero di sequenze di attaccante da spoofare (default: 1)
--attack-type {bruteforce,command_injection}
Numero di sequenze di attaccante da spoofare (default: bruteforce)
--attacker-geo ATTACKER_GEO
Imposta la geo dell'attaccante tramite regione di 2 lettere. Usa RD per casuale (default: RD)
--attacker-user-agent ATTACKER_USER_AGENT
Imposta lo user-agent dell'attaccante. Usa RD per casuale (default: RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
Indirizzi IP aggiuntivi dell'attaccante, separati da virgola (default: ). Se desideri usare esclusivamente questa lista, imposta spoofed-attacks a 0
Il seguente esempio creerà un set di log IIS per brute-force contro pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
Il seguente esempio creerà un set di log NGINX per command injection contro pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
Il seguente esempio creerà un set di log con 5000 sessioni di routine e 3 sessioni di attacco
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
Il seguente esempio creerà un set di log e mostrerà gli indirizzi IP dell'attaccante
python pwnspoof.py banking --spoofed-attacks 3 --iocs
Il seguente esempio creerà un set di log e utilizzerà esclusivamente gli indirizzi IP specificati
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof è progettato per produrre log di attacco web autentici e lo fa molto bene. Al momento siamo concentrati sul refactoring del codice, sullo sviluppo della nostra suite di test e sul primo push su PyPi, ma abbiamo ambizioni enormi per pwnSpoof.
Aggiunta di altre webapp oltre al banking per fornire maggiore varietà ai log
Aggiunta di attacchi web aggiuntivi e più dinamici
Video di formazione!
pwnSpoof è stato creato per essere un ottimo strumento per la formazione del blue team, quindi è logico produrre alcuni materiali di formazione per mostrarlo.
Non solo log web
Ci piacerebbe vedere pwnSpoof generare tutti i tipi di log di threat hunting, come i log di audit di Office365 per SharePoint, OneDrive e AzureAD
Blackhat Arsenal
Abbiamo inviato pwnSpoof a Blackhat Arsenal per la valutazione e sarebbe FANTASTICO dimostrarlo al Blackhat London di quest'anno (2021).
Perché non contattarci con altre idee, o contribuire al progetto
Questo prodotto include dati IP2Location LITE disponibili su https://lite.ip2location.com