كيفية مسح الإنترنت بالكامل



النطاق الكامل لعناوين IPv4 هو 4 مليار عنوان IP. يبدو هذا عددًا كبيرًا ، ولكن يمكن فحص الإنترنت IPv4 بالكامل تمامًا بحثًا عن منفذ TCP واحد في 40 دقيقة ، على سبيل المثال ، للعثور على جميع خوادم الويب في العالم أو جميع منافذ SSH المفتوحة. في هذه الحالة ، يكفي خادم واحد وقناة جيجابت. هذا مفيد للبحوث ، على سبيل المثال ، إذا قمت بجمع إحصاءات حول التقنيات المستخدمة في العالم ، أو تقدير النسبة المئوية للخدمات الضعيفة المفتوحة للخارج.

برنامج Zmap(لا يتم الخلط بينه وبين nmap) يسمح لك بفحص نطاقات ضخمة من الشبكات بشكل أسرع بكثير من أي ماسح ضوئي بسبب البنية الخاصة. في هذه المقالة ، سنلقي نظرة على مثال لكيفية تجميع قائمة بجميع خوادم الويب في العالم باستخدام zmap. وجود قائمة بالمضيفين مع منفذ HTTP مفتوح ، يمكنك بالفعل استخدام ماسح ضوئي أكثر ذكاءً ، وتمريره بقائمة أهداف دقيقة.

ما هو nmap السيئ


للمسح الضوئي للشبكات الفرعية الصغيرة ، يتم استخدام Nmap بشكل تقليدي - أداة متعددة المصادر مفتوحة المصدر شائعة تحتوي على الكثير من كعك Pentester. وهي مناسبة تمامًا لفحص النطاقات الصغيرة والمضيفين الانتقائيين. يحتوي Nmap على محركه الخاص لكتابة البرامج النصية المخصصة في lua (Nmap Script Engine) والعديد من البرامج النصية الجاهزة الرائعة. لكن nmap غير مناسب تمامًا لفحص الشبكات الكبيرة ، مثل الملايين أو حتى مليارات العناوين. سوف تستغرق هذه المهام عدة أيام أو حتى أسابيع. والحقيقة هي أن nmap تستخدم نظام الشبكة الفرعي لنظام التشغيل ويتم فتح مأخذ توصيل كامل لكل طلب. لا يمكنك الاستغناء عنها لاتصال TCP كامل عندما تحتاج إلى الدردشة مع الخدمة ، على سبيل المثال ، تقديم طلب GET إلى خادم ويب. ولكن هذا يقلل بشكل كبير من الأداء عند الحاجة إلى مسح SYN سريع ،حيث تكون المهمة فقط لمعرفة ما إذا كان المنفذ مفتوحًا.

Zmap و Masscan


تعد الماسحات الضوئية غير المتزامنة Zmap و Masscan أكثر ملاءمة بالنسبة لنا: كلاهما يعملان بشكل أسرع بكثير ، ويستخدمان برنامج التشغيل PF_RING (مقبس يسرع بشكل كبير من التقاط الحزمة) وعشوائية العناوين لتجنب DoS القاتلة. على عكس Nmap ، فهي لا تستخدم نظام TCP / IP: الأول يولد إطارات إيثرنت عارية ، والثاني يستخدم مكدس TCP مكتوب ذاتيًا.

يعتبر Masscan أسرع ماسح ضوئي للإنترنت يمكن أن يمر عبر نطاق IPv4 بالكامل في ست دقائق ، ولكن فقط مع عدد قليل من المحولات المادية المتصلة بالتوازي مع حركة المرور الصادرة مع حزم SYN يتم إنشاؤها من أحدها ، وتأتي الإجابات إلى الأخرى. في حالة اتصال واحد ، كان Zmap المعدل أسرع مرة ونصف تقريبًا. وبالطبع ، تم وضع هذه السجلات على المكواة العلوية على قنوات 10 جيجابت / ثانية ، وسيكون من الصعب والمكلف تكرارها بنفسك. على اتصال gigabit بأسعار معقولة جدًا ، يعمل Zmap أيضًا بشكل أسرع من Masscan بسبب الاستخدام الأكثر كفاءة لموارد القناة ووحدة المعالجة المركزية ويمكن استكماله في حوالي 45-50 دقيقة.


سير عمل مبسط من Zmap و Masscan. يعمل مولد حركة المرور الصادرة ومعالج الاستجابة الواردة بشكل منفصل

بدون الدخول في التفاصيل التقنية ، تستخدم Zmap و Masscan كيانين: مولد حركة المرور الصادرة يحتوي على طلبات SYN ومعالج استجابة واردة منفصل. يقتصر الأداء هنا فقط على عرض القناة وأداء واجهة الشبكة ، أي حد PPS (الحزم في الثانية). لذلك ، يمكن تقسيم عملية المسح إلى عدة واجهات أو حتى عدة مضيفين فعليين إذا كان من الممكن استبدال Source IP بعنوان معالج الحزم الواردة.

مسح الإعداد


يجب أن يوضع في الاعتبار أن الماسح الضوئي يقوم بتحميل النظام وخاصة واجهات الشبكة ، وذلك باستخدام القناة المتاحة بالكامل. إذا بدأت المسح دون تحذير المضيف ، فسوف يبدو مثل DDoS ومن المرجح أن يتم قطع اتصالك بالشبكة بسرعة كبيرة. تحتاج أيضًا إلى الاستعداد لأن مسح الإنترنت بالكامل سيثير استجابة - سيبدأون في الشكوى من نفسك. وهذا يعني أن المضيف سيتلقى مجموعة من الرسائل التلقائية التي تشكو "أنت تقوم بمسح ضوئي لنا".

لذا قبل البدء في مشروعك ، من الأفضل الاستعداد:

  • — ( - ). , . .
  • PTR- — , . , , . , PTR IP-, , - :
    scanner-for-educational-project.ivan-ivanov.com
  • User-Agent — - HTTP-, User-Agent, . , .
  • — , . .

NAT,


من المهم أن نفهم أن zmap يولد الملايين من طلبات TCP في نفس الوقت. إذا تم تثبيت جهاز توجيه مزود بـ NAT ، أو جدار حماية بتتبع الاتصال ، أو حماية DDoS ، أو أي نظام آخر مزود بجدار حماية مزود بحالات حالة ويحاول تتبع الاتصالات بين الإنترنت وخادم المسح الضوئي ، فسوف يتعطل لأنه لا يستطيع استيعاب الكثير من الاتصالات. لذلك ، لا يمكنك تشغيل zmap أثناء وجودك في NAT ، على سبيل المثال ، خلف جهاز توجيه WiFi بالمنزل.

محاولة Zmap


قم بتثبيت اختبار Zmap ( تعليمات )

على شيء بسيط ، راجع خوادم الويب المجاورة من habr.com:

$ zmap -p 80 178.248.237.0/24 -B 100M -o habr.txt

خيارات:

  • -p 80 - منفذ TCP 80 ، أي أننا نبحث فقط عن خوادم HTTP
  • 178.248.237.0/24 هو النطاق المستهدف للعناوين. إذا لم تحدده ، فسيتم فحص الإنترنت بالكامل.
  • -B 100M - أقصى عرض للقناة يستخدمه zmap. إذا لم يتم تحديد هذا الخيار ، فسيتم التخلص من القناة المتاحة بالكامل.
  • -o habr.txt - كتابة النتائج في ملف نصي. سيحصل على العناوين التي ردت على الطلب ، أي على خادم HTTP


استغرق مسح 254 عنوانًا باستخدام zmap بضع ثوانٍ

تنسيقات الإخراج Zmap


بشكل افتراضي ، يضيف zmap ببساطة العناوين التي تم العثور عليها إلى ملف نصي ، ويفصل بينها بفواصل أسطر. ولكن يمكنها أيضًا كتابة النتائج بتنسيق json و xml. يتيح لك الخيار - حقول الإخراج - تحديد حقول إضافية ستتم إضافتها إلى الإخراج.

لنجرب على سبيل المثال تنسيق إخراج أكثر تقدمًا في json ، للإشارة إلى المنفذ الذي جاء فيه طلب الاستجابة و TTL للحزمة:

$ zmap -p80  --output-module=json --output-fields=ttl,sport,dport,saddr 178.248.237.68 -o habr.com.json

#  
$ cat habr.com.json
{ "ttl": 58, "sport": 80, "dport": 51309, "saddr": "178.248.237.68" }

تفحص الإنترنت بالكامل!


حاولت تشغيل فحص على VPS ، وبعد بضع دقائق تم حظري بمتطلبات التحقق من الخادم بحثًا عن الفيروسات. هذا أمر منطقي تمامًا ، لأن مثل هذا المسح يبدو مثل DDoS من المضيف. ولكن بعد مناقشة مهمتي مع الدعم ، عُرض عليّ أخذ خادم مخصص ومسحه عليه.

هذه هي الطريقة التي يبدو بها المسح على واجهة


200 ميجابت / ثانية ، والوقت المتوقع حوالي ست ساعات: حتى مع قناة 100 ميجابت / ثانية ، يمكن فحص الإنترنت بالكامل بين عشية وضحاها.

ما العمل التالي


يمكننا الآن معرفة عدد عناوين العالم التي تستمع على المنفذ 80 وجمع قائمة بها. يمكن إرسالها إلى الماسح الضوئي L7 لتحليل طبقة التطبيق لنقاط الضعف.

على سبيل المثال ، احصل على عنوان HTML لجميع خوادم الويب في العالم باستخدام nmap. لإدخال nmap ، نقوم بنقل الملف المستلم من zmap بالتنسيق المعتاد:


$ nmap -sV -p 80 -v -n  --script http-title  -iL habr.txt




All Articles