
قائمة رائعة من الكلمات المفتاحية والقطع الأثرية لجلسات صيد التهديدات
🎯 قائمة بالكلمات المفتاحية لجلسات صيد التهديدات


صيد التهديدات هو نهج استباقي ومتكرر لكشف الأنشطة الضارة داخل شبكة المؤسسة أو أنظمتها التي قد تكون تجاوزت التدابير الأمنية الآلية. وعلى عكس التحقيقات التفاعلية التي تُطلقها التنبيهات الأمنية، فإن صيد التهديدات يقوده فحوصات تستند إلى الاستخبارات التهديدية (TI) وفرضيات مستمدة من تحليل منهجي وانتهازي. تساعد هذه الفرضيات 💡 الصيادين على كشف التهديدات غير المعروفة، أو التهديدات المحتملة، أو التهديدات المعروفة التي ربما تكون قد تهربت من أنظمة الكشف الأمنية، بالإضافة إلى الثغرات أو مؤشرات الاختراق (IoCs) التي قد تفوتها الأنظمة الآلية أو تستبعدها. كما تركز العملية على تحديد المؤشرات الأولية للتنبيهات/لوحات التحكم وتحسين سير عمل SOC/الفرز (triage)، مع المساهمة أيضاً في إدارة جرد الأصول المخفية ورفع الأحداث منخفضة/متوسطة الدقة التي تتطلب مزيداً من التحقيق. الهدف الأساسي هو تحديد التكتيكات والتقنيات والإجراءات (TTPs) التي يستخدمها الفاعلون المهاجمون، مما يعزز قدرة المؤسسة على كشف الهجمات المحتملة والتخفيف منها بشكل استباقي.

اقتراحي لتنظيم جلسات صيد التهديدات الآلية جزئياً للحفاظ على قواعد كشف عالية الجودة داخل SOC

تركز فرق SOC على نشر عمليات كشف عالية الدقة عبر جميع مستويات هرم نضج الكشف، مستهدفةً التهديدات المعروفة بأقل عدد ممكن من النتائج الإيجابية الكاذبة. ويكمل صيد التهديدات ذلك من خلال معالجة التهديدات غير المعروفة وتكتيكات وتقنيات وإجراءات (TTPs) المتقدمة والحالات الشاذة المعرضة لمعدلات عالية من النتائج الإيجابية الكاذبة، مما يسد الفجوات ويعزز تغطية الكشف بما يتجاوز قدرات SOC القياسية.


من الأفضل أن يكون لكل جلسة صيد تهديدات أهداف واضحة. يقدم هذا المخطط الانسيابي نهجاً منظماً لتوجيه عمليتك، بدءاً من الإعداد والتحقيق وصولاً إلى التوصيات القابلة للتنفيذ.
🎯 قائمة بالكلمات المفتاحية لجلسات صيد التهديدات
يمكن أن تكون قوائم ThreatHunting-Keywords ذات قيمة لصيادي التهديدات وفرق SOC وCERT لإجراء التحليل الثابت على SIEM، إذ تساعد في تحديد الفاعلين المهاجمين (أو أعضاء الفريق الأحمر 😆) الذين يستخدمون الإعدادات الافتراضية من أدوات الاستغلال المعروفة في السجلات. وتختلف عن موجزات مؤشرات الاختراق (IOC feeds) في أهميتها الدائمة: فالكلمات المفتاحية هنا ليس لها "تواريخ انتهاء صلاحية" ويمكنها كشف التهديدات بعد سنوات من إدراجها، وهي مرنة وتقبل مطابقة أحرف البدل والمطابقة غير الحساسة لحالة الأحرف، وتركز فقط على الكلمات المفتاحية الافتراضية.
صُممت هذه القائمة بشكل أساسي لصيد التهديدات، ويمكن أن تكون مفيدة في السيناريوهات المعقدة. سواء كان لديك إمكانية الوصول إلى SIEM لا تديره، مع بيانات غير محللة، أو كنت جزءاً من فريق SOC يدير SIEM بشكل جيد، فإن الأمثلة المقدمة هنا يمكنها تسريع عملية كشف النشاط الضار دون الحاجة إلى تحليل أي شيء. إذا كانت سجلاتك محللة بالفعل، فيمكن استخدام هذه القائمة لمطابقة الحقول داخل بياناتك، وربما تتحول إلى قاعدة كشف استناداً إلى فئة نوع الكلمة المفتاحية التي تختارها، بشرط أن يكون معدل النتائج الإيجابية الكاذبة منخفضاً بما يكفي.
⚠️ لا يمكن إضافة كل شيء في هذه القائمة، فنحن لا نُنشئ هنا عمليات كشف سلوكية معقدة، فقط عمليات كشف بسيطة بالكلمات المفتاحية في الحقول أو السجلات الخام، تهدف إلى كشف الإعدادات الافتراضية
⚠️ العديد من الأدوات في القائمة لها قواعد كشف مخصصة، تربط الأحداث بالعتبات وعلاقات العمليات الفريدة... لن نغطي جميع عمليات الكشف الممكنة لأداة هنا، فقط عمليات كشف الكلمات المفتاحية
إذا كنت جزءاً من مركز عمليات الأمن (SOC) وتدير مئات قواعد الكشف التي تعتمد فقط على عمليات كشف بسيطة بالكلمات المفتاحية دون أي ارتباط بالحقول أو الأحداث، ففكر في إعادة النظر في نهجك. في رأيي، لا ينبغي أن تشكل هذه قواعد كشف فردية. بدلاً من ذلك، قد تكون أكثر ملاءمة لقائمة موحدة مثل هذه، على الرغم من أن التنفيذ قد يكون أكثر صعوبة إذا كنت لا تستخدم منصة مثل Splunk.
يشجع هذا النهج على إنشاء قواعد عالية الجودة وهادفة مع إبقاء عمليات كشف الكلمات المفتاحية البسيطة في الحقول منظمة وسهلة الإدارة في مكان واحد. والنتيجة النهائية؟ قاعدة كشف شاملة واحدة تغطيها جميعاً. وهذا يبسط عمليتك ويحسّن قدرات الكشف لديك.
لمستجيبي الحوادث (Incident Responders)، يمكنك استخدام هذه القائمة أثناء التحقيق في السجلات الخام أو الملفات لتحديد أدوات الاستغلال المعروفة بسرعة باستخدام قواعد Yara، أو سكربت Powershell، أو عن طريق إدخال سجلاتك بسرعة في Splunk عبر Splunk4DFIR
لتجنب الكشف عبر عمليات كشف الكلمات المفتاحية البسيطة، من الضروري إعادة ترجمة وإعادة تسمية جميع السلاسل المخصصة، أو أسماء الفئات أو الدوال، أو أسماء المتغيرات، أو أسماء الوسائط، أو أسماء الملفات التنفيذية، أو وكلاء المستخدم الافتراضيين، أو الشهادات، أو أي سلاسل أخرى قد ترتبط بالأدوات التي تستخدمها أثناء عمليتك. استخدم الأسماء الأكثر شيوعاً لكل شيء للاندماج مع الحركة المرورية العادية. يمكن أن تساعدك السكربتات الموجودة هنا في تحديد بعض هذه الأمور.
ومع ذلك، إذا كنت تطور "أدوات فريق أحمر" عامة، ففكر في مساعدة الفريق الأزرق باستخدام أسماء مميزة. استخدم إعداداً افتراضياً بمنفذ غير معتاد، وشهادات مخصصة، ووكلاء مستخدم فريدين، وأسماء دوال ووسائط محددة غير شائعة. يساعد ذلك في إنشاء توقيع واضح يمكن استخدامه لعمليات كشف الكلمات المفتاحية البسيطة، بحيث يتمكن الفريق الأزرق على الأقل من كشف هواة السكربتات (script kiddies) بسهولة.
الترويسة: keyword,metadata_keyword_type,metadata_tool,metadata_description,metadata_tool_techniques,metadata_tool_tactics,metadata_malwares_name,metadata_groups_name,metadata_category,metadata_link,metadata_enable_endpoint_detection,metadata_enable_proxy_detection,metadata_tags,metadata_comment,metadata_severity_score,metadata_popularity_score,metadata_github_stars,metadata_github_forks,metadata_github_created_at,metadata_github_updated_at
keyword: تمثل الإدخالات في هذا العمود كلمات مفتاحية غير حساسة لحالة الأحرف تُستخدم في صيد التهديدات. هذه الكلمات المفتاحية مرنة، وتتيح استخدام أحرف البدل (wildcards) لتوسيع نطاق معايير البحث أو تضييقه حسب الحاجة.
metadata_keyword_regex: تمثل الإدخالات في هذا العمود نمط التعبير النمطي (regex) لكشف الكلمة المفتاحية، وهذه الأنماط محسّنة لتوفير قدرات كشف دقيقة، وهي مناسبة للاستخدام مع YARA أو ripgrep أو أدوات الكشف المماثلة.
metadata_keyword_type: نوع الكلمات المفتاحية. يوجد حالياً ثلاثة أنواع:
offensive tool keyword: تتعلق هذه الكلمات المفتاحية بالأدوات الهجومية أو تُظهر ثقة عالية في النية الخبيثة. من الضروري أن تحمل هذه المصطلحات أهمية وموثوقية في كشف التهديدات المحتملة (معدل نتائج إيجابية كاذبة منخفض)ارفع القائمة threathunting-keywords.csv إلى Splunk
أنشئ تعريف lookup باسم threathunting-keywords للـ lookup threathunting-keywords.csv
WILDCARD(keyword) وتأكد من عدم تحديد خيار Case sensitive match
transforms.conf``` [threathunting-keywords] batch_index_query = 0 case_sensitive_match = 0 filename = threathunting-keywords.csv match_type = WILDCARD(keyword)
- الآن يمكننا استخدام تعريف lookup الخاص بنا للصيد 🏹
- :warning: إذا لم تظهر عمليات البحث في القسم التالي أنها تعمل، فقد يكون ذلك بسبب إعدادات قيود موارد Splunk، خاصة إذا كنت تشغّل Splunk تحت التكوين الافتراضي. كبداية، قد تحتاج إلى التفكير في زيادة قيمة `max_memtable_bytes` في مقطع `[lookup]`.
## أمثلة على حالات الاستخدام مع `threathunting-keywords`:

### صيد جميع الكلمات المفتاحية في السجلات الخام 😱```
`myendpointslogs`
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
أرسل المهمة إلى الخلفية واحتفظ بمعرّف المهمة.

myendpointslogs هو ماكرو سيبحث في جميع سجلات نقاط النهاية لديك، وقد تكون سجلات Windows أو تليمترية EDR أو sysmon أو auditd أو جلسات الباستيون أو سجلات تنفيذ PowerShell أو أي سجلات أخرى تراقب نشاط العمليات أو نشاط الملفات. (إذا كنت لا تستخدم ماكرو، يمكنك استبدال الماكرو بالفهرس أو الوسم أو نموذج البيانات الخاص بك)
TERM() للبحث المحدد قبل |lookup إذا لزم الأمر| lookup هذا مهم جدًا؛ بالنسبة إلى عمليات lookup الكبيرة كهذه، استخدم دائمًا |lookup بدلاً من |inputlookup. سيستخدم |lookup ملف lookup المُدفوع إلى المفهرسات عند تكرار الحزمة، بينما |inputlookup سيرسل إلى المفهرسات البحث مع كل محتوى lookup في كل مرة. باستخدام |lookup نحصل على مكاسب أداء ضخمة هنا (سيُشغَّل هذا البحث لساعات في البيئات الكبيرة، لذا من الأفضل تحسين بحثنا)... keyword as _raw OUTPUT keyword as keyword_detection هذا هو الجزء الذي سنطابق فيه الحقل المسمى مع حقل في lookup الخاص بنا. في Splunk، هو السجل الخام دون أي تحليل (حالة الاستخدام لدينا). عندما يطابق keyword، سيُظهر الحقل الكلمة المفتاحية في lookup التي طابقت الحقل () هنا.تصفية النتيجة``` | loadjob 1684146257.1495958 | search NOT (keyword_detection IN ("fixme","fixme","fixme")) NOT (metadata_keyword_type IN ("fixme","fixme")) NOT (raw IN ("fixme","fixme","fixme"))
استبعاد الكلمات المفتاحية المطلوبة، أو النص الخام، أو أنواع الكلمات المفتاحية.
إذا قررنا استبعاد نوع `greyware tool keyword` (كلمات مفتاحية لأدوات مشروعة يتم إساءة استخدامها من قبل المهاجمين) لأن هذه البيئة تحتوي على نتائج كثيرة جدًا لهذا النوع من الأدوات، فلدينا خياران:
- التصفية في بداية بحثنا الأولي```
`myendpointslogs`
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" metadata_keyword_type="offensive tool keyword" metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
أضفت metadata_keyword_type="offensive tool keyword" للتركيز فقط على الأدوات الهجومية التي أنا متأكد من أنها تُستخدم من قبل جهات خبيثة
إذن كانت هذه هي حالة الاستخدام لدينا للبحث في السجلات الأولية في سجلات نقاط النهاية، وإذا أردنا البحث عن الكلمات المفتاحية لسجلات الشبكة (أي شيء يمكنه تسجيل استعلام أو عنوان URL)، فإننا نغيرها ببساطة إلى:```
`mynetworklogs`
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
الآن هو نفس البحث الأول لكنني غيّرت مصدر البيانات إلى mynetworklogs وأضفت metadata_enable_proxy_detection=1 لمطابقة الكلمات المفتاحية ذات الصلة بسجلات الشبكة (يُفضَّل توفر سجلات proxy وDNS لهذا)
mynetworklogs url=*
| lookup threathunting-keywords keyword as url OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(url) as url by src_ip metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
#### المطابقة على حقل الاستعلام فقط:```
`mynetworklogs` query=*
| lookup threathunting-keywords keyword as query OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(query) as query by src_ip metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
myendpointslogs
| eval myfields=mvappend(service, process, process_command, parent_process, parent_process_command, grand_parent_process, grand_parent_process_command, file_path, file_name)
| lookup threathunting-keywords keyword as myfields OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(process) values(service) values(process_command) values(file_name) values(file_path) values(parent_process) values(parent_process_command) values(grand_parent_process) values(grand_parent_process_command) by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
#### السرعة:
إذا كانت السرعة مصدر قلق أو كنت تخطط لتنفيذ هذا كقاعدة كشف مجدولة، فقد ترغب في التفكير بتقسيم البحث إلى عمليات بحث مختلفة عن طريق اختيار عمود metadata_keyword_type أو metadata_tool الذي تريد استخدامه.
لاحظ أن التصفية باستخدام أمر search بعد `|lookup` لا تُسرّع عملية البحث. إذا كنت تريد التركيز على جزء محدد من البحث دون تقسيمه، يجب استخدام أمر `|inputlookup` مع جملة where. على الرغم من أن هذه الطريقة قد تستهلك المزيد من موارد المعالجة، إلا أنها تؤدي عمومًا إلى تنفيذ أسرع. لمزيد من التفاصيل، راجع توثيق Splunk حول inputlookup: https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Inputlookup
#### مع ELK:
إذا كنت تعمل مع Elastic Stack، فهناك الكثير من القيود على القوائم (لا يمكنك استخدام أحرف خاصة، مسافات...)، لديك 3 خيارات:
- استخدام قائمة أخرى متاحة هنا في نفس المستودع https://github.com/mthcht/ThreatHunting-Keywords/tree/main/elk (ليست استخراجًا مباشرًا من threathunting-keywords.csv، إنها معدّلة لـ ELK وغير محدّثة)
- استخدام قواعد Sigma "hunting" المستخرجة مباشرة من هذا المشروع https://github.com/mthcht/ThreatHunting-Keywords-sigma-rules مع pysigma للتحويل
- استخدام بعض قوائمي كقائمة IOC مع استعلامات wildcard https://www.elastic.co/guide/en/elasticsearch/reference/8.15/query-dsl-wildcard-query.html#wildcard-top-level-params
### مثال للوحة المعلومات

### Splunk4DFIR
مثال آخر على استخدام ملفات csv الخاصة بالمشروع مع splunk للبحث في أدلة وسجلات DFIR: https://github.com/mf1d3l/Splunk4DFIR

### قوائم رائعة أخرى للكشف
أحتفظ ببعض الأدلة ذات الصلة في قوائم منفصلة، وهذه القوائم أكثر دقة ويمكن استخدامها في قواعد الكشف، وهي متاحة في [مستودع github](https://github.com/mthcht/awesome-lists/tree/main/Lists)
ستجد:
ورقة جمع الاستخبارات الخاصة بي لتخطيط جلسات الصيد عن التهديدات

- 📋 القوائم: https://github.com/mthcht/awesome-lists/tree/main/Lists
- 🕵️♂️ أدلة الصيد عن التهديدات: https://mthcht.medium.com/list/threat-hunting-708624e9266f
- 🚰 الأنابيب المسماة المشبوهة: [suspicious_named_pipe_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_named_pipe_list.csv)
- 🌐 النطاقات العلوية المشبوهة (تُحدَّث تلقائيًا): [[suspicious_TLDs]](https://github.com/mthcht/awesome-lists/tree/main/Lists/TLDs)
- 🌐 ASNs المشبوهة (تُحدَّث تلقائيًا): [[suspicious ASNs]](https://github.com/mthcht/awesome-lists/tree/main/Lists/ASNs)
- 🔧 خدمات ويندوز المشبوهة: [suspicious_windows_services_names_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_services_names_list.csv)
- ⏲️ مهام ويندوز المشبوهة: [suspicious_windows_tasks_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_tasks_list.csv)
- 🚪 منفذ الوجهة المشبوه: [suspicious_ports_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_ports_list.csv)
- 🛡️ قواعد جدار الحماية المشبوهة: [suspicious_windows_firewall_rules_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_firewall_rules_list.csv)
- 🆔 وكيل المستخدم المشبوه: [suspicious_http_user_agents_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_http_user_agents_list.csv)
- 📇 معرّفات USB المشبوهة: [suspicious_usb_ids_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_usb_ids_list.csv)
- 🔢 عنوان MAC المشبوه: [suspicious_mac_address_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_mac_address_list.csv)
- 📛 اسم المضيف المشبوه: [suspicious_hostnames_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_hostnames_list.csv)
- 🧮 بيانات وصفية للملفات التنفيذية: [executables_metadata_informations_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Windows%20Metadata/executables_metadata_informations_list.csv)
- 🕸️ قائمة خوادم DNS عبر HTTPS: [dns_over_https_servers_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/dns_over_https_servers_list.csv)
- 📚 Hijacklibs (تُحدَّث تلقائيًا): [hijacklibs_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Hijacklibs/hijacklibs_list.csv)
- 🌐 قوائم عقد TOR (تُحدَّث تلقائيًا): https://github.com/mthcht/awesome-lists/tree/main/Lists/TOR
- 🛠️ قائمة LOLDriver (تُحدَّث تلقائيًا): [loldrivers_only_hashes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Drivers/loldrivers_only_hashes_list.csv)
- 🛠️ قائمة أدوات الإقلاع الخبيثة (تُحدَّث تلقائيًا): [malicious_bootloaders_only_hashes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Drivers/malicious_bootloaders_only_hashes_list.csv)
- 📜 قائمة شهادات SSL الخبيثة (تُحدَّث تلقائيًا): [ssl_certificates_malicious_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/SSL%20CERTS/ssl_certificates_malicious_list.csv)
- 🖥️ كشف RMM: https://github.com/mthcht/awesome-lists/tree/main/Lists/RMM
- 👤🔑 الأدوار والمجموعات المهمة لـ AD/EntraID/AWS: [[permissions]](https://github.com/mthcht/awesome-lists/tree/main/Lists/permissions)
- 💻🔒 امتدادات الملفات المعروفة لفدية Ransomware: [ransomware_extensions_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/ransomware_extensions_list.csv)
- 💻🔒 أسماء ملفات ملاحظات الفدية المعروفة: [ransomware_notes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/ransomware_notes_list.csv)
- 📝 قواعد Windows ASR: [windows_asr_rules.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/windows_asr_rules.csv)
- 🌐 قوائم DNSTWIST (تُحدَّث تلقائيًا): [DNSTWIST Default Domains + script](https://github.com/mthcht/awesome-lists/tree/main/Lists/DNSTWIST)
- 🌍 قوائم عناوين IP لشبكات VPN (تُحدَّث تلقائيًا):
- 🛡️ NordVPN: [nordvpn_ips_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/VPN/NordVPN/nordvpn_ips_list.csv)
- 🛡️ ProtonVPN: [protonvpn_ip_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/VPN/ProtonVPN/protonvpn_ip_list.csv)
- 🏢 قوائم نطاقات IP للشركات (تُحدَّث تلقائيًا): [Default Lists + script](https://github.com/mthcht/awesome-lists/tree/main/Lists/Ranges_IP_Address_Company_List/bgp.he.net)
- 🔗 قوائم ارتباط أخرى: https://github.com/mthcht/awesome-lists/tree/main/Lists/Others
- 📋 قوائم أحتاج إلى إكمالها: https://github.com/mthcht/awesome-lists/tree/main/todo
اطّلع على هذه [الأدلة](https://github.com/mthcht/awesome-lists/tree/main/Lists#how-to-use-the-lists) لاستخدام بعض القوائم:
- [عمليات البحث في خدمات ويندوز](https://detect.fyi/threat-hunting-suspicious-windows-service-names-2f0dceea204c)
- [عمليات البحث في وكلاء المستخدم](https://mthcht.medium.com/threat-hunting-suspicious-user-agents-3dd764470bd0)
- [عمليات البحث في DNS عبر HTTPS](https://mthcht.medium.com/detecting-dns-over-https-30fddb55ac78)
- [عمليات البحث في النطاقات العلوية المشبوهة](https://mthcht.medium.com/threat-hunting-suspicious-tlds-a742c2adbf58)
- [عمليات البحث في HijackLibs](https://mthcht.medium.com/detect-dll-hijacking-techniques-from-hijacklibs-with-splunk-c760d2e0656f)
- [عمليات البحث في التصيد و DNSTWIST](https://detect.fyi/detecting-phishing-attempts-with-dnstwist-37c426b3bbb8)
- [عمليات البحث في إضافات المتصفحات](https://mthcht.medium.com/detecting-browser-extensions-installations-e0ac2b45c46b)
- [إخفاء C2 في وضح النهار](https://mthcht.medium.com/c2-hiding-in-plain-sight-7a83963b9344)
- [أدلة تهريب HTML](https://mthcht.medium.com/detecting-html-smuggling-phishing-attempts-15af824e60e4)
- [عمليات البحث في PSEXEC والأدوات المشابهة](https://mthcht.medium.com/detecting-psexec-and-similar-tools-c812bf3dca6c)
- [كشف انزلاق الوقت](https://mthcht.medium.com/event-log-manipulations-1-time-slipping-55bf95631c40)
- [الأنابيب المسماة المشبوهة](https://medium.com/detect-fyi/threat-hunting-suspicious-named-pipes-a4206e8a4bc8)
... المزيد [هنا](https://github.com/mthcht/awesome-lists/tree/main/Lists#how-to-use-the-lists)
## صيد DFIR عن الكلمات المفتاحية في الملفات (بدون SIEM)
بعد إجراء مراجعة شاملة للأدوات المختلفة، اكتشفت أن [ripgrep](https://github.com/BurntSushi/ripgrep) يتفوق بشكل كبير على منافسيه عندما يتعلق الأمر بمطابقة قائمة واسعة من أنماط regex بسرعة مع كل سطر في ملف سجل كبير أو حتى ملفات متعددة في وقت واحد. لقد أثبت أنه الحل الأكثر كفاءة للتعامل مع كميات هائلة من البيانات، مما يوفر سرعة ومرونة لا مثيل لهما.
### ابحث عن الشر في ملفات السجل باستخدام **Ripgrep** وقائمة 'only_keywords_regex.txt'
#### `rg.exe -f .\only_keywords_regex.txt .\EvtxECmd_Output.csv --multiline --ignore-case`
- يعمل `.\only_keywords_regex.txt` كملف مصدر للكلمات المفتاحية للصيد عن التهديدات، محوّلة إلى أنماط regex للمطابقة الدقيقة. تنبع هذه الأنماط من ملف threathunting-keywords.csv، الذي خضع لعملية تحويل لتحقيق التوافق الأمثل مع عمليات regex.
- يمثل `.\EvtxECmd_Output.csv` الملف المستهدف الذي سيتم البحث فيه. في هذا السياق، هو بصيغة csv لسجل أحداث ويندوز، ناتج عن تصدير سجلات evtx. ومع ذلك، تتيح لك مرونة ripgrep استبداله بأي ملف تختاره لعمليات بحث تفصيلية عن الأنماط.
- يتيح خيار `--multiline` لـ ripgrep التعامل بفعالية مع الأنماط الممتدة عبر أسطر متعددة ومطابقتها، مما يوسع نطاق البحث بشكل ملحوظ.
ستحصل على الأسطر المطابقة بهذا الشكل مع رقم السطر (ولكن بدون الكلمة المفتاحية المطابقة)


#### خيار أفضل للملفات الكبيرة جدًا (على ويندوز):
[DFIR_hunt_in_file.ps1](https://github.com/mthcht/ThreatHunting-Keywords/blob/main/DFIR_hunt_in_file.ps1)
`powershell -ep Bypass -File .\DFIR_hunt_in_file.ps1 -patternFile "only_keywords_regex.txt" -targetFile "C:\Users\mthcht\collection\20230406154410_EvtxECmd_Output.csv" -rgPath "C:\Users\mthcht\Downloads\ripgrep-13.0.0-x86_64-pc-windows-msvc\ripgrep-13.0.0-x86_64-pc-windows-msvc\rg.exe"`
- `-targetFile`: يحدد الملف الذي سيتم البحث فيه (في المثال، سجلات مستخرجة من DFIR-ORC)
- `-patternFile`: الملف الذي يحتوي على أنماط regex `only_keywords_regex.txt`
- `-rgPath`: مسار ملف ripgrep القابل للتنفيذ
محتوى سكربت PowerShell (مضمّن في المستودع):```powershell
param (
[Parameter(Mandatory=$true)]
[string]$patternFile,
[Parameter(Mandatory=$true)]
[string]$targetFile,
[Parameter(Mandatory=$true)]
[string]$rgPath
)
Start-Transcript -Path "$PSScriptRoot\result_search.log" -Append -Force -Verbose
$totalLines = (Get-Content $patternFile | Measure-Object -Line).Lines
$currentLine = 0
Get-Content $patternFile | ForEach-Object {
$currentLine++
Write-Host "Searching for pattern $currentLine of $totalLines : $_"
& $rgPath --multiline --ignore-case $_ $targetFile | Write-Output
}
Stop-Transcript -Verbose
ستكون نتيجة البحث في result_search.log في نفس مجلد السكربت.

todo
في powershell يكون الأمر أبطأ بكثير، لكن إذا كنت لا تزال ترغب في القيام بذلك بهذه الطريقة، يمكنك استخدام السكربت أدناه، وسيخبرك برقم السطر المطابق والكلمة المفتاحية المقابلة:
powershell.exe -ep Bypass -File .\hunt_keywords_windows.ps1 -k .\only_keywords.txt -f .\EvtxECmd_Output.csv
[Parameter(Mandatory=$true)]
[string]$kw
)
$Keywords = Get-Content $kw $result = @()
foreach ($Keyword in $Keywords) { $SearchTerm = $Keyword.Replace("", ".") $SearchTerm = [Regex]::Escape($SearchTerm).Replace(".*", ".*")
$reader = New-Object System.IO.StreamReader($file)
$lineNumber = 0
while (($line = $reader.ReadLine()) -ne $null) {
$lineNumber++
if ($line -match $SearchTerm) {
$result += New-Object PSObject -Property @{
'Keyword' = $Keyword
'LineNumber' = $lineNumber
'Line' = $line
}
}
}
$reader.Close()
}
$result | Out-GridView Read-Host -Prompt "Press Enter to exit"
</details>
### قواعد YARA

يتم تصدير جميع أنماط الكشف في هذا المشروع تلقائيًا إلى قواعد yara في [ThreatHunting-Keywords-yara-rules](https://github.com/mthcht/ThreatHunting-Keywords-yara-rules)
بعض الأمثلة على الصيد باستخدام قواعد yara:




## جدول بيانات سريع للبحث عن الكلمة المفتاحية
https://mthcht.github.io/ThreatHunting-Keywords/

## الإيجابيات الكاذبة
ساهم وأضف الإيجابيات الكاذبة الخاصة بك إلى [قائمة](https://github.com/mthcht/ThreatHunting-Keywords/blob/main/_false_positives/false_positives_offensive_keywords.md) الإيجابيات الكاذبة المتوقعة
## قواعد SIGMA
تحقق من الجدول المُترجم في [قواعد SIGMA](https://github.com/mthcht/ThreatHunting-Keywords-sigma-rules) عادةً ما أقوم بتحديثه في نفس الوقت :)

## تعيين تقنيات MITRE ATT&CK
مع إضافة splunk https://splunkbase.splunk.com/app/5742

تغطية لـ 2242 أداة (تم التحديث في 2024/08/30):

بحث splunk:
<details>```
| inputlookup threathunting-keywords.csv
| stats count by metadata_tool metadata_tool_techniques
| makemv delim=" - " metadata_tool_techniques
| mvexpand metadata_tool_techniques
| stats count by metadata_tool_techniques
لوحات معلومات Splunk (هذا مجرد مثال واحد؛ يمكن تطبيق مجموعة واسعة من عوامل التصفية باستخدام الحقول المتاحة في الملف):
مثال على لوحة معلومات Splunk بصيغة XML:



المساهمات والمشكلات وطلبات الميزات مرحب بها!
``
يرجى تقديم اسم الأداة.
``
قدّم رابطًا إلى الموقع الرسمي للأداة أو مستودع الكود المصدري (GitHub, GitLab, إلخ). إذا كانت الوثائق متاحة، فيرجى تضمينها.
``
صِف الغرض من الأداة ووظائفها وميزاتها البارزة. إذا لم تكن متأكدًا، اترك هذا الحقل فارغًا وسأراجع الأداة بمزيد من التفاصيل.
``
إذا كانت لديك معلومات حول إساءة الاستخدام المعروفة أو المحتملة لهذه الأداة من قبل جهات خبيثة، فيرجى مشاركتها هنا.
يرجى اختيار الفئة الأنسب للأداة:
سأقرر ما إذا كانت الأداة تستحق الإضافة إلى القائمة. الأدوات المستخدمة والمعروفة على نطاق واسع في المجتمع هي الأكثر احتمالية للإدراج مقارنة بالأدوات الغامضة أو الجديدة.
greyware tool keyword: تتوافق الكلمات المفتاحية في هذه الفئة مع الأدوات "المشروعة" التي يسيء استخدامها الفاعلون الخبيثون. نظراً لأن هذه الأدوات لها أيضاً استخدامات مشروعة، فإن احتمالية النتائج الإيجابية الكاذبة تكون أعلى بطبيعتها. من المهم تفسير هذه النتائج مع إدراك أن ليس كل عمليات الكشف قد تشير إلى نشاط ضارsignature keyword: قد لا ترتبط هذه الكلمات المفتاحية مباشرة بالأدوات، ولكنها قد تتضمن أسماء توقيعات منتجات أمنية، أو سلاسل محددة، أو كلمات مهمة في كشف التهديدات.metadata_tool: اسم الأداة التي نريد كشفها
metadata_description: وصف الأداة التي نريد كشفها
metadata_tool_techniques: تقنيات MITRE المتعلقة بالأداة التي نريد كشفها
metadata_tool_tactics: تكتيكات MITRE المتعلقة بالأداة التي نريد كشفها
metadata_malwares_name: أسماء سلالات البرمجيات الخبيثة التي تستخدم الأداة المعنية
metadata_groups_name: أسماء مجموعات الفاعلين المهاجمين المرتبطة بالأداة
metadata_category: اسم الفئة العامة للأداة. قد يتغير هذا لاحقاً والاقتراحات مرحب بها.
metadata_link: رابط الأداة (الكود المصدري، المقالات، العينات، المدونات ...)
metadata_enable_endpoint_detection: حقل يوضح ما إذا كان يمكن استخدام الكلمة المفتاحية بفعالية في عمليات البحث عبر سجلات نقاط النهاية (endpoint). يشمل ذلك على سبيل المثال لا الحصر سجلات أحداث Windows وEDR وسجلات PowerShell وauditd وجلسات الباستيون (bastion) وSysmon أو أي مصدر بيانات يحتوي على حقول نشاط العمليات والملفات.
metadata_enable_proxy_detection: حقل يوضح قابلية تطبيق الكلمة المفتاحية لعمليات البحث داخل سجلات الشبكة (سجلات Proxy وDNS أو أي بيانات تحتوي على استعلامات وعناوين URL صادرة من الشبكة الداخلية)
metadata_popularity_score: درجة من 1 إلى 10 (من شعبية منخفضة إلى عالية)
metadata_severity_score: درجة من 1 إلى 10 (من خطورة منخفضة إلى عالية)
metadata_tags: وسوم لتحديد القطع الأثرية (artifacts) المحددة، يمكن ربط وسوم متعددة بكلمة مفتاحية واحدة. عندما لا يمكن إضافة بعض القطع الأثرية المحددة إلى القوائم دون مزيد من سياق الكشف، تتم إضافتها في قوائمي الرائعة الأخرى للكشف
metadata_comment: قد يحتوي هذا الحقل على تعليق مفيد مضاف للكلمة المفتاحية.
metadata_github_stars: عدد النجوم على مشروع GitHub (إذا كانت الأداة على GitHub، وإذا كانت في مكان آخر تكون القيمة N/A)، ويُستخدم هذا لحساب درجة الشعبية
metadata_github_forks: عدد الشوكات (forks) على مشروع GitHub (إذا كانت الأداة على GitHub، وإذا كانت في مكان آخر تكون القيمة N/A)، ويمكن استخدامه لإحصائيات لوحة التحكم حول الأدوات الأكثر استخداماً
metadata_github_created_at: تاريخ إنشاء مشروع GitHub (إذا كانت الأداة على GitHub، وإذا كانت في مكان آخر تكون القيمة N/A)، ويمكن استخدامه لإحصائيات لوحة التحكم
metadata_github_updated_at: تاريخ آخر تحديث لمشروع GitHub (إذا كانت الأداة على GitHub، وإذا كانت في مكان آخر تكون القيمة N/A)، ويمكن استخدامه لتتبع التحديثات المهمة للأدوات الهجومية وضبط عمليات كشف الكلمات المفتاحية
_rawkeyword_rawkeyword_detection_raw| search metadata_description!="" AND metadata_enable_endpoint_detection=1 نحن نركز فقط على سجلات نقاط النهاية هنا، لذا نضيف metadata_enable_endpoint_detection=1 لمطابقة الكلمات المفتاحية ذات الصلة بسجلات نقاط النهاية فقط و metadata_description!="" للاحتفاظ بالكلمات المفتاحية المطابقة فقط| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype هنا أجريت تصفية سريعة بدون جميع حقول lookup للمثال (ولكن يمكنك أيضًا إضافتها إذا أردت الحصول على المزيد من احتمالات الاستبعاد)، وهذا يتيح لنا بسهولة معرفة الكلمة المفتاحية التي تطابق كثيرًا، وبالتالي يمكننا استبعاد الفئة أو الأداة بسهولة إذا كان لدينا عدد كبير جدًا من الإيجابيات الكاذبة لها!|loadjob myjobid يمكننا الآن معالجة المخرجات مع السجلات ذات الصلة دون البحث مرة أخرى في جميع السجلات.واستخدم هذا التصور الخاص بـ Splunk: https://splunkbase.splunk.com/app/5742
