
NTP-бэкдор для защищенных сетей, доставляющий и выполняющий произвольный шеллкод через поддельный NTP-трафик с возможностью персистентности в качестве провайдера времени Windows.
Sandman — это бэкдор, предназначенный для работы в защищённых сетях во время операций red team.
Sandman работает как стейджер и использует NTP (протокол синхронизации времени и даты) для получения и выполнения произвольного шеллкода с предварительно заданного сервера.
Поскольку NTP — это протокол, который часто упускают из виду многие защитники, это обеспечивает широкий сетевой доступ.

Запуск на Windows / *nix машине:
python3 sandman_server.py "Network Adapter" "Payload Url" "optional: ip to spoof"
Сетевой адаптер: Адаптер, на котором вы хотите, чтобы сервер прослушивал (например, Ethernet для Windows, eth0 для *nix).
URL полезной нагрузки: URL-адрес вашего шеллкода; это может быть ваш агент (например, CobaltStrike или meterpreter) или другой стейджер.
IP для подмены: Если вы хотите подменить легитимный IP-адрес (например, IP-адрес time.microsoft.com).
Для начала вы можете скомпилировать 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, а не с опцией Any CPU!
Получение и выполнение произвольной полезной нагрузки с сервера, контролируемого атакующим.
Может работать в защищённых сетях, поскольку NTP обычно разрешён в межсетевых экранах.
Имитация легитимного NTP-сервера с помощью подмены IP.
Python 3.9
Требования указаны в файле requirements.
Для компиляции бэкдора я использовал Visual Studio 2022, но, как упоминалось в разделе использования, его можно скомпилировать как с помощью VS2022, так и с помощью CSC.
Вы можете скомпилировать его либо с использованием USE_SHELLCODE и шеллкода Orca, либо без USE_SHELLCODE для использования WebClient.
Для компиляции бэкдора я использовал Visual Studio 2022; также вам потребуется установить DllExport (через Nuget или любым другим способом) для его компиляции.
Вы можете скомпилировать его либо с использованием USE_SHELLCODE и шеллкода Orca, либо без USE_SHELLCODE для использования WebClient.
Шеллкод внедряется в RuntimeBroker.
Подозрительная NTP-коммуникация начинается с известного магического заголовка.
Правило YARA.
Orca за шеллкод.
Особая благодарность Tim McGuffin за идею провайдера времени.
Спасибо тем, кто уже внёс вклад; я с радостью приму новые вклады, создайте pull request, и я его рассмотрю!