UDPX ที่รวดเร็วและมีน้ำหนักเบาเป็นสแกนเนอร์ UDP แพ็กเก็ตเดียวที่เขียนด้วยภาษา Go ที่รองรับการค้นหาบริการมากกว่า 45 รายการพร้อมความสามารถในการเพิ่มบริการที่กำหนดเอง ใช้งานง่ายและพกพาสะดวก และสามารถทำงานบน Linux, Mac OS และ Windows UDPX แตกต่างจากสแกนเนอร์ทั่วอินเทอร์เน็ตเช่น zgrab2 และ zmap ตรงที่ได้รับการออกแบบมาให้พกพาสะดวกและใช้งานง่าย
การสแกนพอร์ต UDP นั้นแตกต่างจากการสแกน TCP อย่างมาก - คุณอาจหรืออาจจะไม่ได้รับผลลัพธ์ใดๆ กลับมาจากการตรวจสอบพอร์ต UDP เนื่องจาก UDP เป็นโปรโตคอลไร้การเชื่อมต่อ UDPX ใช้วิธีการแบบแพ็คเก็ตเดียว แพ็กเก็ตเฉพาะโปรโตคอลจะถูกส่งไปยังบริการที่กำหนด (พอร์ต) และรอการตอบกลับ ขีดจำกัดถูกตั้งค่าเป็น 500 ms โดยค่าเริ่มต้น และสามารถเปลี่ยนแปลงได้โดยแฟล็ก -w
หากบริการส่งแพ็กเก็ตกลับมาภายในเวลานี้ แสดงว่ากำลังรับฟังบนพอร์ตนั้นจริง ๆ และรายงานว่าเปิดอยู่
เทคนิคทั่วไปคือการส่งแพ็กเก็ต UDP ขนาด 0 ไบต์ไปยังแต่ละพอร์ตบนเครื่องเป้าหมาย หากเราได้รับข้อความ "ICMP Port Unreachable" แสดงว่าพอร์ตนั้นถูกปิด หากได้รับการตอบสนอง UDP ไปยังโพรบ (ผิดปกติ) พอร์ตจะเปิดอยู่ หากเราไม่ได้รับการตอบสนองเลย สถานะจะเปิดหรือกรอง ซึ่งหมายความว่าพอร์ตนั้นเปิดอยู่หรือตัวกรองแพ็กเก็ตกำลังบล็อกการสื่อสาร วิธีการนี้ไม่ได้ถูกนำมาใช้เนื่องจากไม่มีมูลค่าเพิ่ม (การทดสอบ UDPX สำหรับโปรโตคอลเฉพาะเท่านั้น)
การทำงานพร้อมกัน: ตามค่าเริ่มต้น การทำงานพร้อมกันจะถูกตั้งค่าไว้ที่ 32 การเชื่อมต่อเท่านั้น (ดังนั้นคุณจะไม่เกิดข้อผิดพลาดใดๆ) หากคุณมีโฮสต์ที่ต้องสแกนจำนวนมาก คุณสามารถตั้งค่าเป็นการเชื่อมต่อ 128 หรือ 256 ขึ้นอยู่กับฮาร์ดแวร์ของคุณ ความเสถียรในการเชื่อมต่อ และ ulimit (บน *nix) คุณสามารถเรียกใช้การเชื่อมต่อพร้อมกัน 512 หรือมากกว่าได้ แต่ไม่แนะนำ
หากต้องการสแกน IP เดียว:
udpx -t 1.1.1.1
หากต้องการสแกน CIDR ที่มีการเชื่อมต่อสูงสุด 128 รายการและหมดเวลา 1,000 มิลลิวินาที:
udpx -t 1.2.3.4/24 -c 128 -w 1000
หากต้องการสแกนเป้าหมายจากไฟล์ที่มีการเชื่อมต่อสูงสุด 128 รายการสำหรับบริการเฉพาะเท่านั้น:
udpx -tf targets.txt -c 128 -s ipmi
เป้าหมายสามารถเป็น:
รองรับ IPv6
หากคุณต้องการจัดเก็บผลลัพธ์ ให้ใช้ flag -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