桑德曼是一个后门工具,专为红队行动中在加固型网络上工作而设计。
桑德曼作为一个装载器,利用NTP(一种同步时间和日期的协议)从预定义的服务器获取并运行任意的shellcode。
由于NTP是一种常被防御者忽视的协议,因此其网络可访问性广泛。

在Windows/*nix机器上运行:
python3 sandman_server.py "Network Adapter" "Payload Url" "optional: ip to spoof"
Network Adapter:你希望服务器监听的那个网卡(例如Windows的Ethernet,*nix的eth0)。
Payload Url:你的shellcode的URL,可以是你的代理(例如CobaltStrike或meterpreter)或其他装载器。
IP to Spoof:如果你想伪造一个合法的IP地址(例如time.microsoft.com的IP地址)。
首先,你可以按照下文所述编译SandmanBackdoor,因为它是一个轻量级的C#可执行文件,你可以通过ExecuteAssembly执行它,将其作为NTP提供程序运行,或者直接执行/注入它。
要使用它,你需要按照以下简单步骤操作:
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
注意:确保你使用x64选项编译,而不是任何CPU选项!
从攻击者控制的服务器获取并执行任意载荷。
能在加固型网络上工作,因为NTP通常在防火墙中是被允许的。
通过IP伪造冒充合法NTP服务器。
Python 3.9
依赖项在requirements文件中指定。
编译后门时我使用了Visual Studio 2022,但正如使用方法中所述,它可以同时使用VS2022和CSC进行编译。 你可以选择使用USE_SHELLCODE并使用Orca的shellcode进行编译,或者不使用USE_SHELLCODE而使用WebClient。
编译后门时我使用了Visual Studio 2022,你还需要安装DllExport(通过Nuget或其他方式)来编译它。 你可以选择使用USE_SHELLCODE并使用Orca的shellcode进行编译,或者不使用USE_SHELLCODE而使用WebClient。
shellcode被注入到RuntimeBroker中。
可疑的NTP通信以已知的魔术头部开始。
YARA规则。
Orca 提供的shellcode。
特别感谢 Tim McGuffin 的时间提供程序想法。
感谢已经做出贡献的朋友,我会很高兴地接受贡献,提交拉取请求,我会审核的!