블로그
home
Nation-State Cyber Actors Analysis Report
home
🇰🇵

[IG-25-4018-O] 북한발 위협 행위자 관련 LNK 기반 악성파일 분석 : LNK를 이용한 Konni과 Kimsuky 공격 매커니즘 분석 : Analysis of LNK related to North Korean threat actors: Analysis of Konni and Kimsuky attack mechanisms using LNK

Classification
TLP:CLEAR
Release Date
2025/05/19
Writer
Jeongtae Kim
Editor
Bohyeong Son
Mihee Kim
Tags
악성코드
북한
DPRK
Kimsuky
Konni
Malware
2 more properties

1. 개요

○ 북한위협 행위자(Konni, Kimsuky) 유포로 추정되는 바로가기(*.LNK)파일 4종 확보
C2, 코드 구조, 난독화 방식의 유사성에 따라 모듈화된 batch 파일 사용, 정상 프로세스를 복사해 사용, *.db로 위장한 *.bat 사용의 3가지 유형으로 분류
○ 특히 Konni그룹이 유포 중인 ‘유형A’는, 다른 유형보다 더 정교한 형태의 공격을 수행
현재 시간을 키로 통신에 사용되는 주소의 일부를 암호화하여 주소를 유동적으로 변경
시스템 정보를 탈취한 후 %COMPUTERNAME%을 사용해 타겟을 선정하여 추가 악성코드를 배포
○ Kimsuky와 Konni 그룹은 PebbleDash 백도어와 RAT 계열 악성코드 등을 사용해 피해자 시스템 원격 제어 및 추가 악성 행위 수행하는 것으로 알려짐
공격 흐름도

2. 대응방안

○ 악성 실행 파일은 문서로 위장한 경우가 많아 파일 실행 시 아이콘, 확장자, 유형 등 확인 필요
확장자 확인을 위해 “폴더 옵션 > 보기 탭 > 알려진 파일 형식의 파일 확장명 숨기기” 체크 해제

3. LNK기반 악성코드와 공격그룹 간의 연관성 분석

○ 최근 북한 위협 행위자가 유포한 것으로 추정되는 악성 LNK 파일 4종 확보 후 분석한 결과, [표 1]과 같이 ‘샘플1’, ‘샘플2’는 서로 다른 유형이지만 Konni 그룹이, ‘샘플3’, ‘샘플4’는 동일한 유형으로 Kimsuky 그룹이 유포한 것으로 분석
그룹
유형
동작 방식
샘플
MD5
Konni
A
다수의 모듈화된 batch 파일 사용
1
777b6a02f7a44582c40ddadb82e60ddb
Konni
B
curl.exe와 schtasks.exe를 복사해서 사용
2
a9b1c04438930c0c7cff3fe8e8520317
Kimsuky
C
db 파일로 위장한 batch 파일 사용
3
a523bf5dca0f2a4ace0cf766d9225343
Kimsuky
C
db 파일로 위장한 batch 파일 사용
4
89a725b08ab0e8885fc03b543638be96
[표 1] 확보 샘플 정보
○ 유형별 공격 구성도에서 유형을 구분할 수 있는 주요 특징들은 하기와 같음
[그림 2] 모듈화된 batch 파일과 탈취 도메인의 사용(유형A)
[그림 3] 정상 프로세스 및 탈취 도메인 사용(유형B)
[그림 4] db 파일 위장 및 WinRM 사용(유형C)

3.1. Konni

○ ‘샘플1(유형A)’과 ‘샘플2(유형B)’ 분석 결과, 서로 다른 실행 흐름을 가지고 있으나 북한 해킹 그룹 Konni가 유포한 악성코드로 분석
해당 샘플들의 C2 주소가 이전에 Konni 그룹이 사용했던 C2 주소와 유사
Konni 그룹의 특징인 기존 도메인을 탈취하여 공격에 이용하는 방식 사용
샘플
정보
도메인
정보
확보
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/inc/get.php?ra=iew&zw=lk0100
ausbildungsbuddy[.]de
시상식 관련
확보
hxxps://www[.]holosformations[.]fr/wp-admin/js/widgets/hurryup/?rv=bear^&za=battle0
holosformations[.]fr
힐링교육 관련
확보
hxxps://www[.]holosformations[.]fr/wp-admin/js/widgets/hurryup/?rv=bear^&za=battle1
holosformations[.]fr
힐링교육 관련
이전
hxxps://thevintagegarage[.]com/plugins/content/src/inc/get.php?ra=iew&zw=lk0100
thevintagegarage[.]com
중고차 관련
이전
hxxp://osbrankoradicevickm[.]com/wp-admin/js/widgets/hurryup/?rv=bear&za=battle1
osbrankoradicevickm[.]com
초등학교 관련
[표 2] 이전 Konni 그룹이 사용한 샘플과의 유사성
○ 또한 두 샘플의 LNK 파일에서 다량의 공백을 사용해 실행 대상을 숨기는 행위와 포함된 악성 명령어를 Powershell 스크립트의 “<#...#>” 주석 블록 삽입을 통한 난독화가 동일하게 확인
[그림 5] 샘플1 LNK 파일
[그림 6] 샘플2 LNK 파일
○ 특히 Konni가 배포하는 것으로 분석된 “유형A”의 샘플의 경우, 모듈화된 다수의 batch 파일을 사용하여 정교한 공격이 가능하도록 설계된 것으로 분석
추가 악성코드 다운로드 시, %COMPUTERNAME%을 사용해 시스템을 특정하는 기능 확인
현재 시간을 Key로 주소의 일부분을 암호화하고 Key와 함께 전달하는 방식을 사용하여 [표 5]와 같이 유동적으로 URL 주소를 변경
No
파일명
정보
1
start.vbs
악성 행위 트리거
2
60901024.bat
지속성 확보 및 각 batch 파일 호출
3
33283112.bat
암호화 및 전송
4
57373380.bat
암호화 및 전송
5
53452693.bat
암호화 및 다운로드
6
54744204.bat
시스템 정보 탈취
7
57579534.bat
시스템 정보 탈취
8
54312804.bat
추가 악성코드를 다운로드
[표 3] 사용된 파일 정보
C2
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/src/list.php?f=%COMPUTERNAME%.txt
[표 4] 유형A 샘플에서 발견된 다운로드 C2
위치
C2
코드
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/inc/get.php?ra=iew&zw=lk0100
로그
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/inc/get.php?638809240124203398=bGL1IfN33uRC2NAnt0kBiA%3d%3d
[표 5] 암호화를 통한 주소 변경

3.2. Kimsuky

○ ‘샘플3(유형C)’과 ‘샘플4(유형C)’ 분석 결과, 동일한 미끼 문서를 생성하는 같은 유형으로 확인되었고 북한 해킹 그룹 Kimsuky가 유포한 악성코드로 분석
해당 샘플들의 C2 주소와 이전에 kimsuky 그룹이 사용했던 C2 주소와 유사
사용 파일 및 방식만 다를 뿐 코드 구조가 이전에 사용했던 샘플과 유사
코드 내부에서 사용되는 파일명 및 폴더 경로가 이전에 사용했던 샘플과 유사
항목
샘플
정보
C2
확보
103[.]149[.]98[.]247/vs/t1/d.php?newpa=comline&wpn=soofer
C2
확보
103[.]149[.]98[.]247/vs/tt/d.php?newpa=comline&wpn=soofer
C2
이전
103[.]149[.]98[.]231/pprb/0304_pprb/d.php?newpa=comline
C2
이전
103[.]149[.]98[.]231/pprd/0209_sim_pprd/d.php?newpa=comline
C2
이전
103[.]149[.]98[.]231/pprb/0209_sim_pprb/d.php?newpa=comline
파일
확보
sample.db을 sool.bat로 복사
파일
이전
wis.db를 wins.bat으로 복사
폴더
확보
c:\user\public\music\sample.db
폴더
확보
c:\user\public\music\sool.bat
폴더
이전
c:\user\public\music\wis.db
폴더
이전
c:\user\public\music\wins.bat
[표 6] 이전 Kimsuky 그룹이 사용한 샘플과의 유사성
[그림 7] 확보한 샘플의 악성 vbs 스크립트 파일 내부 코드
[그림 8] kimsuky 그룹이 이전에 사용한 manifest 파일 내 코드 일부 (출처 : https://blog.alyac.co.kr/5534)

4. 악성코드 상세분석

4.1. 유형A (샘플1 : 777b6a02f7a44582c40ddadb82e60ddb)

[그림 9] 공격 구성도(유형A) - 모듈화된 batch 파일과 탈취 도메인의 사용

4.1.1. 제안서.pdf.lnk

○ PDF 위장 LNK 파일로 다량의 공백 삽입을 통해 실행 대상인 cmd.exe의 경로를 은닉
[그림 10] 다량의 공백 삽입을 통해 실행 대상 은닉
○ 내부 데이터 확인 결과, 명령어 인수에서 [그림 11]과 같이 다량의 Powershell 스크립트 “<#...#>” 주석 블록을 명령어 중간에 삽입하는 방식의 난독화가 적용된 악성 명령어 발견. 이외에도 “+”를 이용한 문자열 분리, 문자열 빌더 함수 사용 및 함수명/변수명 난독화가 적용된 것을 확인
[그림 11] 명령어 중간에 삽입된 다량의 “<#...#>” 주석 블록
[그림 12] 문자열 분리, 함수명/변수명 난독화가 적용된 문자열 빌더 함수
○ 난독화된 Powershell 코드는 [표 7]의 행위를 통해 자신을 정상 PDF 문서로 교체 및 오픈하여 사용자로부터 자신이 악성 파일임을 숨기고 악성 스크립트를 시스템에 드롭 및 실행하는 것으로 분석
No
행위
1
크기 정보를 사용해 자기 자신을 획득
2
자기 자신을 파싱하여 현재 폴더에 정상 PDF 문서 드롭 및 실행
3
자기 자신을 파싱하여 %PUBLIC% 폴더에 nearby.cab 드롭
4
자기 자신을 삭제
5
nearby.cab을 %PUBLIC%\documents 폴더에 압축 해제 후 삭제
6
압축 해제된 파일 중 하나인 start.vbs를 실행
[표 7] LNK 내 Powershell 코드 실행 흐름
[그림 13] 난독화 해제된 Powershell 코드
[그림 14] 자기 자신을 파싱하는 함수
○ 미끼 문서로 드롭된 PDF 확인 결과 리워드 광고 관련 내용으로 확인
[그림 15] 미끼 PDF 내용 일부
○ %PUBLIC% 폴더에 드롭된 nearby.cab 파일 확인 결과 7종의 batch 파일과 함께 start.vbs 파일, unzip.exe 파일 발견. 이 중 33283112.bat과 57373380.bat 파일은 동일한 해시 값을 가진 같은 파일로 확인
[그림 16] nearby.zip에 포함된 파일들
파일명
MD5
nearby.zip
3d9c3b8e568a8b31ac84a5de5ac528a
[표 8] nearby.zip 파일 정보
No
파일명
MD5
악성/정상
1
33283112.bat
40e77deae9d81d0924bf7c1d6afbb3f7
악성
2
57373380.bat
40e77deae9d81d0924bf7c1d6afbb3f7
악성
3
53452693.bat
9d7802069d563b1e909f2c636bb55deb
악성
4
54312804.bat
217ee812138da82ff8d19af26c164187
악성
5
54744204.bat
cd826967aff6618d6e25f4101a2cc12f
악성
6
57579534.bat
83117b531e84c16ef0e65f08a882d6f8
악성
7
60901024.bat
fce7a980ec6a93525524fa7ac8e4a94b
악성
8
start.vbs
8ba7ce929702a5423eb0ffd5763ab895
악성
9
unzip.exe
75375c22c72f1beb76bea39c22a1ed68
정상
[표 9] nearby.zip에 포함된 파일 정보
○ VirusTotal 조회 결과, unzip.exe 파일은 Microsoft와 Hewlett Packard에서 배포한 정상 압축 해제용 실행 파일로 확인
[그림 17] unzip.exe의 VirusTotal 조회 결과

4.1.2. start.vbs & 60901024.bat

○ start.vbs와 60901024.bat 파일은 악성 행위의 시작점이 되는 파일들로 분석
파일명
정보
start.vbs
LNK 파일에 의해 최종적으로 실행되는 파일로 60901024.bat을 실행
60901024.bat
start.vbs의 지속성 확보 및 나머지 batch 파일들을 실행
[표 10] 파일 관련 정보
○ start.vbs 파일은 CLSID_ShellWindows를 사용해 Shell 객체를 생성하여 함께 압축되어 있던 7종의 batch 파일 중 60901024.bat 파일을 실행하는 역할
CLSID 명
CLSID 값
ShellWindows
9BA05972-F6A8-11CF-A442-00A0C90A8F39
[표 11] 사용 CLSID 정보
[그림 18] start.vbs 코드
○ 60901024.bat 파일은 [표 12]의 행위를 통해 Run 레지스트리에 start.vbs 파일을 추가하여 지속성을 확보한 후 나머지 batch 파일들을 실행
No
행위
1
Run 레지스트리에 start.vbs 파일 등록하여 지속성 확보
2
57579534.bat와 54744204.bat 실행 후 57579534.bat 삭제
3
upok.txt 여부 확인 후 없다면, 54744204.bat 다시 실행
4
f.txt가 없다면, 계속해서 54312804.bat 실행
5
f.txt가 있다면, 해당 파일 삭제 후 종료
[표 12] 60901024.bat 실행 흐름
[그림 19] start.vbs의 지속성 확보 및 bat 파일 실행
[그림 ] f.txt를 사용한 54312804.bat 실행 루프

4.1.3. 53452693.bat & 33283112.bat(57373380.bat)

○ 53452693.bat, 33283112.bat(57373380.bat) 파일들은 60901024.bat에 의해 실행되는 batch 파일들 내부에서 사용되는 파일들로 네트워킹 기능을 담당하는 것으로 분석
파일명
정보
53452693.bat
HTTP GET을 사용해 서버로부터 데이터를 요청
33283112.bat (57373380.bat)
HTTP POST를 사용해 서버로 데이터를 전송
[표 13] 파일 관련 정보
○ 53452693.bat 파일은 전달된 인수에 따라 Powershell 명령어와 스크립트를 사용하여 2가지 방식의 HTTP GET을 수행하는 것으로 분석
조건
행위
“%~3” != “0”
스크립트를 사용해 GET 요청 시 사용될 주소에 대해, 현재 시간으로부터 생성한 Matrix 키를 사용하여 XOR 블록 암호화 및 Base64 인코딩 수행
“%~3” == “0”
암호화 및 인코딩 없이 기본 명령어만 사용해 GET 요청
[표 14] 53452693.bat 파일의 조건별 실행 흐름
[그림 21] 53452693.bat 내부 코드
[그림 22] 암호화 코드 일부
○ 악성코드는 HTTP GET 요청 시, 현재 시간 KEY로 URL의 일부를 암호화하고, 복호화 키와 함께 전달하는 방식을 사용해 URL 주소를 유동적으로 변경하는 전략을 사용
○ 33283112.bat(57373380.bat) 파일은 전달된 인수에 상관없이 Powershell 스크립트를 사용하여 HTTP POST을 수행하는 것으로 분석되었으며, 전송되는 데이터는 53452693.bat에서 사용된 동일한 방식으로 암호화되는 것으로 분석
[그림 23] 33283112.bat(57373380.bat)의 암호화 코드 일부
○ POST 이후 응답 코드를 확인하여 파일을 정상적으로 전송했는지 체크하기 위한 파일인 upok.txt를 생성
[그림 24] 상태 코드 확인 후 upok.txt 파일을 생성하는 코드

4.1.4. 57579534.bat & 54744204.bat

○ 57579534.bat와 54744204.bat은 60901024.bat에 의해 실행되어 앞서 설명한 53452693.bat과 33283112.bat 파일을 사용해 C2와 통신하여 정보 탈취를 수행
파일명
사용 파일
정보
57579534.bat
53452693.bat
정보를 탈취하는 스크립트 다운로드 및 실행
54744204.bat
33283112.bat
탈취된 사용자 정보를 서버로 전송
[표 15] 파일 관련 정보
○ 57579534.bat은 nearby.cab 내에 있던 파일들을 사용하여 [표 16]의 행위를 통해 C2로부터 악성 스크립트를 다운로드 및 실행
No
행위
1
53452693.bat를 사용하여 C2로부터 di3726.zip을 다운로드
2
unzip.exe를 사용하여 “a0”를 패스워드로 압축 해제
3
다운로드 받은 di3726.zip을 삭제
4
압축해제된 파일 중 1.bat 파일 실행
[표 16] 57579534.bat 실행 흐름
[그림 25] 57579534.bat 내부 코드
○ 다운로드에 사용된 C2 주소는 53452693.bat에 의해 URL 일부분이 암호화되어 코드 상의 주소와 로그 상의 주소가 다르다는 특징이 존재
위치
C2
코드
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/inc/get.php?ra=iew&zw=lk0100
로그
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/inc/get.php?638809240124203398=bGL1IfN33uRC2NAnt0kBiA%3d%3d
[표 17] 암호화된 주소
[그림 26] 네트워크 로그 상에서 확인된 주소
○ 54744204.bat은 33283112.bat을 사용해 [표 18]에 있던 파일들을 C2로 전송
No
폴더
파일명
업로드 파일명
1
C:\Users\%username%\dwonloads
d1.txt
%COMPUTERNAME%_down.txt
2
C:\Users\%username%\douments
d2.txt
%COMPUTERNAME%_docu.txt
3
C:\Users\%username%\desktop
d3.txt
%COMPUTERNAME%_desk..txt
4
(확보한 샘플에서는 미확인)
d4.txt
%COMPUTERNAME%_sys.txt
[표 18] 정보 탈취 파일 관련 정보
[그림 27] 정보 탈취 코드 일부
○ 데이터 전송에 사용된 C2 주소는 동일하나 Body 부분의 데이터가 53452693.bat에 의해 암호화
C2
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/src/upload.php
[표 19] 파일 관련 정보
[그림 28] 암호화된 POST Body
○ 분석 당시 확인된 C2에서는 이미 데이터가 삭제된 상태로 57579534.bat이 다운로드하는 di3726.zip과 1.bat 파일은 확인하지는 못했으나, 54744204.bat의 행위나 전체적인 흐름을 봤을 때 시스템 정보를 탈취하는 기능을 했을 것으로 추정
○ 악성 행위에 사용된 도메인 ausbildungsbuddy[.]de은 정상 도메인으로 보이며, 독일의 "Ausbildungsbuddy"라는 연례 시상식과 관련된 공식 웹사이트로 확인
○ 공격자는 탈취된 서버를 사용하여 정상 트래픽인 것처럼 악성 트래픽을 은닉
[그림 29] ausbildungsbuddy[.]de 웹사이트

4.1.5. 54312804.bat

○ 시스템 정보 탈취 이후 실행되는 54312804.bat은 [표 20]의 행위에 의해 추가 악성코드 다운로드 및 실행
No
행위
1
기존에 다운로드한 temprun.bat 파일이 있는지 확인하고 제거
2
53452693.bat을 사용하여 C2로부터 XZJin.cab 다운로드
3
다운로드한 XZJin.cab 파일 압축 해제 후 삭제
4
압축 해제된 파일 중 temprun.bat 파일 실행
[표 20] 54312804.bat 실행 흐름
[그림 30] 확인된 54312804.bat 코드
○ 시스템 정보 탈취 코드를 다운로드할 때와 마찬가지로 53452693.bat에 의해 URL의 일부가 암호화되어 코드 상의 URL 주소와 로그 상의 URL 주소가 상이
○ 또한 %COMPUTERNAME%을 사용하는 것으로 보아 감염된 모든 시스템에 추가 악성코드를 배포하는 것이 아니라 선정된 특정 시스템에만 추가 악성코드를 배포하는 것으로 추정
위치
C2
코드
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/src/list.php?f=%COMPUTERNAME%.txt
로그
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/src/list.php?638809372226224598=FEhUfLX%2bZwB23qkN0M10W8t1PBHN
[표 21] 파일 관련 정보
[그림 31] 네트워크 로그 상의 주소
○ 60901024.bat에서 f.txt를 킬 스위치로 사용하는 실행 루프에 의해 계속해서 추가 악성코드를 다운로드 및 실행하게 설계된 것으로 분석
[그림 32] f.txt를 킬 스위치로 사용하는 실행 루프
○ 분석 당시 확인된 C2에서는 이미 데이터가 삭제된 상태로 확인되어, 54312804.bat이 다운로드하는 XZJin.cab과 temprun.bat 파일 획득이 불가능하여 추가 분석은 어려웠으나 Konni 그룹은 RAT 계열 악성코드를 사용하여 추가 악성 행위를 수행하는 것으로 알려짐

4.2. 유형B (샘플2 : a9b1c04438930c0c7cff3fe8e8520317)

[그림 33] 공격 구성도(유형B) - 정상 프로세스 및 탈취 도메인 사용

4.2.1. .xlsx.lnk

○ 앞선 ‘샘플1’과 유사한 다량의 공백 삽입을 통해 실행 대상인 cmd.exe의 경로를 은닉하는 형태의 XLSX 위장 LNK 파일
[그림 34] 다량의 공백 삽입을 통해 실행 대상 은닉
○ 내부 데이터 확인 결과, ‘샘플1’과 코드가 같지는 않으나 Powershell 주석 블록 “<#....#>”을 명령어 중간에 삽입하는 동일한 난독화 유형이 확인
[그림 35] 명령어 중간에 삽입된 <#...#> 주석 블록
○ 난독화된 Powershell 명령어는 [표 20]의 행위를 통해 미끼 문서를 생성하고, C2로부터 추가 악성코드를 다운로드하고 지속성을 확보하는 것으로 분석
No
행위
1
현재 경로에서 파일 크기 정보를 사용해서 자기 자신을 획득
2
자기 자신을 파싱하여 미끼 문서인 xlsx 데이터를 획득
3
0xfe를 XOR 키로 미끼 문서를 복호화
4
자기 자신(*.lnk)을 삭제
5
curl.exe 파일을 Public\Documnet 폴더에 cXAzWSe.exe로 복사
6
schtasks.exe 파일을 Public\Documnet 폴더에 cXAzWSe1.exe로 복사
7
cXAzWSe.exe(curl.exe)를 사용하여 C2로부터 ABBLIbd.exe, qaVnopX.cdr 다운로드
8
cXAzWSe1.exe(schtasks.exe)를 사용하여 스케줄러에 등록해 지속성 확보 및 실행
[표 22] LNK 내 악성 명령어 실행 흐름
[그림 36] 난독화 해제된 파워셀 명령어
○ 생성된 미끼 문서 내부에는 여러 계정 정보가 확인되는데 일부 계정은 실제 로그인이 가능한 것으로 확인
계정 및 비밀번호 패턴으로 보아 특정 개인의 계정으로 사료됨
[그림 37] 미끼 문서 내용 일부
○ 다운로드에 사용된 도메인 holosformations[.]fr은 정상 도메인으로 보이며, 프랑스의 명상, 힐링과 관련된 교육을 제공하는 단체의 정상 웹사이트로 확인
○ 공격자는 탈취된 서버를 사용하여 정상 트래픽인 것처럼 악성 트래픽을 은닉
No
파일명
사용 C2
1
ABBLIbd.exe
hxxps://www[.]holosformations[.]fr/wp-admin/js/widgets/hurryup/?rv=bear^&za=battle0
2
qaVnopX.cdr
hxxps://www[.]holosformations[.]fr/wp-admin/js/widgets/hurryup/?rv=bear^&za=battle1
[표 23] kzip에 포함된 파일 정보
[그림 38] holosformations[.]fr
○ 확인된 C2에서는 이미 데이터가 삭제된 상태로 ABBLIbd.exe, qaVnopX.cdr 파일은 획득 불가능하였으나, Konni 그룹은 RAT 계열 악성코드를 추가 악성행위를 수행하는 것으로 알려짐

4.3. 유형C (샘플3 : a523bf5dca0f2a4ace0cf766d9225343, 샘플4 : 89a725b08ab0e8885fc03b543638be96)

[그림 39] 공격 구성도(유형C) - db 파일 위장 및 WinRM 사용

4.3.1. .lnk

○ 확보한 샘플 중 ‘샘플3’, ‘샘플4’는 동일한 유형의 악성 LNK 파일로 분석.
샘플
파일명
md5
3
mal1.lnk (임의명명)
a523bf5dca0f2a4ace0cf766d9225343
4
mal2.lnk (임의명명)
89a725b08ab0e8885fc03b543638be96
[표 24] 확보한 파일 정보
○ 두 샘플 모두 LNK 파일의 실행 대상의 경로가 같은 것으로 확인
[그림 40] 실행 대상 코드의 유사성
○ 파일 내부 설정된 악성 명령어는 상수 값에 차이만 있을 뿐 XOR 복호화 키까지 0xCD로 같은 [표 25]의 행위를 하는 동일한 코드로 분석
No
행위
1
현재 경로가 system32 혹은 program files이라면 %tmp%로 경로 설정
2
설정된 경로에서 길이 정보를 사용하여 자기 자신을 획득
3
lnk 파일 데이터에서 미끼 문서인 PDF 데이터를 파싱하여 실행
4
악성 vbs 스크립트인 2tt.vbs를 파싱
5
파싱한 2tt.vbs를 0xcd를 xor 키로 복호화
6
schtasks.exe를 사용해 2tt.vbs에 대한 지속성 확보 및 실행
[표 25] LNK 내 명령어 실행 흐름
[그림 41] 동일한 구조의 LNK 내 악성 명령어
○ 또한 두 lnk 파일은 완전히 동일한 USSC AUSTRALIA-KOREA-JAPAN TRACK-1.5 DIALOGUE FUTURE-ORIENTED COOPERATION라는 제목의 PDF 파일 (MD5: 9a038a0d861d88c97efcc8503e002708)을 미끼 문서로 생성하는 것을 확인
[그림 42] 생성된 두 미끼 PDF 문서의 해시 비교
[그림 43] 생성된 미끼 문서 내용 일부

4.3.2. 2tt.vbs

○ LNK 파일 실행 시 생성된 2tt.vbs 파일의 코드는 [표 26]의 행위를 수행하는 것으로 분석. 코드 구조 자체는 동일하지만 사용되는 C2 주소가 [표 27]와 같이 일부 달라 해시 값은 다른 것으로 확인
No
행위
1
C2로부터 sample.db 파일을 다운로드해 PUBLIC\music 폴더에 파일을 저장
2
sample.db 파일명을 sool.bat으로 변경
3
sool.bat 파일을 실행한 후 파일을 삭제
[표 26] LNK 내 악성 명령어 실행 흐름
No
파일명
사용 C2
2tt.vbs의 md5
1
mal1.lnk
hxxp://103[.]149[.]98[.]247/vs/t1/d.php?newpa=comline&wpn=soofer
913fe4236ca5e34879d2a3228da6b9c6
2
mal2.lnk
hxxp://103[.]149[.]98[.]247/vs/tt/d.php?newpa=comline&wpn=soofer
12bfe00206b2e83c7ff79b657d3c56df
[표 27] 두 샘플 간의 C2 주소 및 Hash 값 차이
[그림 44] 동일한 구조의 2tt.vbs 내 명령어
○ 사용되는 IP 확인 결과 지역은 베트남으로 확인되었고, 윈도우에서 제공하는 원격 관리 기능인 Windows Remote Management (WinRM)에서 사용하는 포트 5985, 47001이 오픈되어 있는 것으로 확인
○ 공격자는 WinRM 기능을 사용해 원격으로 베트남 지역의 IP를 사용하고 있는 것으로 추정
[그림 45] IP 조회 결과 - 베트남
[그림 46] IP 조회 결과 - 오픈 포트
○ 확인된 C2에서는 이미 데이터가 삭제된 상태로 2tt.vbs가 다운로드하는 sample.db 파일은 획득 불가능하였으나, Kimsuky 그룹은 PebbleDash와 같은 백도어형 악성코드를 설치하여 추가 악성행위를 수행하는 것으로 알려짐

5. IoC 정보

NO
Type
Data
Info
1
MD5
777b6a02f7a44582c40ddadb82e60ddb
제안서.pdf.lnk
2
MD5
8ba7ce929702a5423eb0ffd5763ab895
start.vbs
3
MD5
fce7a980ec6a93525524fa7ac8e4a94b
60901024.bat
4
MD5
83117b531e84c16ef0e65f08a882d6f8
57579534.bat
5
MD5
40e77deae9d81d0924bf7c1d6afbb3f7
57373380.bat
6
MD5
cd826967aff6618d6e25f4101a2cc12f
54744204.bat
7
MD5
217ee812138da82ff8d19af26c164187
54312804.bat
8
MD5
9d7802069d563b1e909f2c636bb55deb
53452693.bat
9
MD5
40e77deae9d81d0924bf7c1d6afbb3f7
33283112.bat
10
MD5
a9b1c04438930c0c7cff3fe8e8520317
tmp.xlsx.lnk (임의명명)
11
MD5
a523bf5dca0f2a4ace0cf766d9225343
ma1.lnk (임의명명)
12
MD5
913fe4236ca5e34879d2a3228da6b9c6
2tt.vbs (ma1.lnk)
13
MD5
89a725b08ab0e8885fc03b543638be96
ma2.lnk (임의명명)
14
MD5
12bfe00206b2e83c7ff79b657d3c56df
2tt.vbs (ma2.lnk)
15
C2
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/inc/get.php?ra=iew&zw=lk0100
1.bat 다운로드
16
C2
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/src/upload.php
탈취 정보 전송
17
C2
hxxps://ausbildungsbuddy[.]de/modules/mod_mail/src/list.php
temprun.bat 다운로드
18
C2
hxxps://www[.]holosformations[.]fr/wp-admin/js/widgets/hurryup/?rv=bear^&za=battle0
ABBLIbd.exe 다운로드
19
C2
hxxps://www[.]holosformations[.]fr/wp-admin/js/widgets/hurryup/?rv=bear^&za=battle1
qaVnopX.cdr 다운로드
20
C2
103[.]149[.]98[.]247/vs/t1/d.php?newpa=comline&wpn=soofer
sample.db 다운로드 (mal1.lnk)
21
C2
103[.]149[.]98[.]247/vs/tt/d.php?newpa=comline&wpn=soofer
sample.db 다운로드 (mal2.lnk)

6. 참고자료

IGLOO Corp. 2025. All rights reserved.