
APT-Hunter V4.0
APT-Hunter विंडोज इवेंट लॉग के लिए एक थ्रेट हंटिंग टूल है जो पर्पल टीम माइंडसेट द्वारा बनाया गया है ताकि विंडोज इवेंट लॉग के समुद्र में छिपे एपीटी मूवमेंट का पता लगाया जा सके और संदिग्ध गतिविधि को उजागर करने में लगने वाले समय को कम किया जा सके।
APT-Hunter
Windows इवेंट लॉग्स के लिए थ्रेट हंटिंग, जिसे पर्पल-टीम मानसिकता के साथ बनाया गया है।
APT-Hunter, Windows इवेंट लॉग्स के लिए एक थ्रेट हंटिंग टूल है। यह पूर्व-निर्धारित डिटेक्शन नियमों और लॉग आंकड़ों का उपयोग करके बड़ी मात्रा में इवेंट्स में छिपी APT गतिविधि को सामने लाता है, जिससे संदिग्ध व्यवहार को उजागर करने में लगने वाला समय कम हो जाता है। यह विशेष रूप से कॉम्प्रोमाइज़ असेसमेंट के लिए प्रभावी है।
परिणाम एक टाइमलाइन के रूप में लिखे जाते हैं जिसे सीधे Excel, Timeline Explorer, Timesketch और समान टूल्स में विश्लेषित किया जा सकता है, या अंतर्निहित वेब डैशबोर्ड में वैकल्पिक लोकल-LLM ट्राइएज के साथ देखा जा सकता है।
विषय-सूची
- विशेषताएँ
- इंस्टॉलेशन
- क्विक स्टार्ट
- कमांड-लाइन विकल्प
- उदाहरण
- वेब डैशबोर्ड
- लोकल LLM विश्लेषण
- एजेंटिक ट्राइएज
- आउटपुट नमूने
- लेखक
- श्रेय
विशेषताएँ
- नियम-आधारित डिटेक्शन Security, System, Sysmon, PowerShell, Defender, WinRM, Scheduled Tasks, Terminal Services और अन्य में; लॉग प्रकार स्वतः पहचाना जाता है।
- बड़े लॉग सेटों के तेज़ विश्लेषण के लिए मल्टीप्रोसेसिंग इंजन।
- स्ट्रिंग, regex या regex फ़ाइल द्वारा हंटिंग, साथ ही Sigma नियम समर्थन।
- Office 365 ऑडिट लॉग हंटिंग।
- टाइमलाइन आउटपुट Excel, CSV (Timesketch-तैयार) और समर्पित लॉगऑन, प्रोसेस-एग्ज़िक्यूशन और ऑब्जेक्ट-एक्सेस रिपोर्ट के रूप में।
- फ़िल्टरिंग, चार्ट, एक इंसिडेंट टाइमलाइन और IR रिपोर्ट एक्सपोर्ट (Markdown / .docx) के साथ वेब डैशबोर्ड।
- किसी भी OpenAI-संगत सर्वर (Ollama, LM Studio, llama.cpp) के माध्यम से लोकल 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 चलाएँ। मुख्य विकल्प:
| विकल्प | विवरण |
|---|---|
-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 विश्लेषण |
उदाहरण
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+व्हील करें, या इसके नीचे की ओवरव्यू स्ट्रिप का उपयोग करें। लेबल कभी ओवरलैप नहीं होते; जो फ़िट नहीं होते वे छिपा दिए जाते हैं, और किसी डॉट पर होवर करने से उस पर स्टैक हुए प्रत्येक इवेंट की सूची दिखती है।
लोकल LLM विश्लेषण
कमांड लाइन से, लोकल मॉडल का उपयोग करके पाए गए इवेंट्स को दुर्भावनापूर्णता के लिए स्कोर करें:
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 हज़ारों अलर्ट्स को फ़ाइंडिंग्स की एक छोटी सूची में बदल देता है:
- क्लस्टर। आपके चुने हुए दायरे (न्यूनतम गंभीरता, कंप्यूटर, समय विंडो) में अलर्ट्स को नियम, होस्ट, इवेंट ID और संदेश आकार के अनुसार समूहित किया जाता है। ~13.5k अलर्ट्स वाली एक रिपोर्ट आमतौर पर कुछ दर्जन क्लस्टर्स में सिमट जाती है।
- प्रथम-पास निर्णय। LLM प्रत्येक क्लस्टर को ठीक एक बार आँकता है। यह पास सस्ता और व्यापक है, जो गारंटी देता है कि कुछ भी छूटा नहीं।
- जाँच। एक एजेंट बचे हुए सुरागों पर टूल्स के साथ काम करता है: यह अलर्ट्स खोजता है, किसी अलर्ट के पीछे का कच्चा इवेंट लॉग पढ़ता है, किसी क्षण के आसपास टाइमलाइन में चलता है, और जो पाता है उसे अटैक चेन में जोड़ता है। यह केवल फ़ाइंडिंग्स प्रस्तावित कर सकता है; यह स्वयं टाइमलाइन में कभी नहीं लिखता।
- समीक्षा। फ़ाइंडिंग्स स्कोर, निर्णय, MITRE तकनीक, साक्ष्य और एजेंट के जाँच ट्रेस के साथ एक कतार में दिखाई देती हैं। Accept किसी फ़ाइंडिंग को इंसिडेंट टाइमलाइन (और IR रिपोर्ट / .docx एक्सपोर्ट) में जोड़ता है; Reject उसे खारिज कर देता है। उच्च-स्कोरिंग फ़ाइंडिंग्स को स्वतः स्वीकार करने के लिए Settings में (या प्रति रन) एक ऑटो-एड थ्रेशोल्ड सेट करें।
जाँच चरण के लिए एक ऐसे LLM की आवश्यकता होती है जो टूल कॉलिंग का समर्थन करता हो। यदि आपका नहीं करता, तो APT-Hunter एक निश्चित पिवट/कोरिलेट पाइपलाइन पर वापस चला जाता है। कवरेज दोनों तरह से समान है, क्योंकि एजेंट केवल प्रथम पास के ऊपर गहराई जोड़ता है। टूल राउंड और एक वॉल-क्लॉक सीमा Settings में सीमित हैं।

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

फ़ाइंडिंग विवरण: नैरेटिव, MITRE तकनीकें, साक्ष्य और पूरा जाँच ट्रेस (एजेंट द्वारा पढ़ा गया प्रत्येक इवेंट, टाइमलाइन विंडो और अलर्ट खोज), ताकि प्रत्येक निष्कर्ष का ऑडिट किया जा सके।
नोट: LLM आउटपुट एक ट्राइएज सहायता है, निर्णय नहीं। इस पर भरोसा करने से पहले फ़ाइंडिंग्स की समीक्षा करें। रीज़निंग मॉडल्स को रिक्वेस्ट टाइमआउट को 200 s डिफ़ॉल्ट से काफ़ी ऊपर बढ़ाने की आवश्यकता हो सकती है।
आउटपुट नमूने
| नमूना | विवरण |
|---|---|
| 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 आवृत्ति विश्लेषण |
लेखक
Twitter: @ahmed_khlief · LinkedIn: Ahmed Khlief
लाइसेंस
GNU GPL v3 के अंतर्गत वितरित। LICENSE देखें।
श्रेय
Sysmon उपयोग मामलों में उनके अद्भुत योगदान के लिए Joe Maccry को धन्यवाद (Joe द्वारा 100 से अधिक उपयोग मामले जोड़े गए)