
C# أدوات استطلاع الهجوم الموجّه
هذه تجميعية .NET مخصصة ستقوم بعدد من أنشطة الوعي الظرفي. توجد عدة مجموعات ميزات حالية:
لم تكن لدي أي فكرة أن GhostPack قيد التطوير عندما كتبت هذا؛ لقد انتهى بنا الأمر بإطلاق أدواتنا في نفس الوقت تقريبًا. الحقيقة هي أن GhostPack الآن أكثر ثراءً بالميزات. سأقوم بإزالة وظيفة PrivescCheck لأن SharpUp تغطي جميع وظائفها وأكثر.
النقطة الأساسية حول هذا هو أنه تم تنفيذه بالكامل في .NET الخام - لذا لا يوجد PowerShell.
يتم تكوينه والتحكم فيه بواسطة معلمات سطر الأوامر، مما يجعله مناسبًا للاستخدام مع توجيه execute-assembly لـ Beacon.
يحصل هذا على عدد من قطع المعلومات من المضيف. كن محذرًا من أنه قد يكون هناك الكثير من المخرجات. سيعرض:
يجب تمرير الفعل 'basic' في سطر الأوامر، متبوعًا بالفحص المحدد المطلوب. إذا تم تمرير الكلمة 'all' كمعامل ثانٍ، فسيتم تنفيذ كل فحص.
لاحظ أنه إذا تم استخدام 'all'، فسيتم تضمين 'proxycheck http://www.google.com' تلقائيًا. راجع قسم proxycheck للحصول على التفاصيل.
قم بإجراء جميع الفحوصات الأساسية: beacon> execute-assembly /tmp/Reconerator.exe أو beacon> execute-assembly /tmp/Reconerator.exe basic all
تعداد mru فقط: beacon> execute-assembly /tmp/Reconerator.exe basic mru
قائمة محركات الأقراص المعينة فقط: beacon> execute-assembly /tmp/Reconerator.exe basic mappeddrives
آمن بشكل معقول. هذا استعلام عن تسجيل النظام؛ من غير المحتمل أن تتم مراقبته.
يسمح لك هذا بإجراء استعلام LDAP. أسهل طريقة لتوضيح ذلك هي بالمثال.
سيعرض هذا جميع المستخدمين في المجال 'dc=stufus,dc=lan' مع W2K8DC كوحدة تحكم بالمجال:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 0
سيعرض هذا بحد أقصى 5 مستخدمين في المجال 'dc=stufus,dc=lan' مع W2K8DC كوحدة تحكم بالمجال:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 5
سيعرض هذا جميع أعضاء مجموعة مسؤولي المجال في المجال 'dc=stufus,dc=lan' مع W2K8DC كوحدة تحكم بالمجال:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "(&(objectClass=group)(cn=Domain Admins))" 0
سيعرض هذا جميع أعضاء مجموعات مسؤولي المجال أو مسؤولي المؤسسة في المجال 'dc=stufus,dc=lan' مع W2012DC كوحدة تحكم بالمجال:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2012DC/dc=stufus,dc=lan" "(&(objectClass=group)(|(cn=Enterprise Admins)(cn=Domain Admins)))" 0
سيؤدي هذا إلى إنشاء حركة مرور شبكة إلى وحدة تحكم المجال التي تحددها. ليكون الأمر واضحًا، فهو يستخدم LDAP (بدلاً من RPC أو ما شابه).
يقوم هذا باستعلام DNS باستخدام خادم DNS الخاص بالمضيف.
حل www.google.com:
beacon> execute-assembly /tmp/Reconerator.exe resolvehost www.google.com
سيؤدي هذا إلى إنشاء استعلام DNS إلى وحدة التحكم بالمجال، ولكن من غير المحتمل أن يثير أي شيء هذا كتنبيه نظرًا للحجم الهائل لطلبات DNS المشروعة.
يسمح لك هذا بالتفاعل مع بحث Windows (المعروف سابقًا بخدمة فهرسة Windows) والذي سيسمح لك بالبحث عن الملفات والمجلدات المثيرة للاهتمام (ومحتوياتها) بسرعة كبيرة. عادةً ما يتم فهرسة رسائل البريد الإلكتروني، ولكن مجلدات الشبكة ليست كذلك، لذلك قد لا يكون مثاليًا للبحث عن أدلة المنزل للمستخدمين إذا كانت مخزنة عن بُعد. ومع ذلك، فهو سريع جدًا.
الواجهة لبحث Windows تشبه SQL؛ يتيح لك هذا التنفيذ، بشكل فعال، تحديد محتويات عبارة 'WHERE'. من الأسهل شرح ذلك بمثال، ولكنك ستحتاج إلى قراءة MSDN إذا كنت تريد معرفة كل المعايير الممكنة.
ابحث عن كل شيء تمت فهرسته والذي يحتوي على الكلمة 'password' في مكان ما (أي يبحث في محتويات الملفات ورسائل البريد الإلكتروني):
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "CONTAINS('password')"
ابحث عن كل شيء تمت فهرسته والذي يحتوي على الكلمة 'stufus' في المسار أو اسم الملف في مكان ما:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemPathDisplay LIKE '%stufus%'"
ابحث عن كل شيء تمت فهرسته والذي يحتوي على الكلمة 'stufus' في اسم الملف أو يحتوي على الكلمة 'secret':
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemName LIKE '%stufus%' OR CONTAINS('secret')"
لست على علم بأي شيء يمكن أن يثير هذا كشيء مشبوه.
يعيد هذا خادم الوكيل الذي سيتم استخدامه لزيارة عنوان URL معين. هذا للتعامل مع الموقف الذي قد يكون فيه وكلاء مختلفون لعناوين URL مختلفة، أو استثناءات معقدة مختلفة مطبقة. يتم تمرير عنوان URL المطلوب كمعامل.
لاحظ أنه إذا تم تحديد 'basic all' (انظر أعلاه)، فإنه يتضمن تلقائيًا فحص وكيل إلى http://www.google.com، على افتراض أن معظم المؤسسات لديها وكيل صادر واحد لجميع الوصول إلى الإنترنت غير الداخلي.
اعرض خادم الوكيل الذي سيتم استخدامه عند زيارة www.google.com:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck www.google.com
اعرض خادم الوكيل الذي سيتم استخدامه عند زيارة https://www.mwrinfosecurity.com:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck https://www.mwrinfosecurity.com
هذا نشاط محلي ومشروع؛ لست على علم بأي شيء يمكن أن يثيره كمشبوه.
سيستكشف هذا عددًا من نواقل تصعيد الامتيازات ويبلغ عما إذا كانت ممكنة أم لا. حاليًا، هذا العدد هو 1.
مثل وحدة BASIC أعلاه، يمكن تحديد privesccheck all في سطر الأوامر لمحاولة جميع الفحوصات، أو يمكن تحديد فحص معين إذا لزم الأمر.
يجب تمرير الفعل 'privesccheck' في سطر الأوامر، متبوعًا بالفحص المحدد المطلوب. إذا تم تمرير الكلمة 'all' كمعامل ثانٍ، فسيتم تنفيذ كل فحص.
| الفحص | الوصف |
|---|---|
| alwaysinstallelevated | تحديد ما إذا كان مفتاح 'AlwaysInstallElevated' مضبوطًا على 1 أم لا. إذا كان مضبوطًا، فسيؤدي هذا إلى تشغيل أي ملف MSI كمسؤول محلي. |
| الفحص | ملاحظات |
|---|---|
| alwaysinstallelevated | هذا استعلام تسجيل محلي؛ من غير المحتمل أن يميز أي شيء هذا كخبيث. |
حاول جميع فحوصات تصعيد الامتيازات:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck all
تحقق فقط مما إذا كان مفتاح التسجيل AlwaysInstallElevated مضبوطًا:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck alwaysinstallelevated
قم بتجميع هذا في Visual Studio 2019. يستهدف حاليًا .NET v4. يمكنك تغيير ذلك في تفضيلات التجميع إذا أردت.
| الفحص | الوصف |
|---|
| env | يعرض جميع متغيرات البيئة. |
| info | يعرض عنوان IP للمضيف ومعرف إصدار نظام التشغيل الرئيسي/الثانوي. |
| mru | يبحث في قوائم "الأكثر استخدامًا مؤخرًا" المختلفة. تتضمن هذه حاليًا سجل مربع التشغيل وMRU لملفات ومسار Office لجميع إصدارات Word وExcel وPowerpoint وAccess وPublisher وVisio. يعرض أيضًا موقع مجلد "الأخيرة" الخاص. |
| favourites | يعرض عناوين URL المخزنة في مجلد المفضلة (وهي في الأساس العلامات المرجعية للمستخدم). لا يدعم حاليًا المجلدات الفرعية؛ سأحتاج إلى إصلاح ذلك. |
| mappeddrives | يعرض محركات الأقراص المعينة على الشبكة من جلسة المستخدم. مفيد للعثور السريع على مشاركات الملفات المركزية وأدلة المنزل. إذا كان معينًا، فمن المحتمل أنه يحتوي على بيانات مفيدة. |
| installedapplications | يسرد التطبيقات التي تم تثبيتها. يشمل ذلك التطبيقات التي تم تثبيتها كمسؤول (على الجهاز المحلي) والتطبيقات التي تم تثبيتها بواسطة المستخدم الحالي. يتم إدراجها في أماكن مختلفة في التسجيل. |
| onedrive | يعرض معلومات حول OneDrive (بما في ذلك مواقع الفرق/المستأجرين المتزامنة). |