Skip to content
KitploitKITPLOIT
أدواتالمدونة
Log in
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/robertdavidgraham/masscan
التقاط وتحليل الحزمالاستطلاعتخطيط الشبكةمسح المنافذجمع المعلوماتاختبار الاختراقالأفضل في تخطيط الشبكة #2الأفضل في التقاط وتحليل الحزم #17الأفضل في مسح المنافذ #2
25.9k3.2k83منذ 5 أشهرتمت المراجعة من قبل Kitploit
GitHubrobertdavidgraham/masscan

masscan

ماسح منافذ TCP، يرسل حزم SYN بشكل غير متزامن، لمسح الإنترنت بالكامل في أقل من 5 دقائق.

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

unittests

MASSCAN: ماسح منافذ IP على نطاق الإنترنت

هذا ماسح منافذ على نطاق الإنترنت. يمكنه مسح الإنترنت بأكمله في أقل من 5 دقائق، بإرسال 10 ملايين حزمة في الثانية، من جهاز واحد.

طريقة استخدامه (المعاملات، المخرجات) تشبه nmap، أشهر ماسح منافذ. في حالة الشك، جرب إحدى هذه الميزات – الميزات التي تدعم المسح الواسع للعديد من الأجهزة مدعومة، بينما المسح المتعمق لجهاز واحد غير مدعوم.

داخليًا، يستخدم الإرسال غير المتزامن، المشابه لماسحات المنافذ مثل scanrand وunicornscan وZMap. إنه أكثر مرونة، حيث يسمح بنطاقات المنافذ والعناوين الاعتباطية.

ملاحظة: يستخدم masscan حزمة TCP/IP مخصصة خاصة به. أي شيء غير مسح المنافذ البسيط قد يسبب تعارضًا مع حزمة TCP/IP المحلية. هذا يعني أنك تحتاج إلى استخدام الخيار --src-ip للتشغيل من عنوان IP مختلف، أو استخدام --src-port لتحديد منافذ المصدر التي يستخدمها masscan، ثم أيضًا تكوين جدار الحماية الداخلي (مثل pf أو iptables) لعزل تلك المنافذ عن باقي نظام التشغيل.

هذه الأداة مجانية، لكن فكر في المساهمة بمال لتطويرها: عنوان محفظة البيتكوين: 1MASSCANaHUiyTtR3bJ2sLGuMw5kDBaj4T

البناء

على Debian/Ubuntu، يكون الأمر كالتالي تقريبًا. لا يعتمد على أي تبعيات أخرى غير مترجم C (مثل gcc أو clang).

sudo apt-get --assume-yes install git make gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make

هذا يضع البرنامج في المجلد الفرعي masscan/bin. لتثبيته (على Linux) شغّل:

make install

تتكون الشيفرة المصدرية من العديد من الملفات الصغيرة، لذا يصبح البناء أسرع بكثير باستخدام البناء متعدد الخيوط. هذا يتطلب أكثر من 2 جيجابايت على Raspberry Pi (وينهار)، لذا قد تستخدم رقمًا أصغر، مثل -j4 بدلاً من جميع الخيوط الممكنة.

make -j

بينما Linux هو النظام الأساسي المستهدف الرئيسي، تعمل الشيفرة جيدًا على العديد من الأنظمة الأخرى (Windows وmacOS وما إلى ذلك). إليك بعض معلومات البناء الإضافية:

  • Windows مع Visual Studio: استخدم مشروع VS10
  • Windows مع MinGW: فقط اكتب make
  • Windows مع cygwin: لن يعمل
  • Mac OS X مع XCode: استخدم مشروع XCode4
  • Mac OS X مع سطر الأوامر: فقط اكتب make
  • FreeBSD: اكتب gmake
  • أنظمة أخرى: حاول تجميع كل الملفات معًا، cc src/*.c -o bin/masscan

على macOS، يبدو أن الثنائيات x86 تعمل بنفس السرعة تحت محاكاة ARM.

الاستخدام

الاستخدام مشابه لـ nmap. لمسح قطاع شبكة لبعض المنافذ:

# masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112

سيقوم هذا بـ:

  • مسح الشبكة الفرعية 10.x.x.x، والشبكات الفرعية 2603:3001:2d00:da00::x
  • مسح المنفذ 80 والنطاق 8000 إلى 8100، أو إجمالي 102 منفذًا، على كلا الشبكتين الفرعيتين
  • طباعة المخرجات إلى <stdout> التي يمكن توجيهها إلى ملف

لرؤية القائمة الكاملة للخيارات، استخدم ميزة --echo. هذه تقوم بإلقاء الإعدادات الحالية والخروج. يمكن استخدام هذا المخرج كمدخل مرة أخرى للبرنامج:

# masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112 --echo > xxx.conf
# masscan -c xxx.conf --rate 1000

فحص الشعارات

يمكن لـ Masscan القيام بأكثر من مجرد اكتشاف ما إذا كانت المنافذ مفتوحة. يمكنه أيضًا إكمال اتصال TCP والتفاعل مع التطبيق على ذلك المنفذ لالتقاط معلومات "الشعار" البسيطة.

يدعم Masscan فحص الشعارات على البروتوكولات التالية:

  • FTP
  • HTTP
  • IMAP4
  • memcached
  • POP3
  • SMTP
  • SSH
  • SSL
  • SMBv1
  • SMBv2
  • Telnet
  • RDP
  • VNC

المشكلة في ذلك هي أن masscan يحتوي على حزمة TCP/IP خاصة به منفصلة عن النظام الذي تقوم بتشغيله عليه. عندما يستقبل النظام المحلي SYN-ACK من الهدف المفحوص، فإنه يستجيب بحزمة RST تقتل الاتصال قبل أن يتمكن masscan من التقاط الشعار.

أسهل طريقة لمنع هذا هي تخصيص عنوان IP منفصل لـ masscan. سيبدو هذا مثل أحد الأمثلة التالية:

# masscan 10.0.0.0/8 -p80 --banners --source-ip 192.168.1.200
    # masscan 2a00:1450:4007:810::/112 -p80 --banners --source-ip 2603:3001:2d00:da00:91d7:b54:b498:859d

يجب أن يكون العنوان الذي تختاره على الشبكة الفرعية المحلية وألا يستخدم من قبل نظام آخر. سيحذرك Masscan أنك ارتكبت خطأ، لكن قد تكون أربكت اتصالات الجهاز الآخر لعدة دقائق، لذا كن حذرًا.

في بعض الحالات، مثل WiFi، هذا غير ممكن. في تلك الحالات، يمكنك عزل المنفذ الذي يستخدمه masscan عبر جدار الحماية. هذا يمنع حزمة TCP/IP المحلية من رؤية الحزمة، لكن masscan لا يزال يراها لأنه يتجاوز الحزمة المحلية. بالنسبة لـ Linux، سيبدو هذا كالتالي:

# iptables -A INPUT -p tcp --dport 61000 -j DROP
# masscan 10.0.0.0/8 -p80 --banners --source-port 61000

ربما تريد اختيار منافذ لا تتعارض مع المنافذ التي قد يختارها Linux للمنافذ المصدر. يمكنك رؤية النطاق الذي يستخدمه Linux، وإعادة تكوين ذلك النطاق، من خلال النظر في الملف:

/proc/sys/net/ipv4/ip_local_port_range

على أحدث إصدار من Kali Linux (أغسطس 2018)، هذا النطاق هو 32768 إلى 60999، لذا يجب عليك اختيار منافذ أقل من 32768 أو 61000 وما فوق.

إعداد قاعدة iptables يستمر فقط حتى إعادة التشغيل التالية. تحتاج إلى معرفة كيفية حفظ الإعدادات حسب توزيعتك، مثل استخدام iptables-save و/أو iptables-persistent.

على Mac OS X وBSD، توجد خطوات مشابهة. لمعرفة النطاقات التي يجب تجنبها، استخدم أمرًا مثل التالي:

# sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last

على FreeBSD وMacOS الأقدم، استخدم أمر ipfw:

# sudo ipfw add 1 deny tcp from any to any 40000 in
# masscan 10.0.0.0/8 -p80 --banners --source-port 40000

على MacOS الأحدث وOpenBSD، استخدم أداة ترشيح الحزم pf. قم بتحرير الملف /etc/pf.conf لإضافة سطر مثل التالي:

block in proto tcp from any to any port 40000:40015

ثم لتفعيل جدار الحماية، قم بتشغيل الأمر:

# pfctl -E

إذا كان جدار الحماية قيد التشغيل بالفعل، فإما أعد التشغيل أو أعد تحميل القواعد بالأمر التالي:

# pfctl -f /etc/pf.conf

Windows لا يستجيب بحزم RST، لذا ليست هناك حاجة لأي من هاتين التقنيتين. ومع ذلك، صمم masscan ليعمل بشكل أفضل باستخدام عنوان IP الخاص به، لذا يجب عليك تشغيله بهذه الطريقة عندما يكون ذلك ممكنًا، حتى عندما لا يكون ضروريًا بشكل صارم.

نفس الشيء مطلوب لفحوصات أخرى، مثل فحص --heartbleed، الذي هو مجرد شكل من أشكال فحص الشعارات.

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

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

# masscan 0.0.0.0/0 -p0-65535

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

# masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt

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

# masscan 0.0.0.0/0 -p0-65535 -oX scan.xml

هذا يحفظ النتائج في ملف XML، مما يسمح لك بسهولة تفريغ النتائج في قاعدة بيانات أو شيء من هذا القبيل.

لكن، هذا يعمل فقط بمعدل 100 حزمة/ثانية الافتراضي، مما سيستغرق وقتًا طويلاً لمسح الإنترنت. تحتاج إلى تسريعه كما يلي:

# masscan 0.0.0.0/0 -p0-65535 --max-rate 100000

هذا يزيد المعدل إلى 100,000 حزمة/ثانية، مما سيمسح الإنترنت بأكمله (باستثناء المستبعدات) في حوالي 10 ساعات لكل منفذ (أو 655,360 ساعة إذا تم مسح جميع المنافذ).

الشيء الذي يجب ملاحظته حول سطر الأوامر هذا هو أن هذه كلها خيارات متوافقة مع nmap. بالإضافة إلى ذلك، يتم تعيين خيارات "غير مرئية" متوافقة مع nmap لك: -sS -Pn -n --randomize-hosts --send-eth. وبالمثل، تنسيق ملف XML مستوحى من nmap. هناك، بالطبع، الكثير من الاختلافات، لأن الطبيعة غير المتزامنة للبرنامج تؤدي إلى نهج مختلف جوهريًا للمشكلة.

سطر الأوامر أعلاه مرهق بعض الشيء. بدلاً من وضع كل شيء في سطر الأوامر، يمكن تخزينه في ملف بدلاً من ذلك. الإعدادات أعلاه ستبدو كالتالي:

# الفحص الخاص بي
rate =  100000.00
output-format = xml
output-status = all
output-filename = scan.xml
ports = 0-65535
range = 0.0.0.0-255.255.255.255
excludefile = exclude.txt

لاستخدام ملف الإعدادات هذا، استخدم -c:

# masscan -c myscan.conf

هذا أيضًا يجعل الأمور أسهل عندما تكرر الفحص.

تنزيل الأداة