꿈을꾸는 파랑새

오늘은 북한 해킹 단체 김수키(Kimsuky) 에서 만든 악성코드인 2026년 방위산업기술개발사업 최종평가위원회 위원 위촉 안내.pdf.lnk 에 대해서 알아보겠습니다. 해당 악성코드는 2026년 방위산업기술개발사업 최종평가위원회 위원 위촉 안내 으로 돼 있으면 일단 방위산업기술개방 부분을 노린 것이 아닌지 조심스럽게 생각을 합니다.
파일명: 2026년 방위산업기술개발사업 최종평가위원회 위원 위촉 안내.pdf.lnk
사이즈:2 MB
MD5:c49289228ea08a4e7d5a056cacf8adbd
SHA-1:a9f24d4fec3585b729c85355a9dbee8b2cffb721
SHA-256:5681ef6d074421cb4dbd3d1389b2d83a4920ee84ed8fd198a739d184c2bc4c0c

악성코드 분석

악성코드 를 실행을 하는 PowerShell 코드
악성코드 를 실행을 하는 PowerShell 코드

1.PowerShell 실행
SysWow64 경로를 사용 사용해서 32비트 PowerShell을 실행
2. 가짜 PDF 처럼 보이게 설정
사용자에게는 PDF처럼 보이도록 함
하지만, 실제로는 PDF가 아니라 LNK
문서라고 생각을 하고 실행을 했을 때 악성코드 동작
3.주요 난독화 기법
무의미한 주석 삽입
PowerShell에서 (# ... #)는 블록 주석 실행에는 문제없는 코드
실제 호출되는 것이 아니라 주석
문자열 쪼개기
le'+'ng'+'th 방식으로 문자 쪼개기 방식을 사용함
그러면 최종적으로 완성되면 length 이라는 방식으로 조합이 됨
명령 이름 와일드카드 호출
gcm et-Child (명령어 찾기)
gcm(Get-Command)이 와일드카드(*) 패턴에 일치하는 명령어를 검색
가장 대표적인 Get-ChildItem 객체를 반환했음
& (호출 연산자 - Call Operator)
앞의 괄호 () 안에서 반환된 명령어 객체나 문자열을 실제 실행 가능한 명령어로 평가하고 호출
.lnk (인수 전달)
호출된 Get-ChildItem 명령어에. lnk 인수를 전달해서 현재 디렉터리에서 확장자가 .lnk(바로가기 파일)인 찾아오게 함
4.LNK 파일 탐색 로직
먼저 현재 디렉터리에서. lnk 파일을 찾기
조건
0x00107FF7 = 1,081,335 bytes
현재 폴더에서 1,081,335 바이트 크기의 LNK 찾음
찾지 못했을 때 Temp 폴더로 재귀
감염 환경에 따라 LNK 위치가 달라도 페이로드를 찾기 위한 백업 로직
5.lnk 확장자 제거
.lnk 확장자를 제거
복호화된 첫 번째 payload를 LNK 확장자를 제거한 이름으로 저장
이는 사용자가 PDF라고 믿는 이름을 그대로 사용하면서 실제로는 실행 가능한 payload를 만들 수 있게 하려는 조치
6.LNK 내부 payload 추출

한국 국방 연구원 사칭 PDF 내용
한국 국방 연구원 사칭 PDF 내용

Payload 시작 오프셋:0x13BA = 5050 bytes
이후 두 구간을 사용
0x13BA:0x10653F= 1,074,495 bytes->실행될 파일
0x1078F9:0x6FE = 1,790 bytes->PowerShell 스크립트 |
7.XOR 복호화
PowerShell 안에서 C# 클래스를 동적으로 컴파일
slSize=0x01 사용을 하므로 결국 모든 바이트에 대해서 0x52
8.Payload 1 실행
복호화된 첫 번째 payload를 디스크에 쓰고 나서 그다음 실행 & 는 PowerShell call operator 이며 복호화된 파일을 실행합니다.
만약 파일명이 김정은 개X끼.pdf.lnk였다면 김정은 개X끼.pdf 가 되는 구조
라는 이름으로 저장하고 실행합니다.
9.원본 LNK 삭제
10.Payload 2 실행
두 번째 payload는 1,790바이트 크기의 Unicode 문자열로 해석 즉 PowerShell의 Unicode 는 일반적으로 UTF-16LE
Payload 2는 XOR 0x52 로 암호화된 UTF-16LE PowerShell 스크립트
두 번째 스크립트는 실행 후 객체를 반환 그 객체의 Strong 속성을 다시 실행
11.복원
현재 폴더에서 특정 크기의 .lnk 파일 찾기->없으면 Temp 폴더에서 찾기->.lnk 내부 특정 위치에서 두 개의 암호화된 데이터 읽기->XOR 0x52로 복호화->첫 번째 payload를 파일로 저장 후 실행->원본 .lnk 삭제->두 번째 payload를 PowerShell 스크립트로 실행
그러면 PDF 파일을 볼 수가 있습니다.
PDF 내용 요약
2026년 방위산업기술개발사업 최종평가를 개최할 것임
지대공 유도탄 유도정확도 고도화 기술 개발이고 서울 동대문구 회기로 37, 국방연구원빌딩 7층에서 열릴 것임
평가수당: 현장실태조사 참여 20만 원, 평가위원회 참여 20만 원 각각 지급
위원장 5만 원 및 교통비 별도지급(3만 원(100km이네), 7만 원(100~300km),
10만원(300km 초과) 한다는 내용
일단 어떤 분들에게 유포했는지 모르겠지만, 국방과학연구소인 것처럼 꾸며서 군사기밀을 탈취하려고 하는 목적이 높음
아무튼 조심 하자~

공유하기

facebook twitter kakaoTalk kakaostory naver band