Spacebar Campaigns

HAW-003 Windows Task Scheduler Operational Log

Log ID:
HAW-003
Source:
hanguel-win01, hanguel-dc01
Representative Path:
Microsoft-Windows-TaskScheduler/Operational
Collection:
Windows Event Log collector, Hanguel AD Agent summary
Current Status:
collector에 task 등록/실행 탐지 로직 구현
Primary Use:
PMS Agent 실행과 DC의 HanguelLoaderDiag task 등록/실행 흐름 확인

공격 행위 요약

SB-07은 scheduled task가 두 번 중요하게 등장한다. 첫 번째는 win01의 Hanguel PMS Agent가 update patch를 주기적으로 실행하는 흐름이고, 두 번째는 DC에서 loader를 SYSTEM으로 실행하기 위해 task를 등록하는 흐름이다.

로그 발생 위치

구분위치설명
Event LogMicrosoft-Windows-TaskScheduler/Operationaltask registered, updated, action started/completed
Task XMLC:\Windows\System32\Tasks\HanguelLoaderDiag실행 action과 계정 context
RegistryHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCacheTaskCache tree/tasks entry

주요 event.action

dc_scheduled_task_registered
taskcache_loader_task_found
task_xml_loader_action_found

주요 필드

필드의미예시
winlog.channelTask Scheduler 로그 채널Microsoft-Windows-TaskScheduler/Operational
event.codetask 등록/시작/완료 이벤트106, 129, 200, 201
message원본 task scheduler 메시지Task Scheduler successfully completed task
process.command_linetask action 요약cmd.exe /c C:\Windows\Temp\hgl_run.cmd

커버하는 Techniques Used

TechniqueMapping Reason
T1053.005 Scheduled Taskpatch 실행과 loader task 실행 모두 작업 스케줄러에 의존한다.
T1620 Reflective Code Loadingtask action이 loader wrapper를 실행한다.

원본 로그 기준 탐색 포인트

관찰할 행위원본 필드/문자열분석 의미
task 등록Event ID 106, HanguelLoaderDiagDC에 loader 실행 task가 만들어졌는지 확인
task action 실행Event ID 200, Action startedcmd.exe /c C:\Windows\Temp\hgl_run.cmd 실행 시점 확인
task 완료Event ID 201, Action completedtask가 종료된 시점과 exit 상태 확인
Task XML 확인C:\Windows\System32\Tasks\HanguelLoaderDiag이벤트 로그가 부족할 때 action command를 원본 파일로 재검증

Analyst Hunting KQL

작업 스케줄러 로그는 task name, action command, Event ID를 기준으로 먼저 헌팅한다.

winlog.channel:"Microsoft-Windows-TaskScheduler/Operational" and message:(*HanguelLoaderDiag* or *hgl_run.cmd* or *hgl_loader.exe*)
winlog.channel:"Microsoft-Windows-TaskScheduler/Operational" and event.code:(106 or 129 or 200 or 201) and message:*HanguelLoaderDiag*
message:(*"C:\\Windows\\System32\\Tasks\\HanguelLoaderDiag"* or *"C:\\Windows\\Temp\\hgl_run.cmd"*)
winlog.channel:"Microsoft-Windows-TaskScheduler/Operational" and event.code:(106 or 140 or 200 or 201) and message:(*cmd.exe* or *hgl_run.cmd*)

Normalized Pivot

event.action:("dc_scheduled_task_registered" or "taskcache_loader_task_found" or "task_xml_loader_action_found")