
높은 권한의 사용자 로그온을 시뮬레이션하여 가짜 SMB 세션을 생성하는 Windows 서비스로, 공격자를 허니팟 머신으로 유인하여 조기 탐지 및 사고 대응을 지원합니다.
________ _________ _____ _ _____ __
/ ___| \/ || ___ \ / ___| (_) / ___| / _|
\ `--.| . . || |_/ / \ `--. ___ ___ ___ _ ___ _ __ \ `--. _ __ ___ ___ | |_ ___ _ __
`--. \ |\/| || ___ \ `--. \/ _ \/ __/ __| |/ _ \| '_ \ `--. \ '_ \ / _ \ / _ \| _/ _ \ '__|
/\__/ / | | || |_/ / /\__/ / __/\__ \__ \ | (_) | | | | /\__/ / |_) | (_) | (_) | || __/ |
\____/\_| |_/\____/ \____/ \___||___/___/_|\___/|_| |_| \____/| .__/ \___/ \___/|_| \___|_|
| |
|_|
환영합니다! 이 유틸리티는 Visual Studio 2019(또는 최신 버전)로 컴파일할 수 있습니다. 이 프로그램의 목표는 가짜 SMB 세션을 생성하는 것입니다. 주요 목적은 공격자를 허니 장치로 유인하는 방법으로 사용하는 것입니다. 이 프로그램은 어떠한 보증이나 보장도 제공하지 않습니다.
이 프로그램을 사용하려면 코드를 약간 수정해야 합니다. 144번째 줄에서 Windows API CreateProcessWithLogonW API가 호출되는데, 기본적으로 제공된 두 개의 매개변수는 svc-admin(사용자 이름)과 contoso.com(도메인)입니다. 이러한 값을 실제 운영 네트워크에 맞게 변경해야 합니다.
CreateProcessWithLogonW(L"DomainAdminUser", L"YourDomain.com", NULL, LOGON_NETCREDENTIALS_ONLY, <snip>);
코드를 수정하고 컴파일한 후에는 반드시 서비스를 설치해야 합니다. 다음 명령어로 설치할 수 있습니다:
sc create servicename binpath="C:\ProgramData\Services\Inject\service.exe" start="auto"
프로그램이 올바르게 작동하는지 확인하려면 시스템에 존재하는 세션을 확인해야 합니다. 다음 명령어로 확인할 수 있습니다:
C:\ProgramData\Services\Inject> net sessions
Computer User name Client Type Opens Idle time
-------------------------------------------------------------------------------
\\[::1] svc-admin 0 00:00:04
The command completed successfully.
약 13분 후에 다시 확인하여 새 세션이 생성되었고 프로그램이 정상 작동 중인지 확인해야 합니다.
이론상으로, 공격자가 SharpHound를 실행하여 세션을 수집하고 소유한 주체의 공격 경로를 분석할 때, Tier-2 인프라(워크스테이션)에 높은 권한의 사용자가 로그인되어 있다는 것을 식별할 수 있습니다. 그렇게 되면 공격자가 해당 워크스테이션에 접근하여 자격 증명을 덤프함으로써 도메인 관리자 액세스 권한을 얻을 수 있는 것처럼 보입니다.
위 시나리오에서 공격자는 lab-wkst-2.contoso.com의 로컬 관리자 계정인 [email protected] 사용자를 손상시켰습니다. svc-admin 사용자가 lab-wkst-2.contoso.com에 로그인되어 있으므로, 공격자는 워크스테이션에 로그인하여 Mimikatz를 실행하고 자격 증명을 덤프하기만 하면 됩니다. 그렇다면 이를 어떻게 모니터링해야 할까요?
이 도구를 구현하는 것은 중요하지만, 모니터링도 마찬가지로 중요합니다. 모니터링 없이 도구를 구현하면 사실상 쓸모가 없기 때문에 모니터링은 필수입니다. 이 호스트를 모니터링하는 가장 효과적인 방법은 모든 로그온에 대해 경고를 설정하는 것입니다. 이 프로그램은 사용자 활동이 없고 도메인에 가입되어 있으며 표준 기업 모니터링 도구(EDR, AV, Windows 이벤트 로그 전달 등)가 설치된 호스트에서 가장 잘 활용됩니다. 이 머신과 관련된 사고가 최대한 빨리 분류될 수 있도록 가능하면 이메일 알림, SMS 알림 등을 설정하는 것이 좋습니다. 이는 실제 공격자가 해당 워크스테이션과 상호작용할 가능성이 가장 높기 때문입니다.
서비스 템플릿 코드와 훌륭한 Windows API 문서를 제공해 주신 Microsoft에 감사드립니다.