
Repositorio de Pwnspoof
pwnSpoof (de Punk Security) genera archivos de registro falsos realistas para servidores web comunes con escenarios de ataque personalizables.
Cada paquete de registros es único y completamente personalizable, lo que lo hace perfecto para generar escenarios CTF y para series de entrenamiento.
¿Puedes encontrar la sesión del atacante y reconstruir el panorama del incidente?
pwnSpoof fue creado a raíz de un ejercicio de entrenamiento de caza de amenazas que Punk Security impartió para un cliente. El ejercicio de entrenamiento consistía en usar una herramienta de análisis de registros como Splunk (hay otras herramientas de análisis de registros disponibles) y registros IIS para encontrar ataques de fuerza bruta de inicio de sesión e inyecciones de comandos.
La idea detrás de la aplicación pwnSpoof es:
Una vez que hayas creado un conjunto de registros, la idea es cargarlos en Splunk y usar varias técnicas para responder las siguientes preguntas:
Lo siguiente explicará cómo empezar con pwnSpoof
pwnSpoof está escrito en Python y se prueba con Python3. No se necesitan módulos adicionales, solo usamos la biblioteca estándar.
Si recibes el siguiente mensaje de error, especifica python3 al ejecutar pwnSpoof. Python2 no es compatible.
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
argumentos posicionales:
{banking,wordpress,generic}
Aplicación a emular
opciones:
-h, --help muestra este mensaje de ayuda y sale
--out OUT Archivo de salida (por defecto: pwnspoof.log)
--iocs ¿Quieres conocer los IOCs del atacante para búsquedas más fáciles? (por defecto: False)
configuración del generador de registros:
--log-start-date LOG_START_DATE
Fecha de inicio de los registros, en formato AAAAMMDD, ej. "20210727"
--log-end-date LOG_END_DATE
Fecha de fin de los registros, en formato AAAAMMDD, ej. "20210727"
--session-count SESSION_COUNT
Número de sesiones legítimas a falsear (por defecto: 2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
Número máximo de sesiones legítimas por usuario (por defecto: 3)
--server-fqdn SERVER_FQDN
Sobrescribir el FQDN predeterminado de la aplicación web emulada
--server-ip SERVER_IP
Sobrescribir la IP aleatoria de la aplicación web emulada
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
Servidor a falsear (por defecto: IIS)
--uri-file URI_FILE Archivo que contiene URIs web para sobrescribir los valores predeterminados, no incluir extensiones
--noise-file NOISE_FILE
Archivo que contiene URIs de ruido para sobrescribir los valores predeterminados, incluir extensiones
configuración de ataque:
--spoofed-attacks SPOOFED_ATTACKS
Número de secuencias de atacante a falsear (por defecto: 1)
--attack-type {bruteforce,command_injection}
Número de secuencias de atacante a falsear (por defecto: bruteforce)
--attacker-geo ATTACKER_GEO
Establecer la geolocalización del atacante mediante código de región de 2 letras. Usar RD para aleatorio (por defecto: RD)
--attacker-user-agent ATTACKER_USER_AGENT
Establecer el user-agent del atacante. Usar RD para aleatorio (por defecto: RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
Direcciones IP adicionales del atacante, separadas por comas (por defecto: ). Si deseas usar exclusivamente esta lista, establece spoofed-attacks en 0
El siguiente ejemplo creará un conjunto de registros IIS para fuerza bruta contra pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
El siguiente ejemplo creará un conjunto de registros NGINX para inyección de comandos contra pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
El siguiente ejemplo creará un conjunto de registros con 5000 sesiones rutinarias y 3 sesiones de ataque
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
El siguiente ejemplo creará un conjunto de registros y mostrará las direcciones IP de los atacantes
python pwnspoof.py banking --spoofed-attacks 3 --iocs
El siguiente ejemplo creará un conjunto de registros y usará exclusivamente las direcciones IP especificadas
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof está construido para producir registros de ataque web auténticos y lo hace realmente bien. Ahora mismo nos centramos en refactorizar el código, desarrollar nuestro conjunto de pruebas y hacer el primer push a PyPi, pero tenemos enormes ambiciones para pwnSpoof.
Añadir aplicaciones web adicionales más allá de banking para proporcionar más variedad a los registros
Añadir ataques web adicionales y más dinámicos
¡Vídeos de entrenamiento!
pwnSpoof fue creado para ser una gran herramienta de entrenamiento para el equipo azul, así que es lógico producir algunos materiales de entrenamiento para mostrarlo.
No solo registros web
Nos encantaría ver a pwnSpoof generando todo tipo de registros de caza de amenazas, como registros de auditoría de Office365 para Sharepoint, Onedrive y AzureAD.
Arsenal de Blackhat
Hemos enviado pwnSpoof a Blackhat Arsenal para su consideración y sería IMPRESIONANTE demostrarlo en Blackhat Londres este año (2021).
¿Por qué no contactarnos con algunas ideas adicionales, o añadir al proyecto?
Este producto incluye datos IP2Location LITE disponibles en https://lite.ip2location.com