APT3 공격 분석과 ARES를 이용한 공격 시뮬레이션
2019, Jul 15    

APT3은 마이터(Mitre)에서 진행하는 여러 연구 프로젝트에서 테스트 데이터로 활용하기 위해 2017년부터 분석해 활용하고 있으며, 2018년 가을부터 개발된 ATT&CK VIEW에서 APT3 공격 플랜을 접목해서 활용 방안을 제시하고 있다. 본 글에서는 알려진 APT3 그룹의 공격 기법을 분석해 마이터의 테크닉 번호(Txxxx)를 매칭시켜 설명하고, ARES에서 주요 공격을 적용해 재현해보겠다.

APT3 은 Mitre에서 G0022로 아이디가 부여되어 있으며, Gothic Panda, Pirpi, UPS Team, Buckeye, Threat Group-0110, TG-0110라고도 불린다. 특히 중국의 국가안전부에 기반을 두고 있는 위협 그룹이라고 밝혀졌으며, 캠페인 Operation Clandestine Fo,x Operation Clendestine Wolf, and Operation Double Tap 등과 연관되어 있다. 2015년에 미국을 공격하다 홍콩의 정치단체로도 공격을 확장했다.

   

APT3 공격 분석


마이터에서 분석한 APT3의 3단계 공격 절차는 아래와 같다. 공격 1단계는 초기 감염 절차이고, 2단계는 네트워크 전파, 3단계는 정보 유출이다.

APT3 3단계 공격 절차

그림 - APT3 3단계 공격 절차 (Mitre)

   

공격 1단계 - 초기 감염


5개 사건 분석을 통해 초기 감염 기법을 분석한 것이다. 궁극적으로 취약점이나 사회공학기법을 통해 Pirpi나 PlugX 악성코드를 설치한다.

1. IE CVE-2014-6332

  • 악성 사이트로 접속하게 하는 링크가 포함된 스피어피싱 메일을 이용한 유입
  • 해당 악성 사이트는 CVE-2014-6332 취약점이 존재하며 Powershell과 VBScript가 실행되도록 함
  • 파워쉘 스크립트는 Install.exe라는 프로그램을 다운로드 및 실행하여 test.exe과 doc.exe 두 파일을 로컬 시스템 아래의 경로에 드롭함.( 단, Windows XP에는 C:\Users\Public라는 경로가 존재하지 않아 공격이 실패함)
  • 2014년에는 test.exe와 유사한 원리로 Pirpi를 다운로드하는 것이 확인됨

    1. T1068 - Exploit Vulnerability doc.exe은 CVE-2014-4113(Windows Kernel Exploit)을 이용하여 SYSTEM 권한을 획득, 그 후 그 권한으로 test.exe 실행
    2. test.exe를 실행 하면:
      • T1033 - System Owner/User Discovery / T1059 - Command-Line Interface 아래 명령어로 본인의 권한 확인
           cmd.exe /c whoami
        
      • T1053 - Scehduled Task schtask 명령어를 이용하여 자기 자신(test.exe)을 SYSTEM 권한으로 작업 스케줄러에 등록
           schtasks /create /tn "mysc" /tr C:\Users\Public\test.exe /sc ONLOGON /ru "System" 
        
    3. test.exe 감염 이후:
      • %temp%\notepad.exe, %temp%\notepad1.exe, %temp%\notepad2.exe, %temp%\newnotepad.exe 4개의 파일 생성
      • T1041 Exfiltration Over Command and Control Channel %temp%\note.txt 파일을 유출 (정보 등이 담겨 있는 것으로 예상됨)
      • T1095 Standard Non-Application Layer Protocol, T1090 Connection Proxy SOCKS5 프로토콜을 이용해 TCP Port 1913, 특정 IP로 연결 시도
      • 패킷은 05 01 00로 표시되며, 서버로부터의 응답이 05 00로 시작하는지 검증
      • 서버로부터의 응답(각 커맨드)에 해당하는 기능을 수행
           Command ID  Description
           00 00 00    Content after command ID is written to: 
                   C:\Users\[Username]\AppData\Local\Temp\notepad1.exe
           00 00 01    Deletes the files: 
                   C:\Users\[Username]\AppData\Local\Temp\notepad.exe,
                   C:\Users\[Username]\AppData\Local\Temp\newnotepad.exe
           00 00 02    Malware exits
           00 00 03    Malware downloads the URL that follows the command ID. The file is saved to: 
                   C:\Users\[Username]\AppData\Local\Temp\notepad.exe
           00 00 04    Content after command ID is written to: 
                   C:\Users\[Username]\AppData\Local\Temp\notepad2.exe
           00 00 05    The files notepad1.exe and notepad2.exe are concatenated together and written to 
                   C:\Users\[Username]\AppData\Local\Temp\newnotepad.exe and executed
           00 00 06    The contents of the following file is sent to the server: 
                   C:\Users\[Username]\AppData\Local\Temp\note.txt
           00 00 07    The string following the command ID is executed using "cmd /C" and results are sent to server
        

2. Windows Shortcut File + RAR

  • 2015년~2016년 사이, zip,rar 아카이브 파일을 이용
  • T1023 - Shortcut Modification 아카이브는 Internet Explorer 로고를 갖는 바로가기 파일을 포함
  • 해당 바로가기 링크를 클릭 시 Pirpi RAT를 다운로드함

3. mail+RAR (ttcalc.exe)

  • 2014년 개발자의 구직 명목으로 RAR 아카이브를 메일로 보내면서, 개발 프로그램으로 위장하여 바이너리 첨부 (ttcalc.exe)
    • ttcalc.exe를 실행 하면:
      • Pirpi를 mt.dat라는 이름으로 %userprofile%\Application\mt.dat에 생성
      • 특정 배치파일을 %userprofile%\start menu\program files\startup\vc.bat에 생성
      • T1085 - Rundll32 해당 vc.bat 배치파일의 내용은 mt.dat을 rundll32.exe를 이용해 실행시키는 스크립트
        @echo off
        cmd.exe /C start rundll32.exe "C:\Documents and Settings\admin\Application Data\mt.dat" UpdvaMt
        

4. mail+RAR (ttcalBAK.exe)

  • 피싱 메일을 이용해 암호화된 Self-Extracting RAR Archive를 유포하며, 실행하면 ttcalBAK.exe 이라는 바이너리를 드롭
    • ttcalBAK.exe를 실행 하면:
      • T1073 - DLL Side-Loading 악성코드인 PlugX DLL을 %AllUserProfile%\chrome_frame_helper에 생성
      • DLL Side-Loading을 통해 DLL이 로드되면서 PlugX가 실행됨

5. Flash Exploit

   

공격 2단계 - 네트워크 전파


공격 1단계에서 설치한 악성코드(RAT)는 아래와 같은 기능을 수행한다. 마이터에서는 공격 2단계, 3단계에 해당하는 기법을 각 테크닉 번호별로 윈도우 명령어, 코발트 스트라이크, 메타스플로잇에서 어떻게 이용할 수 있는지 공격 기법을 액셀시트로 정리해서 제공하고 있다. 다음은 공격 기법을 간략하게 정리한 것이다.

  • Discovery
    • T1083 Data from Local System 로컬 시스템 내 정보 조회
    • T1087 Account Discovery 사용자 계정 정보 조회
    • T1082 System Information Discovery 시스템 정보 조회
    • T1069 Permission Groups Discovery 특정 권한을 가진 사용자 그룹 정보 조회 (단, Active Directory 환경 내에 있다는 가정 하에 Domain Admins그룹의 정보 조회)
    • T1016 System Network Configuration Discovery 시스템 내 네트워크 구성 정보 조회
    • T1049 System Network Connection Discovery 시스템 내 네트워크 연결 정보 조회
    • T1135 Network Share Discovery 시스템 내 네트워크 공유 정보 조회
    • T1018 Remote System Discovery 원격 시스템 정보 조회 (단, ntlst /dclist 의 경우 지정된 Domain 내의 DC 리스트를 조회하는 명령어로, Domain Controller의 권한이 없으면 실행 불가능)
    • T1057 Process Discovery 시스템 내 프로세스 정보 조회
  • Local Privilege Escalation
    • APT3에서 권한 상승에 취약점 CVE-2014-4113 Windows Kernel Exploit을 이용
    • ATT&CK VIEW 플랜에는 메타스플로잇을 이용하는 경우 bypass 모듈 이용
    • 또는 PowerUp 이용
    • 이런 공격 기법에는 아래와 같은 테크닉이 적용됨.
      • T1088 UAC bypass
      • T1068 Exploit Vulnerability
      • T1044 File System Permissions Weakness
      • T1034 Path Interception
      • T1058 Service Registry Permissions Weakness
      • T1038 DLL Search Order Hijacking
  • Credential Access
    • T1003 - Credential Dumping
      • pwdump의 커스텀 버전 사용
      • Mimikatz의 커스텀 컴파일 버전 사용
    • T1081 - Credentials in Files
      • ChromePass 사용(Nirsoft에서 제작한 프로그램)
      • Lazagne 사용 (오픈소스 소프트웨어)
    • T1056 - Input Capture Keylogger 사용
    • T1027 - Obfuscated Files or Information
      • Keylogger를 통해 수집한 키보드 입력 정보를 thumbcache_96.dbx라는 이름으로 암호화하여 저장
  • Persistence
    • T1053 - Scheduled Task 최초 유입 시 지속성을 위해 다운로드한 악성코드를 실행하는 커맨드 -> 스케줄러에 등록함
    • T1060 - Registry Run Keys/Start Folder 최초 유입 시 지속성을 위해 배치파일을 시작 폴더에 위치시킴
    • T1015 - Accessibility Features sethc.exe (Sticky Keys Binary)의 레지스트리 값 변경 및 cmd.exe 로드
    • T1076 - Remote Desktop Protocol Enable RDP
    • T1136 - Create Account support_388945a0이라는 계정을 생성하여 Local Admin Group에 추가
  • Lateral Movement / Remote Copy and Execution 아래 내용은 마이터에서 분석한 것과 다소 다름.
    • T1077 Windows Admin Shares, T1078 Valid Accounts, T1035 Service Execution
      • net use를 통해 유효한 계정으로 접근 시도
        copy evil.exe \\COMP\ADMIN$\System32\acachsrv.exe
        sc \\COMP create acachsrv binPath= "C:\Windows\System32\acachsrv.exe" start= auto DisplayName= "DisplayName"
        sc \\COMP start acachsrv
        
    • T1105 - Remote File Copy, T1021 - Remote Services

      • RemoteCMD라는 프로그램(PSEXEC와 유사한 프로그램)을 이용해 원격 시스템에 파일 업로드 / 서비스 생성 등을 수행

   

공격 3단계 - 정보 유출


정보 유출에 사용된 테크닉을 정리한 것으로, 마이터에서 분석한 것과 다소 차이가 있다.

  • T1005 Data from Local System Office 관련 Documents들을 식별 및 수집
  • T1002 Data Compressed 중국어 버전의 WinRAR을 Drop 후 그를 이용해서 압축을 수행
  • T1074 Data Staged 압축된 데이터는 휴지통으로 이동시킴(Recycle bin)
  • T1043 Commonly Used Port Port 443 / HTTPS 프로토콜을 이용하여 압축된 데이터를 전송
  • 자체 암호화 로직을 이용한 정보 유출 (마이터)
    • T1022 Data Encrypted
    • T1048 Exfiltration Over Alternative Protocol
    • T1041 Exfiltration Over Command and Control Channel

   

ARES를 이용한 공격 시뮬레이션


APT3 3단계 공격 절차 (Mitre) 그림에서 공격 2단계를 다시 그린 것이다. 호스트를 장악한 뒤, 권한에 따라 탐색 및 정보 수집(Discovery) 과정이 달라지며, 각 수집한 정보에 따라 내부 시스템 침투 기법과 추가 악성코드 설치 기법이 달라진다. 즉 다양한 시나리오가 나올 수 있다. 이번 공격 시나리오에서는 수집한 패스워드 해시를 기반으로 다른 내부 시스템으로 침투하고, 추가 악성코드가 설치된다.

APT3 공격 2단계 그림 재구성

그림 - APT3 공격 2단계 그림 재구성

다음은 ATT&CK VIEW 에서 작성한 공격 2단계 네트워크 전파 부분을 시나리오 형태로 구체화해서 ARES에 적용한 것이다. 아래는 적용한 테크닉을 표로 정리한 것으로, 마이터에서 분석하고 테스트 한것과 아래와 같이 크게 3가지 부분에서 차이가 있다. 표에서 굵게 표현한 것은 ARES에서 추가 하거나 대체한 것이고, 흐린 글씨로 표현한 것은 이번 시나리오에서 사용하지 않는 것이다.

  1. Discovery(탐색) 과정을 권한별로 실행하도록 확장
  2. Powerup이나 메타스플로잇 모듈을 이용하는 것 대신 윈도우 정상 파일과 경로 생성 트릭을 이용한 권한 상승
  3. Credentail Access 단계에서 획득한 패스워드를 기반으로 Pass the hash 공격 기법 수행

APT3 공격 2단계에서 이용하는 공격 기법을 ARES에 적용한 예

그림 - APT3 공격 2단계에서 이용하는 공격 기법을 ARES에 적용한 예

공격 시나리오 예는 아래와 같다. 이 시나리오는 메타스플로잇이나 기타 다른 공격 플랫폼은 이용하지 않고, 오롯이 ARES의 서버-에이전트로 테스트한 것이다.

  1. [TARGET A] 정보 수집과 동시에 T1003 Credential Dumping 기법으로 A시스템에 접속한 이력이 있는 B시스템의 인증값을 획득한다.
  2. [ATTACKER] 공격자는 B 시스템의 인증 해시와 이 해시 값을 사전 기반으로 계산해 취약한 패스워드를 얻는다.
  3. [ATTACKER] 공격자는 수집한 해시 값을 이용해 TARGET A에서 Pass the Hash 공격을 수행하도록 배치 파일을 생성한다.
  4. [ATTACKER] 취약한 패스워드를 이용해 T1035 Service Execution 기법으로 TARGET B에서 악성 파일을 실행하고, Run Key를 등록하는 배치 파일을 생성한다.
  5. [TARGET A] 공격자 서버로부터 받은 배치 파일을 통해 Pass the Hash 공격을 수행해 실행 파일을 공유 폴더에 복사한다.
  6. [TARGET A] 공격자 서버로부터 받은 배치 파일을 통해 TARGET B에서 파일을 실행한다.
  7. [TARGET B] 악성 파일이 설치되고, 공격자 서버로 수집한 정보를 보낸다.

ARES 공격 시나리오

그림 - ARES 공격 시나리오

위 시나리오는 ARES를 이용해 Lateral Movement를 재현한 것이다. ARES에 대한 자세한 설명은 APT 시뮬레이터와 ARES 소개 글을 참고한다.

   

참고