การผจญภัยของมัลแวร์ที่เข้าใจยาก ตอนที่ XNUMX: DDE และฟิลด์เอกสาร Word (เราอยู่ที่นี่)
ในบทความนี้ ฉันจะเจาะลึกสถานการณ์การโจมตีแบบไร้ไฟล์แบบหลายขั้นตอนที่ซับซ้อนยิ่งขึ้นด้วยการปักหมุดบนระบบ แต่แล้วฉันก็พบกับการโจมตีที่ไม่ต้องใช้โค้ดที่เรียบง่ายอย่างเหลือเชื่อ—ไม่ต้องใช้มาโคร Word หรือ Excel! และสิ่งนี้พิสูจน์ได้อย่างมีประสิทธิภาพมากขึ้นว่าสมมติฐานดั้งเดิมของฉันที่เป็นรากฐานของบทความชุดนี้: การทำลายขอบเขตด้านนอกขององค์กรใด ๆ ไม่ใช่เรื่องยากเลย
การโจมตีครั้งแรกที่ฉันจะอธิบายเป็นการใช้ประโยชน์จากช่องโหว่ของ Microsoft Word ที่เป็นพื้นฐาน เก่า โปรโตคอลการแลกเปลี่ยนข้อมูลแบบไดนามิก (ดีดี). เธอเป็นแล้ว ที่ตายตัว. ประการที่สองใช้ประโยชน์จากช่องโหว่ทั่วไปใน Microsoft COM และความสามารถในการถ่ายโอนวัตถุ
รหัสฟิลด์ เป็นอีกหนึ่งคุณสมบัติโบราณของ MS Word ที่ให้คุณเพิ่มข้อความไดนามิกและการเขียนโปรแกรมเล็กน้อยลงในเอกสารของคุณ ตัวอย่างที่ชัดเจนที่สุดคือฟิลด์หมายเลขหน้า ซึ่งสามารถแทรกลงในส่วนท้ายได้โดยใช้ค่า {PAGE *MERGEFORMAT} ซึ่งช่วยให้สามารถสร้างหมายเลขหน้าได้โดยอัตโนมัติ
คำแนะนำ: คุณจะพบรายการเมนูฟิลด์ใต้ส่วนแทรก
ฉันจำได้ว่าตอนที่ค้นพบฟีเจอร์นี้ใน Word ครั้งแรก ฉันรู้สึกประหลาดใจมาก และจนกว่าแพตช์จะปิดการใช้งาน Word ยังคงรองรับตัวเลือกฟิลด์ DDE แนวคิดก็คือ DDE จะอนุญาตให้ Word สื่อสารโดยตรงกับแอปพลิเคชัน เพื่อที่จะสามารถส่งผ่านเอาต์พุตของโปรแกรมไปยังเอกสารได้ ในเวลานั้นเป็นเทคโนโลยีที่ยังใหม่มาก - รองรับการแลกเปลี่ยนข้อมูลกับแอปพลิเคชันภายนอก ต่อมาได้รับการพัฒนาเป็นเทคโนโลยี COM ซึ่งเราจะดูด้านล่างด้วย
ไมโครซอฟท์ได้ปิดการใช้งาน DDE ใน Word ในภายหลัง แต่ไม่ก่อนที่บริษัทจะระบุว่าคุณลักษณะนี้ถูกใช้ในทางที่ผิด การไม่เต็มใจที่จะเปลี่ยนแปลงสิ่งใดเป็นสิ่งที่เข้าใจได้ จากประสบการณ์ของฉัน ฉันเองได้เห็นตัวอย่างที่อัปเดตฟิลด์เมื่อเปิดใช้งานเอกสาร แต่มาโคร Word ถูกปิดใช้งานโดยฝ่ายไอที (แต่แสดงการแจ้งเตือน) อย่างไรก็ตาม คุณสามารถค้นหาการตั้งค่าที่เกี่ยวข้องได้ในส่วนการตั้งค่า Word
อย่างไรก็ตาม แม้ว่าจะเปิดใช้งานการอัปเดตฟิลด์แล้ว Microsoft Word จะแจ้งเตือนผู้ใช้เพิ่มเติมเมื่อฟิลด์ร้องขอการเข้าถึงข้อมูลที่ถูกลบ เช่นเดียวกับกรณีของ DDE ข้างต้น Microsoft เตือนคุณจริงๆ
แต่ส่วนใหญ่แล้วผู้ใช้จะยังคงเพิกเฉยต่อคำเตือนนี้และเปิดใช้งานการอัปเดตฟิลด์ใน Word นี่เป็นหนึ่งในโอกาสที่หาได้ยากในการขอบคุณ Microsoft สำหรับการปิดใช้งานคุณลักษณะ DDE ที่เป็นอันตราย
การค้นหาระบบ Windows ที่ไม่ได้รับการติดตั้งในปัจจุบันนั้นยากเพียงใด
แม้ว่าคุณจะติดตั้งแพตช์นี้แล้ว แต่ก็ยังมีช่องโหว่ด้านความปลอดภัยอื่นๆ ใน MS Office ที่ทำให้แฮกเกอร์ทำสิ่งที่คล้ายกับที่เราทำกับ Word ได้ ในสถานการณ์ต่อไป เราจะได้เรียนรู้ ใช้ Excel เป็นเหยื่อล่อการโจมตีแบบฟิชชิ่งโดยไม่ต้องเขียนโค้ดใดๆ
เพื่อให้เข้าใจสถานการณ์นี้ เรามาจำ Microsoft Component Object Model หรือเรียกสั้นๆ กัน COM (โมเดลวัตถุส่วนประกอบ).
COM มีมาตั้งแต่ปี 1990 และถูกกำหนดให้เป็น "โมเดลส่วนประกอบเชิงวัตถุที่เป็นกลางทางภาษา" โดยยึดตามการเรียกขั้นตอนระยะไกลของ RPC เพื่อความเข้าใจทั่วไปเกี่ยวกับคำศัพท์เฉพาะของ COM โปรดอ่าน โพสต์นี้ บน StackOverflow
โดยพื้นฐานแล้ว คุณสามารถนึกถึงแอปพลิเคชัน COM ว่าเป็นไฟล์ปฏิบัติการ Excel หรือ Word หรือไฟล์ไบนารีอื่นๆ ที่ทำงานอยู่
ปรากฎว่าแอปพลิเคชัน COM สามารถทำงานได้เช่นกัน สถานการณ์ — จาวาสคริปต์หรือ VBScript ในทางเทคนิคเรียกว่า สคริปต์เล็ต. คุณอาจเคยเห็นนามสกุล .sct สำหรับไฟล์ใน Windows ซึ่งเป็นส่วนขยายอย่างเป็นทางการสำหรับสคริปต์เล็ต โดยพื้นฐานแล้ว พวกมันคือโค้ดสคริปต์ที่รวมอยู่ใน wrapper XML:
<?XML version="1.0"?>
<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");
]]>
</script>
</scriptlet>
แฮกเกอร์และเพนเทสเตอร์ได้ค้นพบว่ามียูทิลิตี้และแอพพลิเคชั่นแยกต่างหากใน Windows ที่ยอมรับออบเจ็กต์ COM และสคริปต์เล็ตด้วยเช่นกัน
ฉันสามารถส่ง scriptlet ไปยังยูทิลิตี้ Windows ที่เขียนด้วย VBS ที่เรียกว่า pubprn ได้ ตั้งอยู่ในส่วนลึกของ C:Windowssystem32Printing_Admin_Scripts อย่างไรก็ตามมียูทิลิตี้ Windows อื่น ๆ ที่ยอมรับวัตถุเป็นพารามิเตอร์ มาดูตัวอย่างนี้กันก่อน