زا ميستريوس كيس اوف الويب سايت اللي تزوره يخترقك
زا ميستريوس كيس اوف الويب سايت اللي تزوره يخترقك
واحدة من اكبر الاسئلة اللي بحاول اشرحها لأي حد و خصوصا لو مش متخصص في امن المعلومات انه مجرد زيارتك لويب سايت غير امن ، ممكن تكون كفيلة باختراقك ، مشكلة شركات كتير دلوقتي مش بس مكافحة السبام ، بس مكافحة اليوزرز اللي بيزوروا مواقع غير امنه ، الاي تي اللي شغال كراكات و مش شابه و غيره و غيره
المشكلة انه عندنا اعتماد و ثقة كبيرة اوي في الانتي فايروس ، بس ده غير كافي بالمرة ، و علشان نوضح الفكرة ، خلينا نشوف
=====================
اشتغلت امبارح على ديمو كده علشان محتاج اعمل
Fileless Dropper
علشان نبين ثغرات امنية معينة ، بس لحظة هو ايه ال
Fileless Dropper
ده يا باشا
====================
ناس كتير متخيلة انه ال
Malware or virus
بينتشر من خلال انه يضغط على فايل تنفيذي
Executable
معين ، بس في انواع متطورة من الاختراق بتعتمد انه بس تزور لينك او ويب سايت او حتى ايميل جايلك علشان تخترق اصلا ، ده بيتم من خلال ال
Fileless attack
اللي بيكون من خلال جافا سكريبت خبيثة بتتنفذ من غير علمك و تفشخك فبمجرد فتح الويب سايت بيتم تنحميل او تنفيذ برنامج بدون علمك، طب ازاي برضك يعني
======================
الصورة الاولى هي من جافا سكريبت بسيطة جدا بتوضح ازاي بيتم اختراقك ، الجافا سكريبت دي ديمو هدفها انها تشغل برنامج بيطبع شاشة
Hello world
لا اكثر و لا اقل ، بس تعالى نشوف اصلا هي شغالة ازاي:
=====================
الكود بتاع الجافا سكريبت دي هنا:
https://github.com/MalavVyas/FilelessJSMalwareDropper
و تعالى نراجع نشوف هي شغالة ازاي ، لاحظ انه في الصورة الثانية محدش تعرف على الجافا سكريبت انها تحتوي كود تنفيذي الا شوية برامج بسيطة جدا و محدش فهم تقريبا انها
Dropper
تعالى نبص على الكود
==============
الجولة الاولى: الكود شكلة برئ
لو بصيت على الكود مش حتلاقي حاجة بتقول انه الكود ده بينفذ اي حاجة ، مريبة عجيبة ، الكود بيطلع رسالة تنبيه بسيطة من الكود ده
alert(new Function(SnccpSrYKfxmqjJk())());
لو راجعت الدالة
SnccpSrYKfxmqjJk
حتلاقي انها
Anonymous function
بتنادي على متغيرات من فوق منها المتغير
UBkDUhSPnYjP
اللي هو كود طووووووووووووييل مشفر ، هنا يبتدي اللعب
بص على تفاصيل الدالة:
الدالة بتبتدي بالمتغير
_0x46b2dd
اللي بياخد كل اربع حروف من التيكست المشفر و يجمع و يطرح عليه و يرجع القيمة من
UTF 16 string
HMPTQXTNBJUV += String[‘fromCharCode’](_0x36455c);
و بيجمعه في المتغير
HMPTQXTNBJUV
اللي بيرجع في الاخل و يتنفذ في الدالة
SnccpSrYKfxmqjJk
انترستنج
======================
الجولة الثانية:
بعد تجميع و فك تشفير الكود ، طلع كود تاني خالص ، كود طويل عريض فشخ ، حاختصرلك اهم اللقطات اللي فيه ، هو زي الكود اللي فوق ، كود مشفر طويل عريض معمول له تشفير بدالة مختلفة تانية خاااااااالص ، و بيرجع كود
Anonymous
بيتم تنفيذه هو كمان
alert(new Function(SnccpSrYKfxmqjJk())())
ladlloYdTMckcxV = uvqwdfyuwtrzln.indexOf(UBkDUhSPnYjP.charAt(cNskABPCjWZHTMl++));
dycsldgepqeurce = uvqwdfyuwtrzln.indexOf(UBkDUhSPnYjP.charAt(cNskABPCjWZHTMl++));
ejFUWevikvv = uvqwdfyuwtrzln.indexOf(UBkDUhSPnYjP.charAt(cNskABPCjWZHTMl++));
OPOUYPHZPPSPXENMI = uvqwdfyuwtrzln.indexOf(UBkDUhSPnYjP.charAt(cNskABPCjWZHTMl++));
kznyohlxdidjrlrkw = ((ejFUWevikvv & 3) << (2766/vxdeabpuqqh)) | OPOUYPHZPPSPXENMI;
dczhnsicylpqyciye = (ladlloYdTMckcxV << (DkrJItsLVccgD/35)) | (dycsldgepqeurce >> (1148/bkiwKJMAPyUiNYL));
MSMSPYENLYFXRKBBM = ((dycsldgepqeurce & (nlmczdyawfwbb-(1441))) << (1148/bkiwKJMAPyUiNYL)) | (ejFUWevikvv >> (DkrJItsLVccgD/35));;
HMPTQXTNBJUV+=String.fromCharCode(MSMSPYENLYFXRKBBM);
طب ايه طيب ، اتقل
================
الجولة الثالثة
بعد تجميع الكود اللي طلع من الكود الثاني اللي طلع من الكود الاولاني ، طلع الكود الاخير اللي فعلا هدفه اختراقك ، في حالتنا دي هو مش بيعمل الا
Hello World
بسيط ، بس تعالى نشوف هو شغال ازاي
الكود بيبتدي ب دالة بتكتب البايلود
function WritePayload(name)
{
var v1 = 1
var v2 = 2
var v3 = 2
var codePage=’437′;
اللي بتاخد المتغير
PayloadString
ملحق بيها دالتين
واحده
base64
و الثانية
RC4
اللي حصل انه الراجل كتب الكود بتاع السي و بعدين عمله تشفير ب
RC4
بباسورد معينة ، و بعدين طلعه في
Base64
في الكود بيتكتب العكس و يطلع ملف تنفيذي بحق ربنا بيتكتب في ال
AppData
من خلال الدالة
Dropfile
اللي بتدور على باث ال
Appdata
بتاع اليوزر بتاعك و تكتب فيه الملف التنفيذي باسم عشوائي و تنفذه
dvar3.WriteAll(rc4(base64(PayloadString),false));
dvar1.Run(dvar2);
=====================
ياسلااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااام ، يعني انا مش مضطر اضغط على ملف تنفيذي علشان اتلسع ، لا يا ريس انت بس تفتح ايميل فيه حتة الجافا سكريبت ده و لو الراجل حاطك في دماغه انت منتهي
=====================
طب و الدروبر بتاعي ، علشان انا غلس فممكن حد يوصل انه يفهم التشفير بيتم ازاي و يقرا انه اي تيكست مشفر كتير امنعه مثلا ، فانا روحت عامل الدروبر بالبايتس ، فانا حولت الملف التنفيذي لبايتس و خليت الجافا سكريبت تكتبها من الاول
var payload = new Array();
payload [01] = ’00C7′;
payload [02] = ’00FC’;
payload [03] = ’00E9′;
payload [04] = ’00E2′;
payload [05] = ’00E4′;
payload [06] = ’00E0′;
payload [07] = ’00E5′;
و بعدين بحاول البايتس لستريم و نكتب الستريم ، طب يعني ايه يعني
يعني عملت جافاسكريبت دروبر محمل جواه ال
Putty
مجرد ما بتغلط عليه بيشغل ليك ال
Putty
و برضك محدش شافه الا عدد بسيط من الانتي فايروس انه فايروس في الصورة الاخيرة
====================
ابقا حمل كراكات براحتك بقا يا نجم ، هابي ويك انك ايفري وان
مراجع:
https://resources.infosecinstitute.com/reverse-engineering-javascript-obfuscated-dropper/