
APT-Hunter विंडोज इवेंट लॉग के लिए एक थ्रेट हंटिंग टूल है जो पर्पल टीम माइंडसेट द्वारा बनाया गया है ताकि विंडोज इवेंट लॉग के समुद्र में छिपे एपीटी मूवमेंट का पता लगाया जा सके और संदिग्ध गतिविधि को उजागर करने में लगने वाले समय को कम किया जा सके।
Windows इवेंट लॉग्स के लिए थ्रेट हंटिंग, जिसे पर्पल-टीम मानसिकता के साथ बनाया गया है।
APT-Hunter, Windows इवेंट लॉग्स के लिए एक थ्रेट हंटिंग टूल है। यह पूर्व-निर्धारित डिटेक्शन नियमों और लॉग आंकड़ों का उपयोग करके बड़ी मात्रा में इवेंट्स में छिपी APT गतिविधि को सामने लाता है, जिससे संदिग्ध व्यवहार को उजागर करने में लगने वाला समय कम हो जाता है। यह विशेष रूप से कॉम्प्रोमाइज़ असेसमेंट के लिए प्रभावी है।
परिणाम एक टाइमलाइन के रूप में लिखे जाते हैं जिसे सीधे Excel, Timeline Explorer, Timesketch और समान टूल्स में विश्लेषित किया जा सकता है, या अंतर्निहित वेब डैशबोर्ड में वैकल्पिक लोकल-LLM ट्राइएज के साथ देखा जा सकता है।
Releases पेज से कंपाइल किए गए बाइनरीज़ डाउनलोड करें, या सोर्स से चलाएँ (Python 3.8+):
git clone https://github.com/ahmedkhlief/APT-Hunter.git
cd APT-Hunter
python3 -m pip install -r requirements.txt
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
-p एक डायरेक्टरी या एकल फ़ाइल स्वीकार करता है। विश्लेषण समाप्त होने पर डैशबोर्ड खोलने के लिए -web जोड़ें।





पूरी सूची के लिए python3 APT-Hunter.py -h चलाएँ। मुख्य विकल्प:
EVTX फ़ाइलों के एक फ़ोल्डर का विश्लेषण करें (लॉग प्रकार स्वतः पहचाने जाते हैं):
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
एक समय-सीमा पर ध्यान केंद्रित करें:
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56
स्ट्रिंग, regex, या regexes की फ़ाइल के साथ हंट करें:
python3 APT-Hunter.py -hunt "psexec" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile "(psexec|psexesvc)" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile huntfile.txt -p /opt/wineventlogs/ -o Project2
Sigma नियमों के साथ हंट करें:
python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2
APT-Hunter के लिए परिवर्तित नवीनतम Sigma नियम प्राप्त करें (rules.json लिखता है):
./Get_Latest_Sigma_Rules.sh
ब्राउज़र में जनरेट की गई रिपोर्ट ब्राउज़ करें: फ़िल्टरिंग, चार्ट, इंसिडेंट टाइमलाइन और IR रिपोर्ट एक्सपोर्ट।
python3 run_webapp.py <Output>/<Output>_Report.xlsx # or pass the output directory
python3 APT-Hunter.py -p <logs> -o <Output> -web # analyse, then open the dashboard
python3 APT-Hunter.py -webview <Output> # open an existing report
किसी ट्राइएज फ़ाइंडिंग को स्वीकार करने पर उसे उसके साक्ष्य के साथ इंसिडेंट टाइमलाइन पर पिन कर दिया जाता है, जो कोलैप्सिबल सब-इवेंट्स के रूप में संलग्न होते हैं: वे बाकी सब के साथ इंटरलीव्ड होने के बजाय टेबल में फ़ाइंडिंग के नीचे रहते हैं, और उन्हें टाइमलाइन चार्ट से बाहर रखा जाता है ताकि चार्ट पठनीय बने रहें। किसी फ़ाइंडिंग को हटाने पर उसके सब-इवेंट्स भी हट जाते हैं।
सर्वर डिफ़ॉल्ट रूप से 0.0.0.0:5000 पर बाइंड होता है। इसे बदलने के लिए --host / --port (या -webhost / -webport) का उपयोग करें, उदाहरण के लिए इसे लोकल रखने के लिए --host 127.0.0.1। रिपोर्ट कैश पुनर्निर्मित होने पर समीक्षित फ़ाइंडिंग्स और टाइमलाइन सुरक्षित रहते हैं।

मुख्य डैशबोर्ड: कुल इवेंट्स और गंभीरता की गिनती, गंभीरता का विभाजन, सर्वाधिक ट्रिगर हुए डिटेक्शन नियम, और दैनिक इवेंट वॉल्यूम। साइडबार रिपोर्ट में प्रत्येक इवेंट लॉग और सारांश तालिका को सूचीबद्ध करता है।

इंसिडेंट टाइमलाइन: पिन किए गए फ़ाइंडिंग्स को समय के अनुसार प्लॉट किया गया और गंभीरता के अनुसार रंग-कोडित किया गया। व्यस्त अवधियों में ज़ूम और पैन करें, एक AI कार्यकारी सारांश जनरेट करें, और IR रिपोर्ट या CSV एक्सपोर्ट करें।

कालानुक्रमिक टाइमलाइन: एक अटैक चेन अपने सब-इवेंट्स में विस्तृत होती है, और विवरण पैनल नैरेटिव, MITRE तकनीकें और स्कोर दिखाता है।
इंसिडेंट टाइमलाइन चार्ट ज़ूम करने योग्य है, इसलिए मिनटों या सेकंडों के अंतराल पर होने वाले इवेंट्स के झुंड पठनीय बने रहते हैं: किसी अवधि में ज़ूम करने के लिए चार्ट पर ड्रैग करें, पैन करने के लिए Shift+ड्रैग करें, कर्सर के चारों ओर ज़ूम करने के लिए Ctrl/Cmd+व्हील करें, या इसके नीचे की ओवरव्यू स्ट्रिप का उपयोग करें। लेबल कभी ओवरलैप नहीं होते; जो फ़िट नहीं होते वे छिपा दिए जाते हैं, और किसी डॉट पर होवर करने से उस पर स्टैक हुए प्रत्येक इवेंट की सूची दिखती है।
कमांड लाइन से, लोकल मॉडल का उपयोग करके पाए गए इवेंट्स को दुर्भावनापूर्णता के लिए स्कोर करें:
python3 APT-Hunter.py -p <logs> -o <Output> -llm -llm-provider ollama -llm-model llama3 -llm-severity High
या डैशबोर्ड से प्रति इवेंट (जाँचें, समझाएँ, सहसंबंधित करें)। डैशबोर्ड के Settings पेज पर प्रोवाइडर (Ollama / LM Studio / llama.cpp), मॉडल, URL और टाइमआउट कॉन्फ़िगर करें। कोई भी OpenAI-संगत लोकल सर्वर काम करता है; क्लाउड सेवा को कोई डेटा नहीं भेजा जाता।
डैशबोर्ड साइडबार में Agentic Triage हज़ारों अलर्ट्स को फ़ाइंडिंग्स की एक छोटी सूची में बदल देता है:
जाँच चरण के लिए एक ऐसे LLM की आवश्यकता होती है जो टूल कॉलिंग का समर्थन करता हो। यदि आपका नहीं करता, तो APT-Hunter एक निश्चित पिवट/कोरिलेट पाइपलाइन पर वापस चला जाता है। कवरेज दोनों तरह से समान है, क्योंकि एजेंट केवल प्रथम पास के ऊपर गहराई जोड़ता है। टूल राउंड और एक वॉल-क्लॉक सीमा Settings में सीमित हैं।

एजेंटिक ट्राइएज: रन इतिहास प्रति रन दायरा, अलर्ट और क्लस्टर गिनती, फ़ाइंडिंग्स और LLM कॉल दिखाता है। यहाँ एक होस्ट पर 91 क्रिटिकल अलर्ट्स 32 क्लस्टर्स और एक उच्च-स्कोरिंग अटैक चेन में सिमट गए।

फ़ाइंडिंग विवरण: नैरेटिव, MITRE तकनीकें, साक्ष्य और पूरा जाँच ट्रेस (एजेंट द्वारा पढ़ा गया प्रत्येक इवेंट, टाइमलाइन विंडो और अलर्ट खोज), ताकि प्रत्येक निष्कर्ष का ऑडिट किया जा सके।
नोट: LLM आउटपुट एक ट्राइएज सहायता है, निर्णय नहीं। इस पर भरोसा करने से पहले फ़ाइंडिंग्स की समीक्षा करें। रीज़निंग मॉडल्स को रिक्वेस्ट टाइमआउट को 200 s डिफ़ॉल्ट से काफ़ी ऊपर बढ़ाने की आवश्यकता हो सकती है।
Twitter: @ahmed_khlief · LinkedIn: Ahmed Khlief
GNU GPL v3 के अंतर्गत वितरित। LICENSE देखें।
Sysmon उपयोग मामलों में उनके अद्भुत योगदान के लिए Joe Maccry को धन्यवाद (Joe द्वारा 100 से अधिक उपयोग मामले जोड़े गए)
| विकल्प | विवरण |
|---|
-p, --path | विश्लेषण करने के लिए लॉग फ़ाइल या फ़ोल्डर |
-o, --out | आउटपुट नाम / डायरेक्टरी |
-start, -end | टाइमलाइन को सीमित करें (ISO प्रारूप) |
-tz | टाइमज़ोन (local या जैसे Asia/Dubai) |
-cores | उपयोग किए जाने वाले CPU कोर (डिफ़ॉल्ट: उपलब्ध का आधा) |
-hunt, -huntfile, -eid | स्ट्रिंग/regex, regex फ़ाइल, या Event ID द्वारा हंट करें |
-sigma, -rules | JSON में परिवर्तित Sigma नियमों के साथ हंट करें |
-o365hunt, -o365rules, -o365raw | Office 365 ऑडिट लॉग हंटिंग |
-procexec, -logon, -objaccess, -allreport | अतिरिक्त रिपोर्ट |
-web, -webview, -webhost, -webport | वेब डैशबोर्ड लॉन्च करें |
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-context | लोकल LLM विश्लेषण |
| नमूना | विवरण |
|---|
| Sample_TimeSketch.csv | टाइमलाइन जिसे आप किसी हमले की पूरी तस्वीर देखने के लिए Timesketch पर अपलोड कर सकते हैं |
| Sample_Report.xlsx | सभी दिए गए Windows लॉग्स में पाया गया प्रत्येक इवेंट |
| Sample_Logon_Events.csv | पार्स किए गए फ़ील्ड्स के साथ सभी लॉगऑन इवेंट्स (तारीख, उपयोगकर्ता, स्रोत IP, लॉगऑन प्रोसेस, वर्कस्टेशन, लॉगऑन प्रकार, डिवाइस, मूल लॉग) |
| Sample_Process_Execution_Events.csv | इवेंट लॉग्स से कैप्चर किए गए सभी प्रोसेस एक्ज़िक्यूशन |
| Sample_Object_Access_Events.csv | Event 4663 से कैप्चर किया गया ऑब्जेक्ट एक्सेस |
| Sample_Collected-SIDS.csv | उपयोगकर्ता और उनके SIDs, जाँच में सहायता के लिए |
| EventID_Frequency_Analysis.xls | Event ID आवृत्ति विश्लेषण |