Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

Worok: ภาพใหญ่

กลุ่มจารกรรมทางไซเบอร์กลุ่มใหม่นี้เน้นที่เอเชียเป็นส่วนใหญ่ ใช้เครื่องมือที่ไม่มีเอกสาร รวมถึงการแยกข้อมูล PowerShell ออกจากไฟล์ PNG

เมื่อเร็ว ๆ นี้นักวิจัยของ ESET พบการโจมตีแบบกำหนดเป้าหมายที่ใช้เครื่องมือที่ไม่มีเอกสารกับบริษัทที่มีชื่อเสียงและรัฐบาลท้องถิ่นซึ่งส่วนใหญ่อยู่ในเอเชีย การโจมตีเหล่านี้ดำเนินการโดยกลุ่มจารกรรมที่ไม่รู้จักก่อนหน้านี้ ซึ่งเราตั้งชื่อว่า Worok และเปิดใช้งานมาตั้งแต่ปี 2020 เป็นอย่างน้อย ชุดเครื่องมือของ Worok ประกอบด้วย CLRLoad ตัวโหลด C++, PowHeartBeat แบ็คดอร์ PowerShell และตัวโหลด C# PNGLoad ที่ใช้การลวงข้อมูลเพื่อแยกไฟล์ที่เป็นอันตรายที่ซ่อนอยู่ เพย์โหลดจากไฟล์ PNG

วโรกคือใคร?

ระหว่าง ProxyShell (CVE-2021-34523) การเปิดเผยช่องโหว่ในช่วงต้นปี 2021 เราสังเกตเห็น กิจกรรมจากกลุ่ม APT ต่างๆ. หนึ่งแสดงลักษณะร่วมกับ TA428:

  • เวลากิจกรรม
  • ประเภทธุรกิจเป้าหมาย
  • การใช้ ShadowPad

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

ย้อนกลับไปในช่วงปลายปี 2020 Worok ตั้งเป้าไปที่รัฐบาลและบริษัทต่างๆ ในหลายประเทศ โดยเฉพาะ:

  • บริษัทโทรคมนาคมในเอเชียตะวันออก
  • ธนาคารในเอเชียกลาง
  • บริษัทอุตสาหกรรมการเดินเรือในเอเชียตะวันออกเฉียงใต้
  • หน่วยงานของรัฐในตะวันออกกลาง
  • บริษัทเอกชนในแอฟริกาตอนใต้

มีการหยุดชะงักอย่างมีนัยสำคัญในการดำเนินการที่สังเกตได้ระหว่างปี 2021-05 ถึง 2022-01 แต่กิจกรรม Worok กลับมาในปี 2022-02 โดยกำหนดเป้าหมาย:

  • บริษัทพลังงานในเอเชียกลาง
  • หน่วยงานภาครัฐในเอเชียตะวันออกเฉียงใต้

รูปที่ 1 แสดงแผนที่ความหนาแน่นของพื้นที่เป้าหมายและแนวดิ่ง

รูปที่ 1. แผนที่ของภูมิภาคเป้าหมายและแนวดิ่ง

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

การวิเคราะห์ทางเทคนิค

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

เมื่อได้รับสิทธิ์การเข้าถึงแล้ว ผู้ปฏิบัติงานได้ปรับใช้เครื่องมือที่เปิดเผยต่อสาธารณะหลายรายการเพื่อการลาดตระเวน รวมถึง Mimikatz, ไส้เดือน, รีจอร์จและ NBTสแกนแล้วปรับใช้รากฟันเทียมแบบกำหนดเอง: ตัวโหลดระยะแรก ตามด้วยตัวโหลด .NET ระยะที่สอง (PNGLoad) ขออภัย เราไม่สามารถเรียกข้อมูลเพย์โหลดสุดท้ายได้ ในปี 2021 ตัวโหลดขั้นตอนแรกคือชุดประกอบ CLR (CLRLoad) ในขณะที่ในปี 2022 ตัวโหลดส่วนใหญ่จะถูกแทนที่ด้วยแบ็คดอร์ PowerShell ที่มีคุณสมบัติครบถ้วน (PowHeartBeat) – ห่วงโซ่การดำเนินการทั้งสองแสดงไว้ในรูปที่ 2 ทั้งสาม เครื่องมือต่างๆ ได้อธิบายไว้โดยละเอียดในหัวข้อย่อยต่อไปนี้

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 2 Worok ประนีประนอมโซ่

CLRLoad: ตัวโหลดแอสเซมบลี CLR

CLRLoad เป็น Windows PE ทั่วไปที่เราเคยเห็นในเวอร์ชัน 32 และ 64 บิต มันเป็นตัวโหลดที่เขียนด้วย C ++ ที่โหลดขั้นตอนต่อไป (PNGLoad) ซึ่งจะต้องเป็น แอสเซมบลีรันไทม์ภาษาทั่วไป (CLR) ไฟล์ DLL รหัสนั้นถูกโหลดจากไฟล์ที่อยู่บนดิสก์ในไดเร็กทอรีที่ถูกต้อง สันนิษฐานว่าจะทำให้เหยื่อเข้าใจผิดหรือผู้ตอบสนองต่อเหตุการณ์โดยคิดว่าเป็นซอฟต์แวร์ที่ถูกต้อง

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

  • C:ไฟล์โปรแกรมVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
  • C:โปรแกรม FilesUltraViewermsvbvm80.dll
  • C: โปรแกรม FilesInternet ExplorerJsprofile.dll
  • C:โปรแกรม FilesWinRarRarExtMgt.dll
  • C:ไฟล์โปรแกรม (x86)ซอฟต์แวร์ FoxitFoxit Readerlucenelib.dll

ต่อไป mutex จะถูกสร้างขึ้นและเราได้เห็นชื่อที่แตกต่างกันในทุกตัวอย่าง ตัวโหลดจะตรวจสอบ mutex นี้ ถ้าพบก็จะออกเพราะตัวโหลดกำลังทำงานอยู่แล้ว ในตัวอย่างหนึ่ง mutex Wo0r0KGทำไมYGO ถูกพบซึ่งทำให้กลุ่มนั้นชื่อวอรก

CLRLoad จะโหลดแอสเซมบลี CLR จากเส้นทางไฟล์ที่ถอดรหัสได้ ในฐานะรหัสที่ไม่มีการจัดการ CLRLoad บรรลุสิ่งนี้ผ่าน CorBindToRuntimeเช่น การเรียกใช้ Windows API ในตัวแปร 32 บิตหรือ CLRCreateInstance โทรในรูปแบบ 64 บิต

PowHeartBeat: แบ็คดอร์ PowerShell

PowHeartBeat เป็นแบ็คดอร์ที่มีคุณสมบัติครบถ้วนซึ่งเขียนขึ้นใน PowerShell ซึ่งสร้างความสับสนโดยใช้เทคนิคต่างๆ เช่น การบีบอัด การเข้ารหัส และการเข้ารหัส จากการวัดและส่งข้อมูลทางไกลของ ESET เราเชื่อว่า PowHeartBeat เข้ามาแทนที่ CLRLoad ในแคมเปญ Worok ล่าสุด เนื่องจากเป็นเครื่องมือที่ใช้ในการเปิดใช้ PNGLoad

เลเยอร์แรกของรหัสลับๆ ประกอบด้วยรหัส PowerShell ที่เข้ารหัส base64 หลายส่วน เมื่อเพย์โหลดถูกสร้างขึ้นใหม่ มันจะถูกดำเนินการผ่าน ไอเอ็กซ์. เมื่อถอดรหัสแล้ว โค้ด obfuscated อีกชั้นหนึ่งจะถูกเรียกใช้งาน ซึ่งเราสามารถเห็นได้ในรูปที่ 3

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 3 ข้อความที่ตัดตอนมาจากฟังก์ชันหลักถอดรหัสของเลเยอร์ที่สองของ PowHeartBeat

เลเยอร์ที่สองของแบ็คดอร์เบสแรก 64 ถอดรหัสเลเยอร์ถัดไปของรหัส ซึ่งจะถูกถอดรหัสด้วย สาม DES (โหมด CBC) หลังจากถอดรหัสแล้ว รหัสนี้จะถูกคลายการบีบอัดโดยใช้เครื่องหมาย gzip อัลกอริธึมจึงให้รหัส PowerShell ชั้นที่สามซึ่งเป็นแบ็คดอร์จริง แบ่งออกเป็นสองส่วนหลัก: การกำหนดค่าและการจัดการคำสั่งลับๆ

เลเยอร์หลักของรหัสลับๆ ยังเขียนใน PowerShell และใช้ HTTP หรือ ICMP เพื่อสื่อสารกับเซิร์ฟเวอร์ C&C ใช้งานได้ดังรูปที่ 4

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 4 การทำงานของ PowHeartBeat

องค์ประกอบ

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

ตารางที่ 1. ความหมายของฟิลด์คอนฟิกูเรชัน

ชื่อฟิลด์ รายละเอียด
จมูก / ikuyrtydyfg
(ตัวอย่างอื่นๆ)
ไม่ได้ใช้
รหัสลูกค้า ตัวระบุไคลเอ็นต์ ใช้เพื่อวัตถุประสงค์ต่อไปนี้:
· เป็นมูลค่าเมื่อสร้าง ส่วนหัวของคุกกี้ สำหรับการสื่อสาร C&C
· เป็นสิ่งประดิษฐ์เข้ารหัสสำหรับการเข้ารหัสข้อมูลที่ส่ง
เวอร์ชั่น หมายเลขเวอร์ชันของ PowHeartBeat
เอ็กเซกไทม์ส จำนวนครั้งในการดำเนินการที่อนุญาตเมื่อออก a RunCmd (คำสั่งทำงาน) คำสั่ง
ตัวแทนผู้ใช้ ตัวแทนผู้ใช้ที่ใช้สำหรับการสื่อสาร C&C
อ้างอิง อ้างอิง ส่วนหัวที่ใช้สำหรับการสื่อสาร C&C
ยอมรับการเข้ารหัส ไม่ได้ใช้
รหัสลูกค้าคุกกี้
รหัสงานคุกกี้
รหัสเทอร์มินัลของคุกกี้
ค่าที่ใช้ในการสร้าง คุกกี้ ส่วนหัวสำหรับการสื่อสาร C&C
URLHttps โปรโตคอลที่จะใช้สำหรับการสื่อสาร C&C
URL โดเมน
ที่อยู่ IP
โดเมน
URL โดเมน หรือที่อยู่ IP ที่ใช้เป็นเซิร์ฟเวอร์ C&C ถ้า โดเมน ไม่ว่างก็เลือกแทน ที่อยู่ IP. ในกรณีอื่น ๆ ที่อยู่ IP ถูกถ่าย
UrlSendHeartBeat เส้นทาง URL ที่ใช้เมื่อแบ็คดอร์ขอคำสั่งจากเซิร์ฟเวอร์ C&C
URLส่งผลลัพธ์ เส้นทาง URL ที่ใช้เมื่อแบ็คดอร์ส่งผลของคำสั่งกลับไปยังเซิร์ฟเวอร์ C&C
GetUrl URL ที่สมบูรณ์ ซึ่งใช้โดย PowHeartBeat เพื่อขอคำสั่งจากเซิร์ฟเวอร์ C&C เป็นการต่อกันขององค์ประกอบ URL ด้านบน
วางUrl เหมือนกับ GetUrl แต่ใช้ในการส่งผลลัพธ์ของคำสั่งกลับไปยังเซิร์ฟเวอร์ C&C
เส้นทางปัจจุบัน ไม่ได้ใช้
พร็อกซีเปิดใช้งานธง แฟล็กระบุว่าแบ็คดอร์ต้องใช้พร็อกซีหรือไม่เพื่อสื่อสารกับเซิร์ฟเวอร์ C&C
หนังสือมอบฉันทะ ที่อยู่ของพร็อกซี่ที่จะใช้ if พร็อกซีเปิดใช้งานธง ถูกตั้งค่าเป็น $จริง.
ระยะห่าง เวลาเป็นวินาทีที่สคริปต์พักระหว่างคำขอ GET
BasicConfigPath พาธไปยังไฟล์คอนฟิกูเรชันทางเลือกที่มี เวลาทำงาน, เวลาหยุดทำงาน, ช่วงเวลาเริ่มต้นและ โดเมน. ค่าเหล่านั้นจะถูกแทนที่หากมีไฟล์อยู่
เวลาทำงาน เวลาของวันที่แบ็คดอร์เริ่มทำงาน หมายความว่าเริ่มส่งคำขอ GET ไปยังเซิร์ฟเวอร์ C&C
เวลาหยุดทำงาน ช่วงเวลาของวันที่แบ็คดอร์สามารถทำงานได้ ซึ่งหมายถึงเวลาที่หยุดส่งคำขอไปยังเซิร์ฟเวอร์ C&C
ดัชนีโดเมน ดัชนีของชื่อโดเมนปัจจุบันที่จะใช้สำหรับการสื่อสารกับเซิร์ฟเวอร์ C&C ในกรณีที่คำขอส่งคืนข้อความแสดงข้อผิดพลาดที่แตกต่างจาก 304 (“ไม่ได้แก้ไข”), ดัชนีโดเมน เพิ่มขึ้น
SecretKey คีย์ที่ใช้ในการถอดรหัส/เข้ารหัสการกำหนดค่า การกำหนดค่าถูกเข้ารหัสด้วย XOR แบบหลายไบต์
ถ้าเข้าสู่ระบบ ไม่ได้ใช้
ถ้า LogFilePath แฟล็กระบุว่าเปิดใช้งานการบันทึกหรือไม่
เข้าสู่ระบบ เส้นทางของไฟล์บันทึก
พร็อกซีไฟล์ พาธไฟล์ของคอนฟิกูเรชันพร็อกซีที่เป็นทางเลือก หากว่างเปล่าหรือไม่พบในระบบไฟล์ แบ็คดอร์จะดึงการตั้งค่าพร็อกซีของผู้ใช้จากค่ารีจิสทรี HKCUซอฟต์แวร์ Microsoft WindowsCurrentVersionInternet SettingsProxyServer .
ถ้ากำหนดค่า แฟล็กระบุว่าจะใช้ไฟล์คอนฟิกูเรชันหรือไม่

รูปที่ 5 แสดงตัวอย่างการกำหนดค่าที่ดึงมาจากตัวอย่าง PowHeartBeat (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).

รูปที่ 5. ตัวอย่างการกำหนดค่า

การเข้ารหัสข้อมูล

PowHeartBeat เข้ารหัสบันทึกและเนื้อหาไฟล์การกำหนดค่าเพิ่มเติม

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

การสื่อสาร C&C

PowHeartBeat ใช้ HTTP สำหรับการสื่อสาร C&C จนถึงเวอร์ชัน 2.4 แล้วเปลี่ยนเป็น ICMP ในทั้งสองกรณี การสื่อสารไม่ได้รับการเข้ารหัส

HTTP

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

รูปแบบของคำขอ GET มีดังต่อไปนี้:

โปรดทราบว่าคำขอถูกสร้างขึ้นโดยใช้ฟิลด์การกำหนดค่าที่มีชื่อเดียวกัน

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

รูปที่ 6. ขออัลกอริธึมการเข้ารหัสข้อมูลเนื้อหา

การตอบสนองจากเซิร์ฟเวอร์ C&C ยังมีคุกกี้อีกตัวหนึ่งซึ่งมีชื่อระบุโดย backdoor's รหัสเทอร์มินัลของคุกกี้ ตัวแปรการกำหนดค่า ค่าของคุกกี้นี้ซ้ำกันในคำขอ POST จากแบ็คดอร์ และต้องไม่ว่างเปล่า หลังจากดำเนินการคำสั่งลับๆ PowHeartBeat จะส่งผลตามคำขอ POST ไปยังเซิร์ฟเวอร์ C&C ผลลัพธ์จะถูกส่งเป็นไฟล์ชื่อ .png.

ICMP

เริ่มต้นจากเวอร์ชัน 2.4 ของ PowHeartBeat HTTP ถูกแทนที่ด้วย ICMP ส่งแพ็กเก็ตที่มีการหมดเวลาหกวินาทีและเป็น ไม่มีการแยกส่วน. การสื่อสารผ่าน ICMP มักจะเป็นวิธีหลบเลี่ยงการตรวจจับ

ไม่มีการเปลี่ยนแปลงที่สำคัญในเวอร์ชัน 2.4 และใหม่กว่า แต่เราสังเกตเห็นการแก้ไขบางอย่างในโค้ด:

  • PowHeartBeat ส่งแพ็กเก็ต heartbeat ที่แต่ละลูปที่มี string ABCDEFGHIJKLMNOPQRSTU VWXYZก่อนร้องขอคำสั่ง ซึ่งจะแจ้งเซิร์ฟเวอร์ C&C ว่าแบ็คดอร์พร้อมที่จะรับคำสั่ง
  • คำขอรับคำสั่งที่ดำเนินการโดยแบ็คดอร์มี string abcdefghijklmnop.

แพ็กเก็ต Heartbeat มีรูปแบบที่อธิบายไว้ในรูปที่ 7

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 7 รูปแบบแพ็กเก็ต Heartbeat

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

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 8 โครงร่างการตอบสนองของเซิร์ฟเวอร์ C&C

ธง ที่นี่ระบุว่ามีคำสั่งให้ออกไปยังแบ็คดอร์หรือไม่ คำขอรับคำสั่งมีรูปแบบอธิบายไว้ในรูปที่ 9

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 9 เค้าโครงคำขอรับคำสั่ง

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

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 10. เลย์เอาต์ของการตอบสนองต่อการร้องขอเพื่อรับคำสั่ง

ในการตอบกลับ HTTP ตัวระบุคำสั่งคือไบต์ที่สามของ ข้อมูล.

หลังจากการตอบกลับ ICMP เจ็ดครั้งติดต่อกันด้วยเนื้อหาที่ว่างเปล่าหรือจัดรูปแบบไม่สอดคล้องกัน การถ่ายโอนระหว่างแบ็คดอร์และเซิร์ฟเวอร์ C&C จะถือว่าเสร็จสิ้น

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

คำสั่งลับๆ

PowHeartBeat มีความสามารถที่หลากหลาย รวมถึงการดำเนินการคำสั่ง/กระบวนการและการจัดการไฟล์ ตารางที่ 2 แสดงรายการคำสั่งทั้งหมดที่สนับสนุนโดยตัวอย่างที่วิเคราะห์ต่างๆ

ตารางที่ 2. คำอธิบายคำสั่ง PowHeartBeat

Name ตัวระบุคำสั่ง รายละเอียด
Cmd 0x02 ดำเนินการคำสั่ง PowerShell
exe 0x04 ดำเนินการคำสั่งเป็น กระบวนการ.
อัปโหลดไฟล์ 0x06 อัปโหลดไฟล์ไปยังเครื่องเหยื่อ เนื้อหาของไฟล์ถูกบีบอัดด้วย gzip
ไฟล์ดาวน์โหลด 0x08 ดาวน์โหลดไฟล์จากเครื่องของเหยื่อ และส่งคืนเส้นทางของไฟล์ ความยาวไฟล์ เวลาที่สร้าง เวลาเข้าถึง และเนื้อหาไฟล์ไปยังเซิร์ฟเวอร์ C&C
ไฟล์วิว 0x0A รับข้อมูลไฟล์ของไดเร็กทอรีเฉพาะ โดยเฉพาะ:
·ชื่อไฟล์
· คุณสมบัติไฟล์
· เวลาเขียนล่าสุด
· เนื้อหาของไฟล์
ไฟล์ลบ 0x0C ลบไฟล์
ไฟล์เปลี่ยนชื่อ 0x0E เปลี่ยนชื่อหรือย้ายไฟล์
เปลี่ยนผอ 0x10 เปลี่ยนตำแหน่งการทำงานปัจจุบันของแบ็คดอร์
ข้อมูล 0x12 รับหมวดหมู่ข้อมูลตามอาร์กิวเมนต์ที่ระบุ:
· "ข้อมูลพื้นฐาน": รหัสลูกค้า, เวอร์ชั่น, ชื่อโฮสต์, ที่อยู่ IP, explorer.exe ข้อมูลรุ่นและขนาด OS (สถาปัตยกรรมและแฟล็กระบุว่าเครื่องเป็นเซิร์ฟเวอร์หรือไม่) ระยะห่าง, ไดเร็กทอรีปัจจุบัน, ข้อมูลไดรฟ์ (ชื่อ, ประเภท, พื้นที่ว่างและขนาดรวม), เวลาปัจจุบัน
· “ข้อมูลช่วงเวลา”: ระยะห่าง และเวลาปัจจุบัน
· “ข้อมูลโดเมน”: ถอดรหัสเนื้อหาไฟล์การกำหนดค่า
การกำหนดค่า 0x14 อัปเดตเนื้อหาไฟล์การกำหนดค่าและโหลดการกำหนดค่าอีกครั้ง
N / A 0x63 ทางออกประตูหลัง.

ในกรณีที่มีข้อผิดพลาดทางแบ็คดอร์ แบ็คดอร์จะใช้ตัวระบุคำสั่งเฉพาะ 0x00 ในคำขอ POST ไปยังเซิร์ฟเวอร์ C&C ซึ่งบ่งชี้ว่ามีข้อผิดพลาดเกิดขึ้น

โปรดทราบว่าก่อนที่จะส่งข้อมูลกลับไปยังเซิร์ฟเวอร์ C&C ข้อมูลจะถูกบีบอัดด้วย gzip

PNGLoad: ตัวโหลด Steganographic

PNGLoad เป็นเพย์โหลดขั้นที่สองที่ Worok ใช้งานบนระบบที่ถูกบุกรุก และตามการวัดผลทางไกลของ ESET โหลดโดย CLRLoad หรือ PowHeartBeat แม้ว่าเราจะไม่เห็นโค้ดใดๆ ใน PowHeartBeat ที่โหลด PNGLoad โดยตรง แต่แบ็คดอร์มีความสามารถในการดาวน์โหลดและดำเนินการเพย์โหลดเพิ่มเติมจากเซิร์ฟเวอร์ C&C ซึ่งมีแนวโน้มว่าผู้โจมตีจะปรับใช้ PNGLoad ในระบบที่บุกรุก PowHeartBeat PNGLoad เป็นตัวโหลดที่ใช้ไบต์จากไฟล์ PNG เพื่อสร้างเพย์โหลดเพื่อดำเนินการ เป็นไฟล์ปฏิบัติการ .NET 64 บิต – สับสนกับ .NET เครื่องปฏิกรณ์ – ที่ปลอมแปลงเป็นซอฟต์แวร์ที่ถูกต้องตามกฎหมาย ตัวอย่างเช่น รูปที่ 11 แสดงส่วนหัว CLR ของตัวอย่างการปลอมแปลงเป็น WinRAR DLL

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 11 ตัวอย่าง WinRAR DLL . ปลอม

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

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูป 12 . Png รายการไฟล์

แต่ละ . Png ไฟล์ที่อยู่โดยการค้นหานี้ของ เส้นทางหลัก จะถูกตรวจสอบสำหรับเนื้อหาที่ฝังตัวแบบสเตกาโนกราฟี อันดับแรก บิตที่มีนัยสำคัญน้อยที่สุดของค่า R (สีแดง), G (สีเขียว), B (สีน้ำเงิน) และ A (alpha) ของแต่ละพิกเซลจะถูกดึงมาและประกอบเป็นบัฟเฟอร์ หากแปดไบต์แรกของบัฟเฟอร์นั้นตรงกับหมายเลขเวทย์มนตร์ที่เห็นในรูปที่ 13 และค่าแปดไบต์ถัดไป การควบคุม ไม่เป็นค่าว่าง ไฟล์จะผ่านการตรวจสอบเนื้อหาที่เป็นความลับของ PNGLoad สำหรับไฟล์ดังกล่าว การประมวลผลจะดำเนินต่อไปโดยส่วนที่เหลือของบัฟเฟอร์ถูกถอดรหัสด้วย XOR แบบหลายไบต์ โดยใช้คีย์ที่เก็บไว้ใน PNGLoad SecretKeyBytes แอตทริบิวต์ จากนั้นบัฟเฟอร์ถอดรหัสจะถูกคลายบีบอัดด้วย gzip ผลลัพธ์ที่คาดว่าจะเป็นสคริปต์ PowerShell ซึ่งทำงานทันที

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปที่ 13 รูปแบบของบัฟเฟอร์ PNGLoad สร้างขึ้นจากการประมวลผล . Png ไฟล์

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

เราไม่สามารถรับตัวอย่างได้ . Png ไฟล์ที่ใช้พร้อมกับ PNGLoad แต่วิธีการทำงานของ PNGLoad แนะนำว่าควรทำงานกับไฟล์ PNG ที่ถูกต้อง เพื่อซ่อนเพย์โหลดที่เป็นอันตราย Worok ใช้ออบเจ็กต์บิตแมปใน C # ซึ่งรับเฉพาะข้อมูลพิกเซลจากไฟล์ ไม่ใช่ข้อมูลเมตาของไฟล์ ซึ่งหมายความว่า Worok สามารถซ่อนเพย์โหลดที่เป็นอันตรายในภาพ PNG ที่ถูกต้องและดูเหมือนไม่มีพิษภัย ดังนั้นจึงซ่อนอยู่ในสายตาธรรมดา

สรุป

Worok เป็นกลุ่มจารกรรมทางไซเบอร์ที่พัฒนาเครื่องมือของตนเอง รวมถึงการใช้ประโยชน์จากเครื่องมือที่มีอยู่ เพื่อประนีประนอมกับเป้าหมาย การขโมยข้อมูลจากเหยื่อคือสิ่งที่เราเชื่อว่าผู้ปฏิบัติงานติดตามเพราะพวกเขามุ่งเน้นไปที่หน่วยงานที่มีชื่อเสียงในเอเชียและแอฟริกา โดยกำหนดเป้าหมายไปยังภาคส่วนต่างๆ ทั้งภาครัฐและเอกชน แต่เน้นเฉพาะหน่วยงานของรัฐ เวลากิจกรรมและชุดเครื่องมือบ่งชี้ถึงความเกี่ยวข้องที่เป็นไปได้กับ TA428 แต่เราทำการประเมินนี้ด้วยความมั่นใจต่ำ ชุดเครื่องมือแบบกำหนดเองของพวกเขาประกอบด้วยตัวโหลดสองตัว – หนึ่งตัวใน C++ และอีกหนึ่งตัวใน C# .NET – และประตูหลัง PowerShell หนึ่งตัว ในขณะที่ทัศนวิสัยของเรามีจำกัด เราหวังว่าการให้ความกระจ่างเกี่ยวกับกลุ่มนี้จะสนับสนุนให้นักวิจัยคนอื่นๆ แบ่งปันข้อมูลเกี่ยวกับกลุ่มนี้

หากมีข้อสงสัยเกี่ยวกับงานวิจัยของเราที่เผยแพร่บน WeLiveSecurity โปรดติดต่อเราที่ Threatintel@eset.com.

ขณะนี้ ESET Research ยังมีรายงานข่าวกรอง APT ส่วนตัวและฟีดข้อมูลอีกด้วย หากมีข้อสงสัยเกี่ยวกับบริการนี้ โปรดไปที่ ESET ภัยคุกคามอัจฉริยะ หน้า.

IOCs

ไฟล์

SHA-1 ชื่อไฟล์ ชื่อการตรวจจับ ESET Comment
3A47185D0735CDECF4C7C2299EB18401BFB328D5 ต้นฉบับ PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003
27ABB54A858AD1C1FF2863913BDA698D184E180D ต้นฉบับ PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003
678A131A9E932B9436241402D9727AA7D06A87E3 ต้นฉบับ PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003
757ABA12D04FD1167528FDD107A441D11CD8C427 ต้นฉบับ PowerShell/PowHeartBeat.B PowHeartBeat 2.1.3.0003
54700A48D934676FC698675B4CA5F712C0373188 ต้นฉบับ PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002
C2F53C138CB1B87D8FC9253A7088DB30B25389AF ต้นฉบับ PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002
C2F1954DE11F72A46A4E823DE767210A3743B205 tmp.ps1 PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0004
CE430A27DF87A6952D732B4562A7C23BEF4602D1 tmp.ps1 PowerShell/PowHeartBeat.A PowHeartBeat 2.1.3.0004
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF ต้นฉบับ PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003
4721EEBA13535D1EE98654EFCE6B43B778F13126 vix64.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
728A6CB7A150141B4250659CF853F39BFDB7A46C RarExtMgt.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
864E55749D28036704B6EA66555A86527E02AF4A Jsprofile.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
8DA6387F30C584B5FD3694A99EC066784209CA4C vssxml.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 xsec_1_5.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE msvbvm80.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
CDB6B1CAFEE098615508F107814179DEAED1EBCF lucenelib.dll MSIL/PNGLoader.A PNGโหลดเดอร์.
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D vsstrace.dll Win64/CLRLLoad.C CLRโหลด
F181E87B0CD6AA4575FD51B9F868CA7B27240610 crypto.dll Win32/CLRLLoad.A CLRโหลด
4CCF0386BDE80C339EFE0CC734CB497E0B08049C crypto.dll Win32/CLRLLoad.A CLRโหลด
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 wlbsctrl.dll Win64/CLRLLoad.E CLRโหลด
05F19EBF6D46576144276090CC113C6AB8CCEC08 wlbsctrl.dll Win32/CLRLLoad.A CLRโหลด
A5D548543D3C3037DA67DC0DA47214B2C2B15864 Secure32.dll Win64/CLRLLoad.H CLRโหลด
CBF42DCAF579AF7E6055237E524C0F30507090F3 dbghelp.dll Win64/CLRLLoad.C CLRโหลด

เส้นทางไฟล์

บางส่วนของ เส้นทางหลัก, LogFilePath และ ถ้า LogFilePath ค่าที่เราพบใน PNGLoad ตัวอย่าง:

เส้นทางหลัก LogFilePath ถ้า LogFilePath
C: ไฟล์โปรแกรม VMware VMware Tools C:ไฟล์โปรแกรมVMwareVMware ToolsVMware VGAuthreadme.txt C:ไฟล์โปรแกรมVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll
C:โปรแกรมไฟล์WinRar C:โปรแกรม FilesWinRarrarinstall.log C:โปรแกรม FilesWinRardes.dat
C:โปรแกรม FilesUltraViewer C:โปรแกรม FilesUltraViewer‌CopyRights.dat C:โปรแกรม FilesUltraVieweruvcr.dll

เครือข่าย

โดเมน IP
ไม่มี 118.193.78[.]22
ไม่มี 118.193.78[.]57
เครื่องบิน.ท่องเที่ยว-พาณิชย์[.]หน่วยงาน 5.183.101[.]9
central.suhypercloud[.]org 45.77.36[.]243

มิวเท็กซ์

ในตัวอย่าง CLRLoad ชื่อ mutex ที่เราพบคือ:

aB82UduGX0EX
ad8TbUIZl5Ga
นาย2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGทำไมYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxของฉัน

รายการตัวบ่งชี้ประนีประนอม (IoC) และตัวอย่างที่ครอบคลุมสามารถดูได้ใน ที่เก็บ GitHub ของเรา.

เทคนิค MITER ATT&CK

ตารางนี้ถูกสร้างขึ้นโดยใช้ 11 รุ่น ของกรอบงาน MITER ATT&CK

ชั้นเชิง ID Name รายละเอียด
การลาดตระเวน T1592.002 รวบรวมข้อมูลโฮสต์เหยื่อ: ซอฟต์แวร์ PowHeartBeat รวมตัวกัน explorer.exe ของ ข้อมูล
T1592.001 รวบรวมข้อมูลโฮสต์เหยื่อ: ฮาร์ดแวร์ PowHeartBeat รวบรวมข้อมูลเกี่ยวกับไดรฟ์
T1590.005 รวบรวมข้อมูลเครือข่ายเหยื่อ: ที่อยู่ IP PowHeartBeat รวบรวมที่อยู่ IP ของคอมพิวเตอร์ที่ถูกบุกรุก
การพัฒนาทรัพยากร T1583.004 รับโครงสร้างพื้นฐาน: เซิร์ฟเวอร์ Worok ใช้เซิร์ฟเวอร์ C&C ของตัวเอง
T1588.002 รับความสามารถ: เครื่องมือ Worok ปรับใช้เครื่องมือที่เปิดเผยต่อสาธารณะหลายเครื่องบนเครื่องที่ถูกบุกรุก
T1583.001 รับโครงสร้างพื้นฐาน: โดเมน Worok มีโดเมนที่จดทะเบียนเพื่ออำนวยความสะดวกในการสื่อสารและการแสดงละคร C&C
T1588.005 ได้รับความสามารถ: Exploits Worok ใช้ช่องโหว่ ProxyShell
T1587.001 พัฒนาความสามารถ: มัลแวร์ Worok ได้พัฒนามัลแวร์ของตัวเอง: CLRLoad, PNGLoad, PowHeartBeat
T1587.003 พัฒนาความสามารถ: ใบรับรองดิจิทัล Worok ได้สร้างใบรับรอง Let's Encrypt SSL เพื่อเปิดใช้งานการตรวจสอบ TLS ร่วมกันสำหรับมัลแวร์
การกระทำ T1059.001 ล่ามคำสั่งและสคริปต์: PowerShell PowHeartBeat เขียนด้วย PowerShell
การติดตา T1505.003 ส่วนประกอบซอฟต์แวร์เซิร์ฟเวอร์: Web Shell Worok ใช้ webshell รีจอร์จ.
การหลบหลีกการป้องกัน T1140 ถอดรหัสซอร์สโค้ดที่สร้างความสับสน/ถอดรหัสไฟล์หรือข้อมูล Worok ใช้ชุดรูปแบบ XOR แบบกำหนดเองที่หลากหลายเพื่อเข้ารหัสสตริงและบันทึกใน PowHeartBeat, PNGLoad และ CLRLoad
T1036.005 การปลอมแปลง: จับคู่ชื่อหรือสถานที่ที่ถูกต้องตามกฎหมาย ตัวอย่าง PNGLoad ถูกปรับใช้ในไดเร็กทอรี VMWare ที่ดูถูกกฎหมาย
การเข้าถึงข้อมูลประจำตัว T1003.001 OS Credential Dumping: หน่วยความจำ LSASS Worok ใช้ Mimikatz เพื่อถ่ายโอนข้อมูลรับรองจากหน่วยความจำ LSASS
การค้นพบ T1082 การค้นพบข้อมูลระบบ PowHeartBeat รวบรวมข้อมูลระบบปฏิบัติการ
T1083 การค้นหาไฟล์และไดเรกทอรี PowHeartBeat สามารถแสดงรายการไฟล์และไดเร็กทอรี
T1046 การค้นพบบริการเครือข่าย Worok ใช้ เอ็นบีทีสแกน เพื่อรับข้อมูลเครือข่ายบนเครื่องที่ถูกบุกรุก
T1124 การค้นพบเวลาของระบบ PowHeartBeat รวบรวมข้อมูลเวลาของเหยื่อ
ชุด T1005 ข้อมูลจาก Local System PowHeartBeat รวบรวมข้อมูลจากระบบภายใน
T1560.002 เก็บข้อมูลที่เก็บถาวร: เก็บถาวรผ่านห้องสมุด PowHeartBeat gzip-บีบอัดข้อมูลก่อนที่จะส่งไปยังเซิร์ฟเวอร์ C&C
ควบคุมและสั่งการ T1071.001 Application Layer Protocol: โปรโตคอลเว็บ PowHeartBeat บางรุ่นใช้ HTTP เป็นโปรโตคอลการสื่อสารกับเซิร์ฟเวอร์ C&C
T1090.001 พร็อกซี่: พร็อกซีภายใน PowHeartBeat จัดการการกำหนดค่าพร็อกซีบนเครื่องของเหยื่อ
T1001.002 ข้อมูลสับสน: Steganography PNGLoad ดึงค่าพิกเซลจาก . Png ไฟล์เพื่อสร้างเพย์โหลดใหม่
T1573.002 ช่องที่เข้ารหัส: การเข้ารหัสแบบอสมมาตร PowHeartBeat จัดการการสื่อสาร HTTPS กับเซิร์ฟเวอร์ C&C
T1095 โปรโตคอลเลเยอร์ที่ไม่ใช่แอปพลิเคชัน PowHeartBeat บางรุ่นใช้ ICMP เป็นโปรโตคอลการสื่อสารกับเซิร์ฟเวอร์ C&C
T1132.001 การเข้ารหัสข้อมูล: การเข้ารหัสมาตรฐาน Worok ใช้การเข้ารหัส XOR ใน PowHeartBeat และ PNGLoad
T1132.002 การเข้ารหัสข้อมูล: การเข้ารหัสที่ไม่ได้มาตรฐาน Worok ใช้อัลกอริทึมการเข้ารหัส XOR ที่ใช้เกลือเพิ่มเติม
การกรอง T1041 การกรองผ่านช่อง C2 PowHeartBeat ใช้ช่องทางการสื่อสาร C&C เพื่อกรองข้อมูล

Worok: ภาพใหญ่ PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ประทับเวลา:

เพิ่มเติมจาก เราอยู่การรักษาความปลอดภัย

พระราชบัญญัติความเป็นปึกแผ่นทางไซเบอร์ของสหภาพยุโรป: ศูนย์ปฏิบัติการด้านความปลอดภัยเพื่อช่วยเหลือ!

โหนดต้นทาง: 1827368
ประทับเวลา: เมษายน 19, 2023