Rápido y liviano, UDPX es un escáner UDP de un solo paquete escrito en Go que admite el descubrimiento de más de 45 servicios con la capacidad de agregar servicios personalizados. Es fácil de usar y portátil, y puede ejecutarse en Linux, Mac OS y Windows. A diferencia de los escáneres de Internet como zgrab2 y zmap, UDPX está diseñado para ofrecer portabilidad y facilidad de uso.
Escanear puertos UDP es muy diferente a escanear TCP: es posible que obtenga o no algún resultado al sondear un puerto UDP, ya que UDP es un protocolo sin conexión. UDPX implementa un enfoque basado en un solo paquete. Un paquete específico del protocolo se envía al servicio (puerto) definido y espera una respuesta. El límite está establecido en 500 ms de forma predeterminada y se puede cambiar mediante el indicador -w
. Si el servicio devuelve un paquete dentro de este tiempo, es seguro que efectivamente está escuchando en ese puerto y se informa como abierto.
Una técnica típica consiste en enviar paquetes UDP de 0 bytes a cada puerto de la máquina de destino. Si recibimos un mensaje "Puerto ICMP inalcanzable", entonces el puerto está cerrado. Si se recibe una respuesta UDP a la sonda (inusual), el puerto está abierto. Si no recibimos ninguna respuesta, el estado es abierto o filtrado, lo que significa que el puerto está abierto o los filtros de paquetes están bloqueando la comunicación. Este método no se implementa porque no tiene valor agregado (pruebas UDPX solo para protocolos específicos).
️ Simultaneidad: de forma predeterminada, la simultaneidad está configurada en 32 conexiones únicamente (para que no bloquee nada). Si tiene muchos hosts para escanear, puede configurarlo en 128 o 256 conexiones. Según su hardware, la estabilidad de la conexión y ulimit (en *nix), puede ejecutar 512 o más conexiones simultáneas, pero esto no se recomienda.
Para escanear una sola IP:
udpx -t 1.1.1.1
Para escanear un CIDR con un máximo de 128 conexiones y un tiempo de espera de 1000 ms:
udpx -t 1.2.3.4/24 -c 128 -w 1000
Para escanear destinos desde un archivo con un máximo de 128 conexiones solo para un servicio específico:
udpx -tf targets.txt -c 128 -s ipmi
El objetivo puede ser:
Se admite IPv6.
Si desea almacenar los resultados, utilice el indicador -o [filename]
. La salida está en formato JSONL, como se puede ver a continuación:
{ "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)
Puede obtener archivos binarios prediseñados en la sección de lanzamiento. Si desea compilar UDPX desde el código fuente, siga estos pasos:
De git:
git clone https://github.com/nullt3r/udpx
cd udpx
go build ./cmd/udpx
Puede encontrar el binario en el directorio actual.
O vía go:
go install -v github.com/nullt3r/udpx/cmd/udpx@latest
Después de eso, puede encontrar el binario en $HOME/go/bin/udpx
. Si lo desea, mueva el binario a /usr/local/bin/
para poder llamarlo directamente.
El UDPX admite más de 45 servicios. Los más interesantes son:
La lista completa de servicios compatibles:
Envíe una solicitud de función con el nombre del protocolo y el puerto y lo haré realidad. O agréguelo usted mismo, el archivo pkg/probes/probes.go
contiene todas las cargas útiles disponibles. Especifique el nombre del protocolo, el puerto y los datos del paquete (codificados en hexadecimal).
{
Name : "ike" ,
Payloads : [] string { "5b5e64c03e99b51100000000000000000110020000000000000001500000013400000001000000010000012801010008030000240101" },
Port : [] int { 500 , 4500 },
},
No soy responsable de ningún daño. Eres responsable de tus propias acciones. Escanear o atacar objetivos sin previo consentimiento mutuo puede ser ilegal.
UDPX se distribuye bajo licencia MIT.