
Repositório Pwnspoof
pwnSpoof (da Punk Security) gera ficheiros de log falsificados realistas para servidores web comuns com cenários de ataque personalizáveis.
Cada pacote de logs é único e completamente personalizável, tornando-o perfeito para gerar cenários CTF e para séries de treino.
Consegue encontrar a sessão do atacante e montar o quadro do incidente?
pwnSpoof foi criado na sequência de um exercício de treino de threat hunting que a Punk Security entregou para um cliente. O exercício de treino consistia em usar uma ferramenta de análise de logs como o Splunk (outras ferramentas de análise de logs estão disponíveis) e logs do IIS para encontrar ataques de brute-force de login e injeções de comandos.
A ideia por trás da aplicação pwnSpoof é;
Depois de criar um conjunto de logs, a ideia é carregá-los no Splunk e usar várias técnicas para responder às seguintes perguntas;
O seguinte explica como começar com o pwnSpoof
pwnSpoof é escrito em python e testado com python3. Não são necessários módulos extra, usamos apenas a biblioteca padrão.
Se receber a seguinte mensagem de erro, especifique python3 ao executar o pwnSpoof. Python2 não é suportado.
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 posicionais:
{banking,wordpress,generic}
App para emular
opções:
-h, --help mostra esta mensagem de ajuda e sai
--out OUT Ficheiro de saída (padrão: pwnspoof.log)
--iocs Quer saber os iocs do atacante para pesquisa mais fácil? (padrão: False)
configurações do gerador de logs:
--log-start-date LOG_START_DATE
Data inicial dos logs, no formato YYYYMMDD i.e. "20210727"
--log-end-date LOG_END_DATE
Data final dos logs, no formato YYYYMMDD i.e. "20210727"
--session-count SESSION_COUNT
Número de sessões legítimas a falsificar (padrão: 2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
Número máximo de sessões legítimas por utilizador (padrão: 3)
--server-fqdn SERVER_FQDN
Substituir o fqdn padrão da web app emulada
--server-ip SERVER_IP
Substituir o IP aleatório da web app emulada
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
Servidor a falsificar (padrão: IIS)
--uri-file URI_FILE Ficheiro contendo URIs web para substituir os padrões, não incluir extensões
--noise-file NOISE_FILE
Ficheiro contendo URIs de ruído para substituir os padrões, incluir extensões
configurações de ataque:
--spoofed-attacks SPOOFED_ATTACKS
Número de sequências de ataque a falsificar (padrão: 1)
--attack-type {bruteforce,command_injection}
Número de sequências de ataque a falsificar (padrão: bruteforce)
--attacker-geo ATTACKER_GEO
Definir a geo do atacante por região de 2 letras. Use RD para aleatório (padrão: RD)
--attacker-user-agent ATTACKER_USER_AGENT
Definir o user-agent do atacante. Use RD para aleatório (padrão: RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
Endereços IP adicionais do atacante, separados por vírgulas (padrão: ). Se desejar usar exclusivamente esta lista, defina spoofed-attacks para 0
O seguinte exemplo criará um conjunto de logs IIS para brute-force contra pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
O seguinte exemplo criará um conjunto de logs NGINX para command_injection contra pwnedbank.co.uk.
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
O seguinte exemplo criará um conjunto de logs com 5000 sessões de rotina e 3 sessões de ataque
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
O seguinte exemplo criará um conjunto de logs e exibirá os endereços IP do atacante
python pwnspoof.py banking --spoofed-attacks 3 --iocs
O seguinte exemplo criará um conjunto de logs e usará exclusivamente os endereços IP especificados
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof foi construído para produzir logs de ataque web autênticos e faz isso muito bem. Agora estamos focados em refatorar o código, construir o nosso conjunto de testes e fazer o primeiro push para o PyPi, mas temos enormes ambições para o pwnSpoof.
Adicionar mais webapps além de banking para fornecer variedade extra aos logs
Adicionar ataques web adicionais e mais dinâmicos
Vídeos de Treino!
pwnSpoof foi construído para ser uma ótima ferramenta de treino para a blue team, por isso faz sentido produzir alguns materiais de treino para o mostrar.
Não apenas logs web
Adoraríamos ver o pwnSpoof a gerar todo o tipo de logs de threat hunting, como logs de auditoria do Office365 para Sharepoint, Onedrive e AzureAD
Blackhat Arsenal
Submetemos o pwnSpoof ao Blackhat Arsenal para consideração e seria INCRÍVEL demonstrá-lo no Blackhat London este ano (2021).
Porque não nos contacta com ideias extra, ou adiciona ao projeto
Este produto inclui dados IP2Location LITE disponíveis em https://lite.ip2location.com