
एक python script जो loki-bot (malware) से संबंधित network traffic का पता लगा सकती है और उसे parse कर सकती है। यह script DFIR analysts और security researchers के लिए उपयोगी हो सकती है, जो यह जानना चाहते हैं कि C2 को कौन-सा data exfiltrated किया जा रहा है, bot tracking, आदि...
एक पायथन स्क्रिप्ट जो किसी समझौता किए गए होस्ट (compromised host) और C2 सर्वर के बीच loki-bot (मैलवेयर) से संबंधित नेटवर्क ट्रैफ़िक का पता लगा सकती है और उसे पार्स कर सकती है। यह स्क्रिप्ट DFIR विश्लेषकों और सुरक्षा शोधकर्ताओं के लिए सहायक हो सकती है जो यह जानना चाहते हैं कि C2 को कौन सा डेटा बाहर भेजा (exfiltrated) जा रहा है, बॉट ट्रैकिंग, आदि...
यह स्क्रिप्ट या तो सीधे वायर को स्निफ़ कर सकती है (बिना स्विच के) या नेटवर्क ट्रैफ़िक के PCAP को पढ़ सकती है (--pcap $pcap_file का उपयोग करके)। जब स्क्रिप्ट loki-bot से संबंधित नेटवर्क ट्रैफ़िक का पता लगाती है, तो यह पैकेट्स में मौजूद डेटा को स्क्रीन पर JSON प्रारूप में प्रदर्शित कर देती है।
कुछ पैकेट्स में बाहर भेजा जा रहा (exfiltrated) डेटा होता है जो aPLib से कंप्रेस किया गया होता है। स्क्रिप्ट उस डेटा को डीकंप्रेस करके आपकी स्क्रीन पर प्रदर्शित करेगी, लेकिन ध्यान रखें कि कुछ अतिरिक्त प्रोसेसिंग है जिसे इस स्क्रिप्ट में शामिल नहीं किया गया है...अभी तक (YET)। यह कहने का तात्पर्य यह है कि आपके लिए aplib.py स्क्रिप्ट को भी डाउनलोड करना और उसे loki-parse.py के समान निर्देशिका में रखना महत्वपूर्ण है। loki-parse को सफलतापूर्वक चलाने के लिए यह स्क्रिप्ट आवश्यक है।
अंत में, नेटवर्क ट्रैफ़िक स्निफ़ करने के लिए उपयोग किए जाने वाले कोड में एक समस्या है जिसमें पैकेट का डेटा भाग कट सकता है। यह संभवतः इस बात से संबंधित है कि scapy ट्रैफ़िक को कैसे पार्स करता है। यह संभावना उन बड़े पैकेट्स के साथ होती है जिनमें कंप्रेस किया हुआ डेटा होता है। यदि ऐसा होता है, तो निम्नलिखित डिक्शनरी कुंजी बनाई जाएगी:
Decompressed Application/Credential Data': 'ERROR: Incomplete Packet Detected
यह समस्या सहेजे गए PCAP के भीतर नहीं होती प्रतीत होती है, इसलिए यदि आपको यह त्रुटि मिलती है, तो नेटवर्क ट्रैफ़िक को pcap फ़ाइल में सहेजने का प्रयास करें और loki-parse को pcap पर फिर से चलाएँ।
यदि स्क्रिप्ट पैकेट के भीतर डेटा को सफलतापूर्वक डीकंप्रेस कर पाती है, तो यह डेटा सीधे स्क्रीन पर प्रदर्शित किया जाता है (JSON प्रारूप में नहीं)। मैं इसे बाद के संस्करणों में ठीक करने की योजना बना रहा हूँ।
मैंने आपके प्रयोग के लिए एक उदाहरण pcap के रूप में loki-bot_network_traffic.pcap प्रदान किया है।
$ sudo ./loki_parse.py
वायर से PCAP स्निफ़ किया जा रहा है
{
"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"
}
}