문제
링크: https://cyberground.team/scenarios/2
The Genius Developer’s Betrayal: Project Chimera Vanishes into Darkness
'MyAI', an AI startup at the heart of Silicon Valley, is receiving the hottest attention. They are at the forefront of 'neural interface' technology, which dire
cyberground.team
난이도: Medium
MITRE ATT&CK Tactics: Reconnaissance
시라니오 상세 설명:
실리콘 밸리의 심장부에서 가장 뜨거운 주목을 받는 AI 스타트업, 'MyAI'. 이들은 인간의 뇌와 컴퓨터를 직접 연결하는 '뉴럴 인터페이스' 기술의 최전선에 서 있습니다. 그리고 그 중심에는 세상을 바꿀 혁신적인 기술, '프로젝트 키메라'가 있습니다.
하지만 화려한 스포트라이트 뒤편에는 짙은 그림자가 드리워져 있었습니다. 회사의 핵심 알고리즘을 설계한 천재 개발자 '알렉스'. 그는 자신의 헌신과 기여가 카리스마 넘치는 CEO의 업적으로 포장되는 현실에 깊은 배신감을 느끼고 있었습니다. 때마침 가족의 병원비로 인해 재정적 압박까지 심해지던 어느 날, 어둠 속에서 유혹의 손길이 닿아옵니다.
IT 업계의 배신자들을 전문적으로 포섭하는 것으로 악명 높은 정보 브로커, '미스터 Z'가 그에게 접촉한 것입니다. '프로젝트 키메라'의 설계도 원본을 넘기는 대가로, 알렉스가 평생 만져볼 수 없는 거액을 제안합니다. 결국, 오랜 고뇌 끝에 알렉스는 돌이킬 수 없는 선을 넘기로 결심합니다. 그는 평소 즐겨 사용하던 웹 브라우저 대신, IT 부서의 감시를 피할 수 있다고 생각한 파일 전송 도구를 이용해 서버에 조심스럽게 접근했습니다. 파일을 손에 넣은 그는 수많은 시스템 로그 파일처럼 보이도록 확장자를 바꾸고 평범한 이름으로 위장했지만, 파일 생성 기록까지는 미처 지우지 못했습니다.
당신은 이 회사의 유일한 보안 담당자입니다. 며칠 전, 익명의 내부 고발자로부터 "당신들 중 한 명이 늑대다. 키메라의 그림자를 자세히 들여다봐."라는 의문의 메시지를 받았습니다. 그리고 오늘, 퇴근 시간 직후 내부 파일 서버에서 '프로젝트 키메라' 관련 파일이 다운로드된 정황을 포착했습니다. 이제 당신의 손에 회사의 운명이 달렸습니다. 알렉스의 윈도우 PC에 남겨진 로그라는 디지털 발자국을 추적하여, 그가 훔친 기술의 행방을 밝혀내고 배신의 전모를 파헤쳐야 합니다.
시간 범위: 2025년 10월 21일 - 2025년 10월 24일
Open Log Analysis Console 접속

문제에서 제시된 시간 범위 설정한다.
문제 1: 알렉스의 PC 이름은?
1. winlog.computer_name 필드만 확인

2. 제출

문제 2: 의심 파일을 실행 시킨 프로세스의 전체 경로와 유저는?
1. winlog.event_id: 1 필터링
파일 실행 이벤트 ID는 event_id: 1이므로 필터링하여, 후보를 추려본다.
프로세스 만들기 이벤트는 새로 만든 프로세스에 대한 확장 정보를 제공합니다. 전체 명령줄은 프로세스 실행에 대한 컨텍스트를 제공합니다. ProcessGUID 필드는 이벤트 상관 관계를 더 쉽게 만들기 위해 도메인 전체에서 이 프로세스에 대한 고유한 값입니다. 해시는 HashType 필드에 알고리즘이 있는 파일의 전체 해시입니다.

2. winlog.event_data.Image: powershell.exe 필터링
1) cmd.exe 필터링에서도 한 로그를 발견했지만,

VMware Tools(vmtoolsd.exe)가 SYSTEM 권한으로 VM 기동 시 필요한 배치 파일을 cmd.exe를 통해 자동 실행한 정상 시스템 행위임을 확인하였다.
2) powershell.exe 필터링

"winlog.event_data.ParentImage": [
"C:\\Users\\Public\\torrent-downloader.exe"
],
...
"winlog.event_data.CommandLine": [
"powershell.exe -ExecutionPolicy Bypass -C \"Remove-Item -Path \\\"staged\\\" -recurse\""
],
"winlog.event_data.User.keyword": [
"DESKTOP-R9L8KCH\\admin"
]
powershell.exe를 실행시킨 부모 프로세스는 C:\Users\Public\torrent-downloader.exe임
이때 하필 기록 지우는 명령어이기도 함 수상띠니
3. torrent-downloader.exe가 실행된 로그 필터링

"winlog.event_data.ParentUser": [
"DESKTOP-R9L8KCH\\admin"
],
"winlog.event_data.ParentCommandLine": [
"\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" "
],
얘의 부모 프로세스가 또 파워쉘이네?
4. 제출

문제 3: 의심 파일의 SHA1와 IMPHASH 값은?
1. 위 문제와 동일하게 torrent-downloader.exe가 실행된 로그 필터링하면 Hash값이 나온다.
2. 제출

문제 4: 알렉스가 유출한 데이터가 저장된 파일 경로는?
1. 다시 event id 1로 필터링
{
"@timestamp": [
"2025-10-22T12:03:00.086Z"
],
"winlog.event_data.CommandLine": [
"powershell.exe -ExecutionPolicy Bypass -C \"Compress-Archive -Path C:\\Windows\\system32\\staged -DestinationPath C:\\Windows\\system32\\staged.zip -Force;sleep 1; ls C:\\Windows\\system32\\staged.zip | foreach {$_.FullName} | select\""
],
"winlog.event_data.Image": [
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
C:\Windows\system32\staged.zip 파일을 만든다.
| 명령어 구성 | 역할 | 설명 |
| powershell.exe | PowerShell 실행 | PowerShell 인터프리터 실행 |
| -ExecutionPolicy Bypass | 정책 우회 | 로컬 실행 정책을 무시하고 명령 실행 |
| -C | 즉시 실행 | 뒤에 오는 문자열을 명령으로 실행 |
| Compress-Archive | 압축 | 파일·디렉터리를 ZIP으로 압축 |
| -Path C:\Windows\system32\staged | 입력 경로 | 압축 대상 디렉터리 |
| -DestinationPath C:\Windows\system32\staged.zip | 출력 경로 | 생성될 ZIP 파일 경로 |
| -Force | 강제 덮어쓰기 | 동일 파일 존재 시 덮어쓰기 |
| sleep 1 | 지연 | 1초 대기하여 파일 생성 완료 보장 |
| ls C:\Windows\system32\staged.zip | 파일 확인 | ZIP 파일 존재 여부 확인 |
| foreach {$_.FullName} | 경로 추출 | 파일의 전체 경로 출력 |
| select | 출력 정리 | 결과 객체를 표준 출력으로 반환 |
2. 이벤트 ID가 11이고, 생성된 파일의 이름을 필터링해서 교차검증을 수행한다.
파일 생성 및 덮어쓸 때 기록되는 이벤트 ID는 11!!
이벤트 ID 11: FileCreate
파일 생성 작업은 파일이 생성되거나 덮어쓸 때 기록됩니다. 이 이벤트는 시작 폴더와 같은 자동 시작 위치와 초기 감염 중에 맬웨어가 드롭되는 일반적인 위치인 임시 및 다운로드 디렉터리를 모니터링하는 데 유용합니다.

"winlog.event_data.TargetFilename": [
"C:\\Windows\\System32\\staged.zip"
],
TargetFilename 필드는 생성된 파일의 전체 경로이다.
3. 제출

문제 5: 공격자가 안티바이러스 정보 수집을 위해 사용한 도구와 실행 시간은?
1. 실행 관련 event_id 1로 필터링
이벤트 ID 1: 프로세스 생성
프로세스 만들기 이벤트는 새로 만든 프로세스에 대한 확장 정보를 제공합니다. 전체 명령줄은 프로세스 실행에 대한 컨텍스트를 제공합니다. ProcessGUID 필드는 이벤트 상관 관계를 더 쉽게 만들기 위해 도메인 전체에서 이 프로세스에 대한 고유한 값입니다. 해시는 HashType 필드에 알고리즘이 있는 파일의 전체 해시입니다.
2. *WMI를 통해 Windows 내부 정보를 조회하기 위한 수단 필터링

| 명령어 | 사용 | 설명 |
| Get-WmiObject | PowerShell | WMI 정보를 조회하는 PowerShell 명령 |
| Get-CimInstance | PowerShell | CIM/WMI 정보를 조회하는 최신 PowerShell 명령 |
| wmic | cmd, PowerShell | WMI를 명령줄에서 조회하는 실행 파일 |
3. 안티바이러스 정보 수집 로그 필터링

| 명령어 | 설명 |
| SecurityCenter | WMI의 보안 제품 전용 네임스페이스 (root\SecurityCenter / SecurityCenter2) |
| AntiVirusProduct | SecurityCenter 내 안티바이러스 정보 클래스 |
1) Get-WmiObject
외부 실행 파일(torrent-downloader.exe)이 관리자 권한으로 PowerShell을 통해 WMI(SecurityCenter)의 AntiVirusProduct 클래스를 조회함으로써 시스템에 설치된 안티바이러스 제품 정보를 수집한 행위를 기록한 로그
{
"@timestamp": [
"2025-10-22T12:00:55.980Z"
],
"winlog.event_data.CommandLine": [
"powershell.exe -ExecutionPolicy Bypass -C \"$NameSpace = Get-WmiObject -Namespace \\\"root\\\" -Class \\\"__Namespace\\\" | Select Name | Out-String -Stream | Select-String \\\"SecurityCenter\\\";$SecurityCenter = $NameSpace | Select-Object -First 1;Get-WmiObject -Namespace \\\"root\\$SecurityCenter\\\" -Class AntiVirusProduct | Select DisplayName, InstanceGuid, PathToSignedProductExe, PathToSignedReportingExe, ProductState, Timestamp | Format-List;\""
],
"winlog.event_data.Image": [
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
| 명령어 구성 | 역할 | 설명 |
| powershell.exe -ExecutionPolicy Bypass -C | 실행 설정 | PowerShell 실행 정책을 무시하고(Command 실행 허용) 단일 명령 블록을 실행 |
| Get-WmiObject -Namespace "root" -Class "__Namespace" | 네임스페이스 열거 | WMI root 하위에 존재하는 모든 네임스페이스 목록을 조회 |
| Select Name | 필드 선택 | 네임스페이스 이름(Name)만 추출 |
| Out-String -Stream | 문자열 변환 | 결과를 문자열 스트림으로 변환 |
| Select-String "SecurityCenter" | 필터링 | SecurityCenter 문자열이 포함된 네임스페이스만 선별 |
| $SecurityCenter = … | Select-Object -First 1 | 변수 저장 | 탐지된 SecurityCenter 네임스페이스 중 첫 번째 값을 변수에 저장 |
| Get-WmiObject -Namespace "root\$SecurityCenter" -Class AntiVirusProduct | AV 정보 조회 | SecurityCenter(2) 네임스페이스의 AntiVirusProduct 클래스 조회 |
| Select DisplayName, InstanceGuid, PathToSignedProductExe, PathToSignedReportingExe, ProductState, Timestamp | 핵심 정보 선택 | 안티바이러스 이름, GUID, 실행 파일 경로, 상태, 시간 정보만 추출 |
| Format-List | 출력 형식 | 결과를 리스트 형태로 정렬하여 출력 |
2) wmic
외부 실행 파일(torrent-downloader.exe)이 관리자 권한으로 PowerShell을 통해 wmic.exe를 호출하여 WMI SecurityCenter2 네임스페이스의 AntiVirusProduct 클래스를 조회한 안티바이러스 정보 수집 행위를 기록한 로그
{
"@timestamp": [
"2025-10-22T11:59:12.576Z"
],
"winlog.event_data.CommandLine": [
"powershell.exe -ExecutionPolicy Bypass -C \"wmic /NAMESPACE:\\\\root\\SecurityCenter2 PATH AntiVirusProduct GET /value\""
],
"winlog.event_data.Image": [
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
| 명령어 구성 | 역할 | 설명 |
| powershell.exe | 실행 환경 | PowerShell 프로세스 실행 |
| -ExecutionPolicy Bypass | 정책 우회 | PowerShell 실행 정책을 무시하고 명령 실행 |
| -C | 단일 명령 실행 | 문자열로 전달된 명령을 실행 후 종료 |
| wmic | WMI 도구 | Windows 내장 WMI 커맨드라인 유틸리티 |
| /NAMESPACE:\\root\SecurityCenter2 | 조회 위치 | 안티바이러스 정보가 저장되는 WMI 보안 센터 네임스페이스 |
| PATH AntiVirusProduct | 조회 대상 | 설치된 안티바이러스 제품 정보를 나타내는 WMI 클래스 |
| GET /value | 출력 방식 | 모든 속성을 속성=값 형태로 출력 |
4. wmic.exe가 실행된 로그 필터링
해당 로그는 PowerShell을 통해 wmic.exe를 실행하여 WMI SecurityCenter2 네임스페이스의 AntiVirusProduct 클래스를 조회한 안티바이러스 정보 수집 행위가 실제로 수행되었음을 보여주는 Sysmon 프로세스 생성 이벤트

{
"@timestamp": [
"2025-10-22T11:59:12.678Z"
],
"winlog.event_data.CommandLine": [
"\"C:\\Windows\\System32\\Wbem\\WMIC.exe\" /NAMESPACE:\\\\root\\SecurityCenter2 PATH AntiVirusProduct GET /value"
],
"winlog.event_data.Image": [
"C:\\Windows\\System32\\wbem\\WMIC.exe"
],
"winlog.event_data.ParentCommandLine": [
"powershell.exe -ExecutionPolicy Bypass -C \"wmic /NAMESPACE:\\\\root\\SecurityCenter2 PATH AntiVirusProduct GET /value\""
],
"winlog.event_data.ParentImage": [
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
"winlog.event_data.UtcTime": [
"2025-10-22 11:59:12.672"
],
명령어는 바로 위에서 설명했으므로 생략..
5. 제출

문제 6: 공격자가 수집한 파일의 확장자명을 순서대로 전부 기록하시오
1. event id: 1, image: powershell.exe으로 필터링
우선 문제4를 풀면서 공격자는 staged 디렉터리를 만들고, 압축하는 등의 과정을 파워쉘로 수행했으므로
실행 관련 이벤트 아이디인 1, 실행 프로세스인 이미지를 powershell.exe로 필터링한다.

wav 관련 명령어를 실행한 로그의 parentiamge가 -로 되어 있어서, parentiamge: torrent-downloader.exe로 필터링하면 wav가 안 나온다. (이것땜에 좀 빙빙 돌았다...)

2. torrent-downloader.exe가 다운로드된 후 ~ zip 파일이 삭제되기 전까지의 CommandLine을 확인


| 명령어 구성 | 역할 | 설명 |
| powershell.exe | PowerShell 실행 | Windows PowerShell 콘솔 실행 |
| -ExecutionPolicy Bypass | 실행 정책 무시 | 시스템의 PowerShell 실행 제한을 무시 |
| -C | Command 옵션 | 뒤의 문자열을 PowerShell 명령으로 실행 |
| Get-ChildItem | 파일/디렉터리 열거 | 지정 경로의 파일 시스템 객체 나열 |
| C:\Users | 탐색 시작 경로 | 모든 사용자 프로필 하위 디렉터리 |
| -Recurse | 재귀 탐색 | 하위 폴더를 모두 포함하여 탐색 |
| -Include *.yml, *.wav, *.png | 확장자 필터 | .yml, .wav, .png 확장자 파일만 대상 |
| -ErrorAction 'SilentlyContinue' | 오류 무시 | 접근 거부 등 오류 발생 시 메시지 출력 없이 계속 진행 |
| foreach {$_.FullName} | 전체 경로 출력 | 각 파일 객체의 절대 경로만 추출 |
| Select-Object -first 5 | 결과 제한 | 처음 발견된 5개 파일만 출력 |
| exit 0 | 정상 종료 | PowerShell 프로세스를 성공 코드(0)로 종료 |
3. 제출

문제 7: 알렉스가 데이터를 유출할 때 사용한 LogonId는?
1. 해당 명령어의 winlog.event_data.LogonId를 필터링

2. 제출
꼭 대문자로 쓰세요.. 소문자면 오류뜹니다..

NEW
1. event_id와 winlog.event_id의 차이
| event_id | winlog.event_id | |
| 로그 단계 | 원본 Windows 이벤트 | 수집·정규화된 로그 |
| 사용 환경 | Event Viewer, evtx | SIEM, EDR, 로그 서버 |
| 데이터 출처 | Sysmon 자체 | Sysmon → 수집기 |
| Sysmon 설정 영향 | X | X |
2. Windows 계정 표기 규칙
DOMAIN\Username
Windows 내부에서 로그온, 권한, 토큰을 식별할 때 쓰는 표준 형식이다.
JSON에서의 이스케이프(escape) 표기로 모든 역슬래쉬가 두 개이다.
3. WMI(Windows Management Instrumentation)
WMI는 Windows 운영체제가 관리 대상 리소스의 상태와 구성을 객체화하여, 관리·모니터링·자동화를 위해 표준화된 질의 방식으로 제공하는 관리 프레임워크다.
1) 구성요소
Namespace
└─ Class
└─ Instance
├─ Property
└─ Method
| 구성 요소 | 설명 | 예시 |
| Namespace | 객체가 속한 관리 영역(폴더 개념) | root\SecurityCenter2 |
| Class | 객체의 설계도(타입 정의) | AntiVirusProduct |
| Instance | 실제 시스템 상태를 반영한 객체 | Windows Defender |
| Property | 객체가 가진 속성(필드) | displayName, productState |
| Method | 객체가 수행할 수 있는 동작 | (보통 조회 위주, 동작 메서드는 적음) |
2) 자세한 설명
| 구분 | 값 | 설명 |
| 제공 주체 | Windows 운영체제 | WMI는 OS 커널 및 시스템 서비스가 수집·유지하는 관리 정보를, 운영체제가 공식적으로 노출하는 관리 인터페이스이다. |
| 목적 | 시스템 관리·모니터링·자동화 | 시스템 상태 조회, 설정 관리, 원격 관리, 관리 작업 자동화를 위해 설계된 관리 프레임워크이다. GUI 관리 도구의 내부 동작 기반이 된다. |
| 접근 방식 | WMI 쿼리(WQL), 관리 API | 관리자는 WQL 질의 또는 관리 API를 통해 WMI 리포지토리에 저장된 객체(Class/Instance)를 조회하거나 제어한다. |
| 정보 성격 | 관리용 시스템 메타데이터 | 사용자 데이터가 아니라, OS가 관리 대상을 설명하기 위해 유지하는 구조화된 정보(구성·상태·속성)이다. |
| 사용 주체 | 관리 도구, 스크립트, 보안 솔루션 | Windows 관리 도구, PowerShell 스크립트, 시스템 관리·보안 솔루션 등이 WMI를 통해 시스템 정보를 수집·관리한다. |
4. 안티바이러스 정보
안티바이러스 정보는 Windows 시스템에 어떤 보안 제품이 설치되어 있으며, 현재 동작 상태가 어떠한지를 나타내는 보안 소프트웨어 메타데이터이다.
주로 SecurityCenter / SecurityCenter2 WMI 네임스페이스를 통해 관리된다.
1) AntiVirusProduct 클래스 속성
| 속성(Property) | 의미 | 설명 |
| displayName | 제품 이름 | 설치되어 Security Center에 등록된 안티바이러스 제품의 표시 이름 |
| instanceGuid | 제품 고유 식별자 | Security Center에서 해당 AV 인스턴스를 구분하기 위한 GUID |
| pathToSignedProductExe | 제품 실행 파일 경로 | 디지털 서명된 주 실행 엔진의 경로 |
| pathToSignedReportingExe | 상태 보고용 실행 파일 | Security Center에 상태를 보고하는 서명된 보고용 실행 파일 경로 |
| productState | 제품 동작 상태 | 활성/비활성, 실시간 보호 여부, 최신 상태 여부를 비트 필드로 인코딩한 값 |
| timestamp | 상태 갱신 시각 | Security Center가 해당 제품 상태를 마지막으로 확인한 시점 |
5. 필드에 -로 처리되는 경우
해당 이벤트의 원본 데이터(Windows 커널/ETW)에서 그 필드에 대응되는 값이 존재하지 않거나, 수집 시점에 확보되지 않아 Sysmon이 값을 기록할 수 없었음을 의미한다. 그 결과 값을 추정하지 않고 -로 명시적으로 비워 둔다.
'Wargame > CyberGround' 카테고리의 다른 글
| [CyberGround] 가장 신뢰했던 업데이트, 월스트리트를 향한 비수가 되다 (0) | 2026.02.21 |
|---|---|
| [CyberGround] 도서관 PC의 은밀한 손님 (2) | 2026.02.14 |
| [CyberGround] 반도체 심장을 노리는 그림자, '닉탈롭스'의 침투 (1) | 2026.02.14 |
| [CyberGround] 배신한 루돌프: 산타의 비밀 선물 리스트를 노린다 (0) | 2025.12.28 |