[위협 분석] 한글 문서로 위장한 두 공격 그룹의 악성코드 비교

개요

로그프레소는 최근 한글 문서 파일로 위장한 악성코드를 수집했습니다. 해당 파일의 제목은 ‘북한 공작에 물든 대한민국.hwp’ (이하 ‘사례 1’), ‘가상자산사업자 검사계획민당정회의 발표자료_FN2.hwp.lnk’ (이하 ‘사례 2’)와 같이 한글로 작성되었습니다.

두 사례 모두 최근 우리나라에서 사회적으로 이슈가 되고 있는 주제를 제목에 작성했다는 공통점을 가지고 있었으나, 공격자 분석 결과 아래 표와 같이 동일 조직이 아닌 서로 다른 두 개의 공격 조직이 관여한 것으로 보입니다.

구분사례 1 (APT37)사례 2 (Konni)
공격자APT37Konni
확장자HWPLNK
파일 구성OLE 개체Powershell
내장 데이터암호화된 쉘 코드악성 스크립트
C2 전송 방식Yandex cloud 접근사전 정의된 C2 주소 접근
문서 작성자82109국토해양부
마지막 편집자Kennedyadmin
컨텐트 타입 특정 문자열--wwjaughalvncjwiajs--N/A
복호화 연산에 사용된 키0x7A, 0x290x2B, 0x72
압축 해제 비밀번호N/Aa0


한글 문서로 위장한 두 사례의 공격 방식을 간략히 요약하면 다음과 같습니다.

(1) 사례 1은 2024년 12월, 국내 국방 분야 종사자 및 북한 연구원을 대상으로 수행된 것으로 추정되는 APT(Advanced Persistent Threat) 공격입니다.

  • 해당 공격은 APT37 조직의 소행으로 보입니다. APT37은 북한과 연계된 것으로 추정되는 APT 그룹으로, 주로 정보 수집을 목적으로 하는 각종 스파이 활동을 수행하는 것으로 알려져 있습니다.
  • APT37은 ‘북한 공작에 물든 대한민국.hwp’ 이라는 제목의 한글 문서로 위장한 악성코드를 활용하였으며, OLE 개체를 악용하여 악성 행위를 수행하도록 설계하였습니다.


(2) 사례 2는 2025년 1월 말, 금융위원회 금융정보분석원을 사칭한 조직적인 APT 공격입니다.

  • 해당 공격은 Konni 조직에 소행으로 보입니다. Konni 공격 그룹은 APT37과 마찬가지로 북한과 연계된 것으로 추정되는 APT 그룹으로, 최소 2014년부터 활동을 지속해온 조직입니다. 주로 정보 수집 및 사이버 스파이 활동을 수행하며, 외교 기관 및 정부 기관을 주요 표적으로 삼는 것으로 알려져 있습니다.
  • Konni 공격 그룹은 ‘가상자산사업자 검사계획민당정회의 발표자료_FN2.hwp.lnk’라는 제목의 한글 문서로 위장한 악성코드를 활용하였으며, 아이콘과 확장자를 이용하여 한글 문서로 보이도록 하였습니다. 그러나 실제로는 바로 가기 파일(*.lnk)를 통해 커맨드 명령어를 실행함으로써 악성 행위를 수행할 수 있도록 설계하였습니다.





(3) 두 개의 서로 다른 공격 그룹을 분석한 결과, 트리거 파일에서부터 두 그룹 간 차이가 존재하며, 이후 공격 행위에서도 차이가 확인됩니다.

  • APT37 공격 그룹은 내장된 암호화된 쉘 코드를 Fileless 공격 기법을 사용하여 공격자가 정의한 루틴에 따라서 복호화 후 메모리에 적재하여 다양한 악성 행위를 수행합니다.
  • 반면에 Konni 공격 그룹은 파워쉘, VB, 배치 스크립트를 이용하여 악성 행위를 수행하며, 반복적인 스크립트 실행으로 다양한 악성 행위를 수행합니다.


이번 콘텐츠에서는 이처럼 서로 다른 공격 그룹의 한글 문서 위장 공격 사례에 대해 상세히 분석해 보겠습니다.


사례 1. APT37 공격 사례 분석 (2024년 12월)

이 공격은 국내 국방 분야 종사자 및 북한 연구원을 대상으로 한 것으로 추정되며, ‘북한 공작에 물든 대한민국’ 이라는 내용으로 위장하여 악성코드 실행을 유도했습니다.

OLE 개체를 악용하여 다수의 데이터를 추가로 드랍한 후, 배치 파일을 실행하여 특정 사이트 기사를 실행하고, 이어 파워쉘 스크립트를 실행합니다. 이 파워쉘 스크립트는 Fileless 공격 기법을 사용하여 암호화된 쉘 코드를 복호화 후 메모리에 적재합니다.

최종적으로 RokRAT가 실행되며, 시스템 정보, 데스크탑 스크린샷 정보, 특정 확장자 파일 정보 등을 유출합니다. 또한, C2 서버의 명령을 대기하며 다양한 추가 명령어를 수행할 수 있도록 설계되어 있습니다.







  • ‘hwp801.bat’ 배치 파일 실행
  • 브라우저를 이용하여 특정 사이트 기사를 출력하며, ‘hwp702.dat’ 파워쉘 스크립트 실행
  • 파워쉘 스크립트는 암호화된 쉘 코드를 복호화 후, 메모리에 복호화된 쉘 코드를 적재
  • 최종적으로 RokRAT가 실행되며, 다양한 정보를 수집 후 C2 서버로 전송


상세 분석

로그프레소는 2024년 12월부터 유포된 것으로 확인되는 ‘북한 공작에 물든 대한민국.hwp’(835a74b3c33a66678c66118dbe26dccf) 파일을 수집하였습니다. 해당 파일을 유포한 이메일을 통해 국군 장병 대상 강연이 진행될 예정임을 알리며, 관련 내용의 확인 및 자문을 요청하는 방식으로 파일 실행을 유도했을 것입니다.





해당 문서 파일은 지은이가 ‘82109’이며, ‘Kennedy’라는 사람이 ‘2024년 12월 4일 오전 5:20:47’에 마지막으로 저장한 것으로 확인됩니다.





문서 파일 실행 시, 대한민국 국군 장병 대상 강연 내용으로 위장한 내용이 출력됩니다.





정상 문서로 위장했지만, 해당 문서 파일 실행 시 OLE 개체를 악용하여 다양한 데이터가 특정 경로에 드랍됩니다.

  • %TEMP%






해당 문서 파일에는 동아일보 기사로 위장한 링크가 설정되어 있으며, 클릭 시 특정 경로의 ‘hwp801.bat’(34ca15b188ccfc83c54658f06acc548b) 배치 파일을 실행합니다.





‘hwp801.bat’ 배치 파일은 특정 경로의 ‘hwp702.dat’(a7557684eb1ab6044fccf69b442a559f) 스크립트를 실행합니다.





이후 가짜 동아일보 기사 페이지를 띄워, URL을 클릭한 것이 정상적으로 동작한 것처럼 위장합니다.





(1) Fileless 공격 기법

실행되는 ‘hwp702.dat’(a7557684eb1ab6044fccf69b442a559f) 데이터 확인 시 파워쉘 스크립트가 존재합니다.





파워쉘 스크립트는 특정 경로의 ‘hwp701.dat’(4a89126a7e3190866b3eebeb8b8ee9b7) 데이터를 읽어옵니다.





‘hwp701.dat’ 확인 시 암호화된 데이터가 존재합니다.





암호화된 ‘hwp701.dat’ 데이터를 특정 키를 이용해서 복호화합니다.

  • 키 : 0x7A






복호화된 데이터는 쉘 코드로 확인됩니다.





복호화된 쉘 코드 데이터는 특정 메모리 공간에 작성되어 실행됩니다.





(2) 쉘 코드 행위 분석

쉘 코드는 특정 복호화 루틴을 거쳐서 PE 데이터를 생성 후 실행합니다. 최종적으로 실행되는 PE 데이터는 RokRAT 악성코드(18db9e11bd0829642df9f6774339fc85)로 확인되었습니다.

  • 키 : 0x29






SMBIOS(System Management BIOS) 레지스트리를 이용하여 BIOS 버전, 제조사, 시스템 시리얼 넘버, 메인보드 제품명 등 시스템 정보를 수집합니다.





쉘 코드 행위는 1분 주기로 감염 시스템 스크린샷을 특정 경로에 저장합니다. %temp% 경로에 [랜덤 8자리 헥사 값].tmp 이름으로 저장됩니다.

  • 스크린샷 파일 이름 : %04X%04X.tmp






저장된 [랜덤 8자리 헥사 값].tmp 파일 확인 시 jpeg 형식의 이미지 데이터로 확인됩니다. 확장자만 변경해서 열람 시 분석 중인 화면이 캡쳐된 것을 확인할 수 있었습니다.





수집된 데스크탑 스크린샷 데이터는 C2 서버로 전송됩니다.





데이터 전송을 위해 사용되는 Content-Type에는 특정 문자열(--wwjaughalvncjwiajs--)이 포함되며, 통신 시 사용되는 UserAgent 데이터는 구글봇으로 위장하고 있습니다.

  • multipart/form-data;boundary=--wwjaughalvncjwiajs--
  • User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +hxxp://www.google.com/bot.html)






주기적으로 감염된 시스템의 스크린샷 데이터를 수집하지만, 그외에도 C2 서버의 명령에 따라서 다양한 명령을 수행할 것으로 보입니다. 특정 확장자의 문서, 녹음 파일 정보를 유출 등이 가능할 것으로 보입니다.





또한, C2 서버의 명령에 따라서 다양한 커맨드 명령어를 수행이 가능해 보입니다.





분석 시점에는 yandex 클라우드 서버와 통신을 하며 수집된 정보를 전송했지만, C2 명령에 따라 pcloud 및 dropbox 클라우드 서버와 통신하도록 설계되었을 가능성이 있습니다. C2 서버의 ‘download’ 경로에서 데이터를 받아서 C2 명령어를 수행하고, C2 서버의 ‘upload’ 경로에 수집된 데이터를 전송하는 것으로 보입니다.





사례 2. Konni 공격 사례 분석(2025년 1월)

금융위원회 금융정보분석원으로 위장했으며, ‘가상자산사업자 자금세탁방지 감독 방향’ 관련 내용으로 악성코드 실행을 유도했습니다. 한글 문서로 위장한 바로 가기 파일(*.lnk) 실행 시, 공격자가 정의한 복호화 루틴을 이용하여 악성 행위에 활용될 데이터를 생성 후 정상 한글 문서를 실행합니다. 이후, 백그라운드에서는 ‘start.vbs’ VB 스크립트가 실행되며, 세 개의 배치 파일(44462422.bat, 82774072.bat, 94320159.bat)이 실행됩니다.





  • '44462422.bat’ 배치 파일은 di3726.zip 다운로드 1회 요청 후 1.bat 배치 파일 실행
  • '82774072.bat’ 배치 파일은 특정 경로의 파일 및 폴더 정보와 시스템 정보 수집 후 암호화 하여 C2 서버 전송
  • ‘94320159.bat’ 배치 파일은 57초마다 BmrdX.cab 다운로드 요청 후 temprun.bat 배치 파일 실행


상세 분석

로그프레소는 2025년 1월 말부터 유포된 것으로 보이는 ‘가상자산사업자 검사계획민당정회의 발표자료_FN2.hwp.lnk’(e37c8f6aba686aab3d7ecedbd1d0ef43) 파일을 수집하였습니다. 해당 문서의 내용은 가상자산 사업자의 자금 세탁 방지를 위한 감독 방향에 관한 것입니다.





바로 가기 파일 실행 시 관련 내용의 정상 문서가 출력됩니다.





해당 문서는 지은이가 ‘국토해양부’이며, ‘admin’이라는 사람이 ‘2025년 1월 22일 오후 4:21:33’ 에 마지막으로 저장한 것으로 확인됩니다.





이처럼 정상적인 한글 문서가 출력되지만, 백그라운드에서 커맨드 명령어를 수행하도록 되어있습니다.





커맨드 명령어는 파워쉘 스크립트를 실행합니다. 파일 제거, 악성 행위를 위한 복호화 루틴, 압축 해제 등의 다양한 기능을 수행하는 함수가 정의되어 있습니다.





해당 파워쉘 스크립트는 공격자가 정의한 복호화 루틴을 통해 정상 한글 문서와 ‘possess.cab’(82d85f391c8a1aaa0a2b9500993156c5) 파일을 생성하고, 한글 문서를 실행합니다.

또한, ‘possess.cab’ 파일을 특정 경로에 압축 해제하고, ‘start.vbs’(3eac72d8dfab856788becf2cafc65328) VB 스크립트 파일을 실행하며, 이후, ‘가상자산사업자 검사계획민당정회의 발표자료_FN2.hwp.lnk’, ‘possess.cab’ 파일을 자가 삭제합니다.

  • Key : 0x2B, 0x72
  • C:\Users\Public\Documents






특정 경로에 압축 해제된 데이터로 여러 개의 배치 파일과 ‘start.vbs’, ‘unzip.exe’ 파일이 존재합니다.





실행되는 ‘start.vbs’ 코드는 다음과 같습니다. 특정 경로에 있는 ‘04711460.bat’(1b6eb87d8d52f699c89c2f6e7451bf28) 배치 파일을 실행합니다.

  • C:\Users\Public\Documents






‘04711460.bat’ 배치 파일 코드는 다음과 같습니다. 배치 스크립트 행위로는 레지스트리 등록, 특정 배치 파일(44462422.bat, 82774072.bat, 94320159.bat) 실행, f.txt 파일이 없으면 무한 루프 반복, 배치 스크립트 실행 반복 주기는 57초입니다.





지속 매커니즘 유지를 위해서 레지스트리를 등록합니다.





이후, ‘44462422.bat’(a68acc516eca9b2be1b89addd4f3f723) 배치 파일을 실행합니다. ‘44462422.bat’ 배치 스크립트는 ‘84664491.bat’(b927851f70d91fd4a1398161fd0a7b78) 배치 파일을 이용하여 특정 C2 서버에서 di3726.zip 데이터를 다운로드합니다.

다운로드된 di3726.zip 데이터를 비밀번호 ‘a0’를 이용하여 압축 해제 후 ‘1.bat’ 배치 파일을 실행합니다. 분석 시점에는 di3726.zip 데이터가 다운로드 되지 않아 추가적인 ‘1.bat’ 배치 파일의 행위는 분석이 불가능하였습니다.





다운로드 시 사용되는 ‘84664491.bat’ 배치 파일은 호출될 때 특정 인자 값을 전달 받습니다.

  • 84664491.bat "URL" "파일 경로" "모드”






‘84664491.bat’ 배치 파일은 특정 C2 서버에서 추가적인 데이터를 다운로드하는 행위에 사용되며 호출 시 세 가지 인자 값(URL, 파일 경로, 모드)을 전달 받습니다. 모드 인자 값은 0과 1이 존재하며, 0이면 C2 통신에 사용되는 URL의 파라미터 값이 암호화되지 않고 사용되고, 1이면 C2 통신에 사용되는 URL의 파라미터 값을 암호화하여 사용합니다. 암호화 시에는 RC4 알고리즘을 이용하며 현재 시간의 Ticks 값(Get-Date.Ticks)을 키 값으로 이용합니다.





이후, '82774072.bat’(12ac9f346e9ac80c7596bccbf8cd9f9c) 배치 파일을 호출합니다. 해당 배치 파일은 다운로드, 문서, 바탕화면 경로의 파일 및 폴더 정보를 수집합니다. 추가적으로 systeminfo 명령어를 이용해서 시스템 정보를 수집합니다. 수집된 정보는 d1.txt, d2.txt, d3.txt, d4.txt 이름으로 저장됩니다.





수집된 정보는 특정 C2 서버로 '96508848.bat’(8b3f90264310fb44b2fb584392a53b8d) 배치 파일을 이용하여 전송됩니다.





'96508848.bat’ 배치 파일은 수집된 정보를 C2 서버로 업로드하는 스크립트입니다.





POST 메서드를 이용하여 쿼리 문자열(fn, fd, r)을 본문에 추가하여 C2 서버로 전송합니다. RC4 알고리즘을 이용하여 암호화되며, 키 값으로는 현재 시간의 Ticks 값을 이용합니다. 업로드 후 서버 응답 값이 200이라면, ‘upok.txt’ 파일을 생성합니다. 중복 실행을 방지하기 위한 루틴입니다.

  • hxxp://forum.flasholr-app.com/wp-admin/src/upload.php
  • fn=<암호화된_파일이름>&fd=<암호화된_파일내용>&r=<현재시간_Ticks>






이후, ‘94320159.bat’(fa79b143af6bfc64e52e667cd8a2eb66) 배치 파일을 실행합니다. ‘94320159.bat’ 배치 파일은 ‘84664491.bat’ 배치 파일을 이용하여 특정 C2 서버에서 BmrdX.cab 파일을 다운로드 후 압축 해제하여 temprun.bat 배치 파일을 실행 이후, BmrdX.cab 파일을 자가 삭제합니다.

분석 시점에는 BmrdX.cab 데이터를 수집하지 못해 temprun.bat 배치 파일의 추가적인 행위 분석은 진행되지 않았습니다. 57초 주기로 다운로드 후 실행되는 temprun.bat 배치 파일의 스크립트 코드에 따라서 다양한 악성 행위 수행이 가능합니다.

  • hxxp://forum.flasholr-app.com/wp-admin/src/list.php






IoC

[APT37 관련]

md5
835a74b3c33a66678c66118dbe26dccf  북한 공작에 물든 대한민국.hwp
81051bcc2cf1bedf378224b0a93e2877  hwp601.dat
4a89126a7e3190866b3eebeb8b8ee9b7  hwp701.dat
a7557684eb1ab6044fccf69b442a559f  hwp702.dat
34ca15b188ccfc83c54658f06acc548b  hwp801.bat
5b819ad2bcd8ad68af558e970d1d325e  decoded.bin
18db9e11bd0829642df9f6774339fc85  shellcode_decoded_pe.bin

C2 - 악성코드 내부 클라우드 서버 접속 구조 정의
hxxps://cloud-api.yandex.net/v1/disk/resources/upload?path=%s&overwrite=%s
hxxps://cloud-api.yandex.net/v1/disk/resources/download?path=%s
hxxps://content.dropboxapi.com/2/files/upload
hxxps://content.dropboxapi.com/2/files/download
hxxps://api.pcloud.com/uploadfile?path=%s&filename=%s&nopartial=1
hxxps://api.pcloud.com/getfilelink?path=%s&forcedownload=1&skipfilename=1


[Konni 관련]

md5
e37c8f6aba686aab3d7ecedbd1d0ef43  가상자산사업자 검사계획민당정회의 발표자료_FN2.hwp.lnk
82d85f391c8a1aaa0a2b9500993156c5  possess.cab
3eac72d8dfab856788becf2cafc65328  start.vbs
1b6eb87d8d52f699c89c2f6e7451bf28  04711460.bat
a68acc516eca9b2be1b89addd4f3f723  44462422.bat
12ac9f346e9ac80c7596bccbf8cd9f9c  82774072.bat
b927851f70d91fd4a1398161fd0a7b78  84664491.bat
fa79b143af6bfc64e52e667cd8a2eb66  94320159.bat
8b3f90264310fb44b2fb584392a53b8d  96508848.bat
f789c4e68c549d97fe40179b1777a39b  46133257.bat
3eac72d8dfab856788becf2cafc65328  start.vbs

C2
forum.flasholr-app.com
teamfuels.com

hxxp://forum.flasholr-app.com/wp-admin/src/upload.php
hxxp://forum.flasholr-app.com/wp-admin/src/list.php?f=%COMPUTERNAME%.txt
hxxps://teamfuels.com/modules/inc/get.php?ra=iew&zw=lk0100

둘러보기

더보기

[위협 분석] 교통 법규 위반 안내를 사칭한 스미싱 공격 사례

해당 메시지에 포함된 링크를 클릭하면 정부기관을 사칭한 페이지로 연결되며, 이후 추가 악성 앱 설치를 요구하는 단계가 진행됩니다. 이를 통해 공격자는 개인정보를 탈취하거나, 원격으로 모바일 디바이스에 접근하는 등의 시도가 가능합니다.

2025-02-11