Rápido e leve, o UDPX é um scanner UDP de pacote único escrito em Go que suporta a descoberta de mais de 45 serviços com a capacidade de adicionar serviços personalizados. É fácil de usar e portátil e pode ser executado em Linux, Mac OS e Windows. Ao contrário dos scanners de toda a Internet, como zgrab2 e zmap, o UDPX foi projetado para portabilidade e facilidade de uso.
Isso é rápido. Ele pode escanear toda a rede /16 em aproximadamente 20 segundos para um único serviço.
Você não precisa instalar o libpcap ou qualquer outra dependência.
Pode ser executado em Linux, Mac Os, Windows. Ou seu Nethunter, se você o construiu para Arm.
Customizável. Você pode adicionar suas sondas e testar ainda mais protocolos.
Armazena os resultados no formato JSONL.
Verifica também nomes de domínio.
Como funciona
A varredura de portas UDP é muito diferente da varredura de TCP - você pode ou não obter qualquer resultado da sondagem de uma porta UDP, pois o UDP é um protocolo sem conexão. O UDPX implementa uma abordagem baseada em pacote único. Um pacote específico de protocolo é enviado para o serviço definido (porta) e aguarda uma resposta. O limite é definido como 500 ms por padrão e pode ser alterado pelo -wsinalizador. Se o serviço enviar um pacote de volta dentro desse tempo, é certo que ele está realmente ouvindo naquela porta e é relatado como aberto.
Uma técnica típica é enviar pacotes UDP de 0 byte para cada porta na máquina de destino. Se recebermos uma mensagem Porta ICMP inacessível, a porta está fechada. Se uma resposta UDP for recebida para o probe (incomum), a porta estará aberta. Se não obtivermos nenhuma resposta, o estado é aberto ou filtrado, o que significa que a porta está aberta ou os filtros de pacotes estão bloqueando a comunicação. Este método não é implementado porque não há valor agregado (testes UDPX apenas para protocolos específicos).
Uso
Para escanear um único IP:
udpx -t 1.1.1.1
Para escanear um CIDR com no máximo 128 conexões e timeout de 1000 ms:
udpx -t 1.2.3.4/24 -c 128 -w 1000
Para escanear alvos de arquivo com no máximo 128 conexões para apenas um serviço específico:
udpx -tf targets.txt -c 128 -s ipmi
O alvo pode ser:
endereço de IP
CIDR
Domínio
IPv6 é suportado.
Se você deseja armazenar os resultados, use flag -o [filename]. A saída está no formato JSONL, conforme pode ser visto abaixo:
{address:45.33.32.156,hostname: scanme.nmap.org ,port:123,service:ntp,response_data:JAME6QAAAEoAAA56LU9vp+d2ZPwOYIyDxU8jS3GxUvM=}
Opções
/ / / / __ \/ __ \ |/ /
/ / / / / / / /_/ / /
/ /_/ / /_/ / ____/ |
\____/_____/_/ /_/|_|
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)
Prédio
Você pode pegar binários pré-construídos na seção de lançamento. Se você deseja criar UDPX a partir da fonte, siga estas etapas:
Do git:
git clone https://github.com/nullt3r/udpx
cd udpx
go build ./cmd/udpx
Você pode encontrar o binário no diretório atual.
Ou por ir:
go install -v github.com/nullt3r/udpx/cmd/udpx@latest
Depois disso, você pode encontrar o binário em $HOME/go/bin/udpx. Se desejar, mova o binário para /usr/local/bin/para poder chamá-lo diretamente.
Serviços suportados
O UDPX suporta mais de 45 serviços. Os mais interessantes são:
ipmi
snmp
eu gosto
tftp
openvpn
Kerberos
ldap
A lista completa de serviços suportados:
ard
bacnet
bacnet_rpm
cobrar
cítrico
coap
banco de dados
banco de dados
digi1
digi2
digi3
DNS
ipmi
ldap
mdns
memcache
mssql
nat_port_mapping
natpmp
netbios
netis
ntp
ntp_monlist
openvpn
pca_nq
pca_st
pcanywhere
mapa de portas
qotd
rdp
ripv
sentinela
trago
snmp1
snmp2
snmp3
ssdp
tftp
ubiquiti
ubiquiti_discovery_v1
ubiquiti_discovery_v2
upnp
válvula
wdbrpc
wsd
wsd_malformado
xdmcp
Kerberos
eu gosto
Como adicionar sua própria sonda?
Envie uma solicitação de recurso com o nome do protocolo e a porta e farei isso acontecer. Ou adicione por conta própria, o arquivo pkg/probes/probes.gocontém todas as cargas úteis disponíveis. Especifique o nome do protocolo, a porta e os dados do pacote (codificados em hexadecimal).
{ Nome: ike, Cargas úteis:string{5b5e64c03e99b51100000000000000000110020000000000000001500000013400000001000000010000012801010008030000240101}, Porta:int{500, 4500}, },
Créditos
Nmap
Caçador de UDP
ZGrab2 1
ZMapName
Isenção de responsabilidade
Eu não sou responsável por quaisquer danos. Você é responsável por suas próprias ações. Escanear ou atacar alvos sem consentimento mútuo prévio pode ser ilegal.
GitHub: