1. Sysmon 다운로드
시스템 모니터(Sysmon)는 Windows 시스템 서비스 및 장치 드라이버로, 시스템에 설치되면 시스템 재부팅 후에도 상주하여 시스템 활동을 모니터링하고 Windows 이벤트 로그에 기록하는 툴이다.
Sysmon - Sysinternals | Microsoft Learn
Sysmon - Sysinternals
Windows 이벤트 로그를 통해 주요 시스템 활동을 모니터링하고 보고합니다.
learn.microsoft.com
2. Sysmon 설치 환경 다운로드
SwiftOnSecurity라는 유명한 보안 전문가가 만든 Sysmon 설정 파일이다. 시스템 보안을 강화하고, 악성 활동을 감지할 수 있도록 최적화된 설정이 포함 되어있다.
GitHub - SwiftOnSecurity/sysmon-config: Sysmon configuration file template with default high-quality event tracing
Sysmon configuration file template with default high-quality event tracing - SwiftOnSecurity/sysmon-config
github.com
3. Sysmon 설치하기
모니터링 툴은 악성코드가 감지할 수 있기 때문에 실행 파일 이름은 예측이 힘든 이름으로 변경한다. (sysmon64.exe -> xxxmon.exe)
관리자 권한으로 CMD창을 연 후, 명령어를 통해 설치한다. 설치 시 드라이브 이름도 예측이 힘든 이름으로 변경한다. (xxxmon.exe -accepteula -i sysmonconfig-export.xml -d xxxmonDrv)
4. SysmonView 다운로드
Sysmon 로그는 윈도우 이벤트 뷰어로도 볼 수 있지만, SysmonView라는 전용 툴을 사용하면 한눈에 보기 쉽게 테이블 형태로 정리해줘서 분석에 특화 되어있다.
GitHub - nshalabi/SysmonTools: Utilities for Sysmon
GitHub - nshalabi/SysmonTools: Utilities for Sysmon
Utilities for Sysmon. Contribute to nshalabi/SysmonTools development by creating an account on GitHub.
github.com
5. BAT 파일 제작
대량의 Sysmon 로그에서 특정 영역에 대한 로그만을 추리기 위해 시작(기존 로그 삭제)과 끝(특정 로그 저장)을 의미하는 배치 파일을 만들어 두면 로그 분석에 편하다. 관리자 권한으로 실행되어야 하기 때문에 배치파일에 미리 적용을 시켰다.
@echo off
net session >nul 2>&1
if %errorLevel% neq 0 (
powershell -Command "Start-Process cmd -ArgumentList '/c \"%~f0\"' -Verb RunAs"
exit
)
wevtutil cl "Microsoft-Windows-Sysmon/Operational"
echo System LOG Start!
pause
@echo off
net session >nul 2>&1
if %errorLevel% neq 0 (
powershell -Command "Start-Process cmd -ArgumentList '/c \"%~f0\"' -Verb RunAs"
exit
)
set datetime=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set datetime=%datetime: =0%
set filename=Sysmon_%datetime%.xml
wevtutil query-events "Microsoft-Windows-Sysmon/Operational" /format:xml /e:events > "%~dp0%filename%"
echo System LOG End!
pause
악성코드 분석 시 로그 출력을 위한 전체적인 흐름을 보자면,
- Sysmon 설치 시 백그라운드로 Sysmon이 동작 중이며, 시스템의 모든 로그를 저장
- Start.bat를 실행하여 로그 시작점 설정
- 악성파일 실행
- End.bat를 실행하여 로그 끝점 설정
- 저장된 xml을 SysmonView로 확인
설치 된 Sysmon은 서비스에 등록 되어있으며, 서비스 상태에서는 강제로 중지할 수 없다. 설치를 취소하고 싶다면 관리자권한의 CMD창에서 "xxxmon.exe -u" 명령어를 통해 삭제하면 된다.
저장된 데이터를 Sysmon View 도구를 통해 "Import Sysmon Event logs..." 해보면, 아래 그림과 같이 깔끔한 형태로 로그를 확인 할 수 있다.
'Start-Transcript' 는 파워쉘 세션에서 실행한 명령어와 출력을 기록해주는 명령어이다. 악성코드 동적 분석시 파워쉘의 명령어를 항상 보고 싶다면 프로파일(Profile) 사용하거나 그룹 정책(GPO)을 설정하는게 있는데 그룹 정책 설정이 간단하다.
- gpedit.msc 실행
- 컴퓨터 구성 → 관리 템플릿 → Windows 구성 요소 → Windows PowerShell로 이동
- PowerShell 명령 실행 로깅 활성화 및 모든 PowerShell 입력 기록 정책을 사용으로 설정
- 변경 후 재부팅
이벤트뷰어(eventvwr)를 통해 파워쉘 명령어를 확인 할 수 있다.
'분석 TIP > 동적분석' 카테고리의 다른 글
dnSpy의 Analyzer 기능 (0) | 2025.04.25 |
---|---|
쉘코드 디버거로 분석하기 (0) | 2025.04.14 |
IDA와 Debugger 주소 매칭 (0) | 2025.04.11 |
IDA를 통해 리눅스 원격 elf 파일 디버깅 (0) | 2025.03.31 |
Sysmon 통한 리눅스 동적 분석 (0) | 2025.03.27 |