
أداة تشفير HTA لـ RedTeams
تم إصدارها كمصدر مفتوح من قبل NCC Group Plc - http://www.nccgroup.trust/
تم تطويرها بواسطة Richard Warren، richard [dot] warren [at] nccgroup [dot] trust
http://www.github.com/nccgroup/demiguise
تم إصدارها بموجب AGPL، راجع LICENSE لمزيد من المعلومات
الهدف من هذا المشروع هو إنشاء ملفات .html تحتوي على ملف HTA مشفر. الفكرة هي أنه عندما يزور هدفك الصفحة، يتم جلب المفتاح وفك تشفير HTA ديناميكيًا داخل المتصفح ودفعه مباشرة إلى المستخدم. هذه تقنية مراوغة لتجاوز فحص المحتوى / نوع الملف الذي تنفذه بعض الأجهزة الأمنية. هذه الأداة ليست مصممة لإنشاء محتوى HTA رائع. هناك العديد من الأدوات/التقنيات الأخرى التي يمكن أن تساعدك في ذلك. ما قد تساعدك فيه هو إدخال HTA الخاص بك إلى بيئة في المقام الأول، وتجنب وضعه في صندوق رمل (إذا كنت تستخدم التكييف البيئي).
يتم تحقيق ذلك عن طريق تشفير ملف HTA باستخدام RC4، ثم استخدام navigator.msSaveBlob "لحفظ" الملف في وقت التشغيل - بدلاً من جلب HTA مباشرة من الخادم. مما يعني أنه في أي وقت، لا يوجد أي طلب/استجابة HTTP يحتوي على ملف HTA الخاص بك في شكل نص عادي - سيرى الوكيل ببساطة ملف text/html يحتوي على الكتلة المشفرة الخاصة بك. في أحدث إصدار من Edge، سيؤدي ذلك إلى مطالبة المستخدم "بتشغيل" HTA.
على الرغم من أن هذا ليس الهدف الأساسي لهذه الأداة، إلا أن هناك خيارين للحمولة النافعة لـ HTA الأساسية. يستخدم كل خيار تقنيات مختلفة كما تم توثيقها سابقًا بواسطة Matt Nelson، Matthew Demaske، Ryan Hanson و Etienne Stalmans. فائدة استخدام هذه التقنيات هي أن الكود الخاص بك لا يتم تنفيذه كطفل لـ mshta.exe. كما ذكرنا سابقًا، محتوى HTA ليس الهدف الأساسي لهذه الأداة. أشجعك على تعديل قالب HTA ليشمل الكود المخصص الخاص بك :)
قم بتشغيل ملف demiguise.py، مع إعطائه مفتاح التشفير، نوع الحمولة، اسم ملف الإخراج والأمر الذي تريد أن يقوم HTA بتشغيله.
مثال: python demiguise.py -k hello -c "notepad.exe" -p Outlook.Application -o test.hta


من أجل تجنب صناديق الرمل، لا ينبغي عليك تضمين مفتاحك مباشرة في HTA. بدلاً من ذلك، يجب عليك الحصول عليه ديناميكيًا من البيئة التي يتواجد فيها الهدف. مثال على ذلك قد يكون استخدام عنوان IP الخارجي للعميل كمفتاح. فائدة ذلك هي أنه إذا تم تشغيل الكود في صندوق رمل تابع لجهة خارجية، فلن يتم فك تشفير HTA. في الواقع، حتى اسم الملف لن يتم فك تشفيره، مما يعني أنه لن يعرف أحد ما هي حمولتك النافعة/ماذا تفعل :)
بعض الأمثلة على التكييف البيئي موجودة في examples/externalip.js و examples/virginkey.js.
نظرًا لأن الأداة تنتج ملف HTML يحتوي على JavaScript، يمكنك ببساطة أخذ هذا JS واستضافته أينما تريد. هذا يعني أنه إذا كان موقع عميلك معرضًا لـ XSS المنعكس، يمكنك استخدام هذا لخدمة ملف HTA الخاص بك من نطاقه (الموثوق به للغاية).
أيضًا، Outlook لا يحظر مرفقات .html افتراضيًا، وكذلك بعض التطبيقات الأخرى - استخدم خيالك! :)
حاليًا لم يتم اكتشافه على VT:
على الرغم من صعوبة توقيع تقنيات التعتيم، إلا أن إحدى طرق الدفاع ضد هجمات HTA هي منع HTA نفسه من القدرة على التشغيل في المقام الأول. يمكن تحقيق ذلك إما من خلال استخدام سياسة تقييد البرامج (SRP)، أو Device Guard (على Windows 10 و Server 2016)، أو عن طريق تغيير معالج الملفات الافتراضي المرتبط بملفات .hta.
يرجى ملاحظة أن هذه التغييرات قد تؤثر على تشغيل البرامج التي تعتمد على تنفيذ HTA. لذلك يُوصى باختبار الإصلاح بالكامل في بيئتك الخاصة.
باستخدام SRP:

تغيير معالج الملفات الافتراضي:
ftype htafile=%SystemRoot%\system32\NOTEPAD.EXE %1

إعادته (x64):
ftype htafile=C:\Windows\SysWOW64\mshta.exe "%1" {1E460BD7-F1C3-4B2E-88BF-4E770A288AF5}%U{1E460BD7-F1C3-4B2E-88BF-4E770A288AF5} %*
WbemScripting.SWbemLocator و ShellBrowserWindowWbemScripting.SWbemLocatorExcel.Application.RegisterXLLOutlook.Application.CreateObject