오늘은 Kimsuky(김수키) 에서 만든 악성코드인 인피닛블록 하나은행 협력제안서 상세.pdf.lnk 에 대해서 분석을 해보겠습니다. 인피닛블록을 보니까? 블록체인 기술 기반 핀테크 회사로 B2B 대상 커스터디 서비스, 스테이킹 서비스, MPC 기반 지갑 솔루션 서비스 사업 등 다양한 디지털자산 사업 및 인프라 제공 사업을 전개하는 회사로 돼 있는 것으로 보아서 암호화폐 쪽으로 관심이 있지 않나 생각이 듭니다.
파일명:인피닛블록 하나은행 협력제안서 상세.pdf.lnk
사이즈:1 MB
MD5:c7723bf166ef08ff3112257a1244f584
SHA-1:a1b44d94af77705b075e67b40eb1937cedc55fa8
SHA-256:7bc61d1bbc90d66d9988fd3baacd7834b1d2dfefe6d4ac999a194bccb9ba7dfc

악성코드 분석
일단 해당 악성코드는 HEX로 구성돼 있으며 간단하게 CyberChef로 풀면 쉽게 악성코드 내부를 확인할 수가 있습니다.
기본적으로 해당 악성코드는 문서처럼 보이게 PDF 파일 위장->PowerShell 실행->자기 파일 안에 숨겨둔 데이터를 복호화->하나는 파일로 실행, 하나는 메모리에서 실행입니다.
당연하게 PowerShell 창을 사용자에게 보이지 않게 해서 악성코드가 실행되는지 사용자 모르게 하고 두 번째는 PowerShell 실행 정책 제한을 우회하는 방식을 사용하고 있습니다.
1.HEX 디코딩
$hex 안에는 실제 PowerShell 코드 ASCII/UTF-8 문자로 구성이 돼 있습니다.
24 4E 38 58->$N8X 가 되는 방식을 취하고 있습니다.
LNK->Hex 문자열->byte 배열->UTF-8 PowerShell script->PowerShell 프로세스 실행이 되는 구조
2.Base64 난독화
7J247ZS864ub67iU66GdIO2VmOuCmOydgO2WiSDtmJHroKXsoJzslYjshJwg7IOB7IS4LnBkZg== 부분을 확인할 수가 있는데 이것을 Base64 로 디코딩 하면 인피닛블록 하나은행 협력제안서 상세.pdf 가 됩니다.
즉 공격 대상이 된 사용자에게는 PDF 문서처럼 보이지만 실제 확장자는 .lnk
알려진 파일 형식의 확장명 숨기기가 활성화되어 있으면 사용자는 파일을 PDF 파일로 착각하기 쉽습니다. 즉 제 블로그에서 10년 전에 적은 글인 윈도우에서 파일 확장자 표시 방법을 보고 해당 부분을 활성화하면 쉽게 확인을 할 수가 있습니다.
예전에는 토렌트 확장자로 해서 실제로는 exe 실행을 하게 해서 랜섬웨어 같은 악성코드를 감염시키는 방법을 사용했습니다.
[소프트웨어 팁/보안 및 분석] - 윈도우에서 파일 확장자 표시 방법
윈도우에서 파일 확장자 표시 방법
오늘은 윈도우에서 파일 확장자를 표시하는 방법에 대해 알아보겠습니다. 일단 해당 파일 확장자를 표시를 안하더하도 컴퓨터를 사용하는 데에는 문제가 되지 않습니다. 다만, 해당 파일 확장
wezard4u.tistory.com
iconlocation:.pdf까지 설정되어 있으므로 PDF 문서처럼 보이도록 의도를 한 것을 확인할 수가 있습니다.
3. 스스로 위치 찾기
Get-Location
Join-Path $N8X $OIw
먼저 현재 작업 디렉터리 부분에서
현재폴더\인피닛블록 하나은행 협력제안서 상세.pdf.lnk 를 먼저 검색을 합니다. 여기서 파일이 없다면 %TEMP% 전체를 재귀 방식을 사용합니다.
찾는 조건
파일 이름이 정확하게 인피닛블록 하나은행 협력제안서 상세.pdf.lnk 파일이 됩니다. 여기서 같은 이름이 여러 개 존재하게 되며 가장 최근에 수정된 파일을 선택하게 설정을 해두었습니다. 아마도 여러 위치에서 실행될 상황을 고려한 것으로 추측할 수가 있습니다.
4.핵심 함수 pl
가장 중요한 코드는 pl 함수
변수명이 랜덤이라 복잡해 보니 걸지만, 단순합니다.
자기 자신의 LNK 파일을 열기->지정한 offset으로 이동->원하는 크기만큼 읽음->각 byte를 XOR 처리->파일로 저장하거나 문자열로 반환

5.첫 번째 payload
offset=8192
size=381137 bytes
XOR key=204= 0xCC
LNK 파일의 8192번째 byte부터 381,137 bytes를 읽어서 각 byte XOR 0xCC->%TEMP%\인피닛블록 하나은행 협력제안서 상세.pdf 로 저장 및 실행을 하게 합니다.
XOR의 특성상 같은 key를 다시 적용시켜주면 원본이 복구할 수가 있습니다.
6.8192부터 시작
8192은:0x2000
NK 맨 앞 8 KB는 정상적인 LNK 구조와 관련 데이터를 유지하고 그 뒤부터 공격자가 임의 데이터를 붙인 것으로 추정할 수 있습니다.
7.payload
첫 번째 payload 시작:8192
크기:381137
둘을 더하면:
8192+381137=389329
공격자가 정상 LNK 영역,Payload A,Payload B 처럼 이어붙인 것

8. 파일명과 실제 파일 형식 다름
인피닛블록 하나은행 협력제안서 상세.pdf 이지만 파일명과 실제 파일 형식은 다름
Windows는 파일 확장자만으로 실제 내부 포맷이 결정되는 것은 아니기 때문이고 PowerShell에서& $lzd 를 바로 실행하는 것이 특징
PDF 이라면 25 50 44 46 2D
PE 이라면4D 5A
ZIP/OXML 계열이면 50 4B 03 04
9.PowerShell 바로 실행
함수가 복호화한 데이터를 파일로 저장하지 않고 UTF8.GetString($A1) 으로 문자열로 반환 처리합니다.
XOR key:0x8C
Invoke-Expression 즉 IEX는 전달받은 문자열을 PowerShell 코드로 바로 실행
즉 두 번째 payload는 디스크에 파일로 생성하지 않고 복호화->문자열->PowerShell 실행 해당 부분이 실제 악성 행위의 중심
10. $d7 -is [Array] 가 존재
함수에서$Mva.Seek(...),$Mva.Read(...) 를 실행했는데 결과를 무시하지 않았음
.NET에는 새로운 file position을 반환하고 실제 읽은 byte 수를 반환
PowerShell은 이런 반환 값을 pipeline output으로 내보낼 수 있음
마지막 return 값=실제 복호화 문자열을 선택
악성코드 제작자가 실제 PowerShell 동작을 어느 정도 고려했다는 흔적
11.LNK 내부 embedding을 선택
처음부터 payload를 LNK 안에 넣어두었으며
따라서 최초 stage에서는 네트워크 요청 없이도 Payload 복원 및 실행을 할 수 있습니다.
12. 의도적으로 조작된 PowerShell 대소문자
-rECURSE 같이 대소문자가 섞여 있으며 PowerShell은 기본적으로 command와 parameter 이름에서 대소문자를 구분하지 않음
따라서Get-ChildItem,gEt-ChIlDiTeM 같이 동작하게 하면 해당 부분을 단순 문자열 기반 탐지를 방해하는 목적이 있습니다.
13. 전체 난독화 Layer
여러가지 난독화
.pdf.lnk->PDF icon->Hex encoded PowerShell->randomized variable names->random uppercase,lowercase->Base64 encoded Korean filename->embedded payload XOR 0xCC->embedded payload XOR 0x8C->Invoke-Expression 식으로 해서 분석을 방해하고 있습니다.
PDF 내용을 보면 마치 하나 은행에서 인피닛블록 대표에게 보낸 협력 제안서처럼 돼 있지만, 해당 부분은 아마도 조사를 해보아야겠지만 북한 김수키 일당이 만들었거나 아니면 실제 PDF 파일을 가지고 보냈거나 둘 중 하나가 아닐까? 생각이 됩니다. 일단 기본적인 보안 수칙을 지키는 것을 권장하고 싶습니다.
[생활/블로그 놀이] - Support Independent Malware & Phishing Analysis
Support Independent Malware & Phishing Analysis
안녕하세요.꿈을 꾸는 파랑새 블로그를 운영하고 있는 사카이(Sakai)입니다.이 블로그는 제가 관심을 가지고 공부하는 내용을 기록하고 그 과정에서 얻은 정보를 다른 분들과 공유하기 위해 운영
wezard4u.tistory.com
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
| 김수키(Kimsuky) 만든 악성코드-2026 엔지니어링업체 임금실태조사결과 공표.pdf (0) | 2026.09.14 |
|---|---|
| 윈도우 10 KB5122878 윈도우 11 KB5124008 & KB5122880 보안 업데이트 및 Microsoft Defender ShieldCrash SYSTEM 접근 권한 제로데이 (0) | 2026.09.10 |
| Kimsuky(김수키).NET·Angular 채용 담당자 노린 악성코드-doc_2026-03-26_08-58-03.NetAngular.pdf.lnk (0) | 2026.09.10 |
| 우크라이나 정부를 노린 Ghostwriter 만든 악성코드-Пропозиція по впровадженню лист.pdf.js (0) | 2026.09.09 |
| 発注書および在庫確認のお願い 으로 위장한 악성코드 PDF-発注書.pdf (0) | 2026.09.04 |
| 김수키(Kimsuky) 원전 분야 종사자를 노린것을 추측 되는 악성코드-한국의 사용후핵연료 저장 위기와 2030년의 경고.pdf.lnk (0) | 2026.08.31 |
| 노드 VPN 스마트폰 IP 우회 변경 사용법(3개월 무료 할인) (2) | 2026.08.30 |
| AliExpress의 숨겨진 WebAudio 핑거프린터 fireyejs.js 간단 분석 (0) | 2026.08.28 |





