pwnSpoof (de Punk Security) genera archivos de registro falsos realistas para servidores web populares con escenarios de ataque personalizables.
Cada paquete de registros es único y totalmente personalizable, lo que lo hace perfecto para generar escenarios CTF y series de entrenamiento.
¿Puedes encontrar la sesión del atacante y crear la imagen del incidente?
sobre el proyecto
pwnSpoof se creó en base a un ejercicio de entrenamiento de caza de amenazas, Punk Security, que se proporcionó a un cliente. El ejercicio de capacitación consistió en utilizar un analizador de protocolos como Splunk (hay otras herramientas de análisis de protocolos disponibles) y registros de IIS para encontrar ataques de fuerza bruta e inyecciones de comandos al iniciar sesión.
La idea detrás de la aplicación pwnSpoof es;
- Proporcionar un entorno de formación rápido al estilo CTF
- Cree registros únicos para cada ejecución
- Pruebe el análisis de amenazas en los registros de IIS, Apache y NGINX
Una vez que haya creado varios registros, es hora de cargarlos en Splunk y usar varias técnicas para responder las siguientes preguntas.
- ¿Cuáles eran la dirección IP y el user_agent del atacante?
- ¿Se ha autenticado el atacante y, de ser así, con qué cuenta?
- ¿Dónde estaba la ubicación del atacante?
- ¿Cuándo ocurrió el ataque?
- ¿Qué tipo de ataque fue ese?
- ¿Qué pasó durante el ataque?
- ¿Qué artefactos pueden permanecer en el servidor?
- ¿Qué pasos se pueden tomar para solucionarlo?
Empezado
Los siguientes son los primeros pasos con pwnSpoof. explicado
requisitos
pwnSpoof está escrito en Python y probado con Python3. No se requieren módulos adicionales, solo usamos la biblioteca estándar.
Si recibe el siguiente mensaje de error, proporcione python3 cuando ejecute pwnSpoof. Python2 no es compatible.
File "pwnspoof.py", line 176print("{:6.2f}% ".format(y * x), end="r", flush=True)^SyntaxError: invalid syntax
instalación
- Git clona el repositorio pwnSpoof
git clone https://github.com/punk-security/pwnspoof
- cambiar el directorio a pwnSpoof
- Ejecute pwnSpoof
python pwnspoof.py --help
propósito de uso
encimera
positional arguments:{banking,wordpress,generic}App to emulateoptional 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_DATEInitial start of logs, in the format YYYYMMDD i.e. "20210727"--log-end-date LOG_END_DATEEnd date for logs, in the format YYYYMMDD i.e. "20210727"--session-count SESSION_COUNTNumber of legitimate sessions to spoof (default: 2000)--max-sessions-per-user MAX_SESSIONS_PER_USERMax number of legitimate sessions per user (default: 3)--server-fqdn SERVER_FQDNOverride the emulated web apps default fqdn--server-ip SERVER_IPOverride 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_FILEFile containing noise uris to override defaults, include extensionsattack settings:--spoofed-attacks SPOOFED_ATTACKSNumber of attacker sequences to spoof (default: 1)--attack-type {bruteforce,command_injection}Number of attacker sequences to spoof (default: bruteforce)--attacker-geo ATTACKER_GEOSet the attackers geo by 2 letter region. Use RD for random (default: RD)--attacker-user-agent ATTACKER_USER_AGENTSet the attackers user-agent. Use RD for random (default: RD)
Ejemplos de
El siguiente ejemplo crea una serie de registros de IIS para Bruteforce 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 crea una serie de registros NGINX para command_injection contra pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
El siguiente ejemplo crea una serie 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 crea una serie de registros e informa las direcciones IP del atacante.
python pwnspoof.py banking --spoofed-attacks 3 --iocs
manifestación
Mapa vial
pwnSpoof está diseñado para crear auténticos registros de ataques web y lo hace realmente bien. En este momento nos estamos enfocando en refactorizar el código, construir nuestro conjunto de pruebas y obtener el primer impulso a PyPi, pero tenemos gigantesco Ambiciones para pwnSpoof.
Próximamente, en breve, pronto
Agregar aplicaciones web adicionales más allá de la banca para agregar variedad a los protocolos
- Medios de comunicación social
- WordPress
- Comercio electrónico
Agregar ataques web adicionales y más dinámicos
- TOP 10 de OWASP completo
- Codificación de carga útil personalizable
- Ataques multisesión
- Ofuscación
Aspiraciones no programadas
Vídeos de formación
pwnSpoof se creó para ser una gran herramienta para capacitar al equipo azul, por lo que solo tiene sentido crear algunos materiales de capacitación para mostrarlo.
- Cómo recopilar registros en varios programas de análisis de registros (Splunk, Elastic, Open Disto, Sentinel)
- Así es como usa las capacidades de REGEX para girar en torno a los datos
No solo weblogs
Estaríamos encantados si pwnSpoof genera todo tipo de registros de búsqueda de amenazas, como registros de auditoría de Office365 para Sharepoint, Onedrive y AzureAD.
Arsenal de Blackhat
Presentamos pwnSpoof para su revisión en Blackhat Arsenal y sería FANTÁSTICO demostrarlo en Blackhat London este año (2021).
¿Por qué no contactarnos con algunas ideas adicionales o agregarlas al proyecto?
Contacto
crédito
- ip2location : Utilizamos la base de datos de países IP2Location LITE para proporcionar direcciones IP geográficamente relevantes.
Este producto contiene datos LITE de IP2Location disponibles en https://lite.ip2location.com