
Dépôt Pwnspoof
pwnSpoof (de Punk Security) génère des fichiers journaux falsifiés réalistes pour les serveurs web courants avec des scénarios d'attaque personnalisables.
Chaque lot de journaux est unique et entièrement personnalisable, ce qui le rend parfait pour générer des scénarios CTF et pour des séries d'entraînement.
Pouvez-vous trouver la session de l'attaquant et reconstituer le tableau de l'incident ?
pwnSpoof a été créé à la suite d'un exercice de formation en threat hunting Punk Security livré pour un client. L'exercice consistait à utiliser un outil d'analyse de journaux tel que Splunk (d'autres outils d'analyse de journaux sont disponibles) et des journaux IIS pour trouver des attaques par force brute sur les connexions et des injections de commandes.
L'idée derrière l'application pwnSpoof est de :
Une fois que vous avez créé un ensemble de journaux, l'idée est de les charger dans Splunk et d'utiliser diverses techniques pour répondre aux questions suivantes ;
Ce qui suit explique comment commencer avec pwnSpoof
pwnSpoof est écrit en python et est testé avec python3. Aucun module supplémentaire n'est nécessaire, nous utilisons uniquement la bibliothèque standard.
Si vous obtenez le message d'erreur suivant, veuillez spécifier python3 lors de l'exécution de pwnSpoof. Python2 n'est pas supporté.
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 to emulate
options:
-h, --help show this help message and exit
--out OUT Output file (default: pwnspoof.log)
--iocs Do you want to know the attackers iocs for easier searching? (default: False)
log generator settings:
--log-start-date LOG_START_DATE
Initial start of logs, in the format YYYYMMDD i.e. "20210727"
--log-end-date LOG_END_DATE
End date for logs, in the format YYYYMMDD i.e. "20210727"
--session-count SESSION_COUNT
Number of legitimate sessions to spoof (default: 2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
Max number of legitimate sessions per user (default: 3)
--server-fqdn SERVER_FQDN
Override the emulated web apps default fqdn
--server-ip SERVER_IP
Override the emulated web apps randomised IP
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
Server to spoof (default: IIS)
--uri-file URI_FILE File containing web uris to override defaults, do not include extensions
--noise-file NOISE_FILE
File containing noise uris to override defaults, include extensions
attack settings:
--spoofed-attacks SPOOFED_ATTACKS
Number of attacker sequences to spoof (default: 1)
--attack-type {bruteforce,command_injection}
Number of attacker sequences to spoof (default: bruteforce)
--attacker-geo ATTACKER_GEO
Set the attackers geo by 2 letter region. Use RD for random (default: RD)
--attacker-user-agent ATTACKER_USER_AGENT
Set the attackers user-agent. Use RD for random (default: RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
Additional attackers ip addresses, comma separated (default: ). If you wish to exclusively use this list set spoofed-attacks to 0
L'exemple suivant créera un ensemble de journaux IIS pour une attaque par force brute contre pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
L'exemple suivant créera un ensemble de journaux NGINX pour une injection de commandes contre pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
L'exemple suivant créera un ensemble de journaux avec 5000 sessions de routine et 3 sessions d'attaque
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
L'exemple suivant créera un ensemble de journaux et affichera les adresses IP des attaquants
python pwnspoof.py banking --spoofed-attacks 3 --iocs
L'exemple suivant créera un ensemble de journaux et utilisera exclusivement les adresses IP spécifiées
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof est conçu pour produire des journaux d'attaques web authentiques et il le fait très bien. Pour l'instant, nous nous concentrons sur la réorganisation du code, la mise en place de notre suite de tests et la première publication sur PyPi, mais nous avons d'immenses ambitions pour pwnSpoof.
Ajout d'applications web supplémentaires au-delà du secteur bancaire pour apporter plus de variété aux journaux
Ajout d'attaques web supplémentaires et plus dynamiques
Vidéos de formation !
pwnSpoof a été conçu pour être un excellent outil de formation pour l'équipe bleue, il est donc logique de produire du matériel de formation pour le mettre en valeur.
Pas seulement des journaux web
Nous aimerions voir pwnSpoof générer toutes sortes de journaux de threat hunting, comme les journaux d'audit Office365 pour Sharepoint, Onedrive et AzureAD
Blackhat Arsenal
Nous avons soumis pwnSpoof à Blackhat Arsenal pour examen et ce serait GÉNIAL de le présenter à Blackhat London cette année (2021).
Pourquoi ne pas nous contacter avec des idées supplémentaires, ou contribuer au projet
Ce produit inclut des données IP2Location LITE disponibles sur https://lite.ip2location.com