말레이시아를 겨냥한 APT 캠페인에 사용된 고급 기법 자세히 살펴보기

Elastic Security 연구팀은 말레이시아를 중심으로 한 APT 캠페인에 사용된 고급 기법을 집중적으로 연구했습니다. 배후에 있는 사람, 공격 방식, 관찰된 MITRE 공격® 기법 및 침해 지표에 대해 알아보세요.

9분 읽기캠페인
말레이시아를 겨냥한 APT 캠페인에 사용된 고급 기법 자세히 살펴보기

Elastic Security Intelligence & 분석팀은 다양한 종류의 공격적 혁신을 연구하고 있으며, 최근에는 원격 템플릿, VBA 코드 회피, DLL 사이드 로딩 기술을 활용한 활동 그룹에 집중하고 있습니다. 코드 유사성과 공유된 전술, 기법 및 절차(TTP)를 기반으로 팀은 이 활동이 중국 기반 그룹인 APT40 또는 리바이어던과 연관되어 있을 가능성이 있다고 평가했습니다. 이 그룹의 캠페인은 말레이시아 정치 위기( 2020 )와 관련된 미끼로 말레이시아 정부 관계자를 표적으로 삼은 것으로 보입니다.

공격의 해부학

이 그룹은 지능형 지속 위협(APT) 캠페인을 시작하기 위해 피싱 미끼 첨부 파일로 Microsoft Word 문서를 전달했을 가능성이 높습니다. 미끼에 사용된 이미지(그림 2)는 말레이시아 블로거가 공유한 방송 공지사항(그림 1)을 바탕으로 제작된 것으로 보입니다. 루머 이미지에는 동일한 방송 시간이 포함되지만 날짜와 연설 주제는 제거됩니다. 이 첨부파일을 열면 미끼 문서가 표시되면서 백그라운드에서 다음 작업을 수행합니다:

  • 루어 문서는 원격 템플릿 RemoteLoad.dotm을 다운로드합니다.
  • 원격 템플릿이 VBA 매크로 코드를 실행합니다.
  • VBA 매크로 코드는 두 개의 임베디드 base64 인코딩 DLL(sl1.tmp 및 sl2.tmp)의 압축을 풀고 c:\users\public\에 실행합니다.

이 기술은 템플릿 주입이라고 하며, 가마레돈 그룹을 상대로 방어 플레이하기 블로그 게시물에서 기억하실 수 있습니다. 이는 공격자가 이메일 게이트웨이와 같은 경계 제어를 우회하기 위해 사용하는 효과적인 접근 방식입니다.

두 임베디드 DLL(sl1.tmp 및 sl2.tmp)은 모두 유사하며 동일한 함수 이름을 내보냅니다: RCT 및 RCP입니다. 첫 번째 DLL(sl1.tmp)은 LogiMailApp.exe라는 양성 실행 파일과 관련 라이브러리 LogiMail.dll을 다운로드하는 데 사용됩니다, 를 실행하는 데 사용되며, 두 번째 DLL(sl2.tmp)은 LogiMailApp.exe를 실행하는 데 사용됩니다, 곧 다룰 고유한 DLL 검색 순서 취약성으로 인해 자동으로 LogiMail.dll을 실행하려고 시도합니다.

파일 이름파일 유형크기(바이트)MD5컴파일 시간
LogiMailApp.exeWin32 EXE311656850a163ce1f9cff0367854038d8cfa7e2012-09-26 22:13:13+00:00
LogiMail.dllWin32 DLL105984b5a5dc78fb392fae927e9461888f354d2020-06-03 04:08:29+00:00
sl1.tmpWin32 DLL3072ccbdda7217ba439dfb6bbc6c3bd594f82019-11-29 17:15:29+00:00
sl2.tmpWin32 DLL3072dbfa006d64f39cde78b0efda1373309c2019-11-29 21:23:44+00:00

표 1: 삭제된 파일 메타데이터

이 구현은 행동의 특이성 때문에 연구원들에게 눈에 띄었습니다:

  • Microsoft Office 응용 프로그램 winword.exe는 sl1.tmp 및 sl2.tmp DLL을 로드할 때 LoadLibraryA 메서드를 사용하는데, 이는 매우 드문 경우입니다.
  • 이러한 DLL은 명시적 명령을 실행하거나 매우 드물게 CallWindowProcA 메서드를 사용하여 URL에서 페이로드를 설치합니다.
  • 실행 후 두 DLL 모두 삭제됩니다.

임베디드 DLL

임베디드 DLL인 sl1.tmp 및 sl2.tmp는 RCP 및 RCT 기능을 내보내는 매우 제한된 기능을 가지고 있습니다. RCP 함수는 WinExec 메서드를 구현하여 명령을 실행하고, RCT 함수는 URLDownloadToFileA 메서드를 사용하여 지정된 URL에서 파일을 다운로드합니다.

백도어에 DLL 사이드 로딩

sl1.tmp가 다운로드하고 sl2.tmp가 실행하는 LogiMailApp.exe는 사이드 로딩이라고 하는 DLL 검색 순서 하이재킹에 취약하며, 동일한 디렉터리에서 발견되면 자동으로 LogiMail.dll을 검색하고 실행합니다. DLL 검색 주문 하이재킹의 형태는 많은 타사 소프트웨어 애플리케이션에서 사용할 수 있습니다. 이 경우 검색 순서 하이재킹은 다음과 같은 주목할 만한 기능을 내보내는 백도어를 로드하는 데 사용되었습니다:

공격자가 만든 바이너리 LogiMail.dll은 이 샘플의 실행 흐름에 중요한 로직이 포함된 함수 DllGetClassObject를 내보냅니다:

  1. AES로 암호화된 2단계 오브젝트를 %TEMP%~liseces1.pcs에 다운로드합니다.
  2. 하드코딩된 문자열의 SHA256에서 128비트 AES 키와 초기화 벡터를 도출합니다.
  3. ReadFile 및 CryptDecrypt 함수를 사용하여 메모리에서 %TEMP%~liseces1.pcs를 읽고 해독합니다.
  4. 디스크에서 %TEMP%~liseces1.pcs 삭제

2단계 백도어

복호화된 2단계 백도어는 메모리에 매핑된 다음 원래 진입점(OEP)이 호출되어 파일 시스템 검색을 기반으로 한 탐지 성공을 우회합니다.

페이로드 스테이징 서버와 2단계 인프라는 모두 동적 DNS를 사용합니다:

이 페이로드는 다음 기능을 지원합니다:

  • 기본 디버그 방지 검사
  • 시스템 및 사용자 검색
  • 명령줄을 통한 실행
  • 파일 검색, 업로드, 다운로드
  • 실행 레지스트리를 통한 지속성
  • 동일한 AES 키를 사용하여 C2 트래픽 암호화

가능한 APT40/리바이어던 연결 가능성

올해 초 말레이시아 컴퓨터 긴급 대응팀(MyCERT)은 자국을 겨냥한 스파이 활동과 관련된 주의보를 발령했습니다. 이 보고서에는 다양한 TTP가 나열되어 있으며 APT40/Leviathan으로 알려진 위협 그룹과 일치하는 여러 샘플 및 기타 기술 지표가 포함되어 있습니다.

이 샘플은 원격 템플릿, 매크로 사용, DLL 사이드 로딩 기술, 명령 및 제어를 위한 동적 DNS가 포함된 인메모리 임플란트 활용과 같은 특정 TTP를 사용하여 말레이시아 피해자들을 표적으로 삼는 지속적인 추세를 따르고 있습니다. 보다 구체적으로, 이 미끼의 2단계 임플란트는 고유한 문자열과 URL 참조를 공유하며 이전 APT40/Leviathan에 대한 보고와 관련된 유사한 기능을 포함하고 있습니다. 이러한 유사점을 바탕으로 저희 인텔리전스 & 분석팀은 이 활동이 APT40/Leviathan과 관련이 있다고 중간 정도의 확신을 가지고 평가하고 있습니다.

MyCERT 샘플로 문자열 유사성을 이식합니다:

  • /list_direction
  • /post_document
  • /post_login
  • 원격 파일 %s을(를) 열지 못했습니다: %s
  • 파이프 열기 실패 %s
  • 경로 읽기 실패 %s 다운로드
  • %02X-%02X-%02X-%02X-%02X-%02X
  • Software\Microsoft\Windows\CurrentVersion\Run
  • ntkd

결론

이 게시물에서는 고도로 조직화된 공격자의 소행일 가능성이 가장 높은 최근 샘플을 강조했습니다. 이와 같은 활동 그룹은 익스플로잇 이후 혁신의 성숙도가 높다는 점에서 모두가 주목해야 할 중요한 그룹입니다. 오늘날의 최첨단 TTP가 내일은 누구나 사용할 수 있는 평범한 것이 될 수 있으므로 이러한 이벤트를 통해 배우는 것이 중요합니다.

이러한 인사이트를 공유함으로써 인식을 제고하고 전 세계의 데이터를 공격으로부터 보호하는 데 지속적으로 집중할 수 있기를 바랍니다. 조직을 더욱 지원하기 위해 아래에 관찰된 모든 MITRE ATT&CK® 기술 및 침해 지표(IoC)를 추가했습니다.

MITRE ATT&CK® 기술

타협 지표(IOC)

파일 이름 및 경로

Bubar Parlimen.zip
Bubar Parlimen.docx
RemoteLoad.dotm
C:\Users\Public\sl1.tmp
C:\Users\Public\sl2.tmp
C:\Users\*\AppData\Local\Temp\~liseces1.pcs
C:\Users\*\AppData\Local\Microsoft\Office\LogiMailApp.exe
C:\Users\*\AppData\Local\Microsoft\Office\LogiMail.dll

레지스트리 키

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ntkd

URL

hxxps[:]//armybar[.]hopto[.]org/LogiMail.dll
hxxps[:]//armybar[.]hopto[.]org/LogiMailApp[.]exe
hxxps[:]//armybar[.]hopto[.]org/Encrypted
hxxp[:]//tomema.myddns[.]me/postlogin
hxxp[:]//tomema[.]myddns[.]me/list_direction
hxxp[:]//tomema[.]myddns[.]me/post_document

IP

104[.]248[.]148[.]156
139[.]59[.]31[.]188

HTTPS 인증서

74b5e317527c93539dbaaf84d6a61da92a56012a

해시

523cbdaf31ddc920e5b6c873f3ab42fb791fb4c9d1f4d9e6a7f174105d4f72a1
ab541df861c6045a17006969dac074a7d300c0a8edd0a5815c8b871b62ecdda7
145daf50aefb7beec32556fd011e10c9eaa71e356649edfce4404409c1e8fa30
93810c5fd9a287d85c182d2ad13e7d30f99df76e55bb40e5bc7a486d259810c8
925f404b0207055f2a524d9825c48aa511199da95120ed7aafa52d3f7594b0c9
feca9ad5058bc8571d89c9d5a1eebce09e709cc82954f8dce1564e8cc6750a77
06a4246be400ad0347e71b3c4ecd607edda59fbf873791d3772ce001f580c1d3
77ef350639b767ce0a748f94f723a6a88609c67be485b9d8ff8401729b8003d2

YARA

rule APT_APT40_Implant_June2020 {
   meta:
       version = "1.0"
       author =  "Elastic Security"
       date_added = "2020-06-19"
       description = "APT40 second stage implant"
    strings:
        $a = "/list_direction" fullword wide
        $b = "/post_document" fullword wide
        $c = "/postlogin" fullword wide
        $d = "Download Read Path Failed %s" fullword ascii
        $e = "Open Pipe Failed %s" fullword ascii
        $f = "Open Remote File %s Failed For: %s" fullword ascii
        $g = "Download Read Path Failed %s" fullword ascii
        $h = "\\cmd.exe" fullword wide
    condition:
        all of them
}

참고 자료