Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
chainsaw — البحث السريع والتقصي عبر الأدلة الجنائية لنظام ويندوز | Kitploit
أدوات/GitHubGitHub/withsecureopensource/chainsaw
أدوات دفاعيةتحليل الثغرات الأمنيةالتحقيق الجنائي الرقميالتحاليل الرقمية الجنائيةاستخبارات التهديداتالاستجابة للحوادثتحليل السجلات
GitHubwithsecureopensource/chainsaw

chainsaw

البحث السريع والتقصي عبر الأدلة الجنائية لنظام ويندوز

عرض المستودع
3.7k3054منذ 18 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

البحث السريع والتنقيب في الأدلة الجنائية لنظام ويندوز


توفر Chainsaw قدرة قوية على "الاستجابة الأولى" لتحديد التهديدات بسرعة داخل الأدلة الجنائية لنظام ويندوز مثل سجلات الأحداث وملف MFT. تقدم Chainsaw طريقة عامة وسريعة للبحث في سجلات الأحداث عن الكلمات المفتاحية، ومن خلال تحديد التهديدات باستخدام الدعم المدمج لقواعد كشف Sigma، وعبر قواعد كشف Chainsaw المخصصة.

الميزات

  • 🎯 التنقيب عن التهديدات باستخدام قواعد كشف Sigma وقواعد كشف Chainsaw المخصصة
  • 🔍 البحث واستخراج الأدلة الجنائية عن طريق مطابقة النصوص وأنماط regex
  • 📅 إنشاء خطوط زمنية للتنفيذ من خلال تحليل أدلة Shimcache وإثرائها ببيانات Amcache
  • 💡 تحليل قاعدة بيانات SRUM وتقديم رؤى حولها
  • ⬇️ استخراج المحتوى الخام للأدلة الجنائية (MFT، خلايا التسجيل، قواعد بيانات ESE)
  • ⚡ سريع للغاية، مكتوب بلغة rust، ويلتف حول مكتبة EVTX parser من @OBenamram
  • 🪶 تنفيذ وصيغ إخراج نظيفة وخفيفة دون حشو غير ضروري
  • 🔥 وسم المستندات (مطابقة منطق الكشف) المقدم من مكتبة TAU Engine
  • 📑 إخراج النتائج بصيغ متنوعة، مثل صيغة جدول ASCII، وصيغة CSV، وصيغة JSON
  • 💻 يمكن تشغيله على MacOS وLinux وWindows

جدول المحتويات

  • الميزات
  • لماذا Chainsaw؟
  • منطق التنقيب لسجلات أحداث ويندوز
  • دليل البدء السريع
    • التنزيل والتشغيل
    • التثبيت/البناء باستخدام Nix
    • تحذيرات EDR وAV
    • ما الذي تغير في Chainsaw v2
  • أمثلة
    • البحث
    • التنقيب
    • التحليل
      • Shimcache
      • SRUM (System Resource Usage Monitor)
      • الفجوات (كشف فجوات سجل الأحداث)
    • الاستخراج
  • شكر وتقدير

يمكن العثور على معلومات موسعة في Wiki الخاص بهذه الأداة: https://github.com/WithSecureLabs/chainsaw/wiki

لماذا Chainsaw؟

في WithSecure Countercept، نستوعب مجموعة واسعة من مصادر القياس عن بُعد من نقاط النهاية عبر وكيل EDR الخاص بنا لتقديم خدمة الكشف والاستجابة المُدارة. ومع ذلك، هناك ظروف نحتاج فيها إلى تحليل الأدلة الجنائية بسرعة والتي لم يلتقطها EDR الخاص بنا، ومن الأمثلة الشائعة التحقيقات في الاستجابة للحوادث على نظام لم يكن فيه EDR الخاص بنا مثبتًا وقت الاختراق. تم إنشاء Chainsaw لتزويد صائدي التهديدات ومستشاري الاستجابة للحوادث لدينا بأداة لإجراء فرز سريع للأدلة الجنائية في هذه الظروف.

سجلات أحداث ويندوز

توفر سجلات أحداث ويندوز مصدرًا غنيًا بالمعلومات الجنائية للتنقيب عن التهديدات وتحقيقات الاستجابة للحوادث. لسوء الحظ، يمكن أن تكون معالجة سجلات الأحداث والبحث فيها عملية بطيئة ومستهلكة للوقت، وفي معظم الحالات تتطلب عبء البنية التحتية المحيطة – مثل حزمة ELK أو نسخة Splunk – للتنقيب بكفاءة في بيانات السجل وتطبيق منطق الكشف. غالبًا ما يعني هذا العبء أن الفرق الزرقاء غير قادرة على الفرز السريع لسجلات أحداث ويندوز لتوفير التوجيه والاستنتاجات المطلوبة لدفع تحقيقاتهم قدمًا. تحل Chainsaw هذه المشكلة لأنها تتيح البحث والتنقيب السريع في سجلات أحداث ويندوز.

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

منطق التنقيب لسجلات أحداث ويندوز

مطابقة قواعد Sigma

باستخدام المعاملين --sigma و--mapping يمكنك تحديد دليل يحتوي على مجموعة فرعية من قواعد كشف SIGMA (أو مستودع SIGMA git بالكامل فقط) وستقوم chainsaw تلقائيًا بتحميل هذه القواعد وتحويلها وتشغيلها مقابل سجلات الأحداث المقدمة. يخبر ملف التعيين chainsaw بالحقول التي يجب استخدامها في سجلات الأحداث لمطابقة القواعد. بشكل افتراضي، تدعم Chainsaw مجموعة واسعة من أنواع سجلات الأحداث، بما في ذلك على سبيل المثال لا الحصر:

راجع ملف التعيين للحصول على القائمة الكاملة للحقول المستخدمة لكشف القواعد، ولا تتردد في توسيعها حسب احتياجاتك.

قواعد كشف Chainsaw

بالإضافة إلى دعم قواعد sigma، تدعم Chainsaw أيضًا صيغة قواعد مخصصة. في المستودع ستجد دليل rules الذي يحتوي على قواعد Chainsaw متنوعة تتيح للمستخدمين:

  1. استخراج وتحليل تنبيهات Windows Defender وF-Secure وSophos وKaspersky AV
  2. كشف مسح سجلات الأحداث الرئيسية، أو إيقاف خدمة سجل الأحداث
  3. إنشاء مستخدمين أو إضافتهم إلى مجموعات مستخدمين حساسة
  4. أحداث تسجيل الدخول عن بُعد (الخدمة، RDP، الشبكة، إلخ). يساعد هذا الصائدين على تحديد مصادر الحركة الجانبية
  5. الهجوم بالقوة الغاشمة على حسابات المستخدمين المحليين

دليل البدء السريع

التنزيل والتشغيل

مع إصدار Chainsaw v2، قررنا عدم تضمين مستودعي Sigma Rules وEVTX-Attack-Samples كوحدات فرعية لـ Chainsaw. نوصي باستنساخ هذه المستودعات بشكل منفصل لضمان حصولك على أحدث الإصدارات.

إذا كنت لا تزال بحاجة إلى حزمة شاملة تحتوي على ملف Chainsaw التنفيذي وقواعد Sigma وسجلات الأحداث النموذجية، يمكنك تنزيلها من قسم الإصدارات في مستودع GitHub هذا. في قسم الإصدارات هذا ستجد أيضًا إصدارات ثنائية مُجمّعة مسبقًا لـ Chainsaw فقط لمنصات ومعماريات متنوعة.

إذا كنت تريد تجميع Chainsaw بنفسك، يمكنك استنساخ مستودع Chainsaw:

git clone https://github.com/WithSecureLabs/chainsaw.git

وتجميع الكود بنفسك عن طريق تشغيل: cargo build --release. بمجرد انتهاء البناء، ستجد نسخة من الملف التنفيذي المُجمّع في مجلد target/release.

تأكد من البناء باستخدام علامة --release لأن هذا سيضمن وقت تنفيذ أسرع بكثير.

إذا كنت تريد رؤية شكل Chainsaw عند تشغيله بسرعة، يمكنك استنساخ مستودعي Sigma Rules وEVTX-Attack-Samples:``` git clone https://github.com/SigmaHQ/sigma git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git

root@kitploit:~
ثم شغّل Chainsaw باستخدام المعاملات أدناه:```
./chainsaw hunt EVTX-ATTACK-SAMPLES/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml

التثبيت/البناء باستخدام Nix```

├───devShells │ └───x86_64-linux │ └───default: development environment 'nix-shell' ├───formatter │ └───x86_64-linux: package 'alejandra-3.1.0' └───packages └───x86_64-linux ├───chainsaw: package 'chainsaw-2.10.1' └───default: package 'chainsaw-2.10.1'

root@kitploit:~
Chainsaw، كحزمة، متاح عبر [nixpkgs](https://search.nixos.org/packages?query=chainsaw).
إذا كنت تستخدم NixOS، فقط أضف `chainsaw` إلى ملف تكوين النظام الخاص بك.

ومع ذلك، إذا كنت لا تستخدم NixOS، لا يزال بإمكانك تثبيت Chainsaw عبر Nix. الطريقة الموصى بها هي عبر `nix-shell`، والتي ستعدل مؤقتًا متغير البيئة $PATH الخاص بك.
للقيام بذلك، يرجى تشغيل ما يلي:```
nix-shell -p chainsaw

يمكنك أيضًا الاستفادة من كون هذا المستودع flake، ويمكنك تشغيل ما يلي:``` nix profile install github:WithSecureLabs/chainsaw

root@kitploit:~
ومع ذلك، إذا كنت ترغب في بناء chainsaw بنفسك، باستخدام Nix، يمكنك مرة أخرى الاستفادة من `flake.nix`، الذي يتم توفيره مع هذا المستودع.
لبناء الملف التنفيذي، يرجى تشغيل الأمر التالي، في الدليل الجذر للمستودع المستنسخ```
nix build .#

سيؤدي هذا إلى إنشاء دليل ./result، مع وجود ثنائي chainsaw تحت ./result/bin/chainsaw.

تحذيرات EDR و AV

عند تنزيل chainsaw وتشغيله، قد تجد أن محرك EDR / مكافحة الفيروسات المحلي لديك يكتشف Chainsaw كبرنامج ضار. يمكنك رؤية أمثلة على ذلك في مشكلات GitHub التالية: مثال1، مثال2.

عادةً ما تكون هذه التحذيرات ناتجة عن سجلات الأحداث النموذجية و/أو قواعد Sigma التي تحتوي على إشارات إلى سلاسل ضارة (مثل "mimikatz"). كما رأينا حالات تم فيها اكتشاف ثنائي Chainsaw بواسطة مجموعة صغيرة من محركات مكافحة الفيروسات، وذلك على الأرجح بسبب شكل من أشكال الكشف الاستكشافي.

ما الذي تغيّر في Chainsaw v2؟

في يوليو 2022 أصدرنا الإصدار 2 من Chainsaw، وهو إعادة هيكلة كبيرة لطريقة عمل Chainsaw. يحتوي Chainsaw v2 على عدة تحسينات مهمة، بما في ذلك قائمة النقاط البارزة التالية:

  • نهج محسّن لتعيين قواعد Sigma يؤدي إلى زيادة كبيرة في عدد قواعد Chainsaw المدعومة، وأنواع أحداث سجل الأحداث.
  • مخرجات CLI محسّنة تعرض لقطة من جميع بيانات الأحداث لسجلات الأحداث التي تحتوي على اكتشافات.
  • دعم تحميل وتحليل سجلات الأحداث بصيغتي JSON و XML.
  • وسائط سطر أوامر أنظف وأبسط لميزتي Hunt و Search.
  • معلومات مخرجات إضافية اختيارية، مثل مؤلف القاعدة، وحالة القاعدة، ومستوى القاعدة، إلخ.
  • القدرة على تصفية القواعد المحمّلة حسب الحالة والنوع ومستوى الخطورة.
  • تم فصل قواعد الكشف المدمجة في Chainsaw إلى ملفات قواعد Chainsaw مخصصة
  • تنظيف وإعادة كتابة كود Chainsaw لتحسين قابلية القراءة وتقليل العبء على مساهمات المجتمع.

إذا كنت لا تزال ترغب في استخدام الإصدار 1 من Chainsaw، يمكنك العثور على ثنائيات مُجمّعة في قسم الإصدارات، أو يمكنك الوصول إلى الكود المصدري في فرع v1.x.x. يُرجى ملاحظة أن Chainsaw v1 لم يعد يتم صيانته، وينبغي لجميع المستخدمين التطلع إلى الانتقال إلى Chainsaw v2.

شكر كبير لـ @AlexKornitzer الذي تمكن من تحويل قاعدة كود "Christmas Project" الخاصة بـ Chainsaw v1 إلى منتج مصقول في v2.

أمثلة

البحث

root@kitploit:~
  USAGE:
      chainsaw search [FLAGS] [OPTIONS] <pattern> [--] [path]...

  FLAGS:
      -h, --help            Prints help information
      -i, --ignore-case     Ignore the case when searching patterns
          --json            Print the output in json format
          --load-unknown    Allow chainsaw to try and load files it cannot identify
          --local           Output the timestamp using the local machine's timestamp
      -q                    Suppress informational output
          --skip-errors     Continue to search when an error is encountered
      -V, --version         Prints version information

  OPTIONS:
          --extension <extension>...    Only search through files with the provided extension
          --from <from>                 The timestamp to search from. Drops any documents older than the value provided
      -o, --output <output>             The path to output results to
      -e, --regex <pattern>...          A string or regular expression pattern to search for
      -t, --tau <tau>...                Tau expressions to search with. e.g. 'Event.System.EventID: =4104'
          --timestamp <timestamp>       The field that contains the timestamp
          --timezone <timezone>         Output the timestamp using the timezone provided
          --to <to>                     The timestamp to search up to. Drops any documents newer than the value provided

  ARGS:
      <pattern>    A string or regular expression pattern to search for. Not used when -e or -t is specified
      <path>...    The paths containing event logs to load and hunt through

أمثلة على الأوامر

البحث في جميع ملفات .evtx عن السلسلة "mimikatz" دون حساسية لحالة الأحرف

root@kitploit:~
./chainsaw search mimikatz -i evtx_attack_samples/

*البحث في جميع ملفات .evtx عن أحداث كتلة نصية powershell (معرّف الحدث 4014)

root@kitploit:~
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/

البحث في سجل evtx محدد عن أحداث تسجيل الدخول، بنمط regex مطابق، وإخراج النتائج بصيغة JSON

root@kitploit:~
./chainsaw search -e "DC[0-9].insecurebank.local" evtx_attack_samples --json

الصيد

root@kitploit:~
  USAGE:
      chainsaw hunt [FLAGS] [OPTIONS] [--] [path]...

  FLAGS:
          --csv             Print the output in csv format
          --full            Print the full values for the tabular output
      -h, --help            Prints help information
          --json            Print the output in json format
          --load-unknown    Allow chainsaw to try and load files it cannot identify
          --local           Output the timestamp using the local machine's timestamp
          --log             Print the output in log like format
          --metadata        Display additional metadata in the tablar output
      -q                    Suppress informational output
          --skip-errors     Continue to hunt when an error is encountered
      -V, --version         Prints version information

  OPTIONS:
          --column-width <column-width>    Set the column width for the tabular output
          --extension <extension>...       Only hunt through files with the provided extension
          --from <from>                    The timestamp to hunt from. Drops any documents older than the value provided
          --kind <kind>...                 Restrict loaded rules to specified kinds
          --level <level>...               Restrict loaded rules to specified levels
      -m, --mapping <mapping>...           A mapping file to tell Chainsaw how to use third-party rules
      -o, --output <output>                A path to output results to
      -r, --rule <rule>...                 A path containing additional rules to hunt with
      -s, --sigma <sigma>...               A path containing Sigma rules to hunt with
          --status <status>...             Restrict loaded rules to specified statuses
          --timezone <timezone>            Output the timestamp using the timezone provided
          --to <to>                        The timestamp to hunt up to. Drops any documents newer than the value provided

  ARGS:
      <rules>      The path to a collection of rules to use for hunting
      <path>...    The paths containing event logs to load and hunt through

أمثلة على الأوامر

الصيد عبر جميع ملفات evtx باستخدام قواعد Sigma لمنطق الكشف

root@kitploit:~
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml

الصيد عبر جميع ملفات evtx باستخدام قواعد Sigma وقواعد Chainsaw لمنطق الكشف وإخراج النتائج بصيغة CSV إلى مجلد النتائج

root@kitploit:~
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml -r rules/ --csv --output results

الصيد عبر جميع ملفات evtx باستخدام قواعد Sigma لمنطق الكشف، والبحث فقط بين طوابع زمنية محددة، وإخراج النتائج بصيغة JSON

root@kitploit:~
 ./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml --from "2019-03-17T19:09:39" --to "2019-03-17T19:09:50" --json

المخرجات

root@kitploit:~
$ ./chainsaw hunt -r rules/ evtx_attack_samples -s sigma/rules --mapping mappings/sigma-event-logs-all.yml --level critical

     ██████╗██╗  ██╗ █████╗ ██╗███╗   ██╗███████╗ █████╗ ██╗    ██╗
    ██╔════╝██║  ██║██╔══██╗██║████╗  ██║██╔════╝██╔══██╗██║    ██║
    ██║     ███████║███████║██║██╔██╗ ██║███████╗███████║██║ █╗ ██║
    ██║     ██╔══██║██╔══██║██║██║╚██╗██║╚════██║██╔══██║██║███╗██║
    ╚██████╗██║  ██║██║  ██║██║██║ ╚████║███████║██║  ██║╚███╔███╔╝
     ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝ ╚══╝╚══╝
        By WithSecure Countercept (@FranticTyping, @AlexKornitzer)

    [+] Loading detection rules from: ../../rules/, /tmp/sigma/rules
    [+] Loaded 129 detection rules (198 not loaded)
    [+] Loading event logs from: ../../evtx_attack_samples (extensions: .evtx)
    [+] Loaded 268 EVTX files (37.5 MB)
    [+] Hunting: [========================================] 268/268

    [+] Group: Antivirus
    ┌─────────────────────┬────────────────────┬──────────┬───────────┬─────────────┬────────────────────────────────┬──────────────────────────────────┬────────────────────┐
    │      timestamp      │     detections     │ Event ID │ Record ID │  Computer   │          Threat Name           │           Threat Path            │        User        │
    ├─────────────────────┼────────────────────┼──────────┼───────────┼─────────────┼────────────────────────────────┼──────────────────────────────────┼────────────────────┤
    │ 2019-07-18 20:40:00 │ ‣ Windows Defender │ 1116     │ 37        │ MSEDGEWIN10 │ Trojan:PowerShell/Powersploit. │ file:_C:\AtomicRedTeam\atomic-   │ MSEDGEWIN10\IEUser │
    │                     │                    │          │           │             │ M                              │ red-team-master\atomics\T1056\   │                    │
    │                     │                    │          │           │             │                                │ Get-Keystrokes.ps1               │                    │
    ├─────────────────────┼────────────────────┼──────────┼───────────┼─────────────┼────────────────────────────────┼──────────────────────────────────┼────────────────────┤
    │ 2019-07-18 20:53:31 │ ‣ Windows Defender │ 1117     │ 106       │ MSEDGEWIN10 │ Trojan:XML/Exeselrun.gen!A     │ file:_C:\AtomicRedTeam\atomic-   │ MSEDGEWIN10\IEUser │
    │                     │                    │          │           │             │                                │ red-team-master\atomics\T1086\   │                    │
    │                     │                    │          │           │             │                                │ payloads\test.xsl                │                    │
    └─────────────────────┴────────────────────┴──────────┴───────────┴─────────────┴────────────────────────────────┴──────────────────────────────────┴────────────────────┘

    [+] Group: Log Tampering
    ┌─────────────────────┬───────────────────────────────┬──────────┬───────────┬────────────────────────────────┬───────────────┐
    │      timestamp      │          detections           │ Event ID │ Record ID │            Computer            │     User      │
    ├─────────────────────┼───────────────────────────────┼──────────┼───────────┼────────────────────────────────┼───────────────┤
    │ 2019-01-20 07:00:50 │ ‣ Security Audit Logs Cleared │ 1102     │ 32853     │ WIN-77LTAPHIQ1R.example.corp   │ Administrator │
    └─────────────────────┴───────────────────────────────┴──────────┴───────────┴────────────────────────────────┴───────────────┘[+] Group: Sigma
    ┌─────────────────────┬────────────────────────────────┬───────┬────────────────────────────────┬──────────┬───────────┬──────────────────────────┬──────────────────────────────────┐
    │      timestamp      │           detections           │ count │     Event.System.Provider      │ Event ID │ Record ID │         Computer         │            Event Data            │
    ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
    │ 2019-04-29 20:59:14 │ ‣ Malicious Named Pipe         │ 1     │ Microsoft-Windows-Sysmon       │ 18       │ 8046      │ IEWIN7                   │ ---                              │
    │                     │                                │       │                                │          │           │                          │ Image: System                    │
    │                     │                                │       │                                │          │           │                          │ PipeName: "\\46a676ab7f179e511   │
    │                     │                                │       │                                │          │           │                          │ e30dd2dc41bd388"                 │
    │                     │                                │       │                                │          │           │                          │ ProcessGuid: 365ABB72-D9C4-5CC   │
    │                     │                                │       │                                │          │           │                          │ 7-0000-0010EA030000              │
    │                     │                                │       │                                │          │           │                          │ ProcessId: 4                     │
    │                     │                                │       │                                │          │           │                          │ RuleName: ""                     │
    │                     │                                │       │                                │          │           │                          │ UtcTime: "2019-04-29 20:59:14.   │
    │                     │                                │       │                                │          │           │                          │ 430"                             │
    ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
    │ 2019-04-30 20:26:51 │ ‣ CobaltStrike Service         │ 1     │ Microsoft-Windows-Sysmon       │ 13       │ 9806      │ IEWIN7                   │ ---                              │
    │                     │ Installations in Registry      │       │                                │          │           │                          │ Details: "%%COMSPEC%% /b /c st   │
    │                     │                                │       │                                │          │           │                          │ art /b /min powershell.exe -no   │
    │                     │                                │       │                                │          │           │                          │ p -w hidden -noni -c \"if([Int   │
    │                     │                                │       │                                │          │           │                          │ Ptr]::Size -eq 4){$b='powershe   │
    │                     │                                │       │                                │          │           │                          │ ll.exe'}else{$b=$env:windir+'\   │
    │                     │                                │       │                                │          │           │                          │ \syswow64\\WindowsPowerShell\\   │
    │                     │                                │       │                                │          │           │                          │ v1.0\\powershell.exe'};$s=New-   │
    │                     │                                │       │                                │          │           │                          │ Object System.Diagnostics.Proc   │
    │                     │                                │       │                                │          │           │                          │ essStartInfo;$s.FileName=$b;$s   │
    │                     │                                │       │                                │          │           │                          │ .Arguments='-noni -nop -w hidd   │
    │                     │                                │       │                                │          │           │                          │ en -c &([scriptblock]::create(   │
    │                     │                                │       │                                │          │           │                          │ (New-Object IO.StreamReader(Ne   │
    │                     │                                │       │                                │          │           │                          │ w-Object IO.Compression.GzipSt   │
    │                     │                                │       │                                │          │           │                          │ ream((New-Object IO.MemoryStre   │
    │                     │                                │       │                                │          │           │                          │ am(,[Convert]::FromBase64Strin   │
    │                     │                                │       │                                │          │           │                          │ g(''H4sIAIuvyFwCA7VW+2/aSBD+OZ   │
    │                     │                                │       │                                │          │           │                          │ H6P1...                          │
    │                     │                                │       │                                │          │           │                          │ (use --full to show all content) │
    │                     │                                │       │                                │          │           │                          │ EventType: SetValue              │
    │                     │                                │       │                                │          │           │                          │ Image: "C:\\Windows\\system32\   │
    │                     │                                │       │                                │          │           │                          │ \services.exe"                   │
    │                     │                                │       │                                │          │           │                          │ ProcessGuid: 365ABB72-2586-5CC   │
    │                     │                                │       │                                │          │           │                          │ 9-0000-0010DC530000              │
    │                     │                                │       │                                │          │           │                          │ ProcessId: 460                   │
    │                     │                                │       │                                │          │           │                          │ RuleName: ""                     │
    │                     │                                │       │                                │          │           │                          │ TargetObject: "HKLM\\System\\C   │
    │                     │                                │       │                                │          │           │                          │ urrentControlSet\\services\\he   │
    │                     │                                │       │                                │          │           │                          │ llo\\ImagePath"                  │
    │                     │                                │       │                                │          │           │                          │ UtcTime: "2019-04-30 20:26:51.   │
    │                     │                                │       │                                │          │           │                          │ 934"                             │
    ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
    │ 2019-05-12 12:52:43 │ ‣ Meterpreter or Cobalt        │ 1     │ Service Control Manager        │ 7045     │ 10446     │ IEWIN7                   │ ---                              │
    │                     │ Strike Getsystem Service       │       │                                │          │           │                          │ AccountName: LocalSystem         │
    │                     │ Installation                   │       │                                │          │           │                          │ ImagePath: "%COMSPEC% /c ping    │
    │                     │                                │       │                                │          │           │                          │ -n 1 127.0.0.1 >nul && echo 'W   │
    │                     │                                │       │                                │          │           │                          │ inPwnage' > \\\\.\\pipe\\WinPw   │
    │                     │                                │       │                                │          │           │                          │ nagePipe"                        │
    │                     │                                │       │                                │          │           │                          │ ServiceName: WinPwnage           │
    │                     │                                │       │                                │          │           │                          │ ServiceType: user mode service   │
    │                     │                                │       │                                │          │           │                          │ StartType: demand start          │
    ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
    │ 2019-06-21 07:35:37 │ ‣ Dumpert Process Dumper       │ 1     │ Microsoft-Windows-Sysmon       │ 11       │ 238375    │ alice.insecurebank.local │ ---                              │
    │                     │                                │       │                                │          │           │                          │ CreationUtcTime: "2019-06-21 0   │
    │                     │                                │       │                                │          │           │                          │ 6:53:03.227"                     │
    │                     │                                │       │                                │          │           │                          │ Image: "C:\\Users\\administrat   │
    │                     │                                │       │                                │          │           │                          │ or\\Desktop\\x64\\Outflank-Dum   │
    │                     │                                │       │                                │          │           │                          │ pert.exe"                        │
    │                     │                                │       │                                │          │           │                          │ ProcessGuid: ECAD0485-88C9-5D0   │
    │                     │                                │       │                                │          │           │                          │ C-0000-0010348C1D00              │
    │                     │                                │       │                                │          │           │                          │ ProcessId: 3572                  │
    │                     │                                │       │                                │          │           │                          │ RuleName: ""                     │
    │                     │                                │       │                                │          │           │                          │ TargetFilename: "C:\\Windows\\   │
    │                     │                                │       │                                │          │           │                          │ Temp\\dumpert.dmp"               │
    │                     │                                │       │                                │          │           │                          │ UtcTime: "2019-06-21 07:35:37.   │
    │                     │                                │       │                                │          │           │                          │ 324"                             │
    └─────────────────────┴────────────────────────────────┴───────┴────────────────────────────────┴──────────┴───────────┴──────────────────────────┴──────────────────────────────────┘

التحليل

Shimcache

root@kitploit:~
COMMAND:
    analyse shimcache                 Create an execution timeline from the shimcache with optional amcache enrichments

USAGE:
    chainsaw analyse shimcache [OPTIONS] <SHIMCACHE>

ARGUMENTS:
    <SHIMCACHE>                       The path to the shimcache artefact (SYSTEM registry file)

OPTIONS:
    -e, --regex <pattern>             A string or regular expression for detecting shimcache entries whose timestamp matches their insertion time
    -r, --regexfile <REGEX_FILE>      The path to a newline delimited file containing regex patterns for detecting shimcache entries whose timestamp matches their insertion time
    -o, --output <OUTPUT>             The path to output the result csv file
    -a, --amcache <AMCACHE>           The path to the amcache artefact (Amcache.hve) for timeline enrichment
    -p, --tspair                      Enable near timestamp pair detection between shimcache and amcache for finding additional insertion timestamps for shimcache entries
    -h, --help                        Print help
  • يتضمن ملف الأنماط المثال الخاص بمعامل --regexfile في analysis/shimcache_patterns.txt.
  • تتم مطابقة أنماط Regex على المسارات في إدخالات shimcache بعد تحويلها إلى أحرف صغيرة.
أمثلة على الأوامر

تحليل أثر shimcache باستخدام أنماط regex المقدمة، واستخدام إثراء amcache مع تفعيل الكشف عن الأزواج المتقاربة زمنياً. الإخراج إلى ملف csv.

root@kitploit:~
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv

تحليل أثر shimcache باستخدام أنماط regex المقدمة (بدون إثراء amcache). الإخراج إلى الطرفية.

root@kitploit:~
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt

Gaps (كشف الفجوات في سجل الأحداث)

يكتشف مؤشرين للتلاعب الانتقائي بسجل الأحداث داخل ملف واحد أو أكثر من ملفات .evtx:

  • فجوات RecordID: عادةً ما تكون قيم EventRecordID لكل قناة متزايدة بشكل رتيب دون ثغرات. وجود ثغرة داخل ملف evtx واحد (أي ليس عند حدود تدوير السجلات) أمر غير معتاد وهو البصمة التي تتركها الأدوات التي تحذف سجلات فردية بشكل جراحي (مثل تقنيات نمط Eventlogedit) دون إطلاق حدث "تم مسح السجل" الصاخب (EID 1102).

  • الفجوات الزمنية: النوافذ الهادئة الطويلة بشكل غير متوقع بين الأحداث المتتالية على قناة عادةً ما تكون مزدحمة بالأحداث قد تشير إلى أن السجلات داخل تلك النافذة قد أُزيلت. العتبة قابلة للتكوين؛ ويُترك وضع خط أساس لكل مضيف للمحلل.

    COMMAND: analyse gaps Detect chronological or RecordID gaps in evtx files (possible selective record deletion)

    USAGE: chainsaw analyse gaps [OPTIONS] [PATH]...

    ARGUMENTS: [PATH]... The path(s) to evtx files or directories containing them

    OPTIONS: --min-time-gap-minutes Minimum time gap (in minutes) between consecutive events to flag as suspicious [default: 30] --no-record-id-gaps Skip RecordID gap detection (only flag time gaps) --no-time-gaps Skip time gap detection (only flag RecordID gaps) -j, --json Print the output in json format -o, --output Save the output to a file -q Suppress informational output --skip-errors Continue when an error is encountered -h, --help Print help

أمثلة على الأوامر

فحص دليل من ملفات evtx بحثاً عن فجوات RecordID والفجوات الزمنية مع العتبة الافتراضية البالغة 30 دقيقة:

root@kitploit:~
./chainsaw analyse gaps ./Logs/

البحث فقط عن السجلات المحذوفة انتقائياً (ثغرات RecordID)، وإخراج JSON قابل للقراءة آلياً:

root@kitploit:~
./chainsaw analyse gaps ./Logs/ --no-time-gaps --json -o ./gaps.json

SRUM (System Resource Usage Monitor)

يختلف محلل قاعدة بيانات SRUM المُنفَّذ في Chainsaw عن المحللات الأخرى لأنه لا يعتمد على قيم مُضمَّنة بشكل ثابت حول الجداول. تُستخرج المعلومات مباشرةً من خلية SOFTWARE، وهي معامل إلزامي. الهدف هو تجنب الأخطاء المتعلقة بالجداول غير المعروفة.

root@kitploit:~
COMMAND:
    analyse srum                             Analyse the SRUM database

USAGE:
    chainsaw analyse srum [OPTIONS] --software <SOFTWARE_HIVE_PATH> <SRUM_PATH>

ARGUMENTS:
    <SRUM_PATH>                              The path to the SRUM database

OPTIONS:
    -s, --software <SOFTWARE_HIVE_PATH>      The path to the SOFTWARE hive
        --stats-only                         Only output details about the SRUM database
    -q                                       Suppress informational output
    -o, --output <OUTPUT>                    Save the output to a file
    -h, --help                               Print help
مثال على الأمر

تحليل قاعدة بيانات SRUM (خلية SOFTWARE إلزامية)

root@kitploit:~
./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat --output ./output.json
الإخراج
root@kitploit:~
$ ./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat -o ./output.json

     ██████╗██╗  ██╗ █████╗ ██╗███╗   ██╗███████╗ █████╗ ██╗    ██╗
    ██╔════╝██║  ██║██╔══██╗██║████╗  ██║██╔════╝██╔══██╗██║    ██║
    ██║     ███████║███████║██║██╔██╗ ██║███████╗███████║██║ █╗ ██║
    ██║     ██╔══██║██╔══██║██║██║╚██╗██║╚════██║██╔══██║██║███╗██║
    ╚██████╗██║  ██║██║  ██║██║██║ ╚████║███████║██║  ██║╚███╔███╔╝
     ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝ ╚══╝╚══╝
        By WithSecure Countercept (@FranticTyping, @AlexKornitzer)[+] تم تحميل ملف قاعدة بيانات ESE من "/home/user/Documents/SRUDB.dat"
    [+] جارٍ تحليل قاعدة بيانات ESE...
    [+] تم تحميل خلية SOFTWARE من "/home/user/Documents/SOFTWARE"
    [+] جارٍ تحليل خلية سجل SOFTWARE...
    [+] جارٍ تحليل قاعدة بيانات SRUM...
    [+] تفاصيل حول الجداول المتعلقة بملحقات SRUM:
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | Table GUID                               | Table Name                                 | DLL Path                             | Timeframe of the data   | Expected Retention Time |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {5C8CF1C7-7257-4F13-B223-970EF5939312}   | App Timeline Provider                      | %SystemRoot%\System32\eeprov.dll     | 2022-03-10 16:34:59 UTC | 7 days                  |
    |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {B6D82AF1-F780-4E17-8077-6CB9AD8A6FC4}   | Tagged Energy Provider                     | %SystemRoot%\System32\eeprov.dll     | No records              | 3 days                  |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {D10CA2FE-6FCF-4F6D-848E-B2E99266FA86}   | WPN SRUM Provider                          | %SystemRoot%\System32\wpnsruprov.dll | 2022-03-10 20:09:00 UTC | 60 days                 |
    |                                          |                                            |                                      | 2022-03-10 21:09:00 UTC |                         |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {D10CA2FE-6FCF-4F6D-848E-B2E99266FA89}   | Application Resource Usage Provider        | %SystemRoot%\System32\appsruprov.dll | 2022-03-10 16:34:59 UTC | 60 days                 |
    |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}   | Energy Usage Provider                      | %SystemRoot%\System32\energyprov.dll | No records              | 60 days                 |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}LT | Energy Usage Provider (Long Term)          | %SystemRoot%\System32\energyprov.dll | No records              | 1820 days               |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {973F5D5C-1D90-4944-BE8E-24B94231A174}   | Windows Network Data Usage Monitor         | %SystemRoot%\System32\nduprov.dll    | 2022-03-10 16:34:59 UTC | 60 days                 |
    |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {7ACBBAA3-D029-4BE4-9A7A-0885927F1D8F}   | vfuprov                                    | %SystemRoot%\System32\vfuprov.dll    | 2022-03-10 20:09:00 UTC | 60 days                 |
    |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {DA73FB89-2BEA-4DDC-86B8-6E048C6DA477}   | Energy Estimation Provider                 | %SystemRoot%\System32\eeprov.dll     | No records              | 7 days                  |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    | {DD6636C4-8929-4683-974E-22C046A43763}   | Windows Network Connectivity Usage Monitor | %SystemRoot%\System32\ncuprov.dll    | 2022-03-10 16:34:59 UTC | 60 days                 |
    |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
    +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
    [+] تم تحليل قاعدة بيانات SRUM بنجاح
    [+] جارٍ حفظ المخرجات في "/home/user/Documents/output.json"
    [+] تم حفظ المخرجات في "/home/user/Documents/output.json"
رؤى التحليل الجنائي

يمكن العثور على معلومات حول الرؤى الجنائية الجديدة المتعلقة بهذا الأثر في الويكي: https://github.com/WithSecureLabs/chainsaw/wiki/SRUM-Analysis.

التفريغ

root@kitploit:~
USAGE:
    chainsaw dump [OPTIONS] <PATH>

ARGUMENTS:
    <PATH>                  The path to an artefact to dump

OPTIONS:
    -j, --json              Dump in json format
        --jsonl             Print the output in jsonl format
        --load-unknown      Allow chainsaw to try and load files it cannot identify
    -o, --output <OUTPUT>   A path to output results to
    -q                      Suppress informational output
        --skip-errors       Continue to hunt when an error is encountered
    -h, --help              Print help

مثال على الأمر

تفريغ خلية SOFTWARE

root@kitploit:~
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json

شكر وتقدير

  • EVTX-ATTACK-SAMPLES بواسطة @SBousseaden
  • قواعد الكشف Sigma
  • مكتبة EVTX parser بواسطة @OBenamram
  • مكتبة TAU Engine بواسطة @AlexKornitzer
  • تم تطوير ميزة تحليل Shimcache كجزء من مشروع CC-Driver، بتمويل من برنامج Horizon 2020 للبحث والابتكار التابع للاتحاد الأوروبي بموجب اتفاقية المنحة رقم 883543
  • DFIRArtifactMuseum بواسطة Andrew Rathbun (@bunsofwrath12)
تنزيل الأداة
نوع الحدثمعرف الحدث
إنشاء عملية (Sysmon)1
اتصالات الشبكة (Sysmon)3
تحميل الصور (Sysmon)7
إنشاء ملف (Sysmon)11
أحداث التسجيل (Sysmon)13
كتل نصوص Powershell4104
إنشاء عملية4688
إنشاء مهمة مجدولة4698
إنشاء خدمة7045