ปฏิบัติการ DualScript – แคมเปญมัลแวร์ PowerShell หลายขั้นตอนที่มุ่งเป้าไปที่สกุลเงินดิจิทัลและกิจกรรมทางการเงิน
บทนำ
จากการตรวจสอบ เราพบการติดมัลแวร์หลายขั้นตอนที่ใช้ประโยชน์จากการทำงานต่อเนื่องของ Scheduled Task, ตัวเรียกใช้งาน VBScript และการเรียกใช้งานผ่าน PowerShell การโจมตีทำงานผ่านสองห่วงโซ่คู่ขนาน: ตัวโหลด PowerShell บนเว็บที่ดึงข้อมูลเพย์โหลดจากระยะไกล และห่วงโซ่ตัวโหลด PowerShell รองที่เรียกใช้งานโปรแกรมฝังตัว RetroRAT
ด้วยการใช้ประโยชน์จากส่วนประกอบของ Windows ที่ถูกต้องตามกฎหมาย และเรียกใช้เพย์โหลดโดยตรงในหน่วยความจำ ผู้โจมตีจึงลดปริมาณข้อมูลบนดิสก์และหลีกเลี่ยงกลไกการตรวจจับแบบดั้งเดิมได้
การค้นพบเบื้องต้น
การสอบสวนเริ่มต้นขึ้นหลังจากพบงานที่กำหนดเวลาไว้ที่น่าสงสัย ซึ่งเรียกใช้ไฟล์ VBScript จากไดเร็กทอรีที่ผู้ใช้สามารถเข้าถึงได้ งานเหล่านั้นถูกตั้งค่าให้เรียกใช้คำสั่ง PowerShell ที่ซ่อนอยู่ ซึ่งบ่งชี้ถึงความเป็นไปได้ในการใช้ส่วนประกอบการเขียนสคริปต์ของ Windows ในทางที่ผิดเพื่อรักษาการเข้าถึงอย่างต่อเนื่อง
จากการตรวจสอบเพิ่มเติมพบวัตถุต้องสงสัยหลายรายการ ได้แก่:
- ตัวเรียกใช้งาน VBScript ที่เรียกใช้ PowerShell โดยข้ามการตรวจสอบนโยบายการดำเนินการ
- สคริปต์ PowerShell (ppamproServiceZuneWAL.ps1) สำหรับดาวน์โหลดและเรียกใช้งานเนื้อหาจากโดเมนภายนอก
- สคริปต์ PowerShell เพิ่มเติมที่ใช้ในการเรียกใช้เพย์โหลดที่เป็นอันตรายโดยตรงในหน่วยความจำ
การเชื่อมต่อขาออกไปยังเว็บเซิร์ฟเวอร์ระยะไกลที่โฮสต์ไฟล์ Wallet.txt ยืนยันการดึงคำสั่งจากเซิร์ฟเวอร์ภายนอกได้สำเร็จ ซึ่งแสดงให้เห็นถึงความสามารถในการเรียกใช้คำสั่งจากระยะไกล
ผลการค้นพบเหล่านี้ยืนยันถึงการมีอยู่ของการโจมตีแบบหลายขั้นตอนที่ต่อเนื่อง ซึ่งใช้ประโยชน์จากเพย์โหลดที่ส่งผ่านทางเว็บและเทคนิคการเรียกใช้ PowerShell ในหน่วยความจำ
ภาพรวมห่วงโซ่การติดเชื้อ
ช่องโหว่นี้เกี่ยวข้องกับการทำงานแบบขนานสองชุดที่ถูกกระตุ้นผ่านการคงสถานะที่กำหนดไว้ล่วงหน้าโดย Windows Scheduled Tasks ทั้งสองชุดใช้ตัวเรียกใช้งาน VBScript และการเรียกใช้งาน PowerShell เพื่อติดตั้งส่วนประกอบที่เป็นอันตรายในขณะที่ลดปริมาณข้อมูลบนดิสก์ให้น้อยที่สุด
เชนแรกดึงและเรียกใช้เพย์โหลด PowerShell จากระยะไกลเพื่อทำการโจรกรรมข้อมูลในคลิปบอร์ดของสกุลเงินดิจิทัล เชนที่สองใช้ตัวเรียกใช้งาน VBScript (PiceVid.vbs) เพื่อเรียกใช้เพย์โหลดที่ใช้ PowerShell (PiceVid.ps1) ซึ่งจะติดตั้งมัลแวร์ RetroRAT สำหรับการตรวจสอบระบบ การติดตามกิจกรรมทางการเงิน และการเรียกใช้คำสั่งจากระยะไกล

ห่วงโซ่ที่ 1 – ส่วนประกอบของเว็บแบ็กดอร์
การคงอยู่ของงานที่กำหนดไว้
การรักษาการเข้าถึงอย่างต่อเนื่องทำได้โดยการตั้งค่า Windows Scheduled Tasks ให้เรียกใช้ไฟล์ VBScript จากไดเร็กทอรีที่ผู้ใช้สามารถเขียนได้ โดยงานเหล่านี้จะเรียกใช้ PowerShell ในโหมดซ่อนตัวพร้อมเปิดใช้งานการข้ามผ่านนโยบายการเรียกใช้งาน
วิธีนี้ช่วยให้สามารถดำเนินการโจมตีซ้ำได้อย่างน่าเชื่อถือ ในขณะเดียวกันก็หลีกเลี่ยงกลไกการลงทะเบียนเริ่มต้นแบบดั้งเดิม
VBS Launcher – ppamproServiceZuneWAL.vbs
สคริปต์นี้ทำหน้าที่เป็นตัวกลางในการดำเนินการ โดยจะเรียกใช้ PowerShell อย่างเงียบๆ มันไม่ได้มีเพย์โหลดอยู่ภายใน แต่ทำหน้าที่เป็นจุดเริ่มต้นที่ควบคุมได้ในการเข้าถึงห่วงโซ่การโหลดระยะไกล
โปรแกรมโหลดระยะไกล – ppamproServiceZuneWAL.ps1
สคริปต์นี้ทำหน้าที่เป็นแบ็กดอร์บนเว็บและดำเนินการดังต่อไปนี้:
- การตรวจสอบความถูกต้องของอินสแตนซ์เดียวผ่านการแจงนับกระบวนการ WMI
- การดึงสคริปต์ระยะไกล (Wallet.txt) ผ่าน HTTP
- การเรียกใช้งานแบบไดนามิกโดยใช้ [ScriptBlock]::Create().Invoke()
โค้ดเป้าหมายระยะไกลจะถูกประมวลผลทั้งหมดในหน่วยความจำ เนื่องจากเนื้อหาถูกจัดเก็บไว้ภายนอก จึงสามารถอัปเดตได้แบบไดนามิก ทำให้ผู้โจมตีสามารถควบคุมได้อย่างต่อเนื่อง

สคริปต์ppamproServiceZuneWAL.ps1ทำหน้าที่เป็นตัวโหลดและควบคุมการทำงานระยะไกลแบบ PowerShellในขั้นต้น สคริปต์จะดึงชื่อสคริปต์ของตัวเองโดยใช้ออบเจ็กต์ $MyInvocation และเรียกใช้ฟังก์ชันชื่อ CURRENT-instance ซึ่งจะตรวจสอบกระบวนการ powershell.exe ที่กำลังทำงานอยู่ทั้งหมดผ่าน WMI เพื่อตรวจสอบว่ามีอินสแตนซ์อื่นของสคริปต์เดียวกันทำงานอยู่แล้วหรือไม่ หากตรวจพบอินสแตนซ์ที่ซ้ำกัน สคริปต์จะหยุดทำงานเพื่อป้องกันการทำงานพร้อมกันหลายครั้ง หลังจากตรวจสอบให้แน่ใจว่ามีการทำงานเพียงอินสแตนซ์เดียว สคริปต์จะโหลดไลบรารีเครือข่าย .NET System.Net.Http และใช้ HttpClient เพื่อดาวน์โหลดเนื้อหาระยะไกลจากhxxps://anycourse[.]net/wp-content/uploads/2025/04/Wallet[.]txtไฟล์ Wallet.txt ที่ดาวน์โหลดมานั้นมีคำสั่ง PowerShell ที่ควบคุมโดยผู้โจมตี แทนที่จะบันทึกเนื้อหานี้ลงดิสก์ สคริปต์จะแปลงข้อความที่ดาวน์โหลดมาเป็นโค้ด PowerShell ที่สามารถเรียกใช้งานได้โดยใช้ [ScriptBlock]::Create() และเรียกใช้งานโดยตรงในหน่วยความจำ กลไกนี้เปลี่ยนสคริปต์ให้กลายเป็นแบ็กดอร์บนเว็บที่ช่วยให้ผู้โจมตีสามารถอัปเดตและเรียกใช้คำสั่งบนระบบที่ถูกบุกรุกจากระยะไกลได้โดยการแก้ไขเนื้อหาของไฟล์ Wallet.txt บนเซิร์ฟเวอร์ เท่านั้น
Web Payload – Wallet.txt
ไฟล์ที่ดาวน์โหลดมานั้นมีคำสั่ง PowerShell ที่ส่งมาจากเซิร์ฟเวอร์ภายนอก

สิ่งนี้ทำให้ผู้โจมตีสามารถ:
- ออกคำสั่ง
- อัปเดตหรือปรับใช้ส่วนประกอบใหม่
- ดำเนินการลาดตระเวน
- ดึงข้อมูลออก
กลไกนี้จะเปลี่ยนระบบที่ถูกบุกรุกให้กลายเป็นโปรแกรมฝังตัว PowerShell ที่ควบคุมจากระยะไกลได้อย่างมีประสิทธิภาพ
ไฟล์ Wallet.txtประกอบด้วยสคริปต์ PowerShell ที่ใช้ในการโจรกรรมข้อมูลในคลิปบอร์ดเพื่อขโมยธุรกรรมสกุลเงินดิจิทัล สคริปต์นี้จะตรวจสอบคลิปบอร์ดของระบบอย่างต่อเนื่องเพื่อหาข้อความที่คัดลอก และใช้รูปแบบนิพจน์ปกติ (Regular Expression) ในการตรวจจับที่อยู่กระเป๋าเงินดิจิทัล เช่น Bitcoin หรือรูปแบบคริปโตอื่นๆ เมื่อพบที่อยู่ตรงกัน สคริปต์จะแทนที่ที่อยู่กระเป๋าเงินที่คัดลอกมาด้วยที่อยู่ของผู้โจมตีที่ควบคุมได้ ซึ่งเก็บไว้ในพจนานุกรมภายในของสคริปต์ ผลก็คือ หากเหยื่อคัดลอกที่อยู่กระเป๋าเงินที่ถูกต้องเพื่อส่งสกุลเงินดิจิทัล คลิปบอร์ดจะถูกแก้ไขโดยไม่แจ้งให้ทราบล่วงหน้า ทำให้เงินถูกโอนไปยังกระเป๋าเงินของผู้โจมตีแทน สคริปต์จะตรวจสอบคลิปบอร์ดอย่างต่อเนื่องเป็นระยะๆ ทำให้ผู้โจมตีสามารถดักจับและเปลี่ยนเส้นทางการชำระเงินสกุลเงินดิจิทัลบนระบบที่ถูกบุกรุกได้อย่างลับๆ
ที่อยู่กระเป๋าเงินคริปโตเคอร์เรนซีที่ถูกควบคุมโดยผู้โจมตี
ไฟล์Wallet.txtเป็นไฟล์เก็บข้อมูลที่อยู่กระเป๋าเงินดิจิทัลที่ผู้โจมตีควบคุมอยู่ เมื่อตรวจพบรูปแบบกระเป๋าเงินที่ตรงกันในคลิปบอร์ด มัลแวร์จะแทนที่ที่อยู่ของเหยื่อด้วยที่อยู่กระเป๋าเงินที่ผู้โจมตีควบคุมอยู่
ที่อยู่ทดแทนเหล่านี้รองรับสกุลเงินดิจิทัลหลายสกุล รวมถึง
Bitcoin (BTC), Litecoin (LTC), Ethereum (ETH), โมเนโร (XMR), XRP, NEO, เงินสด Bitcoin (BCH), Dogecoin (DOGE), Dash, Stellar (XLM), Binance Coin (BNB), Tezos (XTZ), ตรอน (TRX), VeChain (VET), DigiByte (DGB), Qtum, Cardano (ADA), Polkadot (DOT), Cosmos (ATOM), Lisk, Kava, Algorand (ALGO), Filecoin (FIL), Nano, NEM, Waves, Zcash (ZEC), Terra และ THORChain (RUNE)
ส่วนที่ 2 – ส่วนประกอบของ PowerShell Loader
VBS Launcher – PiceVid.vbs
สคริปต์นี้จะเรียกใช้งานไฟล์ PiceVid.ps1 ซึ่งทำหน้าที่เป็นจุดเริ่มต้นของกระบวนการโหลดไฟล์ในเครื่อง และจะถูกเรียกใช้งานผ่านงานที่กำหนดเวลาไว้
โปรแกรมโหลด PowerShell – PicVid.PS1
สคริปต์นี้ประกอบด้วยเพย์โหลด RetroRAT และจะถูกเรียกใช้งานโดยตรงในหน่วยความจำ

แทนที่จะเขียนข้อมูลเป้าหมายลงในไฟล์ปฏิบัติการแยกต่างหาก สคริปต์จะอ่านเนื้อหาในไฟล์นั้นและเรียกใช้งานแบบไดนามิกโดยใช้Invoke-Expression (IEx )
วิธีการนี้ทำให้ผู้โจมตีสามารถเรียกใช้มัลแวร์ได้โดยลดร่องรอยที่สามารถตรวจจับได้บนดิสก์ให้น้อยที่สุด
มัลแวร์ที่ตรวจพบในหน่วยความจำคือRetroRAT ซึ่งเป็น โทรจันสำหรับเข้าถึงระยะไกล (Remote Access Trojan) ที่มุ่งเป้าไปที่กิจกรรมทางการเงินที่เกี่ยวข้องกับสถาบันการธนาคารและแพลตฟอร์มสกุลเงินดิจิทัลในสหรัฐอเมริกามัลแวร์นี้จะตรวจสอบกิจกรรมของผู้ใช้ บันทึกการกดแป้นพิมพ์ และติดตามการโต้ตอบกับบริการทางการเงินอย่างเลือกสรรเพื่อรวบรวมข้อมูลที่ละเอียดอ่อน
การวิเคราะห์ข้อมูลบรรทุก – RetroRAT
มัลแวร์ที่นำมาวิเคราะห์นี้ ซึ่งเรียกว่า RetroRAT เป็นโทรจันเข้าถึงระยะไกล (RAT) ที่มีแรงจูงใจทางการเงิน โดยมุ่งเป้าไปที่กิจกรรมที่เกี่ยวข้องกับสกุลเงินดิจิทัลและการธนาคาร มัลแวร์นี้ติดตั้งโปรแกรมดักจับแป้นพิมพ์ทั่วโลกและตรวจสอบชื่อหน้าต่างที่ใช้งานอยู่ตลอดเวลาเพื่อหาคำหลักที่เกี่ยวข้องกับแอปพลิเคชันทางการเงินและแพลตฟอร์มการธนาคารหรือสกุลเงินดิจิทัลที่เข้าถึงบ่อย สถาปัตยกรรมแบบโมดูลาร์ของมัน รวมกับช่องทางการสื่อสารควบคุมและสั่งการ (C2) ที่ใช้ TCP ทำให้ผู้โจมตีสามารถเรียกใช้คำสั่งจากระยะไกล แก้ไขไฟล์ เข้าถึงข้อมูลในคลิปบอร์ด และโหลดแอสเซมบลีเพิ่มเติมลงในหน่วยความจำได้โดยตรงแบบไดนามิก
เทคนิคการหลบเลี่ยงการป้องกันและการต่อต้านการวิเคราะห์
ตัวอย่างนี้ใช้วิธีการต่อต้านการวิเคราะห์และการหลบเลี่ยงการป้องกันหลายวิธี เพื่อหลีกเลี่ยงการตรวจจับและจำกัดการทำงานในสภาพแวดล้อมการวิเคราะห์ เช่น แซนด์บ็อกซ์ เครื่องเสมือน และระบบวิเคราะห์มัลแวร์อัตโนมัติ
– การตรวจสอบการหลีกเลี่ยงแซนด์บ็อกซ์
ตัวอย่างนี้ประกอบด้วยรายการตัวระบุสภาพแวดล้อมแซนด์บ็อกซ์และการวิเคราะห์ทั่วไปที่ถูกกำหนดไว้ตายตัว ซึ่งรวมถึงชื่อผู้ใช้ที่รู้จักกันดี เช่น “John Doe”, “virus”, “test user”, “sand box” เป็นต้น
ในระหว่างการทำงาน ค่าเหล่านี้จะถูกเปรียบเทียบกับคุณลักษณะของระบบเพื่อตรวจหาสภาพแวดล้อมการวิเคราะห์ที่เป็นไปได้ หากพบการจับคู่ มัลแวร์จะเปลี่ยนพฤติกรรม ซึ่งน่าจะเป็นกลไกการหลบเลี่ยงการตรวจจับ


– การตรวจจับเครื่องเสมือน
มัลแวร์ยังตรวจสอบด้วยว่ากำลังทำงานอยู่ภายใต้เครื่องเสมือนหรือไม่ โดยการสอบถามไปยังไดเร็กทอรี ไดรเวอร์ และบริการที่เกี่ยวข้องของเครื่องเสมือน หากพบร่องรอยใด ๆ มัลแวร์จะปิดตัวเองลง


– การใช้กลวิธีปกปิดข้อมูล
โค้ดส่วนนี้ใช้เทคนิคการปกปิดข้อมูลขั้นพื้นฐานแต่มีประสิทธิภาพสูง ชื่อเมธอดและชื่อคลาสถูกเปลี่ยนชื่ออย่างมาก และตัวระบุหลายตัวมีอักขระควบคุม Unicode ที่ทำให้ดูเหมือนผิดปกติในโปรแกรมถอดรหัส นอกจากนี้ สตริงที่มีความหมายส่วนใหญ่จะถูกจัดเก็บในรูปแบบเข้ารหัสและสร้างขึ้นใหม่ในระหว่างการทำงาน ซึ่งจะป้องกันการวิเคราะห์แบบคงที่โดยตรงและบังคับให้นักวิเคราะห์ต้องสังเกตค่าต่างๆ แบบไดนามิก การใช้ de4dot ทำให้เราสามารถถอดรหัสไบนารีได้บางส่วน ทำให้ชื่อเมธอดสามารถอ่านได้อีกครั้ง
การใช้งานมิวเท็กซ์
ในช่วงเริ่มต้นของการทำงาน ไบนารีจะตรวจสอบว่ามี mutex ที่มีชื่อนั้นอยู่ในระบบอยู่แล้วหรือไม่ หากพบ มัลแวร์จะยุติการทำงานทันทีโดยใช้ Environment.Exit(0) เทคนิคนี้มักใช้โดยมัลแวร์เพื่อป้องกันการแพร่เชื้อซ้ำไปยังระบบ


การประมวลผลแบบมัลติเธรด
มัลแวร์นี้สร้างเธรดการทำงานหลายเธรดเพื่อดำเนินการส่วนประกอบต่างๆ ของฟังก์ชันการทำงานพร้อมกัน การออกแบบนี้ช่วยให้มัลแวร์สามารถตรวจสอบและทำงานในพื้นหลังได้อย่างต่อเนื่องโดยไม่รบกวนการทำงานอื่นๆ เช่น การสื่อสารควบคุมหรือการประมวลผลข้อมูล
– เธรด 1 – ลูปการดักจับเหตุการณ์แป้นพิมพ์
- เธรดใหม่ (เธรดเริ่มต้นใหม่ (GClass25.smethod_1)).เริ่ม();
มัลแวร์นี้สร้างเธรดการทำงานแยกต่างหากเพื่อจัดการกับการดักจับแป้นพิมพ์โดยใช้ SetWindowsHookExA() ภายในรูทีนนี้ จะมีการลงทะเบียนฮุกระดับต่ำ (WH_KEYBOARD_LL) ซึ่งช่วยให้มัลแวร์สามารถตรวจสอบการป้อนข้อมูลแป้นพิมพ์ระดับต่ำได้

เมื่อติดตั้ง hook แล้ว เธรดจะเข้าสู่ลูปข้อความทันทีโดยใช้ Application.Run() ซึ่งจะทำให้ hook ทำงานอยู่ตลอดอายุการใช้งานของกระบวนการ ทำให้โปรแกรมฝังตัวสามารถดักจับการกดแป้นพิมพ์ได้อย่างต่อเนื่อง

ภายในฟังก์ชันเรียกกลับของ hook มัลแวร์จะตรวจสอบว่าข้อความที่ถูกดักจับนั้นตรงกับเหตุการณ์การกดปุ่มหรือไม่ เงื่อนไขif (int_2 >= 0 && intptr_1 == (IntPtr)256)ช่วยให้มั่นใจได้ว่า hook จะประมวลผลเฉพาะเหตุการณ์การกดปุ่มที่ถูกต้องเท่านั้น ค่า 256 ตรงกับข้อความ WM_KEYDOWN ใน Windows ซึ่งหมายความว่าโค้ดจะทำงานก็ต่อเมื่อมีการกดปุ่มเท่านั้น

ในตอนท้ายของเธรดนี้ มัลแวร์จะเรียกฟังก์ชัน UnhookWindowsHookEx() เพื่อลบการตรวจสอบการกดแป้นพิมพ์ที่ติดตั้งไว้ก่อนหน้านี้ ซึ่งจะทำให้มีการตรวจสอบการกดแป้นพิมพ์อย่างต่อเนื่องจนกว่ามัลแวร์จะถูกกำจัด
-หัวข้อที่ 2 – การตรวจสอบบริการด้านการธนาคารและสกุลเงินดิจิทัลของสหรัฐฯ โดยใช้คำสำคัญ
- เธรดใหม่ (เธรดเริ่มต้นใหม่ (GClass11.smethod_0)).เริ่ม();
นอกเหนือจากเธรด 1 ที่ดักจับเหตุการณ์จากแป้นพิมพ์แล้ว มัลแวร์ยังสร้างเธรดเพิ่มเติมนี้ขึ้นมาเพื่อจัดการการตรวจสอบขณะทำงานที่เกี่ยวข้องกับกิจกรรมทางการเงินของผู้ใช้โดยอิสระ
ขั้นแรก ระบบจะเตรียมและกำหนดค่าเริ่มต้นให้กับไดเร็กทอรีและชื่อของไฟล์บันทึกที่จะใช้ในการจัดเก็บผลการตรวจสอบในภายหลัง โดยจะมีการกำหนดค่าเริ่มต้นให้กับไฟล์สองไฟล์แยกกัน ไฟล์หนึ่งสำหรับกิจกรรมที่เกี่ยวข้องกับสกุลเงินดิจิทัล (“crypto_results.txt”) และอีกไฟล์หนึ่งสำหรับกิจกรรมที่เกี่ยวข้องกับการธนาคาร (“banks_results.txt”) ไฟล์เหล่านี้จะถูกจัดเก็บไว้ในไดเร็กทอรี %localappdata% ของผู้ใช้

ถัดไป มัลแวร์จะสร้างอาร์เรย์สตริงสองชุดชื่อ “array” และ “array2” ค่าของอาร์เรย์เหล่านี้จะถูกสร้างขึ้นใหม่แบบไดนามิกในระหว่างการทำงานผ่านรูทีนการถอดรหัสภายใน เทคนิคนี้จะซ่อนคำสำคัญที่มีความหมายจากการตรวจสอบแบบคงที่ ในขณะที่ยังคงอนุญาตให้มัลแวร์ใช้คำเหล่านั้นในระหว่างการทำงานได้
อาร์เรย์แรก (array) ประกอบด้วยคำหลักที่เกี่ยวข้องกับสกุลเงินดิจิทัล 47 คำ (0x2F) ซึ่งรวมถึงแพลตฟอร์มต่างๆ เช่น Coinbase, Blockchain, Bitcoin และอื่นๆ อาร์เรย์ที่สอง (array2) ประกอบด้วยคำหลักที่เกี่ยวข้องกับสถาบันการเงินและบริการชำระเงิน 51 คำ (0x33) ซึ่งรวมถึง Bank of America, Wells Fargo, Chime และ PayPal
จากการตรวจสอบคำสำคัญใน array2 อย่างละเอียด พบว่าผู้สร้างมัลแวร์ให้ความสำคัญอย่างมากกับระบบนิเวศทางการเงินของสหรัฐอเมริกา ครอบคลุมถึงธนาคารแห่งชาติขนาดใหญ่ สถาบันระดับภูมิภาค แพลตฟอร์มธนาคารดิจิทัล และบริการชำระเงินออนไลน์ที่ใช้กันอย่างแพร่หลาย


วงจรตรวจสอบที่เน้นด้านการธนาคารและสกุลเงินดิจิทัล
หลังจากเริ่มต้นรายการคำหลักและไฟล์ผลลัพธ์แล้ว มัลแวร์จะเข้าสู่ลูปการตรวจสอบอย่างต่อเนื่อง ซึ่งออกแบบมาเพื่อติดตามการโต้ตอบของผู้ใช้กับบริการทางการเงิน

มีการสร้างอ็อบเจ็กต์ HashSet สองรายการสำหรับไฟล์ผลลัพธ์ที่สร้างไว้ก่อนหน้านี้ ซึ่งช่วยให้มัลแวร์หลีกเลี่ยงการบันทึกซ้ำซ้อนและเก็บรักษาบันทึกของการจับคู่ที่ระบุไว้แล้ว
ภายในลูปที่ไม่สิ้นสุด มัลแวร์จะดึงชื่อของหน้าต่างที่ใช้งานอยู่ในปัจจุบันซ้ำๆ

ข้อความที่ถูกดักจับจะถูกปรับให้เป็นมาตรฐานโดยใช้เมธอด .ToLower() ก่อนที่จะนำไปเปรียบเทียบกับรายการคำหลักที่กำหนดไว้ล่วงหน้า ซึ่งประกอบด้วยแพลตฟอร์มสกุลเงินดิจิทัลและบริการที่เกี่ยวข้องกับการธนาคาร เมื่อใดก็ตามที่พบคำที่ตรงกันและยังไม่เคยถูกบันทึกไว้ก่อนหน้านี้ คำหลักที่เกี่ยวข้องจะถูกเขียนลงในไฟล์ผลลัพธ์เฉพาะโดยใช้เมธอด File.AppendAllText() นอกจากนี้ มัลแวร์จะเริ่มดักจับและบันทึกการกดแป้นพิมพ์ครั้งต่อๆ ไปที่เกี่ยวข้องกับเซสชันนั้น ทำให้สามารถรวบรวมข้อมูลป้อนเข้าของผู้ใช้ที่อาจมีความลับเกี่ยวกับการทำธุรกรรมทางการเงินได้

ตรรกะนี้เชื่อมโยงกิจกรรมของผู้ใช้ในส่วนหน้ากับคำหลักทางการเงินที่กำหนดเป้าหมายได้อย่างมีประสิทธิภาพ ซึ่งบ่งชี้ว่ามัลแวร์จะตรวจสอบเฉพาะเซสชันที่เกี่ยวข้องกับบริการธนาคาร แพลตฟอร์มการชำระเงิน หรือบริการสกุลเงินดิจิทัล แทนที่จะบันทึกกิจกรรมทั้งหมดโดยไม่เลือกปฏิบัติ
การเชื่อมต่อ C2 และการขโมยข้อมูล
เมธอด smethod_5() ทำหน้าที่ควบคุมและสั่งการ (C2) หลักของมัลแวร์ โดยจะพยายามสร้างการเชื่อมต่อเครือข่ายกับเซิร์ฟเวอร์ระยะไกลที่กำหนดไว้ล่วงหน้าอย่างต่อเนื่อง และจัดการวงจรชีวิตของช่องทางการสื่อสารที่ใช้งานอยู่ เมื่อสร้างการเชื่อมต่อสำเร็จแล้ว รูทีนนี้จะช่วยให้สามารถโต้ตอบกับเซิร์ฟเวอร์ระยะไกลได้มากขึ้น ซึ่งเป็นพื้นฐานสำหรับการแลกเปลี่ยนข้อมูลและการควบคุมระยะไกล

ในขั้นต้น ไบนารีจะวนซ้ำผ่านรายการโดเมนที่กำหนดไว้ล่วงหน้า (Class15.string_0) และพอร์ตที่เกี่ยวข้อง (Class15.int_0)

สำหรับแต่ละคู่โดเมน-พอร์ต จะมีการสร้างอ็อบเจ็กต์ TcpClient ขึ้น เมื่อสร้างการเชื่อมต่อ TCP แล้ว จะมีการเรียกใช้รูทีนการตรวจสอบความถูกต้อง (smethod_6) ซึ่งทำหน้าที่เหมือนการตรวจสอบการจับมือเพื่อยืนยันว่าเซิร์ฟเวอร์ระยะไกลตอบกลับด้วยตัวระบุที่คาดหวังไว้

ตัวระบุที่เราพบในตัวอย่างของเราคือสตริง “RETRO-OK-2025” การเชื่อมต่อที่ไม่ผ่านการตรวจสอบนี้จะถูกปิดทันทีและจะลองใช้เซิร์ฟเวอร์ถัดไป
หลังจากตรวจสอบความถูกต้องของ C2 สำเร็จ มัลแวร์จะเปิดใช้งานฟีเจอร์ RAT ซึ่งจะรวบรวมข้อมูลการกดแป้นพิมพ์ที่บันทึกไว้ในไฟล์ผลลัพธ์ในเครื่องเป็นระยะ และส่งข้อมูลนั้นไปยังเซิร์ฟเวอร์ C2

มัลแวร์จะอ่านข้อมูลการกดแป้นพิมพ์ที่รวบรวมได้จากไฟล์ผลลัพธ์โดยใช้ File.ReadAllText() ข้อมูลที่ถูกขโมยจะถูกรวมเข้ากับข้อมูลระบุตัวตนของเหยื่อและบรรจุลงในข้อความที่มีโครงสร้างโดยใช้รูทีนการสร้างแพ็กเก็ตภายใน (GClass10) จากนั้นข้อความจะถูกส่งไปยังเซิร์ฟเวอร์ C2 ผ่านช่องทางการสื่อสาร TCP ที่ใช้งานอยู่ (GClass12) โดยที่เพย์โหลดจะถูกเข้ารหัสก่อนการส่ง
กลไกนี้ทำให้มัลแวร์สามารถรวบรวมและส่งข้อมูลป้อนเข้าของผู้ใช้ที่มีความละเอียดอ่อนไปยังโครงสร้างพื้นฐาน C2 ระยะไกลได้อย่างน่าเชื่อถือ ซึ่งช่วยให้ผู้โจมตีสามารถเก็บเกี่ยวข้อมูลทางการเงินและข้อมูลที่เกี่ยวข้องกับข้อมูลประจำตัวจากระบบที่ถูกบุกรุกได้
โมดูล RAT
มัลแวร์นี้เป็นโทรจันสำหรับการเข้าถึงระยะไกล (Remote Access Trojan) ซึ่งรองรับความสามารถในการควบคุมระยะไกลได้หลากหลายรูปแบบ คำสั่งที่ได้รับจากเซิร์ฟเวอร์ C2 จะถูกประมวลผลผ่านตัวจัดการส่วนกลางที่ถูกนำมาใช้ในรูปแบบคำสั่ง switch ซึ่งจะประเมินตัวระบุคำสั่งที่กำหนดไว้ใน enum1 และเรียกใช้ฟังก์ชันที่เกี่ยวข้อง

ขึ้นอยู่กับค่าของคำสั่ง โมดูลต่างๆ จะถูกเรียกใช้เพื่อดำเนินการต่างๆ เช่น การตรวจสอบเดสก์ท็อประยะไกล การจัดการระบบไฟล์ การเรียกใช้คำสั่ง และการควบคุมระบบ


ฟังก์ชัน RAT นี้ช่วยให้ผู้โจมตีสามารถตรวจสอบและควบคุมระบบที่ติดไวรัสได้อย่างโต้ตอบ นอกเหนือจากการขโมยข้อมูลทางการเงิน
ขีดความสามารถในการสั่งการของ RAT
| ความสามารถ | การกระทำ |
| การเข้าถึงเดสก์ท็อประยะไกล / การตรวจสอบหน้าจอ | เริ่ม/หยุดการจับภาพหน้าจอ และกำหนดค่าการสตรีมเดสก์ท็อประยะไกล |
| การดำเนินการจัดการไฟล์ | เรียกดูไดเร็กทอรี อัปโหลด/ดาวน์โหลดไฟล์ จัดการระบบไฟล์ |
| การตรวจสอบกระบวนการ/ระบบ | ระบุขั้นตอนต่างๆ รวบรวมข้อมูลระบบ จัดการงานต่างๆ |
| การดำเนินการคำสั่ง | เรียกใช้คำสั่งหรือโปรแกรมบนระบบที่ถูกบุกรุก |
| ระบบควบคุม | ปิดระบบ/รีบูตระบบ หรือยุติการทำงานของโปรแกรมมัลแวร์ |
| หน่วยความจำ / การทำงานขั้นสูง | ดำเนินการจัดการหน่วยความจำหรือกระบวนการต่างๆ |
คำหลักทางการเงินเป้าหมาย
| cryptocurrency | |||
| coinbase | metamask | bitflyer | poloniex |
| blockchain | trustwallet | บิตเก็ต | โปรบิต |
| กระเป๋าเงินฟรี | bitpay | ประตู | hitbtc |
| กระเป๋าสตางค์ | paxful | coincheck | เมอร์คาทอกซ์ |
| bitcoin | localbitcoins | เย้ยหยัน | ฮอตบิต |
| BTC | การเข้ารหัสลับ | bitso | ดิจิฟิเน็กซ์ |
| binance | bitfinex | บิตมาร์ท | บิตแบงค์ |
| คราเคน | bitstamp | อดีตโม | Luno |
| eToro | ตกลง | บิตแพนด้า | เมถุน |
| Coingecko | ไบต์ | ของเหลว | บิตบีนส์ |
| coinmarketcap | kucoin | คอยน์เมโทร | เสือโคร่ง |
| tradingview | huobi | bittrex | |
| สถาบันการเงิน / แพลตฟอร์มการชำระเงิน | |||
| ธนาคารแห่งอเมริกา | ธนาคารห้าสาม | สาธารณรัฐแรก | น้ำแข็งเกาะ |
| เวลส์ฟาร์โก | ฮันติงตัน | ไซออนส์แบงก์ | เปิด |
| การไล่ล่า | ซิงโครไนซ์ | ธนาคารพาณิชย์ | พลเมืองคนแรก |
| ธนาคารซิตี้แบงก์ | คีย์แบงก์ | ธนาคารแห่งตะวันตก | ธนาคารเซ็นจูรีลิงก์ |
| ธนาคารยูเอสแบงก์ | AmericanExpress | วันไฟแนนซ์ | เยื่อหุ้มกระดูก |
| ทุน | ค้นพบ | โก2แบงก์ | ขอบฟ้าแรก |
| พีเอ็นซี | เอ็นบีเคซี | จุดสีเขียว | อีเบย์ |
| ทีดีแบงก์ | Sofi | ง่าย | PayPal |
| ผู้ซื่อสัตย์ | ความคล้องจอง | ความทะเยอทะยาน | ผู้จ่ายเงิน |
| พันธมิตร | วาโรแบงก์ | ธนาคารเอ็นบีเคซี | Amazon |
| บีบีที | แอ็กโซสแบงก์ | ดาวธง | เช็คเอาต์ |
| ซันทรัสต์ | ธนาคารซิติเซนส์แบงก์ | BMO | การชำระเงิน |
| ภูมิภาค | เอ็มแอนด์ทีแบงก์ | เอเวอร์แบงก์ | |
สรุป
Operation DualScript เป็นแคมเปญมัลแวร์หลายขั้นตอนที่ใช้ประโยชน์จากส่วนประกอบของ Windows ที่ถูกต้องตามกฎหมาย เช่น Scheduled Tasks, VBScript และ PowerShell เพื่อรักษาการทำงานอย่างต่อเนื่องในขณะที่ลดปริมาณข้อมูลบนดิสก์ให้น้อยที่สุด การโจมตีทำงานผ่านสองห่วงโซ่คู่ขนาน: ตัวโหลด PowerShell บนเว็บที่ติดตั้งโปรแกรมโจรกรรมข้อมูลในคลิปบอร์ดสำหรับสกุลเงินดิจิทัล และห่วงโซ่ตัวโหลด PowerShell รองที่เรียกใช้โปรแกรมฝังตัว RetroRAT โดยตรงในหน่วยความจำ
ด้วยการผสมผสานการโจรกรรมทางการเงินผ่านการจัดการกระเป๋าเงินดิจิทัลเข้ากับความสามารถในการเข้าถึงระยะไกล ผู้โจมตีสามารถขโมยสกุลเงินดิจิทัลเป้าหมายและเฝ้าติดตามระบบอย่างต่อเนื่องได้ แคมเปญนี้เน้นให้เห็นถึงการใช้ประโยชน์จากยูทิลิตี้ของระบบที่เชื่อถือได้และเทคนิคการประมวลผลในหน่วยความจำในทางที่ผิดมากขึ้น เพื่อหลีกเลี่ยงกลไกการตรวจจับแบบดั้งเดิม
ตัวบ่งชี้การประนีประนอม
อิงตามไฟล์
| สิ่งประดิษฐ์ | MD5 แฮช | การตรวจพบ |
| เรโทรแรท | 7546ada1e3144371724db209ba4c5f37 | Trojan.RetroRAT.S3882604 |
| PicVid.ps1 | 173b27e7541427929da72ebf37c6db8e | สคริปต์ RetroRat.50517.GC |
| PicVid.vbs | 243af69d85550232da45f5a30703a4a3 | สคริปต์ RetroRat.50517.GC |
| ppamproServiceZuneWAL.ps1 | 43cac07a501e7a717023e0fa8f6111e0 | สคริปต์.โทรจัน.49593.GC |
| ppamproServiceZuneWAL.vbs | 163c38bd7ff7dd27e88eaef1a7a4819f | พีเอส.โทรจัน.50374 |
| กระเป๋าสตางค์.txt | 1dc82fd02a0db3e338128b6f587d7122 | สคริปต์ RetroRat.50517.GC |
บนเครือข่าย
| URL / โดเมน | Category |
| info[.]1cooldns[.]com | มัลแวร์ |
| floatsdk[.]1cooldns[.]com | มัลแวร์ |
| thewpiratebay[.]st | มัลแวร์ |
การทำแผนที่แบบมิทร์
| ชั้นเชิง | เทคนิค | รหัสเทคนิค |
| การติดตา | งาน/งานตามกำหนดการ | T1053.005 |
| การกระทำ | ล่ามคำสั่งและสคริปต์: PowerShell | T1059.001 |
| การกระทำ | ตัวแปลคำสั่งและสคริปต์: VBScript | T1059.005 |
| การหลบหลีกการป้องกัน | ไฟล์และข้อมูลที่ถูกเข้ารหัส/บีบอัด | T1027 |
| การหลบหลีกการป้องกัน | ลดทอนระบบป้องกัน: ปิดใช้งานหรือแก้ไขเครื่องมือ (การข้ามขั้นตอนการตรวจสอบสิทธิ์) | T1562.001 |
| การค้นพบ | การค้นพบกระบวนการ | T1057 |
| ชุด | จับอินพุต: Keylogging | T1056.001 |
| ชุด | ข้อมูลคลิปบอร์ด | T1115 |
| ชุด | จับภาพหน้าจอ | T1113 |
| การเข้าถึงข้อมูลประจำตัว | จับอินพุต | T1056 |
| ควบคุมและสั่งการ | โปรโตคอลระดับแอปพลิเคชัน (โปรโตคอลเว็บ) | T1071 |
| การกรอง | การกรองผ่านช่อง C2 | T1041 |
ผู้เขียน:
นิราช มาคาซาเร
ปราชิล มูน
รายาปตี ลักษมี ปราสันนา ไซ



