UDPX سريع وخفيف الوزن، وهو عبارة عن ماسح ضوئي UDP لحزمة واحدة مكتوب بلغة Go ويدعم اكتشاف أكثر من 45 خدمة مع إمكانية إضافة خدمات مخصصة. إنه سهل الاستخدام ومحمول، ويمكن تشغيله على Linux وMac OS وWindows. على عكس الماسحات الضوئية المنتشرة على مستوى الإنترنت مثل zgrab2 وzmap، تم تصميم UDPX لسهولة النقل وسهولة الاستخدام.
يختلف فحص منافذ UDP تمامًا عن فحص TCP - فقد تحصل أو لا تحصل على أي نتيجة من فحص منفذ UDP نظرًا لأن UDP هو بروتوكول بدون اتصال. يطبق UDPX نهجًا يعتمد على الحزمة الواحدة. يتم إرسال حزمة خاصة بالبروتوكول إلى الخدمة المحددة (المنفذ) وتنتظر الرد. يتم تعيين الحد على 500 مللي ثانية افتراضيًا ويمكن تغييره بواسطة علامة -w
. إذا أرسلت الخدمة حزمة مرة أخرى خلال هذا الوقت، فمن المؤكد أنها تستمع بالفعل على هذا المنفذ ويتم الإبلاغ عنها على أنها مفتوحة.
الأسلوب النموذجي هو إرسال حزم UDP ذات 0 بايت إلى كل منفذ على الجهاز الهدف. إذا تلقينا رسالة "منفذ ICMP غير قابل للوصول"، فسيتم إغلاق المنفذ. في حالة تلقي استجابة 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
Maximum number of concurrent connections (default 32)
-nr
Do not randomize addresses
-o string
Output file to write results
-s string
Scan only for a specific service, one of: 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
Show received packets (only first 32 bytes)
-t string
IP/CIDR to scan
-tf string
File containing IPs/CIDRs to scan
-w int
Maximum time to wait for a response (socket timeout) in ms (default 500)
يمكنك الحصول على الثنائيات المعدة مسبقًا في قسم الإصدار. إذا كنت تريد إنشاء UDPX من المصدر، فاتبع الخطوات التالية:
من البوابة:
git clone https://github.com/nullt3r/udpx
cd udpx
go build ./cmd/udpx
يمكنك العثور على الثنائي في الدليل الحالي.
أو عبر الذهاب:
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.