Post

0x6. Basic Reconnaissance

0x6. Basic Reconnaissance

بسم الله الرحمن الرحيم.

دائماً عندما نريد تحليل أي ملف، نقوم بالخطوات التالية سواء كان الهدف من التحليل هو اكتشاف ما إذا كان الملف سليماً أم يحتوي على برمجيات خبيثة (Malware)، أو حتى إن كنا نريد كسر حمايته (Cracking):

The 4 Stages of Analysis

  1. التحليل الثابت الأساسي (Basic Static Analysis): هذا التحليل لا يتطلب خبرة تقنية عميقة، بل يعتمد بشكل كلي على أدوات تعمل بشكل تلقائي (مثل VirusTotal). يكشف لك هذا التحليل عن مؤشرات (Indicators) تبين ما إذا كان هذا الملف فايروساً أم لا.

    القاعدة: هذا التحليل يتم بدون تشغيل البرنامج (Without running the executable).

  2. التحليل الديناميكي الأساسي (Basic Dynamic Analysis): مشابه لما سبقه، ولكن الفرق أنك هنا بحاجة إلى بيئة وهمية (Virtualization).

    القاعدة: هذه الخطوة تتطلب تشغيل البرنامج (Running the executable) لترى آلية عمله وسلوكه الفعلي (Behavior).

  3. التحليل الثابت المتقدم (Advanced Static Analysis): هذه المرحلة يتوجب أن يكون لديك خبرة كافية للتعامل مع برامج التفكيك (Disassemblers) كـ IDA Pro و Ghidra. نلخص هذه المرحلة بأنك سوف تحلل أكواد الأسمبلي (Assembly) وتفهم آلية عملها، أي الهيكلية التي يمشي بها البرنامج.

  4. التحليل الديناميكي المتقدم (Advanced Dynamic Analysis): هذه المرحلة تتطلب خبرة تقنية لأنك سوف تتعامل مع المنقح (Debugger). لنشبهه بالـ Disassembler، ولكن الفرق بينهما هو أن الـ Debugger يسمح لك بأن تنفذ الكود وتمشي فيه سطراً بسطر في الذاكرة الحية، بينما الـ Disassembler لا ينفذ الكود (وهو أساس التحليل الثابت). من أفضل الـ Debuggers هو x64dbg.

Basic Reconnaissance (الاستطلاع الأساسي)

في هذا المقال، سنناقش أول خطوتين من عملية التحليل، وما يعرف بالاستطلاع الأساسي: وهو جمع معلومات ومؤشرات أولية سريعة حول الملف قبل الغوص في التحليل العميق. وكما قلنا، هذه الخطوة لا تحتاج إلى خبرة تقنية معقدة، فهي عبارة عن استخدام أدوات بسيطة. سأذكر كل أداة، هدف استخدامها، وصورة لواجهتها.

1. Helpful Websites

  • VirusTotal: للتحقق من البصمة الرقمية للملف (Hashing) ومعرفة ما إذا كانت شركات مكافحة الفيروسات قد صنفته كخبيث.

Virustotal شكل (1): واجهة موقع virustotal.

  • Hybrid-Analysis: خدمة توفر تشغيلاً تلقائياً للملف وتقدم تقريراً سريعاً عن سلوكه (سجل الملفات، العمليات، والشبكة).

hybrid analysis شكل (2): واجهة موقع hybrid-analysis.

  • CyberChef: أداة لفك التشفير وتحليل البيانات (مثل Base64, XOR).

Cyber Chef شكل (3): واجهة موقع CyberChef.


2. Information Gathering: Static

  • Detect It Easy (DIE): لمعرفة نوع الملف ونوع المترجم (Compiler) وهل هو ملف مضغوط بـ Packer أم لا. من أهم المؤشرات في هذا البرنامج هو الـ Entropy.

Detect It Easy شكل (4): واجهة تطبيق DIE.

  • FLOSS: أداة قادرة على استخراج النصوص التي يحاول المبرمج تشفيرها داخل الكود (Obfuscated Strings).

Floss شكل (5): أمر تنفيذ برنامج FLOSS.

  • PE-Bear: يستخدم لتحليل ترويسات الملف (PE Headers) واستكشاف الموارد (Resources) ومعرفة المكتبات (DLLs) والدوال التي يستدعيها البرنامج مثل CreateProcessA.

PE Bear شكل (6): واجهة تطبيق PE-Bear.


3. Information Gathering: Dynamic

  • Process Monitor (ProcMon): يقوم بمراقبة نشاط الملفات وسجل النظام (Registry) وحركة الشبكة في الوقت الفعلي.

ProcMon شكل (7): واجهة تطبيق ProcMon.

  • Process Explorer (ProcExp): يستخدم لمراقبة العمليات النشطة حالياً في النظام واكتشاف أي عمليات مشبوهة.

ProcExp شكل (8): واجهة تطبيق ProcExp.


4. Network Monitoring

  • FakeNet-NG: يستخدم لمحاكاة خدمات الإنترنت محلياً، مما يسمح للمحلل برؤية طلبات الشبكة (مثل HTTP, GET) دون الحاجة لاتصال حقيقي بالإنترنت لتجنب الخطر.

FakeNet-NG شكل (9): صورة للملف الذي يتم انشاءه بواسطة عمل run للتطبيق بلاحقة .pcap الذي يتم فتحه على wireshark.

  • Wireshark: أداة لالتقاط وتحليل حركة الشبكة (Network Sniffing) لمعرفة ما إذا كان الملف يحاول التواصل مع خوادم خارجية للتحكم والسيطرة.

WireShark شكل (8): واجهة تطبيق WireShark.

This post is licensed under CC BY 4.0 by the author.