Patchwork หรือที่รู้จักในชื่อ Dropping Elephant เป็นกลุ่ม APT (Advanced Persistent Threat) ที่มีการเคลื่อนไหวอย่างต่อเนื่อง และได้มีส่วนร่วมในปฏิบัติการโจมตีทางไซเบอร์มาตั้งแต่ปี 2009 โดยเชื่อว่ากลุ่มนี้มีฐานอยู่ในประเทศอินเดีย ซึ่งมุ่งเป้าการโจมตีไปยังองค์กรที่มีชื่อเสียงสูง เช่น รัฐบาล, หน่วยงานด้านกลาโหม และหน่วยงานทางการทูตในภูมิภาคเอเชียใต้ และเอเชียตะวันออกเฉียงใต้
Cyble Research and Intelligence Labs (CRIL) ได้ติดตามกิจกรรมของกลุ่ม APT Patchwork อย่างใกล้ชิดตั้งแต่เดือนกรกฎาคม 2024 เมื่อวันที่ 24 กรกฎาคม 2024 CRIL พบแคมเปญที่เกี่ยวข้องกับ Patchwork APT โดยการวิเคราะห์รูปแบบของไฟล์ ซึ่งไฟล์หลายไฟล์เกี่ยวข้องกับแคมเปญใหญ่สองรายการของ Patchwork APT แคมเปญแรกมุ่งเป้าไปที่ภูฏาน และแคมเปญที่สองมุ่งเป้าไปที่หน่วยงานในจีน
แคมเปญที่มุ่งเป้าหมายไปที่ประเทศจีน
แคมเปญนี้เกี่ยวข้องกับไฟล์ LNK ที่เป็นอันตรายชื่อ “COMAC_Technology_Innovation.pdf.lnk” ซึ่งอ้างอิงถึง บริษัท Commercial Aircraft Corporation of China และมุ่งเป้าไปที่หน่วยงานในจีนโดยเฉพาะ ไฟล์นี้ใช้ประโยชน์จากสัปดาห์นวัตกรรมวิทยาศาสตร์ และเทคโนโลยี COMAC ครั้งที่ 7 โดยผู้ไม่หวังดีใช้เหตุการณ์นี้เพื่อมุ่งเป้าไปที่องค์กรในภาคอวกาศ, การวิจัยด้านเทคโนโลยี และหน่วยงานรัฐบาล ซึ่งช่วยเพิ่มอัตราความสำเร็จของแคมเปญฟิชชิงของพวกเขา นักวิจัยจาก Aliyun ได้วิเคราะห์แคมเปญนี้ และเผยแพร่ผลการวิจัยในบล็อกโพสต์ที่ระบุถึงกลยุทธ์ที่ใช้โดย Patchwork
แคมเปญที่มุ่งเป้าหมายไปที่ประเทศภูฏาน
อีกแคมเปญที่โดดเด่นซึ่งถูกพบในเดือนเดียวกัน โดยมีการมุ่งเป้าหมายไปที่ประเทศภูฏาน โดยใช้ไฟล์ชื่อ “Large_Innovation_Project_for_Bhutan.pdf.lnk” เอกสารปลอมนี้ประกอบด้วยข้อเสนอแนะโครงการสำหรับภูฏานจากคณะกรรมการกองทุนปรับตัว (Adaptation Fund Board)
แคมเปญที่กำลังดำเนินอยู่
ในบรรดาไฟล์เหล่านี้ มีไฟล์ LNK ใหม่ ที่เพิ่งระบุชื่อว่า “186523-pdf.lnk” ซึ่งดูเหมือนว่าจะเชื่อมโยงกับแคมเปญที่กำลังดำเนินการของกลุ่ม Patchwork ไฟล์ตัวอย่างนี้ยังถูกแบ่งปันโดยนักวิจัย Ginkgo และ StrikeReady Labs บน X (Twitter)
เมื่อไฟล์ LNK ที่เป็นอันตรายถูกเรียกใช้งาน ไฟล์นี้จะดาวน์โหลดสองส่วนประกอบ ได้แก่ PDF ปลอม และ DLL ที่เป็นอันตราย ซึ่งมี shellcode ที่ถูกเข้ารหัส นอกจากนี้ยังคัดลอกไฟล์ระบบจากเครื่องของเหยื่อ ซึ่งจะถูกนำไปใช้ในการ sideload DLL ที่เป็นอันตราย ซึ่ง DLL นี้จะดำเนินการถอดรหัส และดำเนินการ final payload โดยตรงในหน่วยความจำ มัลแวร์จะเก็บข้อมูลระบบ เช่น Process ID, IP private/public Address, ชื่อผู้ใช้ และอื่น ๆ จากนั้นจะส่งข้อมูลนี้ไปยัง C2 Server เพื่อเปิดใช้การดำเนินการที่เป็นอันตรายเพิ่มเติม
เวอร์ชันนี้ดูเหมือนจะเป็นเวอร์ชันใหม่เมื่อเปรียบเทียบกับเพย์โหลดที่พบในแคมเปญก่อนหน้า เพื่อวัตถุประสงค์ในการติดตามเราจึงตั้งชื่อมัลแวร์ว่า “Nexe Backdoor” เนื่องจากพบสตริง “Nexe” ที่ถูกเข้ารหัสไว้ในไบนารีที่ใช้ในการสื่อสารกับ C2 Server
แคมเปญนี้ไม่มีเป้าหมายที่เฉพาะเจาะจง เนื่องจากประกอบไปด้วย PDF เปล่าธรรมดา อย่างไรก็ตามชื่อของเซิร์ฟเวอร์เพย์โหลดที่ใช้ในแคมเปญนี้ เช่น shianchi[.]scapematic.info และ jihang[.]scapematic.info แสดงให้เห็นถึงแนวโน้มที่จะเป็นการโจมตีต่อองค์กรในประเทศจีน โดยทั่วไปชื่อเซิร์ฟเวอร์เพย์โหลดของกลุ่ม Patchwork มักจะเกี่ยวข้องกับประเทศที่พวกเขามุ่งเป้าการโจมตี
รายละเอียดทางเทคนิค
ไฟล์ LNK ที่ปลอมเป็น PDF มีสคริปต์ PowerShell ที่ดำเนินการที่เป็นอันตรายหลายอย่าง
สคริปต์จะใช้คำสั่ง 'Invoke-WebRequest' เพื่อดาวน์โหลดไฟล์จาก URL 'hxxps://jihang[.]scapematic[.]info/eqhgrh/uybvjxosg' และบันทึกเป็น PDF ในไดเร็กทอรี 'C:\ProgramData' ไฟล์ PDF นี้ดูเหมือนจะเป็นเอกสารปลอม แต่ในกรณีนี้ไม่มีเนื้อหา และเป็นเพียง PDF เปล่าธรรมดาเท่านั้น
จากนั้นสคริปต์จะดาวน์โหลดไฟล์อีกไฟล์จาก URL ที่ต่างกันในโดเมนเดียวกัน 'hxxps://shianchi[.]scapematic[.]info/jhgfd/jkhxvcf' โดยบันทึกไฟล์นี้ไว้ชั่วคราวเป็นชื่อ 'hal' ในไดเร็กทอรี 'C:\ProgramData' จากนั้นจะเปลี่ยนชื่อไฟล์เป็น 'wer.dll' ในตำแหน่งเดียวกัน
จากนั้นสคริปต์จะทำการคัดลอกไฟล์ระบบ Windows ชื่อ 'WerFaultSecure.exe' จาก 'C:\Windows\System32' ไปยัง 'C:\ProgramData' เพื่ออำนวยความสะดวกในการทำ DLL sideloading ไฟล์ที่ดาวน์โหลดไปยังเครื่องของเหยื่อ
สุดท้ายนี้ สคริปต์จะสร้าง Scheduled Task ชื่อว่า 'EdgeUpdate' เพื่อเรียกใช้ “WerFaultSecure.exe” เป็นระยะ ๆ เพื่อให้แน่ใจว่าระบบที่ถูกโจมตีจะยังคงอยู่ถาวร
DLL Sideloading
กลุ่มผู้ไม่หวังดีใช้เทคนิค DLL sideloading เพื่อนำเข้าไฟล์ DLL ที่เป็นอันตรายโดยใช้ไฟล์ WerFaultSecure.exe ที่ถูกต้อง
หลังจากที่ไฟล์ DLL ถูกโหลดสำเร็จ มันจะทำการถอดรหัส shellcode ที่ถูกเข้ารหัสภายใน และเขียนเนื้อหาที่ถอดรหัสลงในหน่วยความจำของกระบวนการ WerFaultSecure
การ Bypass ความปลอดภัยผ่านการแก้ไขในหน่วยความจำ
ซอร์สโค้ดที่ถูกแทรกเข้ามาจะถูกสร้างขึ้นเพื่อ Bypass AMSI และระบบติดตามเหตุการณ์ของ Microsoft โดยการปรับแก้ไบต์เฉพาะ เช่น EtwEventWrite, AmsiScanString และ AmsiScanBuffer API
เมื่อซอร์สโค้ดถูกเขียนทับ API เหล่านี้ จะสร้าง section object จากเนื้อหาที่ถอดรหัสไว้ก่อนหน้านี้ และแมปลงในพื้นที่ที่อยู่ของ WerFaultSecure ซึ่งทำให้ final payload ที่คอมไพล์จาก VC++ สามารถทำงานได้โดยไม่ทำให้เกิดการแจ้งเตือนด้านความปลอดภัยใด ๆ
Final Payload
เมื่อดาวน์โหลดเพย์โหลดลงในหน่วยความจำสำเร็จ ระบบจะใช้ API LoadLibraryW() เพื่อดาวน์โหลดโมดูลที่จำเป็นสำหรับการดำเนินการ
หลังจากดาวน์โหลดโมดูลที่จำเป็นแล้ว มัลแวร์จะสร้าง mutex ชื่อ “dsds” เพื่อให้แน่ใจว่ามัลแวร์จะทำงานบนระบบของเหยื่อเพียงอินสแตนซ์เดียวเท่านั้น
หลังจากสร้าง mutex เสร็จ มัลแวร์จะดึง handle ไปยังหน้าต่างคอนโซลที่เชื่อมโยงกับกระบวนการที่เรียก จากนั้นจะซ่อนหน้าต่างคอนโซล และดำเนินการต่อในเบื้องหลัง
มัลแวร์จะใช้ฟังก์ชัน GetAdaptersInfo() และ GetHostName() เพื่อรวบรวมข้อมูลเกี่ยวกับตัวปรับแต่งเครือข่าย และชื่ออุปกรณ์ในเครื่องที่ถูกโจมตี
มัลแวร์ทำการเชื่อมต่อไปยัง https://myexternalip.com/raw โดยใช้ User Agent ที่ระบุเพื่อดึงที่อยู่ IP Public ของเหยื่อ
หลังจากรวบรวมข้อมูลระบบที่สำคัญ เช่น MAC Address, ชื่อผู้ใช้ และ IP Address มัลแวร์จะคำนวณค่าแฮช SHA256 สำหรับค่าต่าง ๆ เหล่านี้ ก่อนที่จะเข้ารหัสเพิ่มเติม
หลังจากสร้างค่าแฮชเสร็จ มัลแวร์จะเข้ารหัสค่าแฮชในรูปแบบ Base64 ข้อมูลที่ได้จะเข้าสู่ลูปการเข้ารหัสอีกครั้งโดยใช้อัลกอริธึม Salsa20 ซึ่งแสดงถึงการเปลี่ยนแปลงจากวิธีการเข้ารหัสก่อนหน้านี้ที่ใช้ในแคมเปญก่อนหน้านี้ หลังจากนั้นจะมีการเข้ารหัส Base64 อีกรอบเพิ่มเติม
นอกจากรายละเอียดที่กล่าวถึงก่อนหน้านี้ เช่น MAC Address, ชื่อผู้ใช้ และ IP Address มัลแวร์ยังดึงข้อมูล และเข้ารหัสข้อมูลต่อไปนี้โดยใช้ลำดับเดียวกัน มันจะแปลงข้อมูลเป็นรูปแบบ Base64 ก่อน จากนั้นใช้การเข้ารหัสด้วยอัลกอริธึม Salsa20 และสุดท้ายเข้ารหัสในรูปแบบ Base64 อีกครั้ง
- Process ID
- Local IP address
- Windows version
- Username
- Hardcoded user-agent string
ข้อมูลระบบที่ถูกเข้ารหัสแต่ละส่วนจะถูกเชื่อมต่อกัน และแยกด้วยสัญลักษณ์ “$”
ข้อมูลที่ถูกเข้ารหัสตรงกับฟิลด์ต่อไปนี้
- MAC address $ username $ public IP address $ private IP address $ Windows version $ username $ Process ID $ Nexe (hardcoded string) $ User-agent string
โดยใช้สตริงสุดท้ายที่สร้างขึ้น มัลแวร์จะเริ่ม HTTP request ไปยังโดเมนที่ถูกตั้งค่าไว้ล่วงหน้า "iceandfire[.]xyz" ซึ่งถูกฝังอยู่ในโค้ด
หลังจากสร้าง HTTP request มัลแวร์จะส่งข้อมูลที่ถูกเข้ารหัสไปยัง C2 Server อย่างไรก็ตาม เนื่องจาก C2 Server ไม่ได้ทำงานในระหว่างการวิเคราะห์ เราจึงไม่สามารถประเมินพฤติกรรมของมันได้อย่างเต็มที่ แม้ว่าจะเป็นเช่นนั้น หลังจาก POST request มัลแวร์จะสร้างเธรดสองเธรดที่สามารถทำงานต่าง ๆ ได้
เธรดจะดึงข้อมูลบางส่วนจากสตริงที่สร้างขึ้นในตอนแรก ซึ่งรวมถึง MAC Address ที่ถูกเข้ารหัส, ชื่อผู้ใช้ และ IP public เครื่องของเหยื่อ และพยายามส่งข้อมูลเหล่านี้ไปยังโดเมนเดียวกัน
เธรดจะอ่านการตอบสนองของเซิร์ฟเวอร์หลังจากที่ส่ง request แล้ว จากนั้นจะเปรียบเทียบการตอบสนองกับค่าต่อไปนี้
- upload
- uplexe
- download
- filelist
- screenshot
การเปรียบเทียบนี้ช่วยให้เธรดสามารถกำหนดการกระทำ หรือคำสั่งที่ควรดำเนินการในระบบได้
คำแนะนำ
- การละเมิดเบื้องต้นอาจเกิดขึ้นจากอีเมลสแปม ดังนั้นจึงแนะนำให้ติดตั้งระบบกรองอีเมลเพื่อตรวจจับ และป้องกันการแพร่กระจายของไฟล์แนบที่เป็นอันตราย
- จัดการกับไฟล์แนบ หรือลิงก์ในอีเมล โดยเฉพาะจากผู้ส่งที่ไม่รู้จัก การใช้ความระมัดระวังเป็นสิ่งสำคัญ ต้องตรวจสอบตัวตนของผู้ส่ง โดยเฉพาะอย่างยิ่งหากอีเมลดูน่าสงสัย
- พิจารณาปิดใช้งาน หรือลดการดำเนินการของภาษาสคริปต์บนเครื่องของผู้ใช้ และเซิร์ฟเวอร์
- จำกัดการดำเนินการของ WerFaultSecure.exe ให้อยู่ในตำแหน่งที่กำหนด เพื่อป้องกันการดำเนินการที่ไม่ได้รับอนุญาตจากไดเร็กทอรีอื่น
- ใช้ซอฟต์แวร์ป้องกันไวรัส และความปลอดภัยทางอินเทอร์เน็ตที่มีชื่อเสียงบนอุปกรณ์ที่เชื่อมต่อทั้งหมด รวมถึงคอมพิวเตอร์, แล็ปท็อป, และมือถือ
- ติดตามการส่งสัญญาณ (beacon) บนระดับเครือข่ายเพื่อป้องกันการรั่วไหลของข้อมูลโดยมัลแวร์หรือกลุ่มผู้ไม่หวังดี (TAs)
MITRE ATT&CK® Techniques
Indicators of Compromise (IOCs)
Yara Rule
rule
Nexe_Backdoor
{
meta:
author = “Cyble Research and Intelligence Labs”
description = “Detects Malicious Backdoor used in the latest Patchwork APTcampaign”
date = “2024-09-26”
os = “Windows”
reference_sample = “ba262c587f1f5df7c2ab763434ef80785c5b51cac861774bf66d579368b56e3”
strings:
$a = “WerSysprepCleanup”
$b = “WerpSetReportFlags”
$c = “WriteProcessMemory”
$d = “VirtualAllocEx”
$e = “Release\\AESC.pdb”
condition:
uint16(0) == 0x5A4D and all of them
}
ที่มา : cyble
You must be logged in to post a comment.