
Ferramenta automatizada de MITM em WSUS que falsifica o tráfego do Windows Update via ARP, serve um executável assinado com payload em PowerShell e faz escalonamento para admin local.
Automatizando o Ataque WSUS
Obter acesso administrativo local a uma máquina Windows integrada ao domínio é normalmente o primeiro passo durante um teste de penetração. Em muitos casos, o Windows Server Update Service (WSUS) é configurado para implantar atualizações nos clientes pela rede local usando HTTP. Sem a segurança do HTTPS, um atacante pode montar um ataque machine-in-the-middle para servir uma atualização ao cliente, que então será executada com privilégios de SYSTEM. Qualquer executável assinado pela Microsoft pode ser servido como atualização, incluindo um comando personalizado com o qual o executável é executado. Caso um atacante consiga obter um certificado TLS para o servidor WSUS, essa técnica também pode ser realizada por HTTPS (veja ESC17 e o nosso post no blog).
Para explorar automaticamente o ataque WSUS, esta ferramenta falsifica o endereço IP do servidor WSUS na rede usando ARP, e quando o cliente alvo solicita atualizações do Windows, ela serve o PsExec64.exe com um script PowerShell predefinido para obter privilégios de administrador local. Tanto o arquivo executável que é servido (padrão: PsExec64.exe) quanto o comando que é executado podem ser alterados, se necessário.
Por padrão, um cliente Windows verifica atualizações aproximadamente a cada 24 horas.
Pré-requisitos:
Resultado:
Funcionalidades implementadas:
Usando pipx (recomendado):
sudo apt install pipx python3-nftables
pipx ensurepath
pipx install wsuks --system-site-packages
sudo ln -s ~/.local/bin/wsuks /usr/sbin/wsuks
Usando poetry:
sudo apt install pipx git python3-nftables # poetry should still be installed with pipx, but apt will work as well
sudo pipx install poetry
sudo ln -s /root/.local/bin/poetry /usr/sbin/poetry
git clone https://github.com/NeffIsBack/wsuks
cd wsuks
sudo poetry install
❗wsuks deve ser executado como root❗
Com pipx, você pode simplesmente executar sudo wsuks ... em qualquer lugar do sistema.
Se estiver usando poetry, você deve estar na pasta wsuks e iniciar cada comando com sudo poetry run wsuks ...
Esta ferramenta requer que o pacote nftables esteja instalado, o que é o padrão em todos os sistemas baseados em Debian.\
Existem 3 modos/cenários de ataque diferentes nos quais o wsuks pode ser executado:
Se você já tiver um usuário de domínio, o wsuks analisará os GPOs no controlador de domínio para encontrar o servidor WSUS.
Um script PowerShell é executado, o que adicionará o usuário de domínio fornecido ao grupo de administradores locais.
sudo wsuks -t 10.0.0.10 -u User -p Password -d domain.local --dc-ip 10.0.0.1
Dica: Se você quiser apenas verificar se há um servidor WSUS, você pode usar a flag --only-discover.
O script PowerShell predefinido executará as seguintes ações:
⚠ Antes de definir a LocalAccountTokenFilterPolicy para 1, o valor original é armazenado no campo de descrição do usuário para que possa ser restaurado posteriormente
sudo wsuks -t 10.0.0.10 --WSUS-Server 10.0.0.20
Se você já tiver um usuário de domínio e souber o IP do servidor WSUS, o wsuks simplesmente adicionará o usuário ao grupo de Administradores locais.
sudo wsuks -t 10.0.0.10 --WSUS-Server 10.0.0.20 -u User -d domain.local
Se o tráfego já estiver sendo redirecionado para a máquina do atacante (por exemplo, com controle sobre DNS), o wsuks pode ser usado apenas para servir o executável malicioso e o comando sem realizar o spoofing de ARP e o roteamento em si. Isso simplesmente iniciará o servidor HTTP na interface fornecida.
sudo wsuks --serve-only
No caso de um atacante conseguir obter um certificado TLS (por exemplo, via ESC17) para o servidor WSUS, o ataque também pode ser realizado por HTTPS.
Aplica-se a todos os cenários acima; basta adicionar a flag --tls-cert com o caminho para o certificado.
sudo wsuks -t 10.0.0.10 --WSUS-Server secure.wsus.domain.local --tls-cert cert.pem
Aqui está uma breve demonstração do ataque com um servidor WSUS conhecido:

No repositório PyWSUS da GoSecure você pode encontrar uma ótima documentação sobre como detectar e mitigar esse ataque. Eles também escreveram um ótimo guia demonstrando como esse ataque funciona em detalhes aqui.
Em relação ao ESC17, consulte a wiki do certipy para recomendações de mitigação.
Partes desta ferramenta são baseadas nos seguintes projetos: