نكتب بانتظام عن كيفية اعتماد المتسللين غالبًا على تقنيات القرصنة غير الضارة لتجنب اكتشافهم. إنهم حرفيًا "يعيشون على العشب" باستخدام أدوات Windows القياسية ، وبالتالي يتخطون مضادات الفيروسات والأدوات المساعدة الأخرى لاكتشاف الأنشطة الضارة. بصفتنا مدافعين ، يتعين علينا الآن التعامل مع العواقب الوخيمة لتقنيات القرصنة الذكية هذه: يمكن للموظف المتميز استخدام نفس النهج لسرقة البيانات خلسة (الملكية الفكرية للشركة ، وأرقام بطاقات الائتمان). وإذا أخذ وقته وعمل ببطء ودون أن يلاحظه أحد ، فسيكون من الصعب للغاية - ولكن لا يزال من الممكن ، مع النهج الصحيح والأدوات المناسبة - اكتشاف مثل هذا النشاط.
من ناحية أخرى ، لا أرغب في شيطنة الموظفين ، حيث لا أحد يرغب في العمل في بيئة أعمال مباشرة منذ 1984 لأورويل. لحسن الحظ ، هناك عدد من الخطوات العملية والحيل المتسللة التي يمكن أن تجعل الحياة أكثر صعوبة على المطلعين. سنلقي نظرة على أساليب الهجوم الخفية التي يستخدمها المتسللون من قبل موظفين لديهم بعض الخلفية التقنية. وبعد ذلك بقليل سنناقش الخيارات للحد من هذه المخاطر - سوف ندرس كلاً من الخيارات التقنية والتنظيمية للعمل.
ما هو الخطأ في PsExec؟
إدوارد سنودن ، سواء كان محقًا أم لا ، أصبح مرادفًا لسرقة البيانات الداخلية. بالمناسبة ، لا تنس إلقاء نظرة على هذا المنشور عن المطلعين الآخرين الذين يستحقون أيضًا بعض الشهرة. إحدى النقاط المهمة التي يجب التأكيد عليها حول الأساليب التي استخدمها سنودن هي أنه على حد علمنا لم يقم بتثبيت أي برامج ضارة خارجية!
بدلاً من ذلك ، استخدم سنودن القليل من الهندسة الاجتماعية واستخدم وظيفته كمسؤول نظام لجمع كلمات المرور وإنشاء بيانات الاعتماد. لا شيء يتوهم - لا تقليد أو هجمات رجل في الوسط أو metasploit .
لا تكون المنظمات دائمًا في موقع سنودن الفريد ، ولكن هناك عددًا من الدروس التي يجب أن تكون على دراية بها من مفهوم "بقاء الرعي" - وليس القيام بأي أعمال ضارة يمكن اكتشافها ، وتوخي الحذر بشكل خاص بشأن استخدام بيانات الاعتماد. تذكر هذا الفكر. أثارت
Psexec وابن عمها crackmapexec إعجاب عدد لا يحصى من المخترقين والمتسللين والمدونين في أمن المعلومات. وبالاقتران مع mimikatz ، تسمح psexec للمهاجمين بالتنقل داخل الشبكة دون الحاجة إلى معرفة كلمة المرور النصية الواضحة.
يعترض Mimikatz تجزئة NTLM من عملية LSASS ، ثم يمرر الرمز أو بيانات الاعتماد - ما يسمى. هجوم "اجتياز التجزئة"- في psexec ، مما يسمح للمهاجمين بتسجيل الدخول إلى خادم آخر نيابة عن مستخدم آخر . ومع كل انتقال لاحق إلى خادم جديد ، يجمع المهاجم بيانات اعتماد إضافية ، مما يوسع نطاق قدراته في العثور على المحتوى المتاح.
عندما بدأت لأول مرة العمل مع psexec، بدا السحري لي - بفضل مارك روسينوفيتش ، المطور عبقرية psexec - لكنني أعرف أيضا حول لها صاخبة المكونات. إنه ليس سريًا أبدًا!
أول حقيقة مثيرة للاهتمام حول psexec هي أنها تستخدم بروتوكول ملفات شبكة SMB شديد التعقيد من Microsoft. يستخدم Psexec SMB لإرسال ملف ثنائي صغيرمن الملفات إلى النظام الهدف بوضعها في المجلد C: \ Windows.
بعد ذلك ، ينشئ psexec خدمة Windows باستخدام الثنائي المنسوخ ويقوم بتشغيلها تحت اسم PSEXECSVC "غير متوقع" للغاية. في نفس الوقت ، يمكنك في الواقع رؤية كل هذا ، كما فعلت أنا ، مشاهدة الآلة البعيدة (انظر أدناه).
بطاقة عمل Psexec: خدمة "PSEXECSVC". يقوم بتشغيل ملف ثنائي تم وضعه فوق SMB في المجلد C: \ Windows.
كخطوة أخيرة ، يفتح الثنائي المنسوخ اتصال RPC بالخادم الهدف ثم يقبل أوامر التحكم (افتراضيًا من خلال Windows cmd shell) ، ويقوم بتشغيلها وإعادة توجيه المدخلات والمخرجات إلى الجهاز الرئيسي للمهاجم. في هذه الحالة ، يرى المهاجم سطر الأوامر الأساسي - كما لو كان متصلاً بشكل مباشر.
الكثير من المكونات وعملية صاخبة للغاية!
تشرح عملية Psexec الداخلية المعقدة الرسالة التي حيرتني أثناء اختباراتي الأولى قبل بضع سنوات: "بدء PSEXECSVC ..." متبوعًا بوقفة قبل ظهور سطر الأوامر.
يُظهر Psexec من Impacket حقًا ما يحدث تحت الغطاء.
لا عجب: أن psexec قامت بالكثير من العمل تحت غطاء المحرك. إذا كنت مهتمًا بشرح أكثر تفصيلاً ، تحقق من هذا الوصف الرائع هنا.
من الواضح ، عند استخدامها كأداة لإدارة النظام ، والذي كان الغرض الأصلي من psexec ، فلا حرج في أزيز كل آليات Windows هذه. ومع ذلك ، بالنسبة للمهاجم ، فإن psexec قد تخلق تعقيدات ، وبالنسبة إلى شخص مطلع حذر وماكر مثل Snowden أو psexec أو أداة مساعدة مماثلة ، فإن ذلك سيكون مخاطرة كبيرة.
ثم يأتي Smbexec
SMB هي طريقة ذكية وخفية لنقل الملفات بين الخوادم ، وقد تسلل المتسللون إلى SMB مباشرة لعدة قرون. أعتقد أن الجميع يعرف بالفعل أنه لا ينبغي عليك فتح منفذي SMB 445 و 139 على الإنترنت ، أليس كذلك؟
في Defcon في عام 2013 ، أطلق Eric Milman ( brav0hax ) smbexec بحيث يمكن لمختبري الاختراق تجربة قرصنة SMB خلسة. لا أعرف القصة كاملة ، ولكن بعد ذلك قام Impacket بتحسين smbexec أكثر. في الواقع ، من أجل الاختبار ، قمت بتنزيل البرامج النصية من Impacket في Python من Github .
على عكس psexec ، يتجنب smbexecنقل ملف ثنائي يمكن اكتشافه إلى الجهاز الهدف. بدلاً من ذلك ، تعيش الأداة بالكامل بعيدًا عن العشب عن طريق تشغيل سطر أوامر Windows المحلي .
هذا ما يفعله: يرسل أمرًا من الجهاز المهاجم عبر SMB إلى ملف إدخال خاص ، ثم ينشئ ويشغل سطر أوامر معقدًا (مثل خدمة Windows) يبدو مألوفًا لمستخدمي Linux. باختصار: يقوم بتشغيل shell أصلي لـ Windows cmd ، ويعيد توجيه الإخراج إلى ملف آخر ، ثم يرسله عبر SMB مرة أخرى إلى جهاز المهاجم.
أفضل طريقة لفهم ذلك هي دراسة سطر الأوامر ، الذي تمكنت من الحصول عليه من سجل الأحداث (انظر أدناه).
أليست هذه هي أفضل طريقة لإعادة توجيه I / O؟ بالمناسبة ، إنشاء الخدمة له معرف الحدث 7045.
مثل psexec ، يقوم أيضًا بإنشاء خدمة تقوم بكل العمل ، ولكن يتم حذف الخدمة بعد ذلك - يتم استخدامها مرة واحدة فقط لتشغيل الأمر ثم تختفي! لن يتمكن مسؤول أمن المعلومات الذي يراقب جهاز الضحية من اكتشاف المؤشرات الواضحة للهجوم: لا يوجد ملف ضار قابل للتنفيذ ، ولا يتم تثبيت خدمة مستمرة ، ولا يوجد دليل على استخدام RPC ، نظرًا لأن SMB هو الوسيلة الوحيدة لنقل البيانات. متألق!
في الوقت نفسه ، تتوفر "قذيفة زائفة" من جانب المهاجم مع تأخيرات بين إرسال الأمر وتلقي الرد. لكن هذا يكفي تمامًا للمهاجم - سواء كان مخترقًا داخليًا أو خارجيًا لديه موطئ قدم بالفعل - لبدء البحث عن محتوى مثير للاهتمام.
لإخراج البيانات من الجهاز المستهدف إلى جهاز المهاجم ، يتم استخدام smbclient . نعم ، هذه هي نفس الأداة المساعدة Samba ، ولكن تم تعديلها من أجل نص Python بواسطة Impacket. في الواقع ، يسمح لك smbclient بتنظيم FTP سرًا عبر عمليات نقل SMB.
لنعد خطوة إلى الوراء ونفكر في ما يمكن أن يفعله للموظف. في السيناريو الخيالي الخاص بي ، لنفترض أنه يُسمح للمدون أو المحلل المالي أو مستشار الأمن ذي الأجور المرتفعة باستخدام كمبيوتر محمول شخصي للعمل. نتيجة لبعض العمليات السحرية ، فإنها تتعامل مع الشركة بالهجوم و "تبذل قصارى جهدها". اعتمادًا على نظام تشغيل الكمبيوتر المحمول ، يستخدم إما إصدار Python من Impact ، أو إصدار Windows من smbexec أو smbclient كملف exe.
مثل سنودن ، تتعلم كلمة مرور مستخدم آخر إما عن طريق اختلاسها من فوق كتفها ، أو أنها محظوظة وتتعثر على ملف نصي بكلمة المرور. وبهذه المؤهلات ، بدأت في التنقيب حول النظام بمستوى جديد من الامتيازات.
قرصنة DCC: لسنا بحاجة إلى أي Mimikatz غبي
في منشوراتي السابقة pentest ، استخدمت mimikatz كثيرًا. هذه أداة رائعة لاعتراض بيانات الاعتماد - تجزئات NTLM وحتى كلمات مرور النص العادي المخبأة داخل أجهزة الكمبيوتر المحمولة وتنتظر استخدامها.
لقد تغير الزمن. أصبحت أدوات المراقبة أفضل في اكتشاف وحجب الميميكاتز. اكتسب مسؤولو أمن المعلومات أيضًا المزيد من الخيارات للتخفيف من المخاطر المرتبطة بتمرير هجمات التجزئة (يشار إليها فيما يلي باسم PtH).
إذن ما الذي يتعين على الموظف الذكي فعله لجمع بيانات اعتماد إضافية دون استخدام mimikatz؟
يتضمن Impacket أداة مساعدة تسمى secretsdumpالذي يجلب بيانات الاعتماد من ذاكرة التخزين المؤقت لبيانات اعتماد المجال ، أو DCC للاختصار. بقدر ما أفهم ، إذا قام مستخدم مجال بتسجيل الدخول إلى خادم ولكن وحدة تحكم المجال غير متوفرة ، فإن DCC يسمح للخادم بمصادقة المستخدم. على أي حال ، يتيح لك Secretsdump تفريغ كل هذه التجزئة ، إذا كانت متوفرة.
تجزئات DCC ليست تجزئات NTML ولا يمكن استخدامها لهجوم PtH .
حسنًا ، يمكنك محاولة كسرها للحصول على كلمة المرور الأصلية. ومع ذلك ، أصبحت Microsoft أكثر ذكاءً مع DCC وأصبح من الصعب للغاية كسر تجزئة DCC. نعم ، هناك hashcat ، "أسرع منتقي كلمات المرور في العالم" ، لكنه يتطلب وحدة معالجة الرسومات (GPU) ليعمل بكفاءة.
بدلاً من ذلك ، دعونا نحاول التفكير مثل سنودن. يمكن للموظف إجراء هندسة اجتماعية وجهًا لوجه وربما يكتشف بعض المعلومات حول الشخص الذي تريد كسر كلمة المرور الخاصة به. على سبيل المثال ، اكتشف ما إذا كان حساب هذا الشخص على الإنترنت قد تم اختراقه من قبل وافحص كلمة المرور النصية الواضحة بحثًا عن أي أدلة.
وهذا هو السيناريو الذي قررت الذهاب إليه. لنفترض أن أحد المطلعين اكتشف أن رئيسه ، Cruella ، قد تعرض للاختراق عدة مرات على موارد ويب مختلفة. بعد تحليل العديد من كلمات المرور هذه ، أدرك أن Cruella تفضل استخدام تنسيق اسم فريق البيسبول "Yankees" متبوعًا بالسنة الحالية ، "Yankees2015".
إذا كنت تحاول حاليًا إعادة إنتاج هذا في المنزل ، فيمكنك تنزيل ملف "C" صغيرالكود الذي يطبق خوارزمية التجزئة DCC ويجمعها. أضاف John the Ripper دعم DCC بالمناسبة ، حتى تتمكن من استخدامه أيضًا. لنفترض أن أحد المطلعين لا يريد المشاركة في التعرف على John the Ripper ويحب تشغيل "gcc" في رمز C القديم.
أثناء تصوير دور شخص من الداخل ، قمت بتشغيل عدة مجموعات مختلفة وفي النهاية تمكنت من العثور على كلمة مرور Cruella كانت "Yankees2019" (انظر أدناه). مهمة مكتملة!
مع القليل من الهندسة الاجتماعية ، وقليل من الكهانة ، وقليل من Maltego ، أنت في طريقك إلى كسر تجزئة DCC.
أقترح إنهاء هذا. سنعود إلى هذا السؤال في منشورات أخرى ونلقي نظرة على أساليب هجوم أكثر بطئًا وتخفيًا ، مع الاستمرار في الاعتماد على مجموعة أدوات Impacket الممتازة.