
Um script Python que pode detectar e analisar o tráfego de rede relacionado ao loki-bot (malware). Este script pode ser útil para analistas de DFIR e pesquisadores de segurança que desejam saber quais dados estão sendo exfiltrados para o C2, rastreamento de bot, etc...
Um script em Python que pode detectar e analisar o tráfego de rede relacionado ao loki-bot (malware) entre um host comprometido e um servidor C2. Este script pode ser útil para analistas de DFIR e pesquisadores de segurança que desejam saber quais dados estão sendo exfiltrados para o C2, rastreamento de bot, etc...
Este script pode tanto farejar a rede diretamente (sem switch) quanto ler um PCAP de tráfego de rede (usando --pcap $pcap_file). Quando o script detecta tráfego de rede relacionado ao loki-bot, ele exibe os dados contidos nos pacotes na tela em formato JSON.
Alguns dos pacotes contêm dados sendo exfiltrados que estão comprimidos com aPLib. O script irá descomprimir esses dados e exibi-los na tela, mas saiba que há processamento adicional que não foi incorporado neste script... AINDA. Dito isso, é importante que você também baixe o script aplib.py e o mantenha no mesmo diretório que loki-parse.py. Este script é necessário para que o loki-parse seja executado com sucesso.
Finalmente, há um problema com o código usado para farejar tráfego de rede onde a porção de dados do pacote pode ser cortada. Parece estar relacionado a como o scapy analisa o tráfego. Isso provavelmente acontecerá com pacotes maiores que têm dados comprimidos. Se isso acontecer, a seguinte chave de dicionário será criada:
Decompressed Application/Credential Data': 'ERROR: Incomplete Packet Detected
Este problema não parece ocorrer dentro de PCAPs salvos, então, se você receber este erro, tente salvar o tráfego de rede em um arquivo pcap e executar novamente o loki-parse no pcap.
Se o script conseguir descomprimir com sucesso os dados dentro do pacote, esses dados são simplesmente exibidos na tela (não em formato JSON). Pretendo resolver isso em versões futuras.
Eu forneci o loki-bot_network_traffic.pcap como um exemplo de pcap para você brincar.
$ sudo ./loki_parse.py
Farejando PCAPs da rede
{
"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"
}
}