-
Notifications
You must be signed in to change notification settings - Fork 1
Purple Team ptBR
Idioma: Português (pt-BR) | English: Purple-Team
Os módulos de purple team no IXF geram artefatos de detecção, analisam tráfego capturado e produzem regras para IDS/IPS em ambientes OT/ICS. Eles fazem a ponte entre a avaliação ofensiva e o monitoramento defensivo.
- Analisador PCAP Modbus
- Gerador de Regras Suricata para OT
- Gerador de Regras Zeek para Modbus
- Fluxo de Trabalho Combinado
Analisa tráfego Modbus/TCP capturado em busca de operações de escrita não autorizadas, padrões de reconhecimento e uso anômalo de function codes.
Caminho: assessment/detection/modbus_pcap_analyzer
# No segmento de rede que hospeda o CLP (Linux/Mac)
tcpdump -i eth0 -w /tmp/modbus_capture.pcap 'tcp port 502'
# Windows com Wireshark CLI
tshark -i "Ethernet" -w C:\tmp\modbus_capture.pcap -f "tcp port 502"
# Ou usar captura passiva MiTM do IXF
ixf > use assessment/lateral/modbus_mitm_inline
ixf (ModbusMiTM) > set TARGET 192.168.1.10
ixf (ModbusMiTM) > set simulate false
ixf (ModbusMiTM) > run # Registra todos os frames Modbus - sem injeçãoixf > use assessment/detection/modbus_pcap_analyzer
ixf (ModbusPCAP) > set PCAP_FILE /tmp/modbus_capture.pcap
ixf (ModbusPCAP) > set OUTPUT_JSON /tmp/analysis.json
ixf (ModbusPCAP) > run
[*] Analyzing Modbus PCAP: /tmp/modbus_capture.pcap
[+] Parsed 847 Modbus transactions
Summary:
Total transactions: 847
Unique source IPs: 3
Write operations: 12
DANGEROUS operations: 4 <- FC5/6/15/16
Recon operations: 2 <- FC43/FC17
[!] ALERT: 4 DANGEROUS Modbus write operations detected
Source Destination FC Name Reg Flag
10.0.1.100 10.0.1.10 16 Write Multiple Regs 100 [DANGEROUS]
10.0.1.100 10.0.1.10 5 Write Single Coil 1 [DANGEROUS]
10.0.1.200 10.0.1.10 43 Read Device ID - [RECON]
10.0.1.200 10.0.1.10 17 Report Server ID - [RECON]
[+] JSON report saved: /tmp/analysis.json{
"summary": {
"total_transactions": 847,
"unique_src_ips": ["10.0.1.100", "10.0.1.50", "10.0.1.200"],
"write_ops": 12,
"dangerous_ops": 4,
"recon_ops": 2
},
"dangerous_transactions": [
{
"src": "10.0.1.100", "dst": "10.0.1.10",
"fc": 16, "fc_name": "Write Multiple Regs",
"register": 100, "flag": "DANGEROUS"
}
]
}Gera regras Suricata IDS para detecção de anomalias em protocolos OT/ICS, incluindo assinaturas baseadas em CVE para malware ICS conhecido.
Caminho: assessment/detection/suricata_ot_rules_generator
ixf > use assessment/detection/suricata_ot_rules_generator
ixf (SuricataOT) > set OUTPUT_FILE /tmp/ics_rules.rules
ixf (SuricataOT) > set PROTOCOLS modbus,dnp3,bacnet,enip
ixf (SuricataOT) > set INCLUDE_CVE_RULES true
ixf (SuricataOT) > run
[*] Generating Suricata OT/ICS rules
[+] Modbus rules: 18 (write ops, function code abuse, broadcast)
[+] DNP3 rules: 9 (unsolicited response, unauthorized control)
[+] BACnet rules: 11 (who-is flood, foreign device abuse)
[+] EtherNet/IP: 8 (identity object abuse, forward open flood)
[+] CVE-based rules: 14 (TRITON, FrostyGoop, INCONTROLLER signatures)
[+] Total rules: 60
[+] Rules written to: /tmp/ics_rules.rules
[*] Test against capture: suricata -r /tmp/modbus_capture.pcap -S /tmp/ics_rules.rules -l /tmp/suricata_logs/# Modbus Write Multiple Registers (FC16) - escrita não autorizada
alert tcp any any -> any 502 (
msg:"ICS/OT Modbus FC16 Write Multiple Registers - Potential Unauthorized Write";
content:"|00 00|"; depth:2; offset:2;
byte_test:1,=,16,7;
flow:established,to_server;
classtype:attempted-admin;
sid:9100016; rev:1;
)
# Testar contra PCAP
suricata -r /tmp/modbus_capture.pcap -S /tmp/ics_rules.rules -l /tmp/suricata_logs/
# Interface ao vivo
suricata -i eth0 -S /tmp/ics_rules.rules -l /var/log/suricata/Gera scripts Zeek/Bro para análise de tráfego Modbus/TCP e alertas comportamentais.
Caminho: assessment/detection/modbus_zeek_rule_generator
ixf > use assessment/detection/modbus_zeek_rule_generator
ixf (ModbusZeek) > set OUTPUT_DIR /tmp/zeek_scripts
ixf (ModbusZeek) > set ALERT_WRITE_OPS true
ixf (ModbusZeek) > set ALERT_BROADCAST true
ixf (ModbusZeek) > set BASELINE_WINDOW 3600
ixf (ModbusZeek) > run
[*] Generating Zeek Modbus analysis scripts
[+] modbus-write-monitor.zeek Alert on FC5/6/15/16 write operations
[+] modbus-broadcast-detect.zeek Detect broadcast unit_id=255 recon
[+] modbus-function-log.zeek Full function code audit log
[+] modbus-anomaly-detect.zeek Statistical baseline deviation (window: 3600s)
[+] Scripts saved to: /tmp/zeek_scripts/
[*] Run: zeek -i eth0 /tmp/zeek_scripts/
[*] Replay: zeek -r /tmp/modbus_capture.pcap /tmp/zeek_scripts/# modbus-write-monitor.zeek
# Generated by IXF Modbus Zeek Rule Generator
event modbus_write_registers(c: connection, headers: ModbusHeaders,
start_address: count, registers: ModbusRegisters)
{
local msg = fmt("Modbus FC16 Write: src=%s dst=%s start=%d count=%d",
c$id$orig_h, c$id$resp_h,
start_address, |registers|);
NOTICE([$note=Modbus::WriteOperation, $msg=msg,
$conn=c, $identifier=cat(c$id$orig_h)]);
}Um engajamento típico de purple team em uma avaliação OT:
# 1 hora de operações normais
tcpdump -i eth0 -w /tmp/baseline.pcap 'tcp port 502' &
sleep 3600
kill %1ixf > use exploits/protocols/modbus_write_multiple_registers
ixf (ModbusWriteMultiple) > set TARGET 192.168.1.10
ixf (ModbusWriteMultiple) > set simulate true
ixf (ModbusWriteMultiple) > run
# Anotar os FC e valores de registrador utilizadosixf > use assessment/detection/suricata_ot_rules_generator
ixf (SuricataOT) > set OUTPUT_FILE /tmp/ics_detection.rules
ixf (SuricataOT) > set PROTOCOLS modbus
ixf (SuricataOT) > runsuricata -r /tmp/baseline.pcap -S /tmp/ics_detection.rules -l /tmp/baseline_results/
# Esperado: 0 alertas para tráfego normal# Capturar enquanto executa módulo ao vivo no lab
tcpdump -i eth0 -w /tmp/attack_session.pcap 'tcp port 502'
# ... executar módulo ao vivo contra o Conpot ...
suricata -r /tmp/attack_session.pcap -S /tmp/ics_detection.rules -l /tmp/attack_results/
# Esperado: alertas disparados em escritas FC16ixf > use assessment/detection/modbus_pcap_analyzer
ixf (ModbusPCAP) > set PCAP_FILE /tmp/attack_session.pcap
ixf (ModbusPCAP) > run
# Comparar operações perigosas com o cenário de ataque| Módulo | Caminho | Direção | Saída |
|---|---|---|---|
modbus_pcap_analyzer |
assessment/detection/ |
Azul (Blue) | Relatório JSON |
suricata_ot_rules_generator |
assessment/detection/ |
Azul (Blue) | Arquivo .rules |
modbus_zeek_rule_generator |
assessment/detection/ |
Azul (Blue) | Scripts .zeek |
conpot_integration |
assessment/detection/ |
Ambos | Detecção de honeypot / alvo de lab |
Aviso Legal: O uso desta ferramenta é restrito a ambientes autorizados, laboratórios isolados e atividades legítimas de pesquisa e avaliação de segurança. A utilização não autorizada contra sistemas reais constitui crime federal. Os autores e a União Geek não assumem qualquer responsabilidade por uso indevido.
Autor: André Henrique (@mrhenrike) | União Geek | https://uniaogeek.com.br/