
Uno script Python in grado di rilevare e analizzare il traffico di rete correlato a loki-bot (malware). Questo script può essere utile ad analisti DFIR e ricercatori di sicurezza che vogliono sapere quali dati vengono esfiltrati verso il C2, il tracciamento dei bot, ecc...
Uno script Python in grado di rilevare e analizzare il traffico di rete relativo a loki-bot (malware) tra un host compromesso e un server C2. Questo script può essere utile ad analisti DFIR e ricercatori di sicurezza che vogliono sapere quali dati vengono esfiltrati verso il C2, per il tracciamento del bot, ecc...
Questo script può catturare il traffico direttamente dalla rete (senza switch) oppure leggere un PCAP di traffico di rete (usando --pcap $pcap_file). Quando lo script rileva traffico di rete relativo a loki-bot, mostra a schermo i dati contenuti nei pacchetti in formato JSON.
Alcuni pacchetti contengono dati esfiltrati compressi con aPLib. Lo script decomprime questi dati e li visualizza a schermo, ma sappiate che c'è un'ulteriore elaborazione che non è stata incorporata in questo script... ANCORA. Detto questo, è importante anche scaricare lo script aplib.py e tenerlo nella stessa directory di loki-parse.py. Questo script è necessario affinché loki-parse venga eseguito correttamente.
Infine, c'è un problema nel codice usato per la cattura del traffico di rete: la porzione di dati del pacchetto può essere troncata. Sembra essere correlato al modo in cui scapy analizza il traffico. Questo accade probabilmente con i pacchetti più grandi che contengono dati compressi. Se ciò accade, viene creata la seguente chiave del dizionario:
Decompressed Application/Credential Data': 'ERROR: Incomplete Packet Detected
Questo problema non sembra verificarsi con i PCAP salvati, quindi, se ricevi questo errore, prova a salvare il traffico di rete in un file pcap e a rieseguire loki-parse sul pcap.
Se lo script riesce a decomprimere correttamente i dati contenuti nel pacchetto, questi vengono semplicemente mostrati a schermo (non in formato JSON). Ho intenzione di affrontare questo aspetto nelle versioni successive.
Ho fornito loki-bot_network_traffic.pcap come pcap di esempio con cui sperimentare.
$ sudo ./loki_parse.py
Sniffing PCAPS from the wire
{
"Compromised Host/User Data": {
"Compressed Application/Credential Data Size (Bytes)": 2310,
"Compression Type": 0,
"Data Compressed": true,
"Encoded": false,
"Encoding": 0,
"Original Application/Credential Data Size (Bytes)": 8545
},
"Compromised Host/User Description": {
"64bit OS": false,
"Built-In Admin": true,
"Domain Hostname": "REMWorkstation",
"Hostname": "REMWORKSTATION",
"Local Admin": true,
"Operating System": "Windows 8.1 Workstation",
"Screen Resolution": "3440x1440",
"User Name": "REM"
},
"Malware Artifacts/IOCs": {
"Binary ID": "XXXXX11111",
"Loki-Bot Version": 1.8,
"Mutex": "B7E1C2CC98066B250DDB2123",
"Potential Hidden File [Hash Database]": "%APPDATA%\\C98066\\6B250D.hdb",
"Potential Hidden File [Keylogger Database]": "%APPDATA%\\C98066\\6B250D.kdb",
"Potential Hidden File [Lock File]": "%APPDATA%\\C98066\\6B250D.lck",
"Potential Hidden File [Malware Exe]": "%APPDATA%\\C98066\\6B250D.exe",
"Unique Key": "g5cy2",
"User-Agent String": "Mozilla/4.08 (Charon; Inferno)"
},
"Network": {
"Data Transmission Time": "2017-04-27T15:03:20.921806",
"Destination Host": "185.141.27.187",
"Destination IP": "185.141.27.187",
"Destination Port": 80,
"First Transmission": true,
"HTTP Method": "POST",
"HTTP URI": "/danielsden/ver.php",
"Source IP": "172.16.0.130",
"Source Port": 49344,
"Traffic Purpose": "Exfiltrate Application/Credential Data"
}
}