الغرض من تقييم اختبار الاختراق هو كشف نقاط الضعف عشان المؤسسة تقدر تقوّي وضعها الأمني. بما إن الشبكات، الأنظمة، والتطبيقات المؤسسية بتتطور باستمرار، النوع ده من الاختبار لازم يتنفّذ بشكل متكرر. سطح الهجوم المكشوف ممكن يتغيّر مع الوقت كل ما ثغرات جديدة بتتكشف، إعدادات خاطئة بتحصل أثناء العمليات الروتينية، أو تغييرات في البنية التحتية بتقدّم أصول كانت مش متاحة قبل كده.
في الموديول ده، هنستكشف نهج منظَّم لتحديد وتحليل سطح الهجوم من خلال تقنيات الاستطلاع السلبي (Passive Reconnaissance) والاكتشاف الفعّال (Active Discovery)، ونتعلّم إزاي نطبّق النتائج دي عبر كل مراحل عملية اختبار الاختراق.
فهم واضح لمراحل مهمة اختبار الاختراق | إدراك إزاي جمع المعلومات بيدعم كل مرحلة من مراحل التقييم | التمييز بين تقنيات جمع البيانات السلبية والفعّالة
عشان تحافظ على وضع أمني قوي، المؤسسات المفروض تنفّذ اختبارات اختراق بشكل دوري وكل ما تغييرات كبيرة تحصل في بيئة الـ IT بتاعتها.
1. Scope Definition → تحديد النطاق
2. Reconnaissance and Data Collection → الاستطلاع وجمع البيانات
3. Identifying Vulnerabilities → تحديد الثغرات
4. Establishing Initial Access → الحصول على وصول أولي
5. Elevating Privileges → تصعيد الصلاحيات
6. Expanding Access Across Systems → توسيع الوصول عبر الأنظمة
7. Documentation and Evaluation → التوثيق والتقييم
8. Remediation and Improvement → العلاج والتحسين
في الموديول ده، هنناقش بإيجاز تحديد النطاق قبل ما نركّز على المحور الأساسي: جمع المعلومات.
تحديد النطاق بيحدد أنهي أنظمة، شبكات، وتطبيقات مصرَّح باختبارها، وكمان أنهي أصول مستبعَدة. بعد الاتفاق مع العميل على حدود وجدول المهمة، الخطوة الجاية هي جمع استخبارات عن الهدف. الهدف هنا هو الحصول على أكبر قدر ممكن من المعلومات ذات الصلة.
العملية دي عادةً بتبدأ بالاستطلاع عشان نكشف تفاصيل عن البنية التحتية للمؤسسة، أصولها الرقمية، وأحيانًا موظفيها. جمع الاستخبارات ممكن يتنفّذ بطريقتين:
| الطريقة | الوصف |
|---|---|
| سلبي (Passive) | عن طريق الملاحظة من غير تفاعل مباشر |
| فعّال (Active) | عن طريق التفاعل المباشر مع أنظمة الهدف |
الطرق الفعّالة ممكن تسيب آثار قابلة للاكتشاف، فالتقنيات السلبية غالبًا بتُستخدم أولًا للحفاظ على التكتّم.
جمع المعلومات — غالبًا بيتسمى Enumeration — بيستمر طول المهمة. مع ما المختبرين بياخدوا وصول أو بيتحركوا جوه البيئة، تفاصيل جديدة بتظهر، وبتكشف تدريجيًا صورة أكمل لسطح الهجوم.
تحديد النهجين الأساسيين لجمع الاستخبارات السلبية | فهم مفهوم Open-Source Intelligence (OSINT) | تعلّم إزاي التقنيات السلبية تقدر تستخرج رؤى من سيرفرات الويب وبيانات DNS
جمع الاستخبارات السلبي — بيُشار له عادةً بـ Open-Source Intelligence (OSINT) — بيشمل تجميع معلومات متاحة للعامة عن هدف من غير التفاعل معاه بطريقة ممكن تكشف وجود المختبر.
قبل ما نكمل، مهم ندرك إن فيه منظورين لإيه اللي بيُعتبر "سلبي" في السياق ده:
| المنظور | الوصف |
|---|---|
| الصارم (Strict) | بيتجنب أي اتصال مباشر مع البنية التحتية للهدف — المعلومات بتتجمع حصريًا من مصادر خارجية زي السجلات العامة، منصات طرف ثالث، أو مجموعات بيانات اتجمعت سابقًا. أقصى تكتّم لكن ممكن يقيّد عمق الاستخبارات |
| المرن (Flexible) | بيسمح بتفاعل محدود بيحاكي سلوك المستخدم العادي — مثلًا إنشاء حساب على موقع عام مقبول، طالما مفيش فحص أو اختبار أمني بيحصل في المرحلة دي. ده بيدّي معلومات أغنى مع الحفاظ على بروفايل منخفض |
الطريقة المناسبة بتعتمد على أهداف المهمة، النطاق، وقواعد الاشتباك. في الموديول ده، هنتبع النهج الأعملي الأقل تقييدًا.
فيه أدوات، منصات، وتقنيات كتيرة متاحة لجمع الاستخبارات، وسير العمل تكراري مش تسلسلي — كل اكتشاف ممكن يأثر على الخطوة الجاية، مكوّن دورات تحقيق مستمرة. بما إن النتائج بتختلف بشكل كبير حسب المصدر، مفيش منهجية واحدة ثابتة.
الهدف الأساسي هو كشف تفاصيل بتوضّح تعرّض الهدف، تدعم جهود الـ social engineering، أو تعزّز مراحل اختبار لاحقة زي هجمات بيانات الاعتماد اللي ممكن تؤدي لوصول غير مصرَّح.
في تقييم سابق أجراه فريق netriders، المختبرين قيّموا مؤسسة صغيرة بتواجد أونلاين محدود جدًا وخدمات خارجية قليلة جدًا. الفحوصات الأولية كشفت تقريبًا مفيش نقاط دخول واضحة.
عن طريق جهد استطلاع سلبي مركّز — باستخدام تقنيات بحث متقدمة، ربط أجزاء بيانات عبر منصات، وتطبيق استدلال تحليلي — الفريق اكتشف رسالة في منتدى نشرها موظف على موقع هواية. الرسالة كانت فيها إيميل الموظف الشركاتي ورقم تليفونه.
باستخدام المعلومة العامة دي بس، المختبرين صمّموا سيناريو social engineering مقنع. عملوا موقع بموضوع متعلّق بهواية الموظف واتواصلوا معاه بانتحال شخصية هاوٍ زميل. لما الموظف زار الموقع، استغلال client-side اتنفّذ، وادّى وصول أولي للمختبرين للبيئة الداخلية.
الدرس: تفاصيل عامة تبان غير ضارة ممكن تبقى مسار كامل لاختراق مؤسسة. في الغالب، تفاصيل صغيرة متجاهَلة ممكن توسّع سطح الهجوم بشكل كبير. الحوادث دي عادةً نابعة من ثغرات في سياسات المؤسسة أو الوعي الأمني، مش خطأ فردي — هدف اختبار الاختراق هو تقوية الدفاعات والعمليات، مش تحديد موظف بعينه.
WHOIS هو خدمة، أداة، ونظام قاعدة بيانات مبني على TCP بيوفّر تفاصيل تسجيل أسماء النطاقات، بما فيها المسجّل (registrar) وname servers الرسمية. معظم البيانات دي متاحة للعامة إلا لو مالك النطاق دفع لحماية خصوصيته.
whois -h <whois_server> megacorpone.com
السجلات المُرجَعة ممكن تشمل تواريخ التسجيل، معلومات المسجّل، جهات الاتصال الإدارية، وname servers النطاق. مش كل حقل قابل للاستغلال، لكن بعض العناصر قيّمة للاستطلاع:
لو عنوان IP متاح، WHOIS كمان يُستخدم لـ reverse lookup — نوع الاستعلام ده بيكشف المؤسسة المسؤولة عن تخصيص الـ IP، بما فيها نطاقات الشبكة، مزوّدي الخدمة، وتفاصيل الاتصال. المعلومة دي بتساعد في تحديد علاقات الاستضافة أو ملكية البنية التحتية.
عبارة "Google Hacking" قدّمها Johnny Long في بدايات الألفينات. من خلال عروض مؤتمرات وكتابه المعروف Google Hacking for Penetration Testers، أوضح إزاي محركات البحث ممكن تُستغل لكشف بيانات حساسة، نقاط ضعف أمنية، ومواقع معدَّة بشكل خاطئ.
التقنية دي بتعتمد على صياغة استعلامات بحث متقدمة باستخدام عوامل تشغيل متخصصة (operators) لتنقية النتائج. عادةً العملية بتبدأ ببحث واسع وبتضيّق تدريجيًا لإزالة الإدخالات غير ذات الصلة وإبراز النتائج القيّمة.
| العامل (Operator) | الوظيفة |
|---|---|
site: | بيقيّد النتائج لنطاق محدد — بيساعد المحللين يقدّروا بصمة المؤسسة الأونلاين |
filetype: / ext: | بينقّي النتائج حسب صيغة الملف |
- (ناقص) | بيستبعد نتائج معينة — مثلًا استبعاد صفحات HTML لإبراز أنواع ملفات بديلة |
مثال دمج عوامل: البحث عن ملفات نصية جوه نطاق محدد ممكن يكشف robots.txt، اللي بيوجّه زواحف محركات البحث لأنهي مسارات يقدروا يوصلوا ليها. مراجعة الملف ده ممكن تكشف مجلدات أو صفحات مش سهل اكتشافها بالتصفح العادي لكن لسه موجودة على السيرفر.
فلاتر صيغة الملف كمان ممكن تلمّح للتقنيات المستخدَمة في موقع — استعلامات تستهدف صيغ PHP، XML، أو ملفات متعلقة بـ Python ممكن تشير للـ stack التقني المستخدَم.
تقنية مفيدة تانية بتشمل البحث عن عبارات شائعة في directory listings مكشوفة — صفحات بتعرض قوائم ملفات لما مفيش صفحة index افتراضية موجودة. الإعدادات الخاطئة دي ممكن تعرّض موارد حساسة بدون قصد.
مصادر زي Google Hacking Database (GHDB) بتجمّع عدد كبير من الاستعلامات الجاهزة اللي بتوضّح إزاي دمج العوامل ممكن يكشف استخبارات قيّمة.
Netcraft مزوّد خدمات إنترنت مقرّه UK، بيقدّم أدوات استطلاع، بما فيها واجهة ويب مجانية قادرة على تحديد التقنيات المستخدَمة في المواقع ورسم بنية تحتية زي hosts مشتركة في نفس نطاق الـ IP.
استخدام منصات طرف ثالث زي دي بيُعتبر طريقة استخبارات سلبية لأن المختبر مش بيتواصل مباشرة مع أنظمة الهدف.
ميزة مفيدة كانت قدرة Netcraft على البحث في DNS، اللي سمحت للمحللين يسترجعوا تفاصيل نطاق (مثلًا megacorpone.com)، بما فيها الـ subdomains والسيرفرات المرتبطة. لكل host مكتشَف، تقرير موقع مفصَّل كان متاح، بيدّي رؤى تاريخية وتقنية عن السيرفر ده — بيانات تسجيل النطاق، ومعلومات عن التقنيات المشغّلة للموقع (web servers، frameworks، CDNs، أدوات تحليلات).
رغم إن ميزة Netcraft دي اتشالت، استخبارات مشابهة دلوقتي متاحة عبر خدمات بديلة زي Wappalyzer، اللي بيحلل المواقع ويحدد السوفت وير والخدمات اللي بتعتمد عليها.
منصات استضافة كود عامة ممكن تكشف رؤى قيّمة عن stack تقني المؤسسة:
GitHub | GitHub Gist | GitLab | SourceForge
كود المصدر المتاح للعامة ممكن يكشف لغات برمجة، مكتبات، وأطر عمل مستخدَمة. في بعض الحالات، المطورين كشفوا بدون قصد معلومات سرية — زي API keys أو اعتمادات — جوه مستودعات متاحة للعامة.
كتير من المنصات دي بتدعم قدرات بحث متقدمة شبيهة بعوامل البحث اللي اتناقشت قبل كده — البحث في المستودعات ممكن يُنقّى حسب اسم الملف، المسار، أو كلمات مفتاحية محددة لتحديد موارد حساسة.
على GitHub، البحث ممكن يتنفّذ عبر مستودعات مستخدِم أو مؤسسة محددة. حساب مجاني مطلوب لبحث أوسع عبر كل المشاريع العامة.
مثال: البحث عن أسماء ملفات تحتوي مصطلحات زي "users" ممكن يكشف ملفات إعداد. في سيناريو معين، بحث كده كشف ملف مرتبط ببيئة تطوير ويب محلية، احتوى اسم مستخدم وباسورد مُشفَّر (hashed) — معلومة ممكن تبقى قيّمة في مراحل اختبار لاحقة.
المراجعة اليدوية بتشتغل كويس للمستودعات الصغيرة، لكن قواعد الكود الكبيرة غالبًا محتاجة أدوات مؤتمتة للكشف الفعّال عن الأسرار المكشوفة.
أدوات مؤتمتة: Gitrob وGitleaks قادرين يفحصوا مستودعات بحثًا عن بيانات حساسة باستخدام APIs المزوّد، عادةً محتاجين access token. الأدوات دي بتكتشف أسرار محتملة باستخدام مطابقة أنماط (regular expressions) وتحليل Entropy — الطرق المعتمدة على الـ entropy بتدوّر على نصوص بتبان مولَّدة عشوائيًا، خاصية شائعة في الباسوردات، التوكينز، أو مفاتيح التشفير.
رغم فعاليتها، الماسحات المؤتمتة مش مثالية — ممكن تفوّت تعرّضات دقيقة مراجعة يدوية حريصة تقدر تكشفها، وده بيخلي الجمع بين التحليل الآلي واليدوي الأسلوب الأوثق.
لما بنجمع استخبارات عن هدف، مهم ندرك إن الحضور الظاهر على الويب بيمثّل بس جزء صغير من اللي مكشوف أونلاين.
Shodan محرك بحث متخصص بيفهرس أجهزة متصلة بالإنترنت. بالإضافة لسيرفرات الويب، بيصنّف أنظمة زي routers، معدّات صناعية، كاميرات، وأجهزة IoT متاحة من الإنترنت العام.
عكس محركات البحث التقليدية زي Google اللي بتفهرس محتوى المواقع، Shodan بيفحص خدمات الشبكة ويجمع تفاصيل تقنية مباشرة من الأجهزة المكشوفة، وبعدين بينظّم البيانات دي للبحث والتحليل.
بعد عمل حساب مجاني (بوظائف محدودة)، المحللين يقدروا يعملوا بحث مستهدَف — مثلًا الاستعلام عن نطاق محدد لتحديد البنية التحتية المرتبطة. نتائج البحث عادةً بتشمل عناوين IP، خدمات مكشوفة، بورتات مفتوحة، وbanners الخدمة.
بما إن المعلومة دي بتتجمع من نشاط فحص Shodan نفسه مش تفاعل مباشر من المختبر، بتُعتبر جمع استخبارات سلبي.
النتائج دي بتدّي نظرة عالية المستوى على سطح الهجوم الخارجي للمؤسسة. اختيار host فردي بيكشف صفحة ملخّص مفصَّلة بتعرض الخدمات المكتشَفة، التقنيات، البورتات المفتوحة، وأحيانًا ثغرات معروفة مرتبطة بإصدارات السوفت وير المحددة.
فيه خدمات أونلاين متخصصة كتيرة بتساعد نقيّم الوضع الأمني لموقع أو نطاق. بعضها بيشتغل في منطقة رمادية بين الاستطلاع السلبي والفعّال، لكن من منظور المختبر بتفضل سلبية لأن الفحص بيتنفّذ من طرف ثالث خارجي مش من المُقيّم مباشرة.
Security Headers — بيقيّم رؤوس استجابة HTTP وبيوفّر تقييم أمني أساسي لموقع. فحص ممكن يكشف رؤوس حماية مفقودة زي Content-Security-Policy أو X-Frame-Options.
غياب الضوابط دي مش تلقائيًا ثغرة، لكن ممكن يشير لتقوية سيرفر غير كافية أو نقص ممارسات إعداد آمنة.
Server Hardening بيشير لتقوية نظام عبر إعداد آمن — مثلًا تعطيل خدمات غير ضرورية، إزالة حسابات غير مستخدَمة، تغيير اعتمادات افتراضية، وفرض إعدادات حمائية زي رؤوس آمنة.
Qualys SSL Labs SSL Server Test — بيراجع تطبيق SSL/TLS لموقع مقابل معايير أمان حديثة. بيقيّم دعم البروتوكول، مجموعات التشفير (cipher suites)، والعرضة لثغرات تشفيرية معروفة زي POODLE أو Heartbleed.
فحص ممكن يوضّح إن سيرفر لسه بيسمح بإصدارات بروتوكول قديمة زي TLS 1.0 أو 1.1. رغم إنها شغّالة، الإصدارات القديمة دي بتعتمد على آليات تشفير أضعف ومش موصى بيها بقى. دعم cipher suites متقادمة كمان بيشير لعدم تطبيق كامل لأفضل ممارسات تقوية التشفير.
تعلّم إزاي تفحص البورتات باستخدام أدوات زي Netcat وNmap | تنفيذ enumeration للخدمات لـ DNS، SMB، SMTP، وSNMP | فهم مفهوم تقنيات "Living off the Land"
في القسم ده، بننتقل من الاستطلاع السلبي لطرق بتتفاعل مباشرة مع أنظمة وخدمات الهدف. معظم العروض التوضيحية هتعتمد على أدوات متضمَّنة مسبقًا في Kali Linux، لكن في بعض المهام — خاصةً سيناريوهات assumed-breach — المختبرين ممكن يكونوا مقيَّدين بمحطة عمل Windows عادية من العميل، من غير وصول لعدّة أدواتهم المعتادة.
في المواقف دي، الممارسين بيعتمدوا على طرق "Living off the Land"، اللي بتشمل استخدام أدوات نظام التشغيل المدمجة لتنفيذ استطلاع وتحليل ما بعد الاختراق. على أنظمة Windows، المكونات الأصلية الموثوقة دي بيُشار لها عادةً بـ LOLBins (Living Off the Land Binaries)، أو بشكل أوسع LOLBAS، اللي كمان بتشمل سكربتات ومكتبات.
DNS (Domain Name System) خدمة تسمية موزَّعة بتترجم أسماء النطاقات المقروءة للبشر لعناوين IP رقمية. مكوّن أساسي للإنترنت، منظَّم بنموذج هرمي بيبدأ من مستوى الـ root ويتفرّع لنطاقات المستوى الأعلى والمناطق الرسمية.
أنواع سجلات DNS الشائعة:
| النوع | الوظيفة |
|---|---|
| NS (Name Server) | بيحدد السيرفرات الرسمية المسؤولة عن بيانات DNS الخاصة بنطاق |
| A Record | بيربط hostname بعنوان IPv4 |
| AAAA Record | بيربط hostname بعنوان IPv6 |
| MX (Mail Exchange) | بيحدد سيرفرات البريد المسؤولة عن توصيل الإيميل للنطاق، غالبًا بقيم أولوية |
| PTR (Pointer) | يُستخدم في reverse DNS lookups لحل عنوان IP رجوعًا لـ hostname |
| CNAME (Canonical Name) | بينشئ اسم مستعار (alias) بيوجّه hostname لـ hostname تاني |
| TXT (Text) | بيخزّن بيانات نصية عشوائية، شائع الاستخدام للتحقق، السياسات، أو إعدادات أمنية |
بما إن DNS بيخزّن تفاصيل بنية تحتية واسعة، هو هدف أساسي أثناء الاستطلاع الفعّال.
على أنظمة Linux، أداة host تقدر تُستخدم لاسترجاع معلومات DNS:
# استعلام أساسي - A record
host megacorpone.com
# استعلام نوع سجل محدد باستخدام -t
host -t MX megacorpone.com
host -t TXT megacorpone.com
host -t NS megacorpone.com
استعلامات سيرفر البريد (MX) غالبًا بتكشف hosts متعددة بمستويات أولوية مختلفة — القيمة الرقمية الأقل بتشير للسيرفر المفضَّل لمعالجة البريد الوارد، وممكن تكشف مكونات بنية تحتية إضافية. سجلات TXT غالبًا بتحتوي نصوص تحقق، سياسات أمنية، أو ملاحظات وصفية ممكن تكشف تكاملات مع خدمات طرف ثالث.
استعلامات DNS كمان بتساعد نميّز بين subdomains موجودة وغير موجودة. لما hostname صالح يتستعلم، سيرفر DNS بيرجّع عنوان IP بتاعه. لو الـ hostname مش موجود، السيرفر بيرد بخطأ NXDOMAIN، يعني مفيش سجل عام متاح.
تقنية شائعة بتشمل اختبار قائمة بـ hostnames محتملة (زي mail، ftp، vpn، admin) مقابل نطاق الهدف. بمقارنة الردود، المختبرين يقدروا يحددوا أنهي subdomains نشطة. النهج التجربة-والخطأ ده يقدر يكشف خدمات مخفية وأنظمة داخلية مكشوفة للإنترنت. قوائم كلمات أكبر بتحسّن معدل الاكتشاف بشكل كبير.
لو نطاقات IP مرتبطة بالمؤسسة معروفة، reverse lookups تقدر تتنفّذ لتحديد hostnames مرتبطة بالعناوين دي. العملية دي ممكن تكشف أنظمة إضافية مش متحددة عبر الاستعلامات الأمامية، زي بوابات داخلية، سيرفرات مراقبة، أو واجهات إدارية.
| الأداة | الوظيفة |
|---|---|
| DNSRecon | بينفّذ enumeration شامل بما فيه استخراج السجلات، فحوصات zone، وbrute forcing للـ subdomains باستخدام قوائم كلمات مخصَّصة |
| DNSEnum | بيؤتمت اكتشاف subdomains، name servers، ونطاقات IP، وممكن يعمل reverse lookups عبر كتل شبكة كاملة |
في بيئات مقيَّدة فيها أدوات متخصصة مش متاحة، ممكن نستخدم الأدوات المدمجة. على أجهزة Windows، أمر nslookup بيوفّر وظائف شبيهة بأدوات DNS الخاصة بـ Linux:
nslookup megacorpone.com
nslookup -type=MX megacorpone.com
nslookup -type=TXT megacorpone.com
النهج ده مفيد بشكل خاص في سيناريوهات "assumed breach" حيث المختبرين لازم يعتمدوا على أدوات النظام الأصلية بدل سوفت وير خارجي.
Port Scanning هي تقنية فحص منهجي لبورتات TCP أو UDP على host بعيد لتحديد أنهي خدمات نشطة واكتشاف نقاط دخول محتملة للهجمات. بتدّي رؤية عن الخدمات المكشوفة، إصداراتها، والإعدادات الخاطئة المحتملة اللي ممكن تُستغل.
ملاحظة مهمة: فحص البورتات بيُعتبر نشاط غير طبيعي على الشبكة، وفي بعض المناطق ممكن يكون غير قانوني من غير تصريح صريح. المفروض يتنفّذ بس في بيئات متحكَّم فيها، زي معامل، أو بتصريح كتابي من مالك شبكة الهدف.
فحص البورتات ممكن يكون له عواقب غير مقصودة لو ما اتنفّذش بحرص. فحوصات عدوانية أو سيئة التوقيت ممكن تغرق سيرفرات أو روابط شبكة، وممكن تحفّز أنظمة IDS/IPS أو تسبب تعطّل خدمة. عشان كده أساسي التخطيط للفحوصات بشكل منهجي لتقليل التأثير على الهدف.
نهج متحكَّم فيه بيشمل فحص البورتات الحرجة بس في البداية — مثلًا سيرفرات الويب ممكن تُفحص الأول على بورتات 80 (HTTP) و443 (HTTPS). بمجرد تحديد الـ hosts دي، فحص أشمل يقدر يتنفّذ في الخلفية، بيتوسّع تدريجيًا لبورتات إضافية بناءً على نتائج سابقة. فحص البورتات بالتالي عملية تكرارية، حيث كل فحص بيوجّه الخطوة الجاية.
رغم إن Netcat مش أداة فحص بورتات مخصَّصة، تقدر تحاكي فحوصات بدائية لتوضيح مفاهيم الفحص. بما إنها متاحة بشكل واسع في أنظمة كتيرة، مفيدة في المواقف اللي فيها أدوات فحص متخصصة مش متاحة.
TCP Scanning — بتعتمد على آلية الـ three-way handshake لتحديد إذا كان البورت مفتوح:
1. المختبر بيبعت SYN packet للبورت المستهدف
2. لو البورت مفتوح، الهدف بيرد بـ SYN-ACK
3. المختبر بيكمّل الـ handshake بـ ACK، مؤكّدًا إن البورت نشط
البورتات اللي بترفض الاتصال بترد بـ RST packets بدل ما تكمّل الـ handshake.
مثال: فحص بورتات TCP 3388–3390 باستخدام Netcat:
nc -zv target_ip 3388-3390
من الخرج، البورت 3389 مفتوح، بينما 3388 و3390 مقفولين. التقاط حركة الشبكة (زي Wireshark) بيوضّح الـ SYN packets المبعوتة لكل بورت، الـ SYN-ACK المستقبَل للبورت المفتوح، وRST packets للبورتات المقفولة. Netcat في النهاية بيقفل الاتصالات بـ FIN-ACK packets.
UDP Scanning — عكس TCP، UDP بدون اتصال (connectionless) ومابيستخدمش handshake. بالتالي فحص UDP بيعتمد على إرسال datagrams فاضية وتفسير الردود:
- لو بورت UDP مفتوح، الـ packet بيتمرّر للتطبيق. الردود ممكن تختلف حسب الخدمة
- لو البورت مقفول، النظام عادةً بيرجّع رسالة ICMP Port Unreachable
nc -zuv target_ip 120-123
تحديات فحص UDP:
رغم التحديات دي، بورتات UDP المفتوحة ممكن تمثّل مخاطر أمنية كبيرة، وده بيخليها أهداف قيّمة لـ enumeration إضافي.
Nmap يُعتبر المعيار الصناعي لاكتشاف الشبكات وفحص البورتات، ابتكره الباحث الأمني Gordon Lyon (المعروف كمان بـ "Fyodor")، ومستمر تحسينه لأكتر من عشرين سنة. أبعد من مجرد فحص البورتات، بيشمل مجموعة واسعة من القدرات لتحليل الشبكات والتدقيق الأمني.
كتير من أنواع فحص Nmap محتاجة صلاحيات إدارية لأنها بتعتمد على وصول raw socket. الـ raw sockets بتسمح بصياغة وتعديل مباشر لـ TCP/UDP packets، مُمكّنة تحكم دقيق جدًا في إزاي الفحوصات بتُرسَل.
بشكل افتراضي، فحص Nmap TCP قياسي بيفحص أشيع 1000 بورت على host. فحص آلة واحدة للبورتات الشائعة دي عادةً بينتج عشرات الكيلوبايتات من الترافيك، بينما فحص كل الـ 65,535 بورت TCP يقدر يولّد ميجابايتات متعددة.
واحدة من أشيع التقنيات المستخدَمة، وبتُشار لها بـ "half-open scan". بدل إكمال الـ three-way handshake بالكامل، الفاحص بيبعت SYN packet ويحلل الرد:
nmap -sS target_ip
SYN-ACK → البورت مفتوح
RST → البورت مقفول
بما إن الـ ACK النهائي عمره ما بيتبعت، الاتصال مش بيتأسس بالكامل، يعني النشاط غالبًا بيتخطى الـ logging على مستوى التطبيق. الطريقة دي كمان أسرع وأكفأ بسبب تبادل packets أقل.
لو وصول raw socket مش متاح، Nmap بيرجع لفحص TCP connect كامل. الطريقة دي بتكمّل الـ handshake بالكامل باستخدام API الشبكة بتاع نظام التشغيل:
nmap -sT target_ip
رغم إنها مش محتاجة صلاحيات خاصة، أبطأ وأكتر احتمالًا إنها تتسجّل لأنها بتؤسس اتصالات شرعية. النهج ده أحيانًا ضروري عند الفحص عبر proxies أو بيئات مقيَّدة.
nmap -sU target_ip
ICMP "port unreachable" → البورت مقفول
مفيش رد → ممكن يكون مفتوح أو مفلتَر
لخدمات معروفة معينة (زي SNMP)، packets خاصة بالبروتوكول ممكن تُبعت لتحفيز رد. دمج فحوصات UDP وTCP بيدّي رؤية أشمل للخدمات المكشوفة.
لما بنتعامل مع أنظمة كتيرة، فحوصات اكتشاف واسعة بتساعد نحدد أنهي hosts نشطة قبل تحليل مفصَّل. تقنيات اكتشاف الـ hosts: ICMP echo requests | TCP SYN probes لبورتات شائعة | TCP ACK probes | ICMP timestamp requests
Nmap كمان يقدر يقدّر نظام تشغيل الهدف بتحليل اختلافات دقيقة في سلوك TCP/IP، زي قيم TTL الافتراضية أو أحجام الـ window:
nmap -O target_ip
nmap -sV target_ip
بمجرد اكتشاف بورتات مفتوحة، enumeration الخدمة يقدر يكشف إيه السوفت وير اللي شغّال على البورتات دي — بما فيه استخراج banners بتكشف أسماء وإصدارات التطبيقات.
Nmap بيشمل إطار scripting قوي بيؤتمت مهام متخصصة زي enumeration الخدمات، فحوصات الثغرات، ومحاولات brute-force:
nmap --script=<script-name> target_ip
السكربتات تقدر تستعلم سيرفرات ويب، تعمل enumeration لبيانات DNS، وتنفّذ وظائف استطلاع تانية كتير — ده بيخلي NSE "مضاعِف قوة" أساسي أثناء التقييمات.
في بيئات مقيَّدة فيها تثبيت الأدوات مش ممكن، الأدوات المدمجة تقدر توفّر قدرة فحص أساسية:
Test-NetConnection -ComputerName target_ip -Port 443
سكربتات أكتر تقدُّمًا تقدر تلفّ عبر نطاقات بورتات لتحديد الخدمات القابلة للوصول، مُمكّنة استطلاع محدود باستخدام بس الأدوات الأصلية.
التاريخ الأمني لبروتوكول Server Message Block (SMB) كان إشكاليًا لفترة طويلة، بشكل كبير بسبب تعقيده وتعرّضه الواسع جوه الشبكات. من جلسات SMB null sessions المجهولة في أنظمة قديمة زي Windows XP وWindows 2000، لثغرات عديدة اتكشفت مع الوقت، SMB كان مستهدَف بشكل متكرر من المهاجمين.
خدمة NetBIOS بتشتغل على بورت TCP 139 وكذا بورت UDP، بينما SMB نفسه عادةً بيستخدم بورت TCP 445. رغم إنهم بروتوكولات منفصلة، غالبًا بيتنشروا مع بعض. NetBIOS over TCP/IP (NBT) لسه مفعّل في بيئات كتير للتوافق مع الأنظمة القديمة، ونتيجة لكده، استطلاع SMB وNetBIOS عادةً بيتنفّذ مع بعض.
nmap -p 139,445 --open target_subnet/24
لـ enumeration NetBIOS أكتر تركيزًا، أدوات متخصصة زي nbtscan تقدر تستعلم NetBIOS Name Service على UDP بورت 137 لاسترجاع أسماء NetBIOS المسجَّلة — الأسماء دي غالبًا بتكشف سياق مفيد عن وظيفة الجهاز جوه المؤسسة (file server، domain controller، web server).
Nmap بيشمل سكربتات عديدة مصمَّمة خصيصًا لـ SMB enumeration، قادرة تنفّذ مهام زي اكتشاف تفاصيل نظام التشغيل، enumeration المشاركات (shares)، تحديد المستخدمين والمجموعات، وفحص ثغرات معروفة:
nmap --script smb-os-discovery -p445 target_ip
سكربت SMB OS discovery ممكن يحدد تفاصيل زي:
ملاحظة: بعض سكربتات الاكتشاف بتعتمد على تفعيل SMBv1 على الهدف — إعداد عادةً معطَّل افتراضيًا في إصدارات Windows الحديثة لأسباب أمنية، لكن لسه موجود في بيئات قديمة.
من نظام Windows، موارد SMB كمان تقدر تتعدّ باستخدام أوامر مدمجة:
net view \\target_ip /all
أمر net view بيعرض الموارد المشترَكة، الـ domains، والأجهزة المرتبطة بـ host بعيد. استخدام /all بيكشف المشاركات الإدارية (زي ADMIN$، C$، IPC$، NETLOGON، وSYSVOL)، اللي عادةً مخفية لكن قابلة للوصول للمستخدمين المصرَّحين.
استخبارات قيّمة عن نظام أو شبكة هدف ممكن كمان تتحصّل من سيرفرات بريد غير آمنة. بروتوكول Simple Mail Transfer Protocol (SMTP) بيشمل أوامر عديدة ممكن تكشف معلومات مستخدم لو مُعدَّة بشكل خاطئ. من أبرزها VRFY وEXPN.
لما تكون مفعَّلة، الميزات دي ممكن تُستغل لعمل enumeration لحسابات صالحة على سيرفر البريد — تقنية مفيدة جدًا أثناء اختبار الاختراق.
مثال تفاعل يدوي عبر Netcat (بورت 25):
nc target_ip 25
# بعد استقبال banner الخدمة (ممكن يكشف السوفت وير، زي Postfix على Ubuntu)
VRFY admin
VRFY john.doe
الردود الناجحة والفاشلة عادةً بتختلف، مما يسمح للمختبرين يميّزوا الحسابات الصالحة من غير الموجودة. السلوك ده بيخلي الاكتشاف المؤتمت لأسماء المستخدمين ممكن. لتسريع العملية، سكربت صغير (مثلًا بـ Python) يقدر يتأسس اتصال TCP مع سيرفر SMTP، يبعت طلبات VRFY لأسماء مستخدمين محددة، ويحلل الردود.
enumeration المستخدمين عبر SMTP كمان ممكنة من نظام Windows، حتى من غير توزيعات اختبار اختراق متخصصة. أدوات مدمجة زي PowerShell بتوفّر أوامر زي Test-NetConnection للتأكد إن بورت SMTP قابل للوصول — لكن الأمر ده مش بيسمح بتفاعل كامل مع الخدمة.
للتواصل مباشرة مع سيرفر SMTP من Windows، عميل Telnet تقدر تفعّله (محتاج صلاحيات إدارية عادةً، رغم إن الـ executable ممكن يُنقَل من جهاز تاني لو لازم):
telnet target_ip 25
بمجرد المتاح، Telnet يقدر يفتح جلسة تفاعلية مع سيرفر البريد على بورت 25، سامح بتنفيذ أوامر VRFY يدويًا بالظبط زي على نظام Linux.
تاريخيًا، بروتوكول Simple Network Management Protocol (SNMP) كان مفهوم بشكل ضعيف من كتير من المسؤولين، وده كتير ما بيؤدي لإعدادات غير آمنة وتعرّض بيانات غير مقصود.
SNMP بيشتغل فوق UDP، بروتوكول بدون اتصال ما بيحافظش على حالة الجلسة. بسبب التصميم ده، عرضة لهجمات زي IP spoofing وreplay attacks. الإصدارات الأقدم — SNMPv1, v2, وv2c — ما بتوفّرش تشفير، سامحة لحركة الترافيك المعترَضة إنها تكشف معلومات إدارة حساسة واعتمادات على الشبكة المحلية.
بالإضافة لكده، التوثيق بيعتمد على community strings، غالبًا متروكة بقيم افتراضية زي "public" (قراءة فقط) و"private" (قراءة وكتابة).
رغم إن SNMPv3 قدّم توثيق وتشفير، التطبيقات المبكرة دعمت بس DES-56، شيفرة متقادمة ممكن تُكسر بـ brute-force. التطبيقات الأحدث دلوقتي بتدعم تشفير أقوى زي AES-256.
في اختبار اختراق حقيقي، مزوّد خدمة كبير بيدير بنية تحتية لبنوك وعملاء شركات كان بيشغّل شبكة واسعة فيها آلاف الـ routers. التحقيق كشف إن نفس community strings اتعملت إعدادها عبر كل الأجهزة.
كتير من routers المؤسسات بتسمح باسترجاع وتعديل الإعدادات عبر وصول SNMP قابل للكتابة. باستخدام الاعتمادات المشترَكة دي وأتمتة استخراج الإعدادات عبر SNMP وبروتوكولات نقل ملفات، المختبرين قدروا يوصلوا مش بس للبنية التحتية بتاعة المزوّد، لكن كمان لبنية عملائه.
مكوّن أساسي في SNMP هو MIB، قاعدة بيانات هرمية منظَّمة زي شجرة. كل فرع بيمثّل فئات معلومات إدارية، بينما العُقد الطرفية (leaf nodes) بتقابل متغيّرات محددة قابلة للوصول عبر استعلامات SNMP.
Object Identifiers (OIDs) محددة ممكن تكشف:
# فحص بورت 161 UDP عبر شبكة فرعية
nmap -sU -p 161 target_subnet/24
# brute-force لـ community strings
onesixtyone -c community_strings.txt target_ip
# enumeration البيانات من شجرة MIB بـ community string معروف
snmpwalk -c public -v1 target_ip
بمجرد الحصول على وصول صالح، أدوات زي snmpwalk تقدر تسترجع بيانات من شجرة MIB. بـ community string للقراءة فقط معروف — عادةً "public" — مهاجم أو مختبر يقدر يعدّ معلومات واسعة، بما فيها أوصاف النظام، أسماء الـ hosts، تفاصيل الاتصال، ووقت التشغيل.
استعلامات مستهدَفة ضد فروع OID محددة بتسمح بـ enumeration أعمق — فرع واحد ممكن يسرد حسابات مستخدمين محليين، تاني ممكن يعدّد عمليات نشطة، وتانيين يقدروا يكشفوا تطبيقات مثبَّتة أو بورتات شبكة شغّالة حاليًا.
enumeration بورتات TCP اللي بتستمع عبر SNMP قيّم بشكل خاص لأنه يقدر يكشف خدمات مربوطة بواجهات محلية بس، واللي غير كده ممكن تفضل مش مكتشَفة.
الخلاصة: إعدادات SNMP الخاطئة ممكن توفّر رؤية شاملة على الحالة الداخلية للنظام، وده بيخليها واحدة من أقوى — وغالبًا أكتر إهمالًا — مصادر الاستخبارات أثناء اختبار اختراق الشبكات.
في الموديول ده، فحصنا المبادئ الأساسية ورا الطبيعة الدورية للاستطلاع السلبي والفعّال الاتنين. بدأنا بدراسة طرق وأدوات متعددة تُستخدم لاكتشاف معلومات متاحة للعامة عن المؤسسات وموظفيها — استخبارات ممكن تبقى قيّمة جدًا في مراحل لاحقة من اختبار الاختراق.
بعد كده، تحوّلنا لتقنيات فعّالة لفحص وعمل enumeration لخدمات الشبكة المكشوفة الشائعة، ومارسنا الأنشطة دي من كل من توزيعة أمان مبنية على Linux زي Kali Linux ومن محطة عمل Windows.
مهم ندرك إن مفيش أداة واحدة أفضل عالميًا لكل سيناريو. كتير من الأدوات — خاصةً المتضمَّنة في Kali — بتوفّر قدرات متداخلة. لهذا السبب، مختبري الاختراق المفروض يهدفوا يبقوا مرتاحين مع مجموعة واسعة من الأدوات، يفهموا اختلافاتها الدقيقة، وكل ما يكون ممكن، يتحققوا ويقارنوا مخرجاتها لاكتساب رؤية أعمق لإزاي بتشتغل داخليًا.
نهاية نوتس الموديول الرابع — OSCP: Information Gathering