pwnSpoof Crear Registros Falsos Realistas de Ataques Web
pwnSpoof Crear Registros Falsos Realistas de Ataques Web

pwnSpoof: Crear Registros Falsos Realistas de Ataques Web

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 series de entrenamiento.

¿Puedes encontrar la sesión del atacante y construir la imagen del incidente?

Patrones realistas con pwnSpoof
Patrones realistas con pwnSpoof

Acerca del Proyecto

pwnSpoof se creó a raíz de un ejercicio de formación sobre caza de amenazas que Punk Security impartió para un cliente. El ejercicio de formación consistía en utilizar una herramienta de análisis de registros como Splunk (existen otras herramientas de análisis de registros) y los registros de 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;

  • Proporcionar un entorno de entrenamiento rápido estilo CTF
  • Crear registros únicos en cada ejecución
  • Probar la caza de amenazas en los registros de IIS, Apache y NGINX

Una vez creado un conjunto de registros, la idea es cargarlos en Splunk y utilizar varias técnicas para responder a las siguientes preguntas;

  • ¿Cuál fue la dirección IP y el user_agent del atacante?
  • ¿Se autenticó el atacante y, si es así, con qué cuenta?
  • ¿Dónde estaba la geolocalización del atacante?
  • ¿Cuándo se produjo el ataque?
  • ¿Qué tipo de ataque fue?
  • ¿Qué ocurrió durante el ataque?
  • ¿Qué artefactos pueden quedar en el servidor?
  • ¿Qué medidas se pueden tomar para remediarlo?

Instalación de pwnSpoof

A continuación, se explica cómo empezar con pwnSpoof

Requisitos previos

pwnSpoof está escrito en python y está probado con python3. No se necesitan módulos adicionales, sólo utilizamos la biblioteca estándar.

Si obtienes el siguiente mensaje de error, por favor especifica python3 cuando ejecutes pwnSpoof. Python2 no está soportado.

  File "pwnspoof.py", line 176
    print("{:6.2f}% ".format(y * x), end="\r", flush=True)
                                        ^
SyntaxError: invalid syntax

Instalación

  • Clonar en Git el repo de pwnSpoof
git clone https://github.com/punk-security/pwnspoof
  • Cambiar el directorio a pwnSpoof
cd pwnspoof
  • Ejecuta pwnSpoof
python pwnspoof.py --help
Comando de ayuda de pwnSpoof
Comando de ayuda de pwnSpoof

Uso

Modificadores disponibles para pwnSpoof:

positional arguments:
  {banking,wordpress,generic}
                        App to emulate

optional arguments:
  -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}
                        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)

Ejemplos

El siguiente ejemplo creará un conjunto de registros de IIS para la 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

Realicemos este ejemplo contra un sitio web vulnerable:

python3 pwnspoof.py banking --server-fqdn test.php.com --attack-type bruteforce --server-type IIS --out iis.log
Generar registros IIS falsos
Generar registros IIS falsos

Como se puede ver a continuación se ha generado todos los registros en orden que parece muy real.

Logs falsos de ataque web
Logs falsos de ataque web

El siguiente ejemplo creará un conjunto de registros de NGINX para command_injection contra pwnedbank.co.uk.

python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
Registros NGINX falsos con pwnSpoof
Registros NGINX falsos con pwnSpoof

El siguiente ejemplo creará un conjunto de registros con 5000 sesiones de rutina 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 
Genera dirección IP de atacantes
Genera dirección IP de atacantes

Demostración

Hoja de Ruta

pwnSpoof está construido para producir registros de ataques web auténticos y lo hace muy bien. Ahora mismo está centrados en refactorizar el código, construir un conjunto de pruebas y conseguir el primer empuje a PyPi, pero hay grandes ambiciones para pwnSpoof.

Próximamente

Añadir aplicaciones web adicionales más allá de banking para proporcionar variedad adicional a los registros

  • Medios de comunicación social
  • WordPress
  • Comercio electrónico

Añadir ataques web adicionales y más dinámicos

  • OWASP TOP 10 completo
  • Codificación de payload personalizable
  • Ataques multisesión
  • Ofuscación

Aspiraciones no programadas

¡Videos de entrenamiento!

pwnSpoof fue construido para ser una gran herramienta para la formación del equipo azul por lo que sólo tiene sentido para producir algunos materiales de formación para mostrarlo.

  • Cómo ingerir registros en varios analizadores de registros (Splunk, Elastic, Open Disto, Sentinel)
  • Cómo utilizar el poder de REGEX para pivotar alrededor de los datos

No sólo weblogs

Hay deseos de ver pwnSpoof generando todo tipo de registros de caza de amenazas, como los registros de auditoría de Office365 para Sharepoint, Onedrive y AzureAD

Blackhat Arsenal

pwnSpoof ha sido presentado a Blackhat Arsenal para su consideración y sería ASOMBROSO su demostración en Blackhat Londres este año (2021).

https://github.com/punk-security/pwnspoof

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda