เผยกลยุทธ์ที่ใช้โจมตีกระทรวงกลาโหมยูเครนของกลุ่ม UNC1151

Mandiant Threat Intelligence เปิดเผยปฏิบัติการที่ชื่อว่า “Ghostwriter/UNC1151” ซึ่งเป็นส่วนหนึ่งของแคมเปญใหญ่ที่สนับสนุนการดำเนินการทางทหารของรัสเซีย และนโยบายต่อต้าน NATO แคมเปญนี้มีความเคลื่อนไหวมาตั้งแต่เดือนมีนาคม 2017 โดยมุ่งเป้าหมายหลักไปยังผู้ใช้งานในยูเครน, ลิทัวเนีย, ลัตเวีย และโปแลนด์ และแพร่กระจายข้อมูลปลอมผ่านเว็บไซต์ที่ถูกโจมตี และบัญชีอีเมลปลอม โดยคาดกันว่า UNC1151 มีความเกี่ยวข้องกับรัฐบาลเบลารุส

CRIL พบแคมเปญที่ใช้เอกสาร XLS ที่เป็นอันตรายเมื่อไม่นานมานี้ โดยจากการวิเคราะห์เพิ่มเติมแสดงให้เห็นว่าแคมเปญนี้มีความเชื่อมโยงกับแคมเปญมัลแวร์ที่มุ่งเป้าไปที่ยูเครน และกลุ่ม UNC1151 ซึ่งบ่งบอกถึงความเกี่ยวข้องกับรัฐบาลเบลารุส และเป็นส่วนหนึ่งของปฏิบัติการ GhostWriter

จากเอกสารปลอมที่พบ กลุ่มผู้ไม่หวังดีมุ่งเป้าหมายไปยังองค์กรทางทหารของยูเครน (กระทรวงกลาโหมยูเครน ฐานทัพทหาร A0000) ผ่านทาง Excel worksheets ปลอม โดยการโจมตีเริ่มต้นจากการส่งอีเมลสแปมที่มีไฟล์แนบที่ถูก compressed ไว้ ซึ่งภายในมี Excel worksheet ที่เป็นอันตราย เมื่อเปิดเอกสาร Excel จะรัน VBA Macro ที่ถูกฝังไว้ ซึ่งจะทำการ drops ไฟล์ LNK และ DLL จากนั้นเมื่อไฟล์ LNK ถูกเรียกใช้งานจะทำให้ DLL loader ทำงาน ซึ่งนำไปสู่การติดมัลแวร์ในระบบเป้าหมายในที่สุด

การเปลี่ยนแปลง TTP (Tactics, Techniques and Procedures) ใหม่ในแคมเปญนี้เกี่ยวข้องกับการเปลี่ยนแปลงจากวิธีการก่อนหน้านี้ ในแคมเปญก่อนหน้า กลุ่ม UNC1151 จะดาวน์โหลดไฟล์ JPG ที่เข้ารหัสโดยใช้ DLL loader ซึ่งไฟล์นั้นจะถูกถอดรหัสเพื่อใช้งาน final payload executable ส่วนในแคมเปญล่าสุด กลุ่ม UNC1151 จะดาวน์โหลดไฟล์ SVG ที่เข้ารหัส ซึ่งจะถูกถอดรหัสเพื่อเรียกใช้งานไฟล์ DLL payload อื่น ๆ

ในระหว่างการวิเคราะห์ นักวิจัยไม่สามารถกู้คืนไฟล์ final payload ได้ อย่างไรก็ตาม final payload อาจจะประกอบด้วย AgentTesla, Cobalt Strike beacons และ njRAT ซึ่งเคยพบในแคมเปญของกลุ่ม UNC1151 ก่อนหน้านี้

การวิเคราะห์แคมเปญ

แคมเปญก่อนหน้า (2023)

เมื่อปีที่แล้ว มีชุดของแคมเปญการโจมตีทางไซเบอร์ที่มุ่งเป้าหมายไปยังรัฐบาลยูเครน และโปแลนด์, ผู้ใช้งานในกองทัพ และผู้ใช้งานที่เป็นพลเรือน โดยใช้ไฟล์ Excel และ PowerPoint ที่เป็นอันตราย ไฟล์เหล่านี้ถูกออกแบบให้ดูเหมือนเอกสารทางการ เพื่อหลอกให้ผู้ใช้เปิดใช้งาน macro ที่รันโค้ด VBA ที่เป็นอันตราย แคมเปญเหล่านี้มีการพัฒนาโดยใช้โค้ดที่ซับซ้อนเพื่อที่จะ drop และรัน DLLs หรือ downloaders ในขั้นตอนหลังจะถูกซ่อนใน blobs ที่เข้ารหัส และต่อท้ายในไฟล์รูปภาพ “.jpg” final payload ประกอบด้วย njRAT, AgentTesla และ Cobalt Strike ซึ่งมุ่งเน้นไปที่การขโมยข้อมูล และการควบคุมระบบจากระยะไกล

แคมเปญล่าสุด (2024)

แคมเปญที่ 1

แคมเปญแรกพบในเดือนเมษายน 2024 มุ่งเป้าไปที่กองทัพยูเครน (กระทรวงกลาโหมยูเครน, ฐานทัพทหาร A0000) โดยใช้การผสมผสานระหว่างไฟล์ภาพจากโดรน และไฟล์สเปรดชีต Microsoft Excel ที่เป็นอันตราย เทคนิคนี้เกี่ยวข้องกับการใช้ไฟล์ Excel ที่ใช้ล่อลวงด้วยวิธีการ Social Engineer ผ่านทางอีเมลสแปม เพื่อหลอกล่อให้ผู้ใช้เปิดใช้งาน macro ซึ่งทำให้เกิด execution chain

เมื่อเปิดไฟล์ .xls โดยการดับเบิลคลิก จะปรากฏปุ่มที่มีข้อความว่า ‘Enable Content’ การคลิกที่ปุ่มนี้จะเป็นการเริ่มต้นการรัน VBA Macro ที่ฝังอยู่ในเอกสาร

เมื่อ VBA Macro ถูกเรียกใช้งาน จะทำการสร้างไฟล์ shortcut ชื่อ “CybereasonActiveProbe.lnk” ในโฟลเดอร์ “AppData\Roaming\Microsoft\Windows\Start Menu\” และไฟล์ DLL ที่เป็นอันตรายชื่อ “F072d76c85A40hjf9a3c0ab.dll” ในโฟลเดอร์ “\AppData\Roaming\Signal\bin\bin\”

จากนั้นจะดำเนินการเรียกใช้ไฟล์ LNK shortcut โดยใช้ Rundll32.exe พร้อมด้วยคำสั่ง command-line ดังนี้

  • RunDLL32.EXE shell32.dll,ShellExec_RunDLL “C:\Users\<USER>\AppData\Roaming\Microsoft\Windows\Start Menu\CybereasonActiveProbe.lnk”

เมื่อไฟล์ LNK ถูกเรียกใช้งาน จะดำเนินการรันไฟล์ DLL ที่เป็นอันตรายด้วยพารามิเตอร์ “SrvLicInitialize” โดยใช้ Rundll32.exe

ภาพด้านล่างแสดงแผนผังกระบวนการของการติดมัลแวร์ เริ่มต้นจากการเปิดไฟล์สเปรดชีต Excel และสิ้นสุดด้วยการรันไฟล์ DLL ที่เป็นอันตราย

แคมเปญที่ 2

ในแคมเปญถัดมา เมื่อเปิดไฟล์สเปรดชีต Excel จะปรากฏปุ่มที่มีข้อความว่า ‘Enable Content’ การคลิกที่ปุ่มนี้จะเป็นการรัน VBA Macro ที่ฝังอยู่ในเอกสาร Excel worksheet นี้ถูกออกแบบมาเพื่อดึงดูดให้ผู้ใช้เปิดใช้งาน macro โดยมีเนื้อหาเป็นภาษายูเครน

เมื่อ VBA Macro ถูกเรียกใช้งาน จะทำการสร้างไฟล์ shortcut ชื่อ “ACtIVePRObE.lnk” ในไดเรกทอรี “\AppData\Roaming\microSoft\” และไฟล์ DLL ที่เป็นอันตรายชื่อ “Ac83faafb23919Ae9.DLl” ในไดเรกทอรี “\aPPdaTA\rOamInG\VIBErpc\bIn\biN\”

จากนั้นจะเรียกใช้ไฟล์ LNK โดยใช้ Rundll32.exe พร้อมกับพารามิเตอร์ command-line ด้านล่าง

  • RunDLL32.EXE shell32.dll,ShellExec_RunDLL “C:\Users\<USER>\AppData\Roaming\microSoft\ACtIVePRObE.lnk”

เมื่อไฟล์ LNK ถูกเรียกใช้งาน จะดำเนินการรันไฟล์ DLL ที่เป็นอันตรายแต่ไม่ใช้พารามิเตอร์ใด ๆ โดยใช้ Regsvr32.exe

ภาพด้านล่างแสดงแผนผังกระบวนการของการติดมัลแวร์ โดยเริ่มต้นจากการรันไฟล์สเปรดชีต Excel และสิ้นสุดด้วยการรันไฟล์ DLL ที่เป็นอันตราย

DLL Loader (Ac83faafb23919Ae9.DLl)

DLL loader เป็นไฟล์ .NET ที่ถูกซ่อนไว้ เมื่อถูกเรียกใช้งาน DLL loader ที่เป็นอันตรายนี้จะดำเนินการที่เป็นอันตรายต่าง ๆ ในระบบของเหยื่อ ได้แก่

  • ในขั้นต้น DLL จะตรวจสอบ Process เฉพาะบางอย่าง เช่น processhacker, avastui, aswtoolssvc, procexp, wsc_proxy, overseer และ avastsvc หากพบ Process ใด ๆ เหล่านี้ จะทำการปิดตัวเอง การกระทำนี้น่าจะเป็นการหลบเลี่ยงการตรวจจับ และ Bypass มาตรการรักษาความปลอดภัย

  • จากนั้น DLL จะทำการแก้ไขการตั้งค่าโปรโตคอลความปลอดภัยของระบบเพื่อหลบเลี่ยงการตรวจจับ หรือการดำเนินการที่เป็นอันตราย นอกจากนี้ยังพยายามซ่อนตัวเอง ทำให้ยากต่อการวิเคราะห์ หรือยากต่อระบบการตรวจจับอัตโนมัติในการระบุ และลดความเสี่ยงจากภัยคุกคาม
  • หลังจากนั้นมัลแวร์จะดาวน์โหลด System.Net assembly และตั้งค่า WebClient เพื่อดาวน์โหลดข้อมูลจาก URL (hxxps://goudieelectric[.]shop/cms/svg/6364.2809640e.chunk.svg) โดยตั้งค่า User-Agent header ให้เลียนแบบเบราว์เซอร์บนมือถือ และเตรียม WebClient เพื่อดาวน์โหลดข้อมูลโดยใช้ Method DownloadData

  • จากโค้ดที่พบ ไฟล์ที่ดาวน์โหลดอาจเป็น DLL อื่น ซึ่งมีเนื้อหาที่เข้ารหัสในรูปแบบ Base64 อย่างไรก็ตาม ในระหว่างการรันโค้ด นักวิจัยไม่สามารถดึงเนื้อหาที่เข้ารหัสนั้นได้
  • เมื่อดึงข้อมูลสำเร็จ DLL จะถอดรหัสข้อมูล Base64 แล้วถอดรหัสต่อโดยใช้การถอดรหัส XOR ไฟล์ไบนารี DLL ที่ได้จะถูกบันทึกในโฟลเดอร์ Temp โดยใช้ชื่อแบบสุ่ม จากนั้นจะรัน DLL ใหม่นี้โดยใช้ Rundll32.exe พร้อมกับพารามิเตอร์ “SrvLicInitialize”

  • หลังจากรัน DLL ใหม่ มัลแวร์จะเข้าสู่โหมดหยุดทำงานเป็นระยะเวลาหนึ่ง จากนั้นจึงดำเนินการลบ DLL

ความแตกต่างระหว่างไฟล์ทั้งสองในแคมเปญล่าสุดที่พบในปี 2024 อยู่ที่วิธีการรัน และการเข้ารหัส

  • ไฟล์ “Ac83faafb23919Ae9.DLl” ถูกเรียกใช้งานโดย Regsvr32.exe ผ่านทางไฟล์ LNK shortcut โดยไม่มีพารามิเตอร์เพิ่มเติม มันใช้ strings ที่ไม่เข้ารหัส ภายในไฟล์สำหรับการดำเนินการที่เป็นอันตราย DLL นี้ใช้การดำเนินการ XOR เพื่อถอดรหัส payload ที่ดาวน์โหลดมา
  • ในทางตรงกันข้าม ไฟล์ “F072d76c85A40hjf9a3c0ab.dll” ถูกเรียกใช้งานโดย Rundll32.exe ผ่านทางไฟล์ LNK shortcut พร้อมพารามิเตอร์ “SrvLicInitialize” มันใช้ strings ที่ถูกเข้ารหัส และทำการถอดรหัส ในระหว่างการรัน DLL นี้ใช้อัลกอริทึม RC4 ในการถอดรหัส payload ที่ดาวน์โหลดมา

Payload นี้เป็น DLL ที่ถูกเข้ารหัส ซึ่งจะถูกถอดรหัส และบันทึกลงในไดเรกทอรี %temp% จากนั้นจะรัน DLL โดยใช้พารามิเตอร์ฟังก์ชัน export “SrvLicInitialize” ซึ่งอาจนำไปสู่การติดมัลแวร์ในขั้นตอนสุดท้าย เนื่องจากไม่สามารถเข้าถึงไฟล์ที่เข้ารหัสได้ นักวิจัยจึงไม่สามารถระบุได้ว่าไฟล์ DLL เหล่านี้ถูกใช้ในการส่ง final payload ได้อย่างไร ตามที่พบในแคมเปญ UNC1151 ก่อนหน้านี้ final payload อาจประกอบไปด้วย AgentTesla และ Cobalt Strike ซึ่งใช้ในการขโมยข้อมูล และการเข้าถึงระบบที่ติดมัลแวร์จากระยะไกล

TTP Shifts

ความแตกต่างระหว่างแคมเปญของปีที่แล้ว และปีนี้อยู่ที่วิธีการส่ง final payload ในแคมเปญของปี 2024 ไฟล์ loader ของมัลแวร์ทั้งสองมีความคล้ายคลึงกันตรงที่ดาวน์โหลด payload ที่เข้ารหัสจาก URL ที่เป็นอันตรายซึ่งใช้ “.svg”

  • hxxps://goudieelectric[.]shop/cms/svg/6364.2809640e.chunk.svg & hxxps://thevegan8[.]shop/first-gen-network/micro-grants.svg
    ในขณะที่แคมเปญของปีที่แล้ว ไฟล์ payload ที่เข้ารหัสใช้ “.jpg”
  • hxxps[://]onyangdol[.]site/thumb_d_F3D14F4982A256B5CDAE9BD579429AE7[.]jpg.

ตามที่ระบุไว้ใน Talos blog โค้ดที่รับผิดชอบในการดาวน์โหลดเพย์โหลดของขั้นตอนถัดไปมีการพัฒนาอย่างต่อเนื่อง ในเวอร์ชันก่อนหน้านี้ การเรียกใช้งานฟังก์ชัน Assembly.Load นั้นค่อนข้างง่าย อย่างไรก็ตาม ในแคมเปญถัดไปผู้ไม่หวังดีได้เลือกที่จะเพิ่มการความซับซ้อน โดยใช้ฟังก์ชัน RuntimeBinder.Binder ในการค้นหา และเรียกใช้งานฟังก์ชันสำหรับการดาวน์โหลด การถอดรหัส และการโหลด

ในแคมเปญล่าสุด payload ที่ถอดรหัสแล้วเป็นไฟล์ DLL ไฟล์นี้จะถูกบันทึกลงในโฟลเดอร์ %temp% และถูกเรียกใช้งานโดยใช้ Rundll32.exe พร้อมพารามิเตอร์ “SrvLicInitialize”

Recommendation

  • ติดตั้งระบบคัดกรองอีเมลที่มีประสิทธิภาพเพื่อระบุ และป้องกันการเผยแพร่ไฟล์แนบที่เป็นอันตราย
  • ใช้ความระมัดระวังเมื่อจัดการกับไฟล์แนบ หรือคลิกลิงก์ โดยเฉพาะอย่างยิ่งจากผู้ส่งที่ไม่รู้จัก ตรวจสอบตัวตนของผู้ส่ง โดยเฉพาะหากอีเมลนั้นดูน่าสงสัย
  • พิจารณาการปิดใช้งาน หรือจำกัดการรันสคริปต์ต่าง ๆ
  • อนุญาตเฉพาะแอปพลิเคชันที่ได้รับการอนุมัติในการรัน rundll32.exe เพื่อลดความเสี่ยงจากการรันไฟล์ lnk โดยมัลแวร์
  • ติดตั้งโปรแกรมป้องกันไวรัส และมัลแวร์ที่มีประสิทธิภาพเพื่อตรวจจับ และลบไฟล์ที่เป็นอันตราย
  • ใช้รหัสผ่านที่เดาได้ยาก และไม่ซ้ำกันในแต่ละบัญชี และเปิดใช้งานการยืนยันตัวตนแบบสองขั้นตอน
  • ตั้งค่าการตรวจสอบกิจกรรมที่ผิดปกติ หรือการขโมยข้อมูลโดยมัลแวร์ และบล็อกพฤติกรรมที่น่าสงสัยเพื่อป้องกันการละเมิดข้อมูล
  • ทำการสำรองข้อมูลอย่างสม่ำเสมอเพื่อกู้คืนข้อมูลในกรณีที่เกิดการติดมัลแวร์
  • ให้ข้อมูล และการอบรมเกี่ยวกับ phishing และ social engineering ที่กำลังถูกใช้ในการโจมตีทางไซเบอร์ในปัจจุบัน

MITRE ATT&CK® Techniques

Indicators of Compromise (IOCs)

YARA Rule

rule dllLoader{
meta:
author = "Cyble Research and Intelligence Labs"
description = "Detects dllLoader used in UNC1151 Campaign"
date = "2024-06-03" os = "Windows"
Reference hash = " d90f6e12a917ba42f7604362fafc4e74ed3ce3ffca41ed5d3456de28b2d144bf"

strings:
$a1 = "b46ef187886b3aabff8407c8b4ac38a42963d0" nocase ascii wide
$a2 = "wsc_proxy" nocase ascii wide
$a3 = ".svg" nocase ascii wide
$a4 = ".shop" nocase ascii wide
$a5 = "COR_ENABLE_PROFILING" nocase ascii wide
$a6 = "avastsvc" nocase ascii wide

condition:
all of them
}

ที่มา : cyble.com