오늘은 APT 정체를 알 수가 없는 악성코드인 2026년 1차 보안교육 프로그램 안내.doc에 대해 알아보겠습니다.
해당 악성코드는 일단 오래간만에 보는 매크로 돼 있는 것이 특징입니다. 최근에 볼 수가 없고 볼 수가 있더라도 2023년 정도까지 출몰하다가 최근에는 보지 못했던 것 같습니다.
파일명:2026년_1차_보안교육_프로그램_안내.doc
사이즈:1 MB
MD5:62620d4c521ae2e04e9a7d5c8b4aebe5
SHA-1:c098628d67d654175f787f0d9deb626ab0ce4a13
SHA-256:1362bd550b6bce1a99388bbb4a8eccfe085f7a38770a502701b3c064c0a1f461
이며 일단 그냥 워드이든 파일을 열어 보면 아무것도 없는 내용인 것을 확인할 수가 있었습니다. 하지만~~왜~안티 바이러스 프로그램(AV) 프로그램에서 탐지하는지 궁금해서 알아보아야 하니까? 한번 열어 보았습니다. 처음에는 LibreOffice 로 그냥 직접 매크로 편집기를 통해서 보려고 시도하는 방법도 있습니다. 저는 OfficeMalScanner를 이용한 고전적인 방법을 사용하기로 했습니다.

먼저 OfficeMalScanner를 사용을 해서 확 벗겨보면 다음과 같은 매크로가 있는 것을 확인을 할 수가 있습니다.
ThisDocument 매크로 분석
1.폴더 생성
C:\ProgramData\HLSOffice
C:\ProgramData\Document
시스템 영역에 파일을 저장하기 위한 전형적인 위치
2.미끼 문서 복원
UserForm1.TextBox1.Text 에 저장된 HEX 형태 데이터 를 비트 단위로 복호화하여 실제 DOCX 파일로 복원
사용자에게 정상 문서처럼 보여주기 위한 목적
3.악성 DLL 복원
UserForm1.TextBox2.Text 에 저장된 HEX 데이터를 같은 방식으로 복호화
실제 페이로드 DLL이며 핵심 악성 기능은 이 DLL 내부에 존재
4. DLL 로드 및 실행
특징:
LoadLibraryA 를 사용->DllMain 자동 실행

두 번 로드 한 후 실행 안정성 확보 또는 샌드박스 우회
Sleep 사용->동적 분석 및 자동 분석 회피
5.미끼 문서 실행 후 원본 Word 종료
사용자는 문서가 그냥 열렸다. 고 인식하고 실제 감염은 이미 완료된 상태
데이터 복호화 방식
복호화 과정 요약
1.HEX->Byte 변환
2.XOR 0x1B (27)
3.8비트 이진수 변환
4.4비트 단위 스왑
5.전체 비트 순서 뒤집기
6.모든 비트 반전 (0<->1)
다시 Byte로 한 후 파일로 저장
탐지 회피용 비트 난독화

Ioc
생성 파일
C:\ProgramData\HLSOffice\hlsoffice_aam.dll
C:\ProgramData\Document\2026년_1차_보안교육_프로그램_안내.docx
생성 디렉터리
C:\ProgramData\HLSOffice
C:\ProgramData\Document
UserForm1 매크로 악성코드
이벤트 핸들러가 전부 비어 있어서
UserForm1.TextBox1.Text:미끼 DOCX(hex blob) 저장소
UserForm1.TextBox2.Text:악성 DLL(hex blob) 저장소
UserForm는 페이로드(대용량 데이터)를 숨기는 컨테이너 역할
폼 컨트롤(TextBox)에 넣어두는 방식으로 우회하는 케이스
이벤트 코드가 없어도 TextBox 속성(기본값/텍스트 값) 에 악성 데이터가 들어 있으면 충분
VBA 프로젝트에는 보통 다음과 함께 존재
UserForm1.frm:폼 정의(컨트롤 배치,속성 포함)
UserForm1.frx :컨트롤에 들어간 실제 데이터(큰 문자열/바이너리 가 저장되는 파일

HTTP GET 요청을 보내는 로직
1.URL 경로 생성
/repos/{owner}/{repo}/contents/{path}
GitHub REST API v3의 리포지토리 콘텐츠 조회 엔드포인트
GitHub를 C2 또는 페이로드 저장소로 활용
2.WinINet 초기화
InternetOpenA
User-Agent를 정상 브라우저처럼 위장
INTERNET_OPEN_TYPE_DIRECT (1)->프록시 없이 직접 연결->네트워크 행위 은폐 목적의 정상 트래픽 위장
3.GitHub API 서버 연결
포트 0x1BB = 443 (HTTPS)
INTERNET_SERVICE_HTTP (3)
TLS 기반 정상 HTTPS 통신
실패 시 핸들 정리 후 종료
4.HTTP GET 요청 생성
요청 메서드: GET
요청 경로: /repos/.../contents/...
플래그 0x84800000
INTERNET_FLAG_SECURE 포함
캐시 사용 안 함, 재연결 허용 계열 플래그 조합
5.Authorization 헤더 생성
GitHub Personal Access Token (PAT) 사용
OAuth 방식이 아닌 토큰 직접 삽입
정상 API 호출과 동일 악성코드에서 매우 자주 사용
6.추가 HTTP 헤더 설정
Base64 JSON 메타데이터가 아닌 원본 파일 내용(raw) 을 직접 수신
쉘코드
DLL
스크립트
설정 파일
등을 바로 메모리로 로드하기 위한 목적
hxxps://api(.)github(.)com/repos/uNholySp3ar/VW5ob2x51/contents/devil(.)jpg
devil(.)jpg
일단 내용을 보면 보안교육인데 어느 회사 인지 정확하게 없어서 어느 기업이 목표인 줄 모르겠지만, 아무튼 조심해서 좋을 것 없겠죠.
알약에서는 다음과 같은 진단을 내리고 있습니다.
Trojan.Downloader.DOC.Gen
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
| 김수키(Kimsuky) 전남대학교 사칭 악성코드-2.입찰공고문.pdf (0) | 2025.12.23 |
|---|---|
| 북한 APT 37(Reaper) 2025 북한인권 청년 아카데미 강의 주제 위장한 악성코드 (0) | 2025.12.18 |
| 파이어폭스 146 보안 업데이트 (0) | 2025.12.14 |
| 김수키(Kimsuky) 인사혁신처 사칭 위탁교육생 선발 악성코드 분석 (0) | 2025.12.14 |
| 김수키(Kimsuky) 미국 국가 안보 전략 사칭 악성코드-2025 National Security Strategy of the United States of America.lnk (0) | 2025.12.12 |
| 윈도우 10 KB5071546,윈도우 11 KB5072033 보안 업데이트 (0) | 2025.12.11 |
| 구직자 를 대상 으로 Foxit PDF 리더 로 위장한 악성코드-document.bat (0) | 2025.12.10 |
| 김수키(Kimsuky)에서 만든 악성코드-*.vbs (0) | 2025.12.08 |





