จริงๆต้องบอกว่า CVE-2017-0199 นั้นเก่าพอสมควรมากแล้ว โดย CVE-2017-0199 ถูก publish ตั้งแต่เดือนเมษายน 2017 ทีนี้ผมทำ tutorial นี้ขึ้นมาเพื่อทดสอบทำการโจมตี Post Exploitation ใน Course Basic Penetration Testing เผื่อใครสนใจก็ลองดูครับ

1. สร้าง base64 command ขึ้นมา ในที่นี้สร้างโดยใช้ Msfvenom ครับ (หากใครยังไม่ได้สร้าง base64 encoder module ลองไปดูที่นี่ครับ)

2. สร้าง hta ขึ้นมา โดยในที่นี้ใช้ชื่อเป็น main.hta

3. สร้าง RTF file โดยใช้ Winword โดยภายในนั้นเป็นไฟล์ทดสอบการ link ไฟล์

4. ติดตั้ง apache2 ขึ้นมา และติดตั้ง module ต่างๆ

5. แก้ไข configure ใน virtual host ให้มีการรองรับ feature ของ DAV

6. นำไฟล์ที่สร้างในขั้นตอนที่ 3 ไปไว้ที่ /var/www/html/ms/

7. สร้างไฟล์ exploit.rtf โดยใช้ Winword อีกที โดยภายในไฟล์นี้ให้เราสร้าง object ใหม่ที่จะ link กลับไปยัง main.rtf ขึ้นมา โดยเข้าไปที่ insert -> Object แล้วไปส่วนที่ Create from file แล้วให้กำหนด path ของ main.rtf

จากนั้นเลือกที่ option “Link to file” ถ้าสำเร็จข้อมูลที่อยู่ใน main.rtf จะมาโผล่ใน exploit.rtf ครับ

8. เมื่อทดสอบแล้วมัน work ก็ได้เวลาทำของจริงกันคือการนำไฟล์ main.hta ที่สร้างในข้อ 2 ไปใส่ไว้ใน path /var/www/html/ms/main.rtf แทนไฟล์เก่า

9. เข้าไปปรับโหมดการส่ง application type ของ DAV ให้เป็น hta

10. restart apache2

11. ทดสอบเปิดไฟล์ exploit.rtf อีกที จะพบว่าไฟล์พยายามจะอัพเดตเนื้อหาของไฟล์ exploit.rtf ที่มีการ link ไปยัง main.rtf

เมื่อ update ก็จะมีการส่ง hta ให้กับ Microsoft Word ทำงาน ตัว Microsoft Word จะไปเรียกใช้งาน hsmta แล้วไปเรียก wscript และ wscript ก็จะไปเรียกใช้งาน powershell.exe ในที่สุด ตามที่เราเขียนใน hta ครับ

หากไม่ต้องการให้มีการถาม Yes, No ตามภาพด้านบน ให้แก้ไขค่าของ document ผ่าน notepad โดยแก้ \object\objautlink ให้กลายเป็น \object\objautlink\objupdate แทน