الفصل الرابع حوالي 23 فيديو وبيتكلم عن الـ Basic Dynamic Analysis والأدوات المستعملة فيها
فبسم الله نبدأ
CH4:v0:Basic dynamic analysis overview
عرفنا ان الـ Basic Static Analysis ممكن نوصل منه لحارة سد. عشان كدة هنتجه للـ Basic Dynamic Analysis أو كما يسمّى Behavioral Analysis لاننا بندرس فيه سلوك المالوير نفسه.
فيه طريقتين للbehavioral analysis وهم:
1-Monitoring the malware:
وهنا بنراقب المالوير والتفاعل بتاعه مع السيستم وهو شغال من حيث 4 محاور رئيسية:
1-Processes
2-File System
3-Registry
4-Network
2-Examining the system:
هنا بنشغل المالوير ولما يخلص بنشوف ايه التغييرات اللي حصلت في السيستم.
--------------------------
CH4:v1:Sandboxs overview
Online sandboxes:
VirusTotal sandboxes
any.run
Hybrid Analysis
Joe sandbox
Offline sandboxes:
Cuckoo sandbox
CAPE sandbox v2
Sandboxie
Buster Sandbox Analyzer
VirusTotal sandboxes
any.run
Hybrid Analysis
Joe sandbox
Offline sandboxes:
Cuckoo sandbox
CAPE sandbox v2
Sandboxie
Buster Sandbox Analyzer
الـ Sandboxes اسهل واسرع طريقة لعمل Dynamic/Behavioral Analysis
الـSandbox عبارة عن سيستم بنديله الـ Unknown sample اللي معانا يعملها Run جوا isolated lab ويراقبها ويعمل Analysis لل behavior بتاعها وفي الآخر بيطلعلنا Report.
Sandboxes Architecture
انواع الsandboxes والتكنولوجي اللي جواها وازاي بتحاكي الBehavioral Analysis:
1-Full System Emulation:
بتحاكي كل حاجة في الphysical hardware المعالج والرام..الخ وبتقدملنا اكبر قدر من الرؤية على سلوك المالوير أو تأثيره لكن ليه عيوب زي:
1-بطيء جدا
2-محتاج ماشين قوية جدا عشان تشغله
3-أصعب في التطوير وهيحتاج تيم أكبر
2-Emulation of Operating Systems or part of it:
المطورين اتجهو للخيار التاني وهو محاكاة نظام التشغيل او جزء منه بس، مش هيعملو محاكاة للماشين كلها ولا للهاردوير
لما بنشغل الـ Malware Sample جوا الـ Sandbox وتبدء تستعمل Windows APIs مثلا هتطلب منه يمسح File معين فاحنا اللي هنمسح الFile بدل الwindows وهنقدر نعمل Logging لل حصل،
الموضوع هيبقى متعب جدا في الـ development لاننا هنحتاج نهندل كل الWindows APIs ولو فيه API او Function نسيناها مثلا فهتبقى مشكلة لاننا مش هنشوف كل الMalware Behavior.
عشان كدة اغلب الSandboxes مش بيستعملو الاتنين اللي فاتو وبيستعملو الـ Virtualization..
3-Virtualization:
بنستعمل فيها Virtual Machine لتشغيل ومراقبة سلوك الMalware
فيه Online Sandboxes مجانية بنرفع عليها الـ sample وهي تدينا report زي:
-VirusTotal
-Any.run
-Hybrid-analysis
-JoeSandbox
وفيه Offline Sandboxes بنقدر نحطها على الlab او الجهاز عندنا زي:
-Cuckoo sandbox
-Cape sandbox
-Sadboxie
-------------------------
CH4:v2:VirusTotal Sandboxes
دا demo للonline sandboxes هنستعمل فيه VirusTotal
لما نبحث بالهاش بتاع الsample على موقع virustotal هنركز على صفحة الـBehavior اللي هنلاقي فيها مجموعة sandboxes هي اللي عملت الbehavior analysis فهنلاقي النتائج بتختلف من sandbox للتاني
طبعا مننساش اننا بنركز على 4 محاور رئيسية وهم
process activity
file system activity
registry activity
network activity
كل دا هنلاقيه مكتوب في كل analysis اتعمل من الsandboxes اللي على الموقع.. وطبعا لازم تشوف الفيديو عشان مفيش حاجة اكتبها
----------------------------
CH4:v3:Hybrid-analysis sandbox
تاني demo في الـ online sandboxes هنستعمل فيه موقع Hybrid Analysis ونبحث عن الهاش بتاع الـsample عليه
الموقع دا بيستخدم Sandbox اسمه Falcon ولو لاحظنا هنلاقي نسبة الكشف اللي طلعتها برامج الانتي فايرس هي 41% لكن Falcon طلع انها 100% Malicious.
هنلاقيه عامل report فيه كل حاجة أكدتله انها Malicious بنسبة 100% في الRisk Assessment وبعدها بيعرض الMITRE ATT&CK Techniques Detection وبعدها الـ Indicators و Screenshots من الـ sample أثناء تشغيلها وبعد كدة Hybrid Analysis هنلاقي فيه Tree view و Network Analysis وبعدين الـ Extracted Strings و Extracted Files ودي عبارة عن الFiles اللي اتعملها Drop او Download وبيكون لكل ملف منهم report.
فيه كذا نوع للـ Indicators المعروضة هنا وهم:
1-Malicious Indicators:
هنلاقيها باللون الأحمر ودي اللي بيكون متأكد 100% ان ميعملهاش غير Malicious Program
2-Suspicious Indicators:
هنلاقيها باللون الأصفر ودي بيكون مشكوك فيها انها Malicious
3-Informative:
ودي بيكون فيها نسبة شك انها Malicious لانها عملت نشاط مش طبيعي مثلا عملت drop او download لملفات معينة او غيره لكن ممكن تبقى سليمة
فيه لينك عن MITRE ATT&CK يستحسن نقرأ عنها عشان نعرف أهميتها.
---------------------------
CH4:v4:App.any.run sandbox
اخر online sandbox معانا هو Any.run
لما نفتح الموقع بنختار Public Submissions ونبحث بالهاش الخاص بالsample ال معانا
الموقع بيركز على الscreenshots لل بيحصل أثناء تشغيل المالوير، وهنلاقي المحاور اللي بنركز عليهم وهم process activity و network activity و file system activity بس للاسف مفيش registry activity.
من مميزات any.run ان الملفات اللي تم تعديلها بيعرضلنا محتواها ك Hex او EXF او PE File وهيعرضلنا معلوماته اللي هتفيدنا في الـ Static Analysis، والموقع بيعرض كمان ال MITRE ATTACK Techniques.
ملحوظة: فيه Online Sandboxes كتيرة والحل الامثل اننا بنرفع الsample ال معانا على كذا sandbox ونقارن النتائج بتاعتهم عشان نجمع اكبر قدر من المعلومات عن العينة اللي معانا.
----------------------------
CH4:v5:Disadvantages of the sandbox
Read more:
Malware Sandbox Evasion Tactics
Malware Sandbox Evasion Tactics
ليه منعتمدش على الـSandbox بس في الbehavior analysis؟
لان الـsandboxes ليها عيوب وفيه evasion techniques بيستعملها الـMalware Authors لتخطيها
من أمثلة الـEvasion Techniques:
-Delaying Execution
هنا المالوير مش بيعمل الـMalicious Activity بتاعه غير بعد مدة معينة من الوقت بعد ساعة او اتنين مثلا والمفروض ان الـSandbox بيشتغل دقيقة واتنين ويفصل فبالتالي مش هيكتشف الـMalicious Activity اللي في الـMalware.
مثال: لو المالوير بيستخدم sleep function عشان يشتغل بعد مدة او في ساعة معينة من اليوم فأغلب الsandboxes بتحاول تكتشف الsleep function دي لكن للاسف فيه طرق كتير بيكتشفها ويستخدمها الmalware authors كل يوم بالتالي صعب على الsandboxes انها تكتشف كل الطرق ودا اللي بيخلينا منعتمدش عليها كتير في الanalysis.
مثال تاني:
لما المالوير يكون مستني Network Packet من سيرفر الAttacker قبل ما يعمل اي Malicious Activity ومفيش اتصال بالNetwork وقتها مش هيطلع اي Malicious Activity بالتالي الSandbox مش هيكتشفه.
الخلاصة اننا نتعامل مع الSandbox انه Good Positive بمعنى اننا هنصدقه لما يقولنا ان الsample دي malicious بنسبة 10/10 مثلا لكن لو قال انها benign مش malicious واداها مثلا 5/10 مش هنصدقه وهنتعامل على انها malicious لحد ما نعمل الanalysis ونتأكد بنفسنا.
---------------------------------
CH4:v6:Running Malware
إزاي هنشغل الـMalware لو هو exe او dll او jpg وغيره؟
كلنا عارفين ان الexe نقدر نشغله بdouble-click بالماوس عليه، او اننا نشغله من خلال الcmd بكتابة مسار واسم الملف زي مثلا E:\program.exe وهيشتغل علطول.
اما dll مش هينفع بضغطتين لكن نقدر نشغله بإستخدام rundll32.exe ودا مسؤول عن تشغيل ملفات dlls في كل إصدارات الويندوز ونقدر نستخدمه كالتالي من خلال الcmd:
rundll32.exe fileName.dll,functionName
توضيح: احنا عارفين ان dll مكتبة جواها functions كتيرة، بالتالي functionName هنا اسم الfunction اللي عايزين نشغلها من الdll، ونقدر نعرف اسمائهم بإستخدام ادوات زي CFF-explorer او PE-bear ونشوف الExport Table.
فيه بعض الـFunctions مش هنلاقي ليها اسم، لكن هيبقى ليها ترتيب او رقم زي 000004 مثلا نقدر نستخدمه ولكن بوضع علامة # قبله واحنا بنكتب الامر كالتالي:
rundll32.exe fileName.dll,#4
وهكذا..
----------------------------
CH4:v7:Difference Between Executable & Non Executable Files
[download]CFF explorer (Explorer Suite)
[download] HxD hex editor
Read more:How to Change File Associations in Windows
Read more: Writing a Windows batch script
[download] HxD hex editor
Read more:How to Change File Associations in Windows
Read more: Writing a Windows batch script
لما نعمل double-click على ملف txt بيظهرلنا برنامج Notepad وجواه محتويات ملف الـtxt دا، اللي حصل ان Notepad عرض محتويات ملف الtxt لكن الملف نفسه متمش تنفيذه لانه non-executable file.
لو لاحظنا Task manager هنلاقي Notepad هي اللي ظاهرة في الProcess مش ملف الtxt، وهكذا مع الملفات التانية زي mp4,mp3 برنامج الmedia player بيعرض محتواهم, jpg ودي بيتم عرضها ببرنامج صور بردو مش بتتنفذ....الخ
لو عملنا double-click على ملف .exe هنلاقيه اشتغل وتم تنفيذه وهيكون ليه process ليه لوحده في الTask Manager، الفرق هنا عن الملفات اللي فاتت ان دا exectuable file بيكون associated بالـ window loader.
الويندوز متعرف على بعض الملفات اللي بينفذها علطول زي exe, bat, cmd, com, scr.
File Association:
ودا اللي بيحدد البرامج اللي تفتح وتعرض الملفات على حسب امتدادها، يعني لو عملنا Open with على ملف txt ممكن نختار اننا نعرضه من خلال برنامج تاني غير Notepad وهكذا مع ملفات الصوت والفيديو ممكن نختار نعرضهم ببرامج تانية زي vlc مثلا وهكذا..
لو جينا على executable file زي exe مثلا وغيرنا امتداده بدل exe كتبناه example وعملنا عليه double-click فالجهاز هيطلعلنا قايمة انه مش متعرف على نوع الملف ومدينا برامج نختار منها اللي يشغله وهكذا مع الـ non-executable files زي txt و mp3 وغيره
لو فتحنا cmd وفتحنا من خلاله الملف فهو بيشوف ان كان الملف فيه PE Header وجواه executable code هيقوم مديه للwindows loader يشغله حتى لو كان امتداده متغير عن الامتدادات اللي يعرفها زي exe او bat وغيره، يعني لو الملف اسمه example.jpg لكن جواه executable code فالcmd هيشغله وينفذ الكود لانه مش بيتأثر بالامتداد المكتوب في الاسم. في حالة ان الملف مش PE ولا جواه executable code فهو مش هيشغله.
فيه طريقة الMalware Authors بيستغلوها هنا عشان يشغلو المالوير بدون الuser ما ياخد باله لو فيه مثلا مالوير وغيرنا الامتداد بتاعه من exe ل mp4 الuser مش هيشك فيه لانه لو فتحه مش هيشتغل ولا هيعمل حاجة، الطريقة اننا نعمل ملف .bat (ودا بيبقى Batch File بمجرد فتحه بيتنفذ الكود اللي جواه كأنه cmd)، ونحط فيه امر نخليه يفتح ملف الmp4 من خلال الcmd ووقتها الcmd هيعرف ان فيه جواه Executable Code وهيقوم مشغله ك exectuable file والمالوير يشتغل.
-------------------------------
CH4:v8:Running DLL files
دا demo بيورينا ازاي نشغل ملفات dll زي ما قلنا قبل كدة بنستخدم امر rundll32 من خلال الcmd وبنديله اسم ملف الdll واسم الFunction اللي عايزين نشغلها
اسم الFunction قلنا اننا ممكن نجيبه بإستخدام CFF explorer ولو فيه Function ملهاش اسم فاحنا ممكن نستخدم الرقم بتاعها بس هنحط قبله علامة # في الأمر
مثال:
باستخدام اسم الFunction:
rundll32 dllName.dll, FunctionName
باستخدام رقم الFunction:
rundll32 dllName.dll, #2
------------------------------
CH4:v9:Viewing Processes activity using Process Hacker
[download] Process Hacker
[download] Process Explorer
Malware sample23: COVID19 RAT
Malware sample18: Lab18_05.exe
Malware sample24: Lab12-03.exe
Malware sample25: Lab09-03.exe
Download all PMA labs from this link
[download] Process Explorer
Malware sample23: COVID19 RAT
Malware sample18: Lab18_05.exe
Malware sample24: Lab12-03.exe
Malware sample25: Lab09-03.exe
Download all PMA labs from this link
نقدر نتابع الـProcess Activity من خلال Task Manager الموجود في الويندوز بس فيه ادوات فيها امكانيات احسن منه زي Process Hacker و Process Explorer
ممكن نعرف من خلالهم كل الprocesses اللي عملها الmalware والملفات ومكانهم على السيستم وكمان لو هو packed ومش ظاهر فيه strings هنقدر نشوف الstrings في الmemory لان زي ما قلنا قبل كدة بيتعمله unpack فيها، وكمان هنعرف الdlls اللي المالوير استخدمها من الويندوز.
نخلي بالنا ان الmalware احيانا بيظهر انه verified على الادوات دي عشان يخدع المبتدئين في الmalware analysis انه مش malicious ولكن دا عشان استخدامه لdlls موجودة في الويندوز وverified من microsoft فبيظهر كدة.
بعد كدة فيه كذا demo لكيفية استخدام الادوات دي على كذا sample لازم تشوف الفيديو وتطبق بإيدك.
-------------------------
CH4:v10:View autostarting malware using autoruns
[download] Autoruns
Malware sample23: COVID19 RAT
Malware sample26: Lab01-02.exe
Malware sample27: KBDRU stealer
Read more: Windows Registry Persistence, Part 1
Read more: How to create an automated task using Task Scheduler on Windows 10
Malware sample23: COVID19 RAT
Malware sample26: Lab01-02.exe
Malware sample27: KBDRU stealer
Read more: Windows Registry Persistence, Part 1
Read more: How to create an automated task using Task Scheduler on Windows 10
عرفنا ازاي المالوير بيتم تشغيله لو كان executable او non-exectuable وعرفنا ازاي نراقب الـProcesses.
في الفيديو دا هنعرف ازاي المالوير بيشتغل لوحده تلقائيا بعد الريستارت او اثناء تشغيل الويندوز ودا بإستخدام اداة AutoRuns واللي تُعتبر من أحسن الادوات في النقطة دي
اداة Autoruns بتعرفنا البرامج اللي بتشتغل أثناء الـbootup يعني اثناء تشغيل الويندوز او بعد الريستارت، وأثناء الـlogin لو عملنا logout ودخلنا بuser مختلف وهكذا
الاماكن اللي ممكن يشتغل منها الmalware تلقائيا ممكن تبقى في الstartup folder او registry او task او service او غيرهم
بعد كدة demo فيه 3 أمثلة ل3 عينات بتستخدم طرق مختلفة عشان تحط نفسها في الAuto Startup..
اول مثال الmalware هيحط Registry Key في الـRegistry وهنشوف ازاي نقدر نكشفه ونمسحه باداة AutoRuns.
المثال التاني الmalware بيعمل service خاصة بيه.
المثال التالت لـmalware بيستعمل الtask scheduler وفيه هنا ملحوظة مهمة ان الTask مش هتظهر في الProcesses تحت explorer.exe ولكن هتظهر تحت wininit.exe ونقدر نلاحظ دا عن طريق اداة Process Explorer.
-------------------------
CH4:v11:Viewing WinAPI calls using Process Monitor
ايه هو الWindows API والويندوز بيستعمله ليه؟
Windows API or win32 API
Application Programming Interface
هو مجموعة من الـFunctions بتوفرها مايكروسوفت للمطورين اللي بيعملو برامج وألعاب تشتغل على الويندوز عشان تسهل عليهم تشغيلها على الويندوز يعني مش محتاجين يعيدو كتابة الFunctions دي مرة تانية وهم شغالين، الFunctions بتعمل حجات كتير مختلفة زي انها تعرض user-interface او تAccess files او Network وكمان بتدعم اكتر من لغة
الMalware Authors بيستعملو windows api في كتابة الmalware فلازم نعرف ازاي نراقب كل function بيستعملوها من الwindows api عشان نوصل لكل حاجة بيعملها الmalware، ودا هيتم باستخدام اداة Process Monitor (procmon).
اول ما نفتح procmon هنلاقيها بتسجل كل الevents اللي بتحصل في السيستم فهيكون العدد كبير جدا وهنا لازم نحطلها filters نخفي بيها الevents اللي مش عايزينها عشان نصغر عدد النتائج وتبقى اسهل وعندنا كذا طريقة:
-ممكن نضيف filter جديد ونحدد اسم الprocess اللي عايزينها بس زي الmalware sample اللي شغالين عليها..
-وممكن نحدد الprocesses اللي مش عايزينها ومش هتفيدنا زي explorer.exe او search indexer و vmtools و dwm.exe و svchost.exe وغيره..
-وممكن نعمل للprocesses اللي مش عايزينها execlude علطول او العكس يعني نعمل لل عايزينها include زي ما عمل في الفيديو.
الاداة فيها ال4محاور الأساسية اللي بندور عليهم وهم: process activity و file system activity و registry activity و network activity
لو ضغطنا على واحدة منهم ولتكن مثلا file system activity فهي هتظهر بس الevents المرتبطة بالfile system وتخفي الباقي، وهكذا...
الprocmon حصلت على الevents دي عن طريق مراقبتها للwindows api calls يعني لما الmalware يطلب function معينة زي Create File فprocmon بتسجلها.. وهكذا
------------------------
CH4:v12:Visualize the activity Using ProcDot
في الفيديو السابق اداة procmon كنا بنحدد انها تعرض file system activity بس او network activity بس وهكذا... لكن احيانا هنحتاج نعرف الactivities كلها اللي بتحصل بالترتيب الزمني ورا بعض ودا فيه tool هتساعدنا فيه اسمها ProcDot ودي هتعملنا Graph View لكل حاجة حصلت
اداة ProcDot معتمدة على ادوات تانية زي procmon و dot و graphviz فشوف طريقة تسطيبهم في الفيديو واهم حاجة شوف الoptions اللي هيعملها في procmon و procdot لانها مهمة جدا عشان تعرض البيانات بطريقة صحيحة.
----------------------------
CH4:v13:Viewing Files system interaction
[download] Process Monitor
[download] FileActivityWatch [32-bit]
[download] FileActivityWatch [64-bit]
[download] FolderChangesView
Malware sample29
Malware sample27: KBDRU stealer
Malware sample30
Read more:
System info: Find out when your Windows 10 was installed and other system information
nbtstat command
nltest command
dsquery command
Masad Stealer: Exfiltrating using Telegram
[download] FileActivityWatch [32-bit]
[download] FileActivityWatch [64-bit]
[download] FolderChangesView
Malware sample29
Malware sample27: KBDRU stealer
Malware sample30
Read more:
System info: Find out when your Windows 10 was installed and other system information
nbtstat command
nltest command
dsquery command
Masad Stealer: Exfiltrating using Telegram
بعد ما عرفنا ازاي نشوف الـProcess Activity هنروح للمحور التاني وهو File System interaction
الmalware بيحتاج يوصل للfile system عشان 3 حجات:
1-يقرأ ملف:
-يقرأ الconfig file عشان يعرف هو شغال في vm ولالا
-ممكن يقرأ الuser's data زي emails-passwords-credit cards ..الخ
2-يكتب ملف:
-ممكن يكتب بيانات جوا الconfig file بتاعه زي الpackets اللي بيستقبلها مثلا
-ممكن يكتب على ملفات عشان يشفرها ودا بيعمله الransomware بإنه يشفر جزء بس من الملف مش الملف كامل بحيث يبوظ أكبر قدر من الملفات في وقت قليل
3-يمسح ملف:
-ممكن يمسح ملفات الuser عشان يأذيه او يمسح الملفات الاصلية بعد عملية تشفيرها عشان يستبدلها بالملفات المشفرة
كل دا نقدر نراقبه باداة ProcMon السابقة، وفيه ادوات تانية هتفيدنا زي اداة FileActivityWatch واداة FolderChangesView من Nirsoft.
بعد كدة demo ل3 Samples لكذا مالوير مختلف واحد بيsteal داتا مهمة من الجهاز وواحد ransomware بيشفر الملفات، هنشوف ازاي نستخدم الادوات السابقة دي عشان نشوف ال بيحصل في الfile system اثناء أو بعد تشغيلهم.
الفيديو طويل عشان بيطبق على الادوات مفيش شرح نظري كتير.
-----------------------------
CH4:v14:Viewing Registry changes
[download] RegistryChangesView [32-bit]
[download] RegistryChangesView [64-bit]
[download] Regshot 1
[download] Regshot 2
[download] Process Monitor
Malware sample31: Glubpeta samples
Malware sample28: sample.bin
[download] RegistryChangesView [64-bit]
[download] Regshot 1
[download] Regshot 2
[download] Process Monitor
Malware sample31: Glubpeta samples
Malware sample28: sample.bin
الفيديو دا بيتكلم على تالت محور بعد الprocess & file system activities وهو الregistry activity
الRegistry مجموعة من الconfiguration setting للويندوز والبرامج اللي عليه
الmalware يقدر يوصل للregistry ك Reading لما يقرأ keys معينة في الregistry يعرف منها معلومات عن نظام التشغيل والمستخدم واللغة والوقت اللي اتسطب فيه النظام ويقدر يعرف كمان البرامج اللي تم تسطيبها والخدمات اللي شغالة ...الخ
ويقدر يوصل للregistry ك writing لما يخزّن الconfiguration والاعدادات بتاعته، ولما يشغل او يقفل بعض الاعدادات للويندوز او الخدمات والبرامج.
عشان نتابع الregistry changes هنستخدم اداة Regshot2 و اداة RegistryChangesView وممكن نستخدم ProcMon عادي.
اداة Regshot2 دي open source وفيها ميزة snapshot بتخلينا ناخد snapshot من الregistry قبل وبعد تشغيل الmalware عشان نقدر نقارن بينهم ونشوف التغييرات والregistry keys اللي انضافت او اتمسحت.
ملحوظة: فيه بعض الmalware لو اكتشفو تغيير غريب في اسمهم زي تسميتهم بsample مثلا فبيغيرو الbehavior بتاعهم ويطلعو نتائج غلط فممكن نبحث عن الsample في virus total ونشوف اسمها كان ايه.
بعد كدة demo لكيفية استخدام اداة RegistryChangesView عشان نعرف التغييرات اللي حصلت في الRegistry لما شغلنا Malware Sample
بعدها demo لاستخدام اداة Regshot2 على Ransomware وزي ما قلنا اننا بنعمل snapshot الاول من الregistry بيها وبعدين نشغل الmalware ولما يشفر الملفات ويخلص هنعمل snapshot كمان مرة ونخلي الاداة تقارن بينهم بعد كدة الاداة هتعملنا report فيه تفاصيل التغييرات اللي حصلت.
-------------------------------
CH4:v15:Why does malware access the Network
Read more: Malware Lateral Movement: A Primer
What is a DDoS Attack?
What Is Click Fraud? | How Click Bots Work?
Data exfiltration
What is a DDoS Attack?
What Is Click Fraud? | How Click Bots Work?
Data exfiltration
هنا بيتكلم عن اخر محور من ال4 محاور الاساسية للBehavioral Analysis وهو Network Activity أو Network Connections
فيه اهداف محتملة للmalware من استخدامه للـNetwork وهي:
1-Download:
-بيحتاج يحمل ملفات او مراحل واصدارات تانية منه
-بيحمل اعلانات مزعجة للمستخدم
-بيحمل برامج مدفوعة
-بيعمل هجوم حجب خدمة DDOS Attack
2-Upload:
-بياخد معلومات من الجهاز زي بطاقات ائتمان وحسابات وكلمات مرور..الخ ودا بنسميه Data Exfiltration
-لو هو ransomware فهيحتاج يبعت مفتاح التشفير لسيرفر الAttacker
3-Lateral Movement:
وهنا الmalware لما يصيب جهاز بيروح يعمل فحص للشبكة ويحاول يصيب أجهزة تانية عليها
وعشان نفحص الNetwork Traffic اللي داخلة وطالعة من الجهاز هنستخدم اداة Wireshark واللي نقدر من خلالها نعمل save للcapture file اللي فيه الpackets عشان نحلله بعد كدة او نبعته لاشخاص تانيين يحللوه.
-------------------------------
CH4:v16:Redirect connections to IP add. using fake DNS
اي برنامج او متصفح انترنت لما يحتاج يوصل لسيرفر معين زي google او yahoo فهو مش بيحفظ الIP بتاعه ولكن بيحفظ الdomain بس زي google.com مثلا واحنا بعد كدة نقدر نجيب الIP من خلال الاسم دا google.com بإستعمال الDNS
ودا اختصار Domain Namer Server
هنستخدم اداة موجودة في الويندوز اسمها nslookup نقدر نشغلها من خلال الcmd بعد كدة نكتب اسم الwebsite زي google.com وهي هترد علينا بالIP Address بتاعه.
ملاحظة: الاداة بترد بالIP في حالة ان الماشين على الانترنت مش Host-Only لانها في حالة host-only مش هتتعرف عليه ومش هتطلع الIP وفي الحالة دي هنستخدم اداة FakeDNS ودي وظيفتها انها تعمل DNS Server يرد علينا بالIP ال هنحدده بنفسنا.
لتشغيل اداة fakedns بنفتح الcmd ونروح للمكان اللي هي فيه ونكتب الامر دا:
fakedns.exe 127.0.0.1
طبعا الip دا local واحنا اللي حددناه، لو شغلنا اداة nslookup مرة تانية وكتبنا google.com مثلا فهي هترد علينا بالIP اللي حددناه فوق دا 127.0.0.1
بعد كدة هنستخدم اداة ping ودي build-in في الويندوز وبنستعملها في اختبار الreachability بتاعت host معين
لو فتحنا cmd وعملنا ping ل google.com فالاداة هتروح للdns server تسأله على الip address الخاص ب google.com وفي حالة ان FakeDNS شغالة فأداة Ping هيوصلها ان الip هو 127.0.0.1 فهتبعتله ويرد عليها ب reply من خلال نفس الip اللي حددناه 127.0.0.1
ودا اللي هنعمله مع الmalware أثناء التحليل عشان نشوف الhosts اللي حاول يتواصل معاها واحنا عاملين Fake DNS Server.
ملاحظة اخيرة،اداة FakeDNS ليها فايدتين هنا:
1-بترد على الmalware لما يطلب عناوين معينة فبالتالي الmalware هيكمل الMalicious Activities بتاعته عادي كأن السيرفر بتاعه هو اللي رد عليه
2-بتعرفنا ايه الأسألة أو العناوين اللي طلبها الmalware بالظبط
----------------------------
CH4:v17:Introduction to Wireshark
دي مقدمة لاستعمال اداة Wireshark وهنشوف فيها لما نعمل ping google.com في الcmd هيظهر ايه في الwireshark
اول ما نفتح wireshark بنحدد الinterface اللي شغالين عليها ونخليها تبدء capturing ونروح نعمل ping لgoogle.com ونرجع للwireshark تاني هنلاقي الpackets اللي حصلت واللي هتبدأ بrequest & response بيطلب فيه عنوان google.com وبيترد عليه من الDNS بعنوان 127.0.0.1 اللي حددناه قبل كدة.
بعدها هنشوف Packets فيها Ping Request و Ping Reply على بروتوكول ICMP.
لو فتحنا اي packet واختارنا منها الDomain Name System وروحنا للQueries هنلاقي ان فيه طلب لgoogle.com وبعده Answers على 127.0.0.1
وطبعا هنلاقي الPackets طالعة من Source رايحة لDestination والاتنين 127.0.0.1 بما اننا مستخدمين Fake DNS.
----------------------------
CH4:v18:Viewing network traffic using wireshark & FakeNet-NG
الفيديو دا هنشغل فيه sample ونشوف الNetwork Activity بتاعها في الWireshark عامل ازاي
الاول هنشغل FakeDNS زي الفيديو السابق وهنشغل wireshark ونخليها تبدء capturing بعدين هنشغل الmalware sample شوية ونوقفها ونروح للwireshark هنلاحظ فيها شوية Packets ولو لاحظنا FakeDNS هنلاقي ان الMalware Sample بعتت طلب لwebsite اسمه practicalmalwareanalysis.com
نبدء منين في تحليل الPackets في wireshark؟
لو المالوير هيتواصل مع الC&C Server بتاع الـAttacker فأكيد هيعمل للموقع resolve عشان يجيب الip بتاعه فهيبعت للDNS الاول بالتالي هنبدء من عند اول طلب في الDNS Packets وعشان نسهل الموضوع نقدر نستخدم dns filter عشان نفلتر كل النتائج في الwireshark ونخلي الdns بس اللي يظهرو
لو حذفنا الdns filter وتابعنا الpackets اللي بعدها هنلاقيه بيعمل traffic بtcp protocl على port 80 وزي ماحنا عارفين ان 80 دا خاص بالـ HTTP فأكيد هو بيحاول يتواصل مع website
بعد كدة هنلاقي dropped packets لونها احمر او اسود بسبب اننا مشغلين FakeDNS بس ومش مشغلين Fake HTTP Server، والحل هنا اننا نشغل Fake http server من خلال اداة FakeNet_NG.
لما نشغل اداة FakeNet ونشوف الpackets في wireshark هنلاحظ ان مفيش dropped packets، وكمان عدد الpackets بقى اكتر من المرة الأولى بسبب انه بعت packets لل fake http server اللي شغال في الFakeNet واتواصل معاه.
بعد كدة هنلاقي فيه packets على http protocol هنروح نعمل عليها Follow TCP Stream عشان نشوف المحادثة بين المالوير والسيرفر هنلاقي ان فيه GET Request لملف png (صورة) على مسار معين على موقع practicalmalwareanalysis.com ونقدر ننسخ المسار كله ونفتحه في web browser عشان نحمل الصورة ونعملها Analysis لان في الاغلب هتبقى Malware مش مجرد صورة، ودا عشان تخدع الFirewall او الAntivirus مثلا...
مننساش نستعمل proxy او vpn لو هنفتح الwebsite اللي بيستخدمه الmalware عشان الip والlocation بتاعنا ميظهرش عند الAttacker.
ممكن نستخدم الwebsite والpath واسم ملف الpng اللي لقيناه والuser-agent الموجودين في الhttp request كـ IoCs بعد كدة في الـ Report اللي بنعمله.
------------------------------
CH4:v19:Malware sample making direct IP connection
الMalware Sample في الفيديو دا مش محتاجين نشغلّه Wireshark عشان نعمل Capture لل Packets لان FakeNet-NG هتكون كافية وهتطلعلنا ملف pcap فيه كل الPackets اللي اتعملت ونقدر وقتها نفتح الملف بwireshark ونحلله علطول.
هنلاحظ في الفيديو ان فيه Packet فيها HTTP Request بيحمل فيه ملف اسمه Latest.exe من IP مباشر مش Domain ودا بيكون اسرع لانه مش محتاج يكلم الDNS يسأله على الIP الاول.
من مميزات FakeNet-NG انها بتعمل redirect للمالوير اللي بيعمل direct ip connection يعني بدل ما يروح للسيرفر بتاعه وميلاقيش استجابة بسبب اننا قافلين النت عنه بيروح للFake HTTP Server اللي هي عملاه ويكمل ودا مش هيخلي فيه dropped packets في الwireshark بعكس الإصدار السابق منها FakeNet.
------------------------------
CH4:v20:Examine network traffic of word document sample
الفيديو دا هنشتغل فيه على Emotet Sample ودا من اشهر الMalwares في الفترة الحالية
الملف عبارة عن ملف Word فلازم نكون مسطبين Microsoft Office على الماشين
بعد تشغيل الملف هنلاحظ رسالة فيه لخداع المُستخدم
شركة Microsoft بتحاول تحمي المستخدمين من الMacros ودي عبارة عن كود VPA، الVPA لغة ممكن يتعمل بيها برامج جوا الword والexcel وغيرهم وطبعا الMalware Authors بيستخدموها في الMacros عشان يصيبو المستخدمين بإستخدام ملفات الOffice العادية بحيث ميكنش عندهم شك فيها، فمايكروسوفت لما تشوف File فيه Macro مش بتثق فيه ولازم انت كuser تعمل Enable Content في الملف عشان تقدر تعدّل عليه، بمجرد ما تعمل Enable Content فالMacros هتشتغل ولو فيها Malware هيشتغل معاها.
الاول بنشغل FakeNet-NG ونروح نعمل Enable Content في ملف الword ودا هيخلي الmalware يشتغل.. ممكن نستنى شوية ونقفل الملف و FakeNet ونروح لملف الpcap اللي طلع من FakeNet ونفتحه بWireshark هنلاقي 140 Packets.
هنعمل اول خطوة زي ماعملنا في الفيديوهات السابقة اننا نحط فلتر dns ونشوف الdomains اللي بيتواصل معاها الAttacker عشان يجيب الServer IP
بعد كدة لو حذفنا الفلتر هنلاقي طلب على HTTP Protocol المالوير فيه بيطلب website
لو عملنا Follow TCP Stream هنلاقي الRequest بيتطلب فيه صفحة HTML.
لو غيرنا اسم الملف اللي بيطلبه زي ماعمل في الفيديو لexe وشغلنا الماكرو تاني وفحصنا الPackets اللي طلعت على الHTTP Protocol هنلاقيه اتبعتله ملف الexe بس الmalware مطلعش Messege Box ودا معناه انه محتاج Advanced Analysis عشان نشوف هو بيحمل صفحة HTML ليه... هل جواها content معين محتاجه او malware تاني متشفر ومحتاج يشتغل بطريقة معينة..الخ
فالطرق دي لو وصلت لحد هنا هنحتاج نروح لمرحلة متقدمة من الAnalysis
---------------------------
CH4:v21:Other features in Wireshark (Applying filters)
من مميزات اداة Wireshark اننا نقدر نضيف column جديد ونحدد القيمة اللي تظهر فيه بحيث نسهل على نفسنا قراءة الPackets وتحليلها
نقدر نضيف column جديد بright-click على الباكيت ونختار Column Preferences ونضيف واحد جديد، في الTitle هنكتب اسمه والType نسيبه فاضي اما الFields بنحط فيها القيم اللي عايزينها تظهر وليكن مثلا dns.qry.name ودي هتخلي الdomain names الموجودة في الDNS Requests تظهر بدون اي إضافات.
فيه ميزة تانية وهي Complex Filter واللي بتخلينا نحط اكتر من Filter في نفس الوقت بحيث نقلل عدد الpackets او الnoise
نقدر نعمل right-click على الباكيت اللي مش عايزينها تظهر وتتكرر ونختار Apply as Filter وبعدين and not selected...
الComplex filters بتكون صعبة شوية في فهمها لكن مع التكرار والتعامل الكتير معاها هنلاقيها مفيدة جدا وبتوفر علينا وقت كبير.
---------------------------
CH4:v22:Using REMnux & iNetSim as a network sinkhole
لو الmalware شفر الملفات والبرامج او عطّل حجات في الماشين او اكتشف ان فيه برامج زي wireshark و fakenet وقفلهم، وقتها مش هنقدر نعمل Monitoring للNetwork Activity بشكل كامل..
الحل هنا اننا نعمل Redirect للNetwork Traffic من الماشين اللي عليها الMalware للماشين التانية اللي هنراقبه من عليها.
تقدر تستعمل اي vm عادي لكن موجود لينك تحميل REMnux ودي Linux Machine جاهزة هنخليها بمثابة Network Sinkhole بمعنى اننا هنستقبل كل الTraffic عليها حتى لو فيه Traffic طالع من اكتر من Machine في نفس الوقت.
بعد كدة هيورينا في الفيديو ازاي نظبط إعدادات الشبكة للماشينز اللي عندنا
اثناء الاعدادات هنستخدم امر ipaddr في اللينكس عشان نعرف الip address
وهنستخدم برنامج iNetSim الموجود في النظام بردو عشان يعمل simulation للinternet services زي الHTTP و الDNS
عشان نعدل على ملف إعداد iNetSim هنفتحه بمحرر leafpad بالامر دا:
sudo leafpad /etc/inetsim/inetsim.conf
ونعدل عليه زي الفيديو بالظبط وبعدين نستخدم امر sudo inetsim عشان نشغل الfake services بتاعته.
بعد كدة مثال هيشغل فيه المالوير على الwindows machine ويشوف الtraffic بتاعته على ال remnux machine فلازم تشوفه مينفعش اكتب فيه حاجة.
----------------------------