Cepat dan ringan, UDPX adalah pemindai UDP paket tunggal yang ditulis dalam Go yang mendukung penemuan lebih dari 45 layanan dengan kemampuan untuk menambahkan layanan khusus. Mudah digunakan dan portabel, serta dapat dijalankan di Linux, Mac OS, dan Windows. Tidak seperti pemindai internet seperti zgrab2 dan zmap, UDPX dirancang untuk portabilitas dan kemudahan penggunaan.
Memindai port UDP sangat berbeda dengan memindai TCP - Anda mungkin, atau mungkin tidak mendapatkan hasil apa pun dari memeriksa port UDP karena UDP adalah protokol tanpa koneksi. UDPX mengimplementasikan pendekatan berbasis paket tunggal. Paket khusus protokol dikirim ke layanan (port) yang ditentukan dan menunggu respons. Batasnya diatur ke 500 ms secara default dan dapat diubah dengan tanda -w
. Jika layanan mengirimkan paket kembali dalam jangka waktu tersebut, dapat dipastikan bahwa layanan tersebut memang mendengarkan pada port tersebut dan dilaporkan sebagai terbuka.
Teknik yang umum adalah mengirimkan paket UDP 0 byte ke setiap port pada mesin target. Jika kita menerima pesan “ICMP Port Unreachable”, maka port tersebut ditutup. Jika respon UDP diterima ke probe (tidak biasa), port terbuka. Jika kita tidak mendapat respons sama sekali, statusnya terbuka atau terfilter, artinya port terbuka atau filter paket memblokir komunikasi. Metode ini tidak diterapkan karena tidak ada nilai tambah (uji UDPX hanya untuk protokol tertentu).
️ Konkurensi: Secara default, konkurensi diatur ke 32 koneksi saja (sehingga Anda tidak mengalami error apa pun). Jika Anda memiliki banyak host untuk dipindai, Anda dapat mengaturnya menjadi 128 atau 256 koneksi. Berdasarkan perangkat keras Anda, stabilitas koneksi, dan ulimit (di *nix), Anda dapat menjalankan 512 atau lebih koneksi bersamaan, namun hal ini tidak disarankan.
Untuk memindai satu IP:
udpx -t 1.1.1.1
Untuk memindai CIDR dengan maksimum 128 koneksi dan batas waktu 1000 ms:
udpx -t 1.2.3.4/24 -c 128 -w 1000
Untuk memindai target dari file dengan maksimum 128 koneksi hanya untuk layanan tertentu:
udpx -tf targets.txt -c 128 -s ipmi
Sasarannya bisa berupa:
IPv6 didukung.
Jika Anda ingin menyimpan hasilnya, gunakan flag -o [filename]
. Outputnya dalam format JSONL, seperti terlihat di bawah ini:
{ "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)
Anda dapat mengambil biner bawaan di bagian rilis. Jika Anda ingin membuat UDPX dari sumber, ikuti langkah-langkah berikut:
Dari git:
git clone https://github.com/nullt3r/udpx
cd udpx
go build ./cmd/udpx
Anda dapat menemukan biner di direktori saat ini.
Atau melalui pergi:
go install -v github.com/nullt3r/udpx/cmd/udpx@latest
Setelah itu, Anda dapat menemukan binernya di $HOME/go/bin/udpx
. Jika mau, pindahkan biner ke /usr/local/bin/
agar Anda dapat memanggilnya secara langsung.
UDPX mendukung lebih dari 45 layanan. Yang paling menarik adalah:
Daftar lengkap layanan yang didukung:
Silakan kirim permintaan fitur dengan nama protokol dan port dan saya akan mewujudkannya. Atau tambahkan sendiri, file pkg/probes/probes.go
berisi semua payload yang tersedia. Tentukan nama protokol, port dan data paket (dikodekan hex).
{
Name : "ike" ,
Payloads : [] string { "5b5e64c03e99b51100000000000000000110020000000000000001500000013400000001000000010000012801010008030000240101" },
Port : [] int { 500 , 4500 },
},
Saya tidak bertanggung jawab atas kerusakan apa pun. Anda bertanggung jawab atas tindakan Anda sendiri. Memindai atau menyerang target tanpa persetujuan bersama sebelumnya merupakan tindakan ilegal.
UDPX didistribusikan di bawah Lisensi MIT.