
ماسح UDP أحادي الحزمة بلغة Go للاكتشاف السريع لأكثر من 45 خدمة عبر الشبكات، مع دعم المسابر المخصصة، ومسح CIDR، وإخراج JSONL.

سريع وخفيف الوزن، UDPX هو ماسح ضوئي أحادي الحزمة لبروتوكول UDP مكتوب بلغة Go، يدعم اكتشاف أكثر من 45 خدمة مع إمكانية إضافة خدمات مخصصة. سهل الاستخدام ومحمول، ويمكن تشغيله على لينكس، ماك، وويندوز. على عكس الماسحات الضوئية للإنترنت بالكامل مثل zgrab2 و zmap، صُمم UDPX من أجل سهولة الحمل وسهولة الاستخدام.
مسح منافذ UDP يختلف كثيراً عن مسح TCP - قد تحصل أو لا تحصل على أي نتيجة من اختبار منفذ UDP لأن UDP بروتوكول غير متصل. يطبق UDPX نهجاً يعتمد على الحزمة الواحدة. يتم إرسال حزمة خاصة بالبروتوكول إلى الخدمة المحددة (المنفذ) وينتظر الرد. الحد الافتراضي مضبوط على 500 مللي ثانية ويمكن تغييره باستخدام -w. إذا أرسلت الخدمة حزمة مرة أخرى خلال هذا الوقت، فمن المؤكد أنها تستمع بالفعل على ذلك المنفذ ويُبلغ عنها كمنفذ مفتوح.
التقنية الشائعة هي إرسال حزم UDP بحجم 0 بايت لكل منفذ على الجهاز الهدف. إذا تلقينا رسالة "ICMP Port Unreachable"، فإن المنفذ مغلق. إذا تم تلقي رد UDP على البروب (غير معتاد)، فالمنفذ مفتوح. إذا لم نحصل على أي رد، فإن الحالة هي مفتوح أو مرشح، مما يعني أن المنفذ إما مفتوح أو أن مرشحات الحزم تمنع الاتصال. لم يتم تنفيذ هذه الطريقة لأنه لا توجد قيمة مضافة (UDPX يختبر فقط بروتوكولات محددة).

⚠️ التزامن: افتراضياً، التزامن مضبوط على 32 اتصالاً فقط (حتى لا تتعطل أي شيء). إذا كان لديك الكثير من المضيفين لمسحها، يمكنك ضبطه على 128 أو 256 اتصالاً. بناءً على أجهزتك، استقرار الاتصال، و ulimit (على *nix)، يمكنك تشغيل 512 اتصالاً متزامناً أو أكثر، لكن هذا غير موصى به.
لمسح عنوان IP واحد:
udpx -t 1.1.1.1
لمسح CIDR بحد أقصى 128 اتصالاً ومهلة 1000 مللي ثانية:
udpx -t 1.2.3.4/24 -c 128 -w 1000
لمسح أهداف من ملف بحد أقصى 128 اتصالاً لخدمة محددة فقط:
udpx -tf targets.txt -c 128 -s ipmi
يمكن أن يكون الهدف:
مدعوم IPv6.
إذا كنت تريد تخزين النتائج، استخدم العلم -o [filename]. الإخراج بصيغة JSONL، كما هو موضح أدناه:
{"address":"45.33.32.156","hostname":"scanme.nmap.org","port":123,"service":"ntp","response_data":"JAME6QAAAEoAAA56LU9vp+d2ZPwOYIyDxU8jS3GxUvM="}
__ ______ ____ _ __
/ / / / __ \/ __ \ |/ /
/ / / / / / / /_/ / /
/ /_/ / /_/ / ____/ |
\____/_____/_/ /_/|_|
v1.0.2-beta, by @nullt3r
Usage of ./udpx-linux-amd64:
-c int
الحد الأقصى لعدد الاتصالات المتزامنة (الافتراضي 32)
-nr
لا تقم بترتيب العناوين عشوائياً
-o string
ملف الإخراج لكتابة النتائج
-s string
امسح فقط لخدمة محددة، واحدة من: ard, bacnet, bacnet_rpm, chargen, citrix, coap, db, db, digi1, digi2, digi3, dns, ipmi, ldap, mdns, memcache, mssql, nat_port_mapping, natpmp, netbios, netis, ntp, ntp_monlist, openvpn, pca_nq, pca_st, pcanywhere, portmap, qotd, rdp, ripv, sentinel, sip, snmp1, snmp2, snmp3, ssdp, tftp, ubiquiti, ubiquiti_discovery_v1, ubiquiti_discovery_v2, upnp, valve, wdbrpc, wsd, wsd_malformed, xdmcp, kerberos, ike
-sp
عرض الحزم المستلمة (أول 32 بايت فقط)
-t string
عنوان IP/CIDR للمسح
-tf string
ملف يحتوي على عناوين IP/CIDR للمسح
-w int
أقصى وقت لانتظار الرد (مهلة المقبس) بالمللي ثانية (الافتراضي 500)
يمكنك الحصول على الملفات الثنائية المجمعة مسبقاً في قسم الإصدارات. إذا كنت تريد بناء UDPX من المصدر، اتبع هذه الخطوات:
من git:
git clone https://github.com/nullt3r/udpx
cd udpx
go build ./cmd/udpx
يمكنك العثور على الملف الثنائي في الدليل الحالي.
أو عبر go:
go install -v github.com/nullt3r/udpx/cmd/udpx@latest
بعد ذلك، يمكنك العثور على الملف الثنائي في $HOME/go/bin/udpx. إذا أردت، انقل الملف الثنائي إلى /usr/local/bin/ حتى تتمكن من استدعائه مباشرة.
يدعم UDPX أكثر من 45 خدمة. الأكثر إثارة للاهتمام هي:
القائمة الكاملة للخدمات المدعومة:
يرجى إرسال طلب ميزة مع اسم البروتوكول والمنفذ وسأقوم بتنفيذه. أو أضفه بنفسك، الملف pkg/probes/probes.go يحتوي على جميع الحمولات المتاحة. حدد اسم البروتوكول والمنفذ وبيانات الحزمة (مشفرة بالنظام الست عشري).
{
Name: "ike",
Payloads: []string{"5b5e64c03e99b51100000000000000000110020000000000000001500000013400000001000000010000012801010008030000240101"},
Port: []int{500, 4500},
},
أنا لست مسؤولاً عن أي أضرار. أنت مسؤول عن أفعالك الخاصة. يمكن أن يكون مسح أو مهاجمة الأهداف دون موافقة مسبقة متبادلة غير قانوني.
UDPX موزع تحت رخصة MIT.