Microsoft의 DDE (Dynamic Data Exchange) 메커니즘을 사용하여 매크로나 VBA 코드 대신 Microsoft Office 문서를 통해 Payload를 전달할 수 있다.
DDE?
Windows는 응요프로그램간에 데이터를 전송하는 여러가지 방법을 제공하고 있으며, 그 중 한 가지 방법이 DDE(Dynamic Data Exchange) 프로토콜을 사용하는 것이다.
DDE 프로토콜은 메시지 및 지침의 집합이다. 데이터를 공유하는 애플리케이션간에 메시지를 보내고 공유 메모리를 사용하여 애플리케이션 간에 데이터를 교환한다. 응용 프로그램은 일회성 데이터 전송 및 새 데이터를 사용할 수 있을 때 응용 프로그램이 서로 업데이트를 보내는 지속적인 교환을 위해 DDE 프로토콜을 사용할 수 있다.
DDE Protocol?
DDE 프로토콜은 응용 프로그램이 wParam 및 lParam 매개 변수를 사용하여 global atom 및 공유 메모리 핸들을 통해 더 큰 데이터 조각을 전달하는 방법을 정확하게 정의한다.
global atom은 문자열에 대한 참조로, DDE 프로토콜에서 atom은 데이터를 교환하는 애플리케이션, 교환되는 데이터의 특성 및 데이터 항목 자체를 식별한다.
Uses for Windows Dynamic Data Exchange.
일반적으로 응용 프로그램은 사용자가 데이터를 교환하는 응용 프로그램간에 링크를 설정하는 방법을 제공한다. 해당 링크가 설정되면 응용 프로그램은 사용자의 추가 개입없이 데이터를 교환한다.
Dynamic Data Exchange Message Flow.
일반적인 DDE 메시지 교환의 흐름은 아래와 같이 구성된다.
1 | 클라이언트 애플리케이션이 통신(대화)를 시작하고 서버 애플리케이션이 응답한다. |
2 | 응용 프로그램은 아래의 방법을 통해 데이터를 교환한다. (한가지 이상, 전부가 될 수 있다.) |
2.1 서버 응용프로그램은 클라이언트의 요청에 따라 클라이언트에 데이터를 보낸다. 2.2 클라이언트 응용 프로그램은 요청하지 않은 데이터를 서버 응용 프로그램을 보낸다. 2.3 클라이언트 애플리케이션은 데이터 항목이 변경 될 때마다 클라이언트에 알리도록 서버 애플리케이션에게 요청한다.(Warm Data Link) 2.4 클라이언트 애플리케이션은 데이터가 변경 될 때마다 데이터를 보내도록 서버 애플리케이션에게 요청한다. (Hot Data Link) 2.5 서버 응용 프로그램은 클라이언트의 요청에 따라 명령을 수행한다. |
|
3 | 클라이언트 또는 서버 애플리케이션이 통신(대화)를 종료한다. |
아래 도구를 사용하여 다양한 DDE 페이로드를 생성 할 수 있다.
1 | MetaSploit |
2 | Empire |
3 | CactusTorch DDE Auto |
4 | Office DDE Payload |
5 | Unicorn |
Dynamic Data Exchange Setting
References
1. Panagiotis Gkatziroulis - "DDE Payloads"
medium.com/red-team/dde-payloads-16629f4a2fcd
DDE Payloads
In October 2017 SensePost released an article which explained how it is possible arbitrary code to be executed from a Microsoft Word…
medium.com
2. Microsoft Docs - "About Dynamic Data Exchange"
docs.microsoft.com/ko-kr/windows/win32/dataxchg/about-dynamic-data-exchange?redirectedfrom=MSDN
About Dynamic Data Exchange - Win32 apps
This topic discusses transferring data between applications.
docs.microsoft.com
3. LogRhythm - "Dynamic Data Exchange (DDE): Detection and Response, Part 1"
logrhythm.com/blog/dde-detection-and-response-using-logrhythm-and-carbon-black-part-1/
Dynamic Data Exchange (DDE): Detection and Response, Part 1 | LogRhythm
Malicious actors have begun using Microsoft’s Dynamic Data Exchange (DDE) mechanism to deliver payloads via Microsoft Office documents instead of the traditional embedded macros or VBA code. Specially crafted Microsoft Office documents sent via email can
logrhythm.com
4. getadmx - "Dynamic Data Exchange"
Dynamic Data Exchange
Dynamic Data Exchange This policy setting controls the ability to use Dynamic Data Exchange (DDE) in Word. By default, DDE isn't allowed in Word. Allowing DDE isn't recommended because of security concerns. If you enable this policy setting, you can sel
getadmx.com