โดยปกติแล้ว การโจมตีเครื่อง Client หรือเครื่องเหยื่อใดๆผ่านการเปิดไฟล์ Microsoft Office ใดๆอย่าง Word, Excel มักจะเป็นการโจมตีโดยการฝัง script ผ่าน feature Macro เข้ามา ซึ่ง script ดังกล่าวมักจะเป็น VBScript โดยภายใน VBScript นั้นจะไปเรียก powershell หรือ payload อื่นใดข้างนอกอีกที แต่มาคราวนี้ในช่วง 2-3 อาทิตย์ที่ผ่านมา มีวิธีการโจมตีใหม่ที่เกิดขึ้นมา ชื่อว่า DDEAUTO Attack

TL;DR: เป็นวิธีการโจมตีแบบใหม่ใน Microsoft Office ที่ไม่พึ่ง Macro มี Malware หลายตัวเริ่มใช้งานแบบนี้แล้ว

นั่นคือนิยามการใช้งาน Dynamic Data Exchange (DDE) ซึ่งในที่นี้หมายความเราสามารถนำ DDE มาใช้ในการเรียกอีก application อื่นได้ด้วยนั่นเอง DDE เป็น Inter-Process Communication (IPC) mechanism ที่เก่าแก่ตั้งแต่ปี 1987, ซึ่งทำให้หากเรามีการ link document จาก windows program อื่น เมื่อมีการถูกเรียกขึ้นมา ตัว document นั้นจะไปเรียก information update จาก windows program ดังกล่าว ทางผู้ที่ค้นพบอย่าง SensePost กล่าวว่าเค้าค้นพบช่องทางการจะเรียก application อื่นนี้ผ่าน Excel ซึ่งต่อมาก็มีการหาความเป็นไปได้ใน Microsoft Word ต่ออีกที

DDEAUTO Attack in Word

โดยวิธีการทำนั้น ทำดังนี้

1. เปิด Microsoft Word ขึ้นมา

2. กด Ctrl + F9 (หรือ Insert tab -> Quick Parts -> Field, Choose = (Formula) แล้ว click ok. จากนั้น click ขวาที่ Field, แล้วเลือก Toggle Field Codes) จากนั้นจึงใส่คำสั่งเป็น

3. save ไฟล์

4. เมื่อเปิดไฟล์ขึ้นมา ตัวไฟล์จะมีการถามว่าจะทำการ update content หรือไม่ และจากนั้นจะถามว่ามีการรันคำสั่งภายนอกจะอนุญาตหรือไม่ หาก user ทำการตอบตกลงทั้ง 2 ครั้งตัว payload ก็จะทำงาน

DDEAUTO Attack in Outlook

เราสามารถโจมตีวิธีนี้ได้ใน Outlook 2013/2016 เช่นกัน โดยเริ่มจากสร้าง Document ที่มี DDEAUTO ไว้ก่อน จากนั้นให้ทำการเปิด Outlook ขึ้นมา แล้วไปที่ Format -> แล้วเปลี่ยนลักษณะของ message เป็นแบบ Rich Text

จากนั้นใส่ภาพอะไรก็ได้เข้าไป 1 ภาพ พอเสร็จแล้วให้ copy DDEAUTO จาก Document ที่กด Ctrl+F9 ไว้มาแปะไว้ใน Message body ของ Outlook เมื่อมี message ถามให้ตอบ ‘No’ จากนั้นส่งไปยังผู้รับ

เมื่อผู้รับได้รับแล้วทำการตอบ Reply มา ตัว Outlook จะขึ้น Dialog แบบเดียวกับที่ขึ้นใน Word เวลาเราทำการเปิดไฟล์แล้ว trigger DDEAUTO หาก user ตอบ yes 2 ครั้ง payload ของเราก็จะทำงานทันที

ซึ่งวิธีนี้เราสามารถใช้ DDEAUTO ใน Calendar invites ได้ด้วยเช่นกัน

ตัว payload ที่นิยมใช้

วิธีป้องกัน

ทาง SensesPost ได้ทำการติดต่อไปยัง Microsoft เพื่อแจ้งช่องโหว่ดังกล่าว แต่สิ่งที่เกิดขึ้นคือ Microsoft แจ้งว่า ‘มันไม่ใช่ Bug แต่มันเป็น Feature’ (=_=”) ทำให้นั่นหมายความว่าจะไม่มีการ patch จาก Microsoft แต่อย่างใดครับ แต่ Antivirus ของ Microsoft เองอย่าง Windows Defender กลับมองว่าไฟล์ที่มี DDEAUTO อยู่นั้นเป็น Malicious Document นะครับ ย้อนแย้งดีจริงๆ ส่วน Antivirus อื่นๆก็เริ่ม Detect document ใดๆที่มีการแทรก DDEAUTO ว่าเป็นการโจมตีแล้วเช่นกัน อย่าง Kaspersky เป็นต้นครับ อีกทั้งเราสามารถป้องกันได้ด้วยการ disable DDEAUTO ไปเลย ตาม script การเข้าไปแก้ไข registry ด้านล่างครับ

สรุปวิธีการป้องกัน

  • เวลามีอะไร popup ขึ้นมาให้อ่านก่อน และหากไม่รู้เรื่องให้ตอบ ‘NO’ ไปก่อน
  • Update Antivirus ให้ใหม่ที่สุด
  • ปิดการ auto update link (Options > Advanced, แล้วเอา checkmark ที่ “Update automatic links at open” ออก)

  • ทำการแก้ไข registry ต่างๆ

ถ้าเอาง่ายๆก็ registry file นี้เลยครับ(นำ content ไป save เป็นไฟล์นามสกุล .reg ครับ) ถ้าเอาละเอียดดูต่อจาก script ได้เลยครับ

รายละเอียด registry key แต่ละตัว

ตรวจจับด้วย Yara Rules

หากใครใช้ Next Generation Firewall แล้วต้องการตรวจจับ Document ที่มี DDEAUTO สามารถเอา Yara Rule ของ Nviso ไปใช้ได้เลยครับ

ตัวสร้างไฟล์ document ที่แทรก DDEAUTO เข้าไปครับ

https://github.com/xillwillx/CACTUSTORCH_DDEAUTO

ตัวอย่าง Malware ที่มีการใช้งาน DDEAUTO

http://contagiodump.blogspot.com/2017/10/dde-command-execution-malware-samples.html

Source::