
Un script en Python que puede detectar y analizar el tráfico de red relacionado con loki-bot (malware). Este script puede ser útil para analistas de DFIR e investigadores de seguridad que quieran saber qué datos se están exfiltrando al C2, seguimiento de bots, etc...
Un script de Python que puede detectar y analizar el tráfico de red relacionado con loki-bot (malware) entre un host comprometido y un servidor C2. Este script puede ser útil para analistas de DFIR e investigadores de seguridad que quieran saber qué datos se están exfiltrationando al C2, el seguimiento del bot, etc...
Este script puede capturar el tráfico directamente del cable de red (sin switch) o leer un PCAP de tráfico de red (usando --pcap $pcap_file). Cuando el script detecta tráfico de red relacionado con loki-bot, volcará los datos contenidos en los paquetes a la pantalla en formato JSON.
Algunos de los paquetes contienen datos exfiltrados que están comprimidos con aPLib. El script descomprimirá esos datos y los mostrará en tu pantalla, pero ten en cuenta que hay procesamiento adicional que no se ha incorporado a este script... TODAVÍA. Dicho esto, es importante que también descargues el script aplib.py y lo mantengas en el mismo directorio que loki-parse.py. Este script es necesario para que loki-parse se ejecute correctamente.
Finalmente, hay un problema con el código utilizado para capturar el tráfico de red, donde la porción de datos del paquete puede cortarse. Parece estar relacionado con la forma en que scapy analiza el tráfico. Esto probablemente ocurrirá con paquetes más grandes que contengan datos comprimidos. Si esto ocurre, se creará la siguiente clave de diccionario:
Decompressed Application/Credential Data': 'ERROR: Incomplete Packet Detected
Este problema no parece ocurrir con los PCAP guardados, así que si recibes este error, intenta guardar el tráfico de red en un archivo pcap y vuelve a ejecutar loki-parse sobre el pcap.
Si el script es capaz de descomprimir correctamente los datos dentro del paquete, estos datos simplemente se muestran en pantalla (no en formato JSON). Planeo abordar esto en versiones posteriores.
He proporcionado loki-bot_network_traffic.pcap como un pcap de ejemplo para que experimentes.
$ sudo ./loki_parse.py
Capturando PCAPs de la red
{
"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"
}
}