
Go भाषा में लिखा गया एकल-पैकेट UDP स्कैनर, जो नेटवर्कों में 45+ सेवाओं की तेज़ खोज के लिए है। यह कस्टम प्रोब्स, CIDR स्कैनिंग और JSONL आउटपुट का समर्थन करता है।

तेज़ और हल्का, UDPX एक एकल-पैकेट UDP स्कैनर है जो Go में लिखा गया है और 45 से अधिक सेवाओं की खोज का समर्थन करता है तथा कस्टम सेवाओं को जोड़ने की क्षमता रखता है। इसका उपयोग करना आसान और पोर्टेबल है, और इसे Linux, Mac OS और Windows पर चलाया जा सकता है। zgrab2 और zmap जैसे इंटरनेट-व्यापी स्कैनर के विपरीत, UDPX को पोर्टेबिलिटी और उपयोग में आसानी के लिए डिज़ाइन किया गया है।
UDP पोर्ट्स को स्कैन करना TCP स्कैन करने से बहुत अलग है - आपको UDP पोर्ट की जांच करने पर कोई परिणाम मिल भी सकता है और नहीं भी, क्योंकि UDP एक कनेक्शन रहित प्रोटोकॉल है। UDPX एक एकल-पैकेट-आधारित दृष्टिकोण लागू करता है। एक प्रोटोकॉल-विशिष्ट पैकेट परिभाषित सेवा (पोर्ट) पर भेजा जाता है और प्रतिक्रिया की प्रतीक्षा करता है। डिफ़ॉल्ट रूप से सीमा 500 ms निर्धारित है और इसे -w फ्लैग द्वारा बदला जा सकता है। यदि सेवा इस समय के भीतर एक पैकेट वापस भेजती है, तो यह निश्चित है कि वह उस पोर्ट पर सुन रही है और इसे खुला बताया जाता है।
एक सामान्य तकनीक लक्ष्य मशीन पर प्रत्येक पोर्ट पर 0 बाइट UDP पैकेट भेजना है। यदि हमें "ICMP Port Unreachable" संदेश प्राप्त होता है, तो पोर्ट बंद है। यदि प्रोब के लिए UDP प्रतिक्रिया प्राप्त होती है (असामान्य), तो पोर्ट खुला है। यदि हमें कोई प्रतिक्रिया नहीं मिलती है, तो स्थिति खुला या फ़िल्टर किया गया है, जिसका अर्थ है कि पोर्ट या तो खुला है या पैकेट फ़िल्टर संचार को अवरुद्ध कर रहे हैं। यह विधि लागू नहीं की गई है क्योंकि इसमें कोई अतिरिक्त मूल्य नहीं है (UDPX केवल विशिष्ट प्रोटोकॉल के लिए परीक्षण करता है)।

⚠️ समवर्तीता: डिफ़ॉल्ट रूप से, समवर्तीता केवल 32 कनेक्शनों पर सेट है (ताकि आप कुछ भी क्रैश न करें)। यदि आपके पास स्कैन करने के लिए बहुत सारे होस्ट हैं, तो आप इसे 128 या 256 कनेक्शनों पर सेट कर सकते हैं। आपके हार्डवेयर, कनेक्शन स्थिरता और ulimit (*nix पर) के आधार पर, आप 512 या अधिक समवर्ती कनेक्शन चला सकते हैं, लेकिन यह अनुशंसित नहीं है।
एकल IP को स्कैन करने के लिए:
udpx -t 1.1.1.1
अधिकतम 128 कनेक्शनों और 1000 ms टाइमआउट के साथ CIDR को स्कैन करने के लिए:
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 से:
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 लाइसेंस के तहत वितरित किया जाता है।