1. 개요
○ 계약서, 송장, 주문서 등 업무에 사용되는 문서 파일로 위장한 악성 MSC 파일이 최근 다수 발견되어 분석내용 공유
•
MSC 기반의 악성코드는 북한 해킹그룹 김수키(Kimsuky)나 중국 해킹그룹 머스탱 판다(Mustang Panda)에서 사용했으며, 최근에는 MaaS(Malware-as-a-Service) 유형의 악성코드 유포에 자주 사용됨
○ MSC 파일 실행 시 C2에 접근해 악성 RAR 파일을 다운로드 하는 과정을 2번 거친 후 최종적으로 정보 탈취 및 RAT 악성코드(XWorm RAT, Stealerium)를 실행하여 각종 정보 탈취
[그림 1] 공격 흐름도
2. 대응방안
○ 메일 열람 시 발신자 메일주소, 첨부된 링크 및 파일 등 신중히 확인 필요
•
파일 다운로드 버튼으로 위장한 이미지에 악성 링크가 포함된 경우도 있어 주의 필요
○ 악성 실행 파일은 문서로 위장한 경우가 많아 파일 실행 시 아이콘, 확장자, 유형 등 확인 필요
•
확장자 확인을 위해 “폴더 옵션 > 보기 탭 > 알려진 파일 형식의 파일 확장명 숨기기” 체크 해제 권장
3. 악성코드 상세분석
3.1. MSC 파일 - 추가 악성코드 다운로드 및 실행
○ 확보한 모든 파일의 동작 방식이 유사하여 하나의 파일(NDA.pdf.msc, MD5:51c83329bb364483f122accf36ebfe76) 분석 내용을 위주로 설명
○ 최초 파일은 압축 파일로 추정되며, 압축 해제 시 실제 PDF 아이콘을 사용해 PDF 문서로 위장한 악성 MSC 파일이 확인됨
•
이메일 확보는 불가능하였으나, 압축 파일은 스피어피싱 메일의 첨부파일로 사용되었을 것으로 추정
[그림 2] NDA.pdf.msc 실행 화면
○ MSC 파일 실행 후 PDF 문서 열람을 위해 문서 클릭 시 악성 행위 수행
○ powershell을 창 숨김 상태로 base64 인코딩된 데이터를 실행하는 구조이며, 최종 악성 스크립트를 실행하기까지 총 3번의 base64 디코딩을 수행하는 특징 확인
[그림 3] NDA.pdf.msc 파일 내 악성 행위 관련 부분
○ 디코딩이 끝난 최종 악성 스크립트는 C2에 접근해 악성 RAR 파일과, RAR 해제를 위한 “UnRAR.exe”를 %TEMP% 폴더에 다운받은 뒤, 하드코딩된 비밀번호를 이용해 압축해제 후 압축 파일 내 .txt 파일을 읽어와 실행
•
RAR 파일에 설정된 비밀번호는 파일별로 상이한 것으로 확인됨
[그림 4] powershell로 실행되는 최종 악성 스크립트
No | MSC 파일명 | 추가 RAR 파일 다운로드 주소 | 압축 비밀번호 |
1 | NDA.pdf.msc | 109.107.157[.]107/kaptsole_x.rar | yGKyvLuOzjEpX8N92bTw |
2 | NDA.pdf.msc | 185.241.61[.]14/cpnd_tf.rar | ctkaA6alWG |
3 | 3.PL_PIEC001-L20250227-GLOBAL_ATOP.pdf.msc | 185.235.128[.]114/js/3plpie.rar | pctkaA6alWG |
4 | TaxDoc2024.pdf.msc | 31.58.169[.]110/vrent_1.rar | kVJ9YQmaDZhBO3koO3 |
5 | Documents.pdf.msc | 92.119.114[.]128/Assets/ov_er15z.rar | 3mwsV1VPOKlngojTfy |
6 | Invoice_6367373.pdf.msc | 92.119.114[.]128/ov1_in63_p.rar | uVtjpNSgTmwoK3gh |
7 | Purchase_Order.pdf.msc | 92.119.114[.]128/ov2_po_p.rar | uVtjpNSgTmwoK3gh |
8 | Quote_37636373.pdf.msc | 92.119.114[.]128/ov3_q37_p.rar | uVtjpNSgTmwoK3gh |
9 | Distribution_Document.pdf.msc | 92.119.114[.]128/ov4_dd_p.rar | uVtjpNSgTmwoK3gh |
10 | Remittance_Document.pdf.msc | 92.119.114[.]128/ov5_rd_p.rar | uVtjpNSgTmwoK3gh |
[표 1] 악성 MSC 파일별 추가 RAR 파일 다운로드 C2 주소 및 압축 비밀번호
3.2. .ps1 파일 - 추가 악성코드 다운로드 및 실행
○ 3.1.에서 다운로드한 추가 RAR 파일 압축해제 시 .txt 파일로 작성된 파워쉘 스크립트 확인 가능
[그림 5] .txt(ps1) 파일 내 악성 스크립트
○ base64 인코딩된 두 개의 스크립트($sd, $t)를 각각 디코딩 후 실행하는 동작 수행
○ $sd에 해당하는 스크립트의 경우 powershell, WindowsTerminal 프로세스를 찾아서 창을 숨기는 작업 수행
[그림 6] $sd 스크립트(프로세스 창 숨김 설정)
○ $t에 해당하는 스크립트는 base64 디코딩 후 TEMP 폴더에 kaptsole_xf.ps1 파일로 저장 후 powershell로 실행
○ C2에서 미끼 PDF 문서, UnRAR.exe, RAR 파일을 TEMP 폴더에 다운로드 후 미끼 문서 실행 및 RAR 파일 압축해제 후 안에 들어있는 exe 파일을 세 번 실행
•
3.2. 단계에서 추가로 다운로드하는 RAR 파일의 경우 압축 비밀번호가 poiuytrewq1234로 동일
[그림 7] $t 스크립트(추가 악성코드 다운로드 및 실행)
NO | 부모 txt 파일명 | RAR 파일명 | 압축 비밀번호 |
1 | kaptsole_x.txt | kaptsoli.rar | poiuytrewq1234 |
2 | 3plpie.txt | eworvolt.rar
enwtsv.rar | poiuytrewq1234 |
3 | ov4_dd_p.txt | enwtsv.rar
orwartde.rar | poiuytrewq1234 |
4 | vrent_1.txt | vermroent.rar | poiuytrewq1234 |
5 | twonelk-ld.txt | twonelk.rar | poiuytrewq1234 |
6 | twonelf-ld.txt | twonelf.rar | poiuytrewq1234 |
7 | twonelo-ld.txt | twonelo.rar | poiuytrewq1234 |
[표 2] 추가 악성 RAR 파일 다운로드 목록
3.3. 최종 악성코드(XWorm, Stealerium) - 정보 탈취
○ 압축된 RAR 파일 해제 시 발견되는 실행파일들은 정상 프로그램의 설치파일로 위장
○ exe 파일은 python으로 제작된 특징을 보이며, 실행 시 프로세스 할로잉 기법을 이용해서 RegSvcs.exe, RegAsm.exe 프로그램으로 위장해 최종 악성코드 실행
[그림 8] kaptsoli.exe 파일 기본 정보
[그림 9] kaptsoli.exe 실행 시 프로세스 상태
○ 최종 실행되는 악성코드는 .NET으로 제작된 XWorm, Stealerium 악성코드의 변종으로 확인
•
두 악성코드는 모두 MaaS 형태로 제공되는 악성코드로 커스터마이징이 가능하며, 주로 정보 탈취를 목적으로 사용
No | 실행 파일명 | 위장 프로그램 | 악성코드 종류 | C2 |
1 | kaptsoli.exe | AlterCam Setup | Stealerium v2.0.2 | 193.3.168[.]227:7815 |
2 | eworvolt.exe | Figma Desktop | XWorm V5.2 변종 | 185.235.128[.]114:7000 |
3 | enwtsv.exe | Zona Installer | XWorm V5.2 변종 | 92.119.114[.]128:7000 |
4 | orwartde.exe | Zona Installer | XWorm V5.2 변종 | 92.119.114[.]128:7000 |
5 | vermroent.exe | Comodo Dragon | XWorm V5.2 변종 | 31.58.169[.]110:7000 |
6 | twonelk.exe | Figma Desktop | Stealerium v1.0.36 | 91.211.250[.]21:7816 |
7 | twonelf.exe | iTunes Installer | Stealerium v1.0.36 | 91.211.250[.]21:7816 |
8 | twonelo.exe | Zona Installer | Stealerium v1.0.36 | 91.211.250[.]21:7816 |
[표 3] 파일별 실행되는 악성코드 목록
3.3.1. XWorm RAT
○ XWorm 악성코드의 설정 데이터는 뮤텍스를 MD5 해시한 값을 이용해 키를 생성해 AES-ECB 방식으로 암호화된 상태
[그림 10] XWorm AES-ECB 복호화 함수
[그림 11] XWorm 복호화된 설정 데이터
○ 이번에 발견된 XWorm 악성코드는 [표 4]의 기능이 존재하는 것으로 확인됨
항목 | 비고 |
키로깅 | 후킹을 통한 키로깅 |
소켓 통신을 통한 각종 명령 실행 | XWorm 재시작/종료/삭제/업데이트, 추가 파일 다운로드 및 실행, 파일리스 방식 실행, URL 접근 및 실행, PC 종료/재시작/로그오프, 셸 실행, DDoS 실행, 프로세스 모니터링, 대화창 실행, hosts 정보 탈취, 플러그인 기능, 화면 캡쳐 |
시스템 정보 탈취 | 안티바이러스 제품, 사용자명, 컴퓨터명, OS 버전, 드라이브 정보, OST명, OST Bit명, 웹캠정보, CPU 정보, GPT 정보, RAM 용량, 사용자 권한 |
[표 4] Xworm 기능
3.3.2. Stealerium
○ Stealerium 악성코드의 설정 데이터는 별도의 CryptKey, SaltBytes를 이용해 KEY, IV를 생성하여 AES-CBC 방식으로 암호화된 상태
[그림 12] Stealerium AES 복호화 함수
[그림 13] Stealerium 복호화된 설정 데이터
○ 지속성 유지를 위해 레지스트리(SOFTWARE\Microsoft\Windows\CurrentVersion\Run)에 파일을 등록하는 기능 발견됨
[그림 14] 지속성 유지용 Autorun 레지스트리 등록
○ 분석 방지를 위해 피해자 시스템의 사용자명, 컴퓨터명, GPU, CPU, 서비스, 프로세스, 가상환경 IP, MachineGUID 등을 확인하여 동작을 중지하는 기능이 있으며, 일부 항목의 경우 Github에 등재된 블랙리스트를 활용해 Virustotal 환경 또는 탐지용 환경임을 탐지
[그림 15] Github 기반 blacklist 정보 활용(사용자명, 컴퓨터명, GPU, 프로세스, IP, MachineGUID)
○ Stealerium은 최종적으로 C2와 통신해 [표 5]의 정보들을 탈취하는 것으로 확인됨
항목 | 내용 |
브라우저 정보 | (Chrome, MS Edge)
- 자동 완성내용, 북마크, 쿠키, 신용카드, 로그인 정보, 다운로드 정보, 확장프로그램(전자지갑) 데이터, 방문기록, 비밀번호
(FireFox)
- 프로필, 북마크, 쿠키, 방문기록, 비밀번호, 그 외 DB 파일들 |
확장 프로그램
(Chrome) | Autenticator, Binance, Bitapp, BoltX, Coin98, Coinbase, Core, Crocobit, Equal, Ever, Eternl, ExodusWeb3, Fewcha, Finnie, Guarda, Guild, HarmonyOutdated, Iconex, JaxxLiberty, Kaikas, KardiaChain, Keplr, Liquality, MEWCX, MaiarDEFI, Martian, Math, Metamask, Metamask2, Mobox, Nami, Nifty, Oxygen, PaliWallet, Petra, Phantom, Pontem, Ronin, Safepal, Saturn, Slope, Solfare, Sollet, Starcoin, Swash, TempleTezos, TerraStation, Tokenpocket, Ton, Tonkeeper, Tron, TrustWallet, Wombat, XDEFI, XMR.PT, XinPay, Yoroi, iWallet, Lasspass, 2FA Authenticator app |
확장 프로그램
(MS Edge) | Auvitas, Math, Metamask, MTV, Rabet, Ronin, Yoroi, Zilpay, Terra_Station, Jaxx |
게임 세션 정보 | BattleNet, Minecraft, Steam, Uplay |
메신저 | Discord, Element, Icq, Outlook, Pidgin, Signal, Skype, Telegram, Tox |
VPN | NordVPN, OpenVPN, ProtonVPN |
기타 | FileZila, ManagerStore, Password, Wallet |
사용자 환경 정보 | 현재 활성화된 창, 바탕화면 스크린샷, 폴더 구조, 파일 정보, 설치된 프로그램 목록, 프로세스 리스트, Windows 제품키, 웹캠 사진, 와이파이정보, 클립보드, 키로깅 |
시스템 정보 | 안티바이러스 제품, 배터리 정보, 32Bit/64Bit, 지역 코드, CPU 정보, CPU 코어 수, 기본 게이트웨이 주소, GPU 정보, IP 주소, MAC 주소, RAM 용량, 시스템 버전, 윈도우 버전, 화면 크기 |
[표 5] Stealerium 탈취 정보
4. IoC 정보
NO | Type | Data | Info |
1 | MD5 | b80c59a26ecb30560c5470f16c16d4ae | NDA.zip |
2 | MD5 | b7218a63037fd1b9b4fe3f27840546dd | 3.PL_PIEC001-L20250227-GLOBAL_ATOP.zip |
3 | MD5 | b775e032a5b5670b65c45fbf1a416836 | Documents.zip |
4 | MD5 | 61bf1003214fe5e34cb7ab83bef710be | Invoice_6367373.zip |
5 | MD5 | facf9d7e15d894ceba0d1126c4da7c90 | Purchase_Order.zip |
6 | MD5 | 804589f89bfa05b376e3f18801ca7f53 | Quote_37636373.zip |
7 | MD5 | aec82361227409be825d61f61c0fafdc | Distribution_Document.zip |
8 | MD5 | 0aa0574e5281cd05aceffe8388d6e194 | DistributionDocument-90421.zip |
9 | MD5 | 969a8ba2fc7a2c2472c9c828de3af3e0 | Remittance_Document.zip |
10 | MD5 | b5d1f62e19eff60fbd7eb1c62f3838d6 | TaxDoc2024.pdf.zip |
11 | MD5 | 9888cd056df4e8d1a1703e193a3fe7cf | NDA.zip |
12 | MD5 | 51c83329bb364483f122accf36ebfe76 | NDA.pdf.msc |
13 | MD5 | 4659db3279657d4ec38473f4f25cb04f | 3.PL_PIEC001-L20250227-GLOBAL_ATOP.pdf.msc |
14 | MD5 | 48f6e00dc394a9e5a1a8add61f9cbfe9 | Documents.pdf.msc |
15 | MD5 | 5cc705c9dfec03ee0086f3c6a99e3b59 | Invoice_6367373.pdf.msc |
16 | MD5 | 490df99cbb5c295e25a0234d86ab1d98 | Purchase_Order.pdf.msc |
17 | MD5 | c265017db236aa7c2e1a779effa70622 | Quote_37636373.pdf.msc |
18 | MD5 | 88a97131e57b1a857d13bb0cae48380e | Distribution_Document.pdf
DistributionDocument-90421.pdf.msc |
19 | MD5 | 2a00a628fcff224720acd3aa411f6d7f | Remittance_Document.pdf.msc |
20 | MD5 | 907d18f840434a8546bbdf9f85b25b7f | TaxDoc2024.pdf.msc |
21 | MD5 | d845badbd5cf52fe7ab22b3d8bb3bee6 | NDA.pdf.msc |
22 | MD5 | afb2456fc8a684ad2707be54c8d17b68 | kaptsole_x.rar |
23 | MD5 | e1295a683237ed56a867cda5b8c0f682 | 3plpie.rar |
24 | MD5 | d3443dab020ecb08747c06a11b302e13 | ov4_dd_p.rar |
25 | MD5 | 0b4921b1b1826a8be83af42fed60001c | vrent_1.rar |
26 | MD5 | 928989ac620a00b616e642a138b04f5e | kaptsole_x.txt |
27 | MD5 | c17fe3978b734ef2b3ece5e318a48ea9 | 3plpie.txt |
28 | MD5 | cd8b87c68560021664ff6b04cf2ca0e8 | ov4_dd_p.txt |
29 | MD5 | 1b7fe88a3c13e2868a077cecc666e2cf | vrent_1.txt |
30 | MD5 | cc1d0c86c58d818558c120351720d7e8 | twonelk-ld.txt |
31 | MD5 | 29ed9c95a4e2e1e01c71b42456127ca4 | twonelf-ld.txt |
32 | MD5 | b840fcc439096b21c9dff6438d8f33ea | twonelo-ld.txt |
33 | MD5 | 5b0410fb30c22d672de9962ab8931288 | kaptsoli.rar |
34 | MD5 | 2793855a7b89610121ec2254b6c06584 | eworvolt.rar |
35 | MD5 | 34ea70c7b1742b43c2c0e393edaf99e0 | enwtsv.rar |
36 | MD5 | 784d0c4240d77023f21102b39b6eb949 | orwartde.rar |
37 | MD5 | c14186dffd7466b4a913b281f5b62fd1 | vermroent.rar |
38 | MD5 | 719066429185768fe14a45801e0e23cf | twonelk.rar |
39 | MD5 | 8bbecb5ca29ce2443d1fef9315036a50 | twonelf.rar |
40 | MD5 | 7a30091d16d82b03d6722412a8400dd2 | twonelo.rar |
41 | MD5 | 2f4282d5b9ecec0ffdc8c61da9968000 | kaptsoli.exe |
42 | MD5 | 262b85f14efeb292fd746eeb26e0b509 | eworvolt.exe |
43 | MD5 | d6a26e2284381bae5e99a93538639210 | enwtsv.exe |
44 | MD5 | 4548a9cb8203e2a89333545752c2499b | orwartde.exe |
45 | MD5 | 4aa106fdb11effb1a8d1e53afa0a9db5 | twonelk.exe |
46 | MD5 | a755d6acb376a36609b26b1717b734f1 | twonelf.exe |
47 | MD5 | 5b8375ff16be580accfbd99505d1938a | twonelo.exe |
48 | MD5 | 952cd734879de1f6641bf497398f979a | vermroent.exe |
49 | MD5 | 8577bc76b20f14a129c92b96a6cc59ea | XClient.exe |
50 | MD5 | 4b95ffe7dad99775127ce508e95671bc | 3.PL_PIEC001-L20250227-GLOBAL_ATOP.pdf |
51 | MD5 | a959224133e0c7de80b07f5005088dee | NDA.pdf |
52 | MD5 | f645558e8e7d5e4f728020af6985dd3f | doc.pdf |
53 | C2 | 91.211.250[.]21 | |
54 | C2 | 109.107.157[.]107 | |
55 | C2 | 185.235.128[.]114 | |
56 | C2 | 92.119.114[.]128 | |
57 | C2 | 31.58.169[.]110 | |
58 | C2 | 185.241.61[.]14 |



_msc_%EC%BD%98%EC%86%94_%EC%8B%A4%ED%96%89_%ED%99%94%EB%A9%B4.png&blockId=1fcf216a-760c-80ac-8f1e-c2f4fef64dcf)
_msc_%EB%82%B4%EC%97%90_base64_%ED%8C%8C%EC%9B%8C%EC%89%98%EB%B6%80%EB%B6%84(NDA_1_%EA%B0%95%EC%A1%B0).png&blockId=1fcf216a-760c-80f3-9fcb-d5ca1ae18658)
_msc%EC%97%90%EC%84%9C_%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94_%EC%B5%9C%EC%A2%85_%ED%8C%8C%EC%9B%8C%EC%89%98_%EC%BD%94%EB%93%9C.png&blockId=1fcf216a-760c-80a7-9912-ff8c2bace188)
_kaptsole_x.rar_%ED%8C%8C%EC%9D%BC_%EC%95%95%EC%B6%95%ED%95%B4%EC%A0%9C_%EC%8B%9C_%EB%82%98%EC%98%A4%EB%8A%94_kaptsole_x_txt%ED%8C%8C%EC%9D%BC_%EB%82%B4%EC%9A%A9.png&blockId=1fcf216a-760c-801b-99fe-fc8ae3a4fd88)
_kaptsole_x_%EC%97%90%EC%84%9C_sd_%EC%BD%94%EB%93%9C_(%EA%B0%95%EC%A1%B0).png&blockId=1fcf216a-760c-80a1-bb37-dcf33bb93d6f)
_kaptsole_x_%EC%97%90%EC%84%9C_t%EC%97%90_%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94_%EB%B6%80%EB%B6%84.png&blockId=1fcf216a-760c-8087-98f1-d31896c9d426)

kaptsoli.exe_%EC%8B%A4%ED%96%89_%EC%8B%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%ED%98%84%ED%99%A9.png&blockId=1fcf216a-760c-8051-bf28-c0f076257569)

_xworm_setting_%EB%B6%80%EB%B6%84.png&blockId=1fcf216a-760c-8095-b9da-fd8573be60fc)


.png&blockId=1fcf216a-760c-8032-9f0c-e1c705c01807)

.png&blockId=1fcf216a-760c-80ee-9532-d0415deaafab)