
시나리오
1) 공격자(kali C2) OLE 객체가 삽입된 악성한글 문서를 생성한 다음 인터넷 게시판에 업로드
2) 피해자 (windows10)는 이것을 다운로드 하고 실행한다.
3) 파일 실행과 동시에 피해자 시스템(windows 10) 에서는 공격자가 미리 msfconsole을 통해 리스너를 준비해둔 kali로 역방향 리버스쉘 연결이 시도된다.

4) 공격자는 이 초기쉘을 통해 피해자의 시스템(windows 10) 내부에 접근 한다.
5) 공격자는 미리 제작한 미터프리터 리버스 쉘 페이로드인 google.exe 파일을 C:\Users\Public 경로에 업로드.
6) UAC 우회를 위한 권한 상승을 수행하기 위해 Reg ADD 명령어를 이용해 레지스트키를 생성.

7) 특정 프로그램을 실행했을 때, 관리자권한으로 google.exe가 자동으로 실행되고 권환상승된 쉘을 획득한다.
8) 공격자는 kali에서 해당 페이로드를 처리할 새로운 핸들러를 준비한 상태에서 forwardhelper.exe를 트리거하여 관리자 권한의 미터프리터 세션을 획득하게 된다.
9) 마지막으로 지속성을 확보하기 위해 작업 스케줄러를 이용한다.
이로써 공격자는 로그인 시 마다 forwardhelper가 자동 실행되도록 스케줄 작업을 등록함으로써 시스템이 재부팅 되거나 사용자가 다시 로그인 하더라도 지속적으로 권한 상승된 리버스 쉘을 획득할 수 있는 상태를 유지하게 된다.
이 시나리오는 악성 문서 유포, 초기 침투, 권한 상승, 지속성 확보의 전 과정을 포함하고 있으며, 각 단계에서 Wazuh를 통해 어떤 로그가 남고, 어떤 방식으로 탐지할 수 있는지 확인해봤다.
공격자가 권한 상승 이전단계에서 사용하는 디렉터리는 대부분 일반 사용자 계정으로도 접근 가능한 경로다.
관리자 권한이 없는 공격자는 시스템 전체에 영향을 주는 경로에는 파일 드롭 할 수 없기 때문에, 주로 사용자 영역의 디렉터리를 활용하게 된다.
대표적으로 C:\Users\user\AppData\Local\Temp 와 C:\Users\Public 이다.
따라서 이번 시나리오도 해당 경로에 FIM을 설정해봤다.

이제 Wazuh 에이전스 서비스를 재시작하여 적용한다.

공격에 쓰일 악성 문서는 resume_KimGomin.hwp이다.
해당 파일은 OLE객체로 DLL 형태의 미터프리터 리버스 쉘 페이로드가 포함되어있다.
리버스 쉘 페이로드의 경우 해당 칼리 서버의 IP인 192.168.44.10과 포트번호 4444를 대상으로 리버스 연결을 하게끔 설정되어있다. 이 문서를 실행하면 자동으로 리버스 쉘 페이로드가 실행되어 칼리와 연결될 것이다.
이제 해당 문서를 게시글 사이트에 올려보자.

게시판은 실습 환경의 웹 서버에서 진행했다.

이제 업로드가 완료됐으므로, 칼리에서 msfconsole 리스너를 열어야 한다.

use exploit/multi/handler를 통해 공격자가 수동으로 만든 페이로드를 받아주기 위한 리스닝 모듈을 연다.

이것은 msfvenom 으로 만들었던 페이로드다. 이것도 이렇게 지정해줘야 한다.

그다음 해당 명령어를 통해 통신할 Kali IP 정보를 지정한다.

마지막으로 exploit -j -z 명령어를 통해 리스너를 백그라운드로 실행하여 대기한다.

gogle.exe는 나중에 윈도우 하위권한을 갖는 역할로 8080 포트로 리버스 쉘을 연결할 것이다.
이제 윈도우로 가서 공격자가 업로드 한 파일을 다운로드 받아보자.


해당 파일을 다운로드 하여 파일을 한 번 실행해보자.

피해자 입장에서는 정상적인 파일로 보일 것이다. 그와 동시에 CMD가 잠깐 켜졌다가 꺼졌다.

이후 Kali 에서 봐보면 세션이 하나 생겼다.

해당 세션을 연결하면 미터프리터 명령어 입력창이 정상적으로 출력됐다.

여기서 getprivs로 현재 세션이 보유한 권한 목록을 확인할 수 있다.
관리자 권한이 아닌 일반 사용자 권한으로 실행된 것을 볼 수 있다. 여기서 관리자 권한으로 권한 상승을 하려면 UAC를 우회해야한다.
윈도우는 관리자 권한이 필요한 작업은 사용자에게 확인을 요청하는 팝업창을 띄운다. 따라서 이때문에 조용히 권한상승을 하는 것이 어렵다. 이를 우회하기 위해 UAC Bypass 기법을 활용하는데, fodhelper.exe를 사용해 우회하도록 했다.
fodhelper.exe는 윈도우의 기능 추가 관리도구로 자동으로 높은 권한으로 실행되는 특성을 가진다. 그래서 이 실행파일은 UAC 우회 취약점을 유발하는 동작 방식을 갖고있다.
공격자는 fodhelper가 실행될 때 참조하는 특정 레지스트리 키를 조작하여 원래 실행되어야 할 시스템 명령어 대신 자신이 지정한 악성 파일을 관리자 권한으로 실행하도록 유도 할 수 있다.
따라서 높은 권한을 가지게 될 gogle.exe를 윈도우로 옮겨야 한다.

이제 fodhelper를 이용하기 위해 레지스트리 키를 추가해보자.

해당 명령어가 필요하다.

shell 을 통해 피해자 PC의 CMD창에 진입하여 reg add 명령어들을 모두 복사 붙여넣기 했다.
이제 fodhelper가 실행되면 하위권한을 가진 CMD가 gogle.exe를 실행할 것이다. 부모프로세스인 CMD가 하위권한을 가졌기 떄문에 gogle.exe도 자연스럽게 하위권한을 가진다.
이제 Kali에서 터미널을 하나 더 열어 gogle의 리스너를 하나 더 생성한다.

이렇게 리스너를 8080포트로 하나 더 생성했다.
이제 Kali에서 연결된 윈도우에서 fodhelper를 실행하자.


실행하자마자 성공적으로 gogle 리버스 쉘이 붙은 것을 확인했다.
이제 하위 권한을 얻은 gogle 리버스 쉘을 이용해서 지속성을 확보할 것이며, 작업 스케줄러를 통해 fodhelper에 로그인 시 gogle.exe가 자동 실행 되도록 만들어볼 것이다. 공격자는 매번 수동으로 실행하지 않고도 권한 상승된 리버스 쉘을 자동으로 확보할 수 있게 된다.

8080 포트로 연결된 세션에 접속하여 윈도우 명령어에 접근한다.

해당 명령어는 Updating이라는 스케줄 명을 생성하며 해당 스케줄은 로그인을 할 때 fodhelper를 관리자권한 (HIGHEST)으로 실행한다. 이제 이 PC는 재부팅 하더라도 상시 높은 권한의 리버스 쉘을 실행할 것이다.
정리
- 악성 OLE 객체가 포함된 한글 문서를 통해 피해자의 시스템에 초기 침투 및 리버스 쉘 연결을 수행.
- Meterpreter 세션을 통해 gogle.exe 페이로드를 업로드하고, fodhelper.exe를 활용한 UAC 우회 방식의 권한 상승.
- 획득한 관리자 권한을 기반으로 Windows 작업 스케줄러를 이용한 지속성 확보 절차를 마무리.
Wazuh 분석
우선 이벤트를 발생한 프로세스 명을 확인하는 것이 중요하다.
필터링에는 image, newProcessName 필드를 추가한다.
newProcessName은 Security 이벤트에서 매핑된 이벤트이고, image는 sysmon에서 매핑된 이벤트다.
또한 어떤 커맨드로 실행됐는지, 부모 프로세스가 무엇인지 리니지 분석하기 위해 commandLine과 parentProcessName 필드를 추가했다.
또한 ruld.description과 rule.id, rule.level을 추가한다. 그리고 윈도우에서는 다양한 이벤트 로그를 수집하기 때문에 구별을 위해 channel 필드를 추가한다.


해당 로그를 보면 explorer가 부모 프로세스로 HWP를 실행한 이벤트를 확인할 수 있다. 이는 정상적인 리니지 관계로 일반적인 한글 문서 이벤트다.

하지만 그 밑의 로그를 봐보면 Temp 경로에 gogledown.cmd 파일이 드롭된 것을 볼 수 있다.

해당 알림은 FIM 기능을 통해 발생 된 것으로 해당 경로에 파일이 생성되었음을 알 수 있다.
gogleDown.cmd와 gogleUpdate.dat 파일이 Temp폴더에 드랍한 것을 확인할 수 있다.

rule id 92213를 탐지한 로그를 보면 Temp경로에 exe, dll, cmd 등 실행파일이 생성된 경우 탐지되는 룰이다. 해당 로그의 심각도는 15로 매우 위급한 상황임을 보이고있다.
이것은 한글파일을 열었을 때 CMD 파일이 생성된 것으로, OLE객체가 포함된 한글 문서를 열면 Temp 폴더에 해당 객체를 잠시 생성한다.
- 스크립트 실행 이벤트 분석

rule id가 92052 알림이 확인된다.
해당 룰의 경우 cmd.exe를 explorer.exe와 같은 보편적인 부모 프로세스가 아닌 다른 프로세스가 실행됐을 경우 탐지되는 룰이다.
부모 프로세스가 Hwp.exe이며 commandLine이 cmd.exe /c gogleDown.cmd 로 한글 프로그램이 cmd프로세스로 gogleDown.cmd를 실행시키는 비정상적인 이벤트가 탐지 됐다.

Hwp.exe에 의해 생성된 cmd.exe 프로세스가 powershell.exe에게 스크립트를 실행하도록 명령을 내린 이벤트가 탐지된 것을 확인할 수 있다. 파워쉘 스크립트 내용을 살펴보면 rundll32.exe가 gogleUpdate.dat 파일을 숨김 상태로 실행하는 명령어라인으로 확인된다.
- gogleUpdate.dat 파일의 경우 칼리에서 만든 dll 형식의 reverse shell payload로, dll 파일이기 때문에 rundll32.exe와 같은 로더 프로세스가 필요하다.
이를 통해 악성 한글 파일에서 드랍된 gogleDown.cmd를 실행하여 gogleUpdate.dat파일을 실행시킨 것으로 유추 할 수 있다.

- UAC 우회 및 권한 상승 이벤트
rule.id가 554인 FIM 탐지 로그가 확인된다.
FIM에 의해 탐지된 하일은 gogle.exe로 해당 경로에 생성된 것을 알 수 있다.

요약
Wazuh는 로그를 수집하는데 그치지 않고, 룰 기반의 해석, 위험도 분류, 컨텍스트 중심의 탐지를 통해 실질적인 판단과 대응을 돕는 보안 분석 플랫폼이다.
Wazuh는 단순 도구가 아닌 공격을 이해할 수 있는 프레임을 제공하는 체계적 분석 환경이다.
'침해사고분석' 카테고리의 다른 글
| Wazuh의 FIM (File Intergrity Monitoring) (0) | 2025.09.15 |
|---|---|
| Wazuh의 MITRE ATT&CK 분석 (0) | 2025.09.15 |
| Wazuh 디코더와 룰 이해 (0) | 2025.09.15 |
| Wazuh XDR 통합 로그 분석 (0) | 2025.09.14 |
| Linux 보안 로그 분석 (0) | 2025.09.14 |
IT/네트워크/보안