Tags:
Node Thumbnail

คนที่ติดตามข่าวสารด้าน cybersecurity น่าจะพอทราบกันดีว่ากลุ่มแฮกเกอร์จากประเทศเวียดนามมีความถนัดและให้ความสนใจในการใช้มัลแวร์เพื่อขโมยข้อมูล (InfoStealer) โดยมุ่งเป้าไปที่ข้อมูลจากเว็บเบราว์เซอร์ เช่น username และ password ที่บันทึกเอาไว้, cookies, และ web data เป็นต้น

ในครั้งนี้เราจะมาวิเคราะห์มัลแวร์สายมิจดังกล่าว โดยใช้ไฟล์จาก Any.Run ซึ่งถูกอัพโหลดจากประเทศไทย

ไฟล์ที่เราจะใช้ในการเริ่มต้นการวิเคราะห์เป็นไฟล์ประเภท Batch Script ชื่อ ‘List of Event Organizers…bat’ ซึ่งถูกอัพโหลดขึ้นไปบนเว็บไซต์ Any.Run โดยมีต้นทางมาจากประเทศไทย สิ่งที่น่าสนใจอย่างหนึ่งคือ ไฟล์ batch ดังกล่าวถูกระบุว่าเป็นไฟล์ที่ไม่อันตราย (No threats detected)

alt="ไฟล์ batch ที่เราจะใช้เป็นจุดเริ่มต้นในการวิเคราะห์ครั้งนี้"ภาพที่ 1 ไฟล์ batch ที่เราจะใช้เป็นจุดเริ่มต้นในการวิเคราะห์ครั้งนี้

ถ้าเราเปิดไฟล์ batch ดังกล่าวโดยโปรแกรมสำหรับแก้ไขข้อความ เช่น Notepad++ จะพบว่ามีแต่ภาษาต่างชาติที่ดูหน้าตาไม่เหมือนโค้ดแต่อย่างใด แต่ถ้าเราเปิดไฟล์ด้วยโปรแกรม hex editor จะพบว่ามีตัวอักษรภาษาอังกฤษที่พอจะมีหน้าตาเหมือน batch command อยู่บ้าง สิ่งที่เกิดขึ้นคือผู้โจมตีใช้เทคนิคที่เรียกว่า Byte Order Mark (BOM) เพื่อ obfuscate ไฟล์ batch ดังกล่าวเอาไว้

alt="(ซ้าย) เปิดไฟล์โดยใช้ Notepad (ขวา) เปิดไฟล์เดียวกันแต่ใช้ HxD"ภาพที่ 2 (ซ้าย) เปิดไฟล์โดยใช้ Notepad (ขวา) เปิดไฟล์เดียวกันแต่ใช้ HxD

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

alt="โค้ดในไฟล์ batch หลังจาก deobfuscate แล้ว"ภาพที่ 3 โค้ดในไฟล์ batch หลังจาก deobfuscate แล้ว

ต่อมาถ้าเรา deobfuscate เทคนิคการกำหนดและแทนที่ค่าตัวแปรได้ เราก็จะพบว่าโค้ดที่แท้จริงถูกเอาไปซ่อนไว้ท่ามกลางคอมเม้นท์จำนวนมหาศาลเพื่อหวังตบตาเราอีกชั้นหนึ่ง

alt="โค้ดที่แท้จริงซ่อนอยู่ท่ามกลางคอมเม้นท์"ภาพที่ 4 โค้ดที่แท้จริงซ่อนอยู่ท่ามกลางคอมเม้นท์

ทั้งนี้โค้ดในไฟล์ batch จะทำหน้าที่ในการดาวน์โหลดไฟล์อันตรายจาก GitHub ของผู้โจมตี จากนั้นจะเตรียมการจัดวางไฟล์ดังกล่าวเอาไว้ในโฟลเดอร์ต่าง ๆ โดยอาศัยการสั่งงานผ่าน Windows Commad Shell (CMD) และ PowerShell ซึ่งเป็นเทคนิคที่เรียกว่า Living Off The Land Binaries (LOLBins) โดยมีรายละเอียดการทำงานดังนี้

  • ดาวน์โหลดไฟล์ชื่อ Document.zip จาก hxxps://github[.]com/s123s1/s/raw/main/Document.zip จากนั้นทำการ extract ไปเก็บไว้ในโฟลเดอร์ %Public%\Document โดยไฟล์ที่ถูก extract มานั้น จะประกอบไปด้วยไฟล์ที่จำเป็นในการรัน Python รวมไปถึงไฟล์สคริปต์ชื่อ sim.py ที่เป็นตัวร้ายหลักในครั้งนี้
  • ทำการ execute ไฟล์ sim.py โดยใช้ python.exe จากในโฟลเดอร์ที่เตรียมไว้ก่อนหน้านี้
  • ดาวน์โหลดไฟล์ batch ชื่อ update1.bat จาก GitHub เดียวกัน แล้วจัดวางไฟล์เอาไว้ใน Startup Folder ซึ่งจะทำให้ไฟล์ batch ดังกล่าวถูกเรียกใช้งานทุกครั้งที่เครื่องคอมพิวเตอร์เริ่มต้นใช้งาน โดยไฟล์ batch ดังกล่าวจะทำหน้าที่ในการ execute ไฟล์สคริปต์ sim.py ทั้งนี้ไฟล์ update1.bat ก็ได้ถูก obfuscate เอาไว้ด้วยเทคนิค BOM เช่นเดียวกัน

alt="ไฟล์ update1.bat และโค้ดที่แท้จริงหลังจากผ่านกระบวนการ deobfuscatge แล้ว"ภาพที่ 5 ไฟล์ update1.bat และโค้ดที่แท้จริงหลังจากผ่านกระบวนการ deobfuscatge แล้ว

alt="รายละเอียดภายในโฟลเดอร์ *%Public%\Document*"ภาพที่ 6 รายละเอียดภายในโฟลเดอร์ %Public%\Document

คราวนี้ถึงเวลามาดูรายละเอียดการทำงานของไฟล์สคริปต์ sim.py ซึ่งเป็น มัลแวร์สายมิจ ที่เราให้ความสนใจในครั้งนี้กัน โดยต่อไปนี้เราจะเรียกแทนไฟล์ sim.py ว่า มัลแวร์สายมิจ เพื่อให้สะดวกขึ้น โดยภาพรวมการทำงานของมัลแวร์สายมิจนี้ค่อนข้างเข้าใจง่ายคือ ขโมยข้อมูลจากเบราว์เซอร์ ขโมยข้อมูลที่เกี่ยวกับระบบปฏิบัติการ แล้วส่งข้อมูลไปให้ผู้โจมตีผ่านช่องทาง Telegram API

alt="บางส่วนของโค้ดภายในไฟล์ sim.py จะเห็นว่ามีความพยายามในการวางคอมเม้นท์ไว้ที่ด้านบนเหมือนเคย"ภาพที่ 7 บางส่วนของโค้ดภายในไฟล์ sim.py จะเห็นว่ามีความพยายามในการวางคอมเม้นท์ไว้ที่ด้านบนเหมือนเคย

มัลแวร์สายมิจตัวนี้ ถูกสร้างมาให้มุ่งเป้าขโมยข้อมูลจากเบราว์เซอร์เจ้าดัง ๆ เกือบทั้งหมด ไม่ว่าจะเป็น Google Chrome, Mozilla Firefox, Microsoft Edge, Opera, Brave, และ Chromium โดยมีข้อมูลที่เป็นเป้าหมาย เช่น username และ password ที่บันทึกเอาไว้, ข้อมูล cookies, ข้อมูลกุญแจ Master Key ของ Chrome เป็นต้น นอกจากนี้มัลแวร์สายมิจยังสามารถขโมยข้อมูลที่เกี่ยวกับระบบปฏิบัติการได้อีกด้วย ยกตัวอย่างเช่น ชื่อเครื่องคอมพิวเตอร์, ชื่อ user ในระบบปฏิบัติการ, เวอร์ชันของระบบปฏิบัติการ, รายชื่อของโปรเซส, หมายเลขไอพี, และ ตำแหน่งทางภูมิศาสตร์ของหมายเลขไอพี

alt="โค้ดในส่วนที่ใช้สำหรับเก็บรวบรวมข้อมูลเกี่ยวกับระบบปฏิบัติการจากเครื่องเหยื่อ"ภาพที่ 8 โค้ดในส่วนที่ใช้สำหรับเก็บรวบรวมข้อมูลเกี่ยวกับระบบปฏิบัติการจากเครื่องเหยื่อ

ข้อมูลที่มัลแวร์สายมิจเก็บรวบรวมมาได้ในตอนแรก จะถูกเก็บเอาไว้ภายในโฟลเดอร์ %TEMP% โดยตั้งชื่อโฟลเดอร์ในรูปแบบ ‘CountryCode+IP+Date’ จากนั้นข้อมูลดังกล่าวจะถูกบีบอัดเป็นไฟล์ ZIP โดยใช้ชื่อไฟล์เหมือนกัน

alt="ตัวอย่างของข้อมูลมัลแวร์เก็บรวบรวมเอาไว้ เพื่อเตรียมส่งออกไปให้ผู้โจมตีในภายหลัง"ภาพที่ 9 ตัวอย่างของข้อมูลมัลแวร์เก็บรวบรวมเอาไว้ เพื่อเตรียมส่งออกไปให้ผู้โจมตีในภายหลัง

ไฟล์ ZIP รวมถึงข้อมูลอื่น ๆ จะถูกส่งไปยัง Command and Control (C2) ของผู้โจมตีผ่านช่องทาง Telegram API ที่ hxxps://api.telegram[.]org/bot6878187208:AAFjqOqPfUbezs5GaBB-x99QhDkXaXsWgpg/sendDocument พร้อมกับหมายเลข Bot ID คือ -4200000448

alt="ข้อมูล network traffic แสดงให้เห็นรายละเอียดภายใน POST request ขณะที่มัลแวร์กำลังส่งข้อมูลไปยัง Telegram C2 ของผู้โจมตี"ภาพที่ 10 ข้อมูล network traffic แสดงให้เห็นรายละเอียดภายใน POST request ขณะที่มัลแวร์กำลังส่งข้อมูลไปยัง Telegram C2 ของผู้โจมตี

การวิเคราะห์การทำงานของ มัลแวร์สายมิจ ก็จบแต่เพียงเท่านี้ แต่เราจะยังคงไม่หยุดอยู่แค่ตรงนี้เพราะเราจะเริ่มขั้นตอนต่อไปคือ การรวบรวมข้อมูลที่เกี่ยวกับผู้โจมตี (Threat Actor Profiling)

เราสามารถเริ่มต้นด้วยการเช็คค่า string ที่น่าสนใจจากภายในไฟล์ sim.py โดยสิ่งที่ค้นพบคือค่า string คำว่า ‘data lần thứ’ ซึ่งเป็นภาษาเวียดนาม ถูกนำมาใช้อยู่ภายในไฟล์ดังกล่าว ซึ่งก็พอจะทำให้เราคาดการณ์ได้ว่าผู้โจมตีน่าจะมีความเข้าใจในภาษาเวียดนามระดับหนึ่ง

alt="ภาษาเวียดนามถูกพบใช้งานอยู่ภายในไฟล์ sim.py"ภาพที่ 11 ภาษาเวียดนามถูกพบใช้งานอยู่ภายในไฟล์ sim.py

นอกจากนี้เรายังสามารถหาข้อมูลบัญชีผู้ใช้งาน Telegram ของผู้โจมตีได้ โดยเราจะใช้ค่า Bot Token และ Bot ID ที่พบจาก URL ก่อนหน้านี้ ไปทำการสืบหาข้อมูล Username, User ID และการตั้งค่าอื่น ๆ ของบอทกัน โดยใช้เครื่องมือชื่อ tosint ที่พัฒนาโดย drego85 ซึ่งผลลัพธ์ที่ได้พบว่า username ที่ผู้โจมตีใช้คือ ThomasDante89 โดยมี ID คือ 7012036276 และยังมีข้อมูลอื่น ๆ อีก เช่น Bot Name และ Bot User ID ตามที่เห็นได้จากภาพด้านล่างนี้

alt="ผลลัพธ์จาก tosint"

ภาพที่ 12 ผลลัพธ์จาก tosint

หากยังจำกันได้ ผู้โจมตีมีการใช้ GitHub เพื่อฝากไฟล์ที่เป็นอันตรายเอาไว้ โดยบัญชี GitHub ดังกล่าวมีชื่อว่า s123s1 ทั้งนี้หากเราทำการตรวจสอบอย่างละเอียด จะพบว่ามีการเชื่อมโยงโดยตรงไปถึงบัญชี GitHub อื่น ๆ อีกจำนวน 2 รายการ ที่มีชื่อบัญชีคือ vtbg1 และ zzhshsss ซึ่งบัญชี GitHub ทั้งหมดนี้มีรูปแบบการตั้งชื่อ repository และ ชื่อไฟล์ ที่คล้ายกัน แม้กระทั่งเนื้อหาภายในไฟล์ก็คล้ายกัน ยกตัวอย่างเช่น ไฟล์ batch จากทั้ง 3 GitHub นี้มีการใช้เทคนิค BOM เหมือนกันทั้งหมด อีกทั้งบัญชีเหล่านี้ถูกสร้างขึ้นมาในห้วงเวลาที่ไล่เลี่ยกัน ดังนั้นจึงยืนยันได้ว่าบัญชี GitHub เหล่านี้ถูกสร้างโดยผู้โจมตีเดียวกัน

และเพื่อเป็นการตอบแทนในการทำงานหนักของผู้โจมตีท่านนี้ ผมได้ทำการ report ไปยัง GitHub เพื่อให้ทำการระงับบัญชีทั้งหมดแล้ว นอกจากนี้ผมยังได้เขียน Sigma rule ขึ้นมาเพื่อให้ผู้ที่สนใจนำไปใช้ในการตรวจจับ มัลแวร์สายมิจ นี้ได้ด้วยตัวเอง โดยท่านสามารถดูข้อมูลได้จากลิงค์ใน ‘ที่มา’

alt="Timeline ความเคลื่อนไหวของบัญชี Github ทั้ง 3 รายการ"ภาพที่ 13 Timeline ความเคลื่อนไหวของบัญชี Github ทั้ง 3 รายการ

เราเริ่มต้นการวิเคราะห์จากไฟล์ batch เพียงอันเดียว จนทราบว่ามัลแวร์ทำงานยังไง มีเป้าหมายอะไร มีศักยภาพแค่ไหน ขโมยและส่งข้อมูลไปให้ผู้โจมตียังไง เราสืบย้อนไปจนรู้ชื่อบัญชี Telegram ของผู้โจมตี เราตามต่อไปยังบัญชี Github และสืบจนบัญชี Github ของผู้โจมตีเพิ่มเติม จากนั้นก็ยื่นเรื่องเพื่อขอให้ระงับการใช้งาน และสร้าง detection rule ขึ้นมาเพื่อตรวจจับมัลแวร์ตัวนี้ ซึ่งทั้งหมดนี้คือตัวอย่างหนึ่งของกระบวนการใช้ข้อมูลที่ได้จากการวิเคราะห์มัลแวร์ (Malware Analysis) มาต่อยอดเพื่อหาข่าวกรองทางไซเบอร์ (Threat Intelligence) และนำมาสร้างข่าวกรองที่ใช้ประโยชน์ได้จริง (Actionable Threat Intelligence)

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

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

Get latest news from Blognone

Comments

By: ekaphop
iPhoneWindows PhoneAndroidBlackberry
on 28 June 2024 - 10:12 #1315680

ขอขอบคุณสำหรับบทความดี ๆ ครับ
ผมอ่านจนจบเลย

By: psks
Windows Phone
on 28 June 2024 - 11:29 #1315688
psks's picture

สุดยอดมากครับ อ่านจนจบเหมือนกัน

By: squareroot
AndroidWindows
on 28 June 2024 - 11:57 #1315696
squareroot's picture

เทคนิคการทำที่ซับซ้อนมากแต่ จขกท ใช้รูปแบบภาษาที่ใช้เขียนอ่านสนุกมากครับ นับถือครับ ๆ

By: suriyan2538 on 28 June 2024 - 12:05 #1315697
suriyan2538's picture

ขอบคุณครับ มีประโยชน์มาก

หน่วยงานของไทยน่าจะทำอะไรกันแบบนี้บ้าง

By: lew
FounderJusci's WriterMEconomicsAndroid
on 29 June 2024 - 12:44 #1315779
lew's picture

ผมแก้คำเล็กน้อย (โค๊ด/โค้ด, Github/GitHub) นะครับ รบกวนคอนเฟิร์มว่ามัลแวร์ตัวนี้คือ 50bb15bf64479c6b199e8fc9c4699df8 หรือเปล่าครับ จะได้อ้างอิงได้


lewcpe.com, @wasonliw

By: FatzQatz
Contributor
on 29 June 2024 - 13:12 #1315780 Reply to:1315779

ขอบคุณที่แก้คำผิดให้ครับ ต่อไปจะปรับปรุงการเขียนให้ถูกต้องขึ้น

ส่วนรายละเอียดค่า hash ของ Indicators of Compromise (IOCs) มีรายละเอียดตามนี้ครับ

ชื่อไฟล์ - SHA256

List of Event Organizers....bat
dcc2b331d3f83771a48bf66b0845fcf865551197a05ab6ba57996d8a7082ef71

update1.bat
5b279e48eed115eccff837a37aa81217c8f9d02340e53922b68c8600d9e26cba

Document.zip
4ae7c33fdeaa89d78293ac4b43c4ca8a32bc57a7b7fc70674b10ff303c55a987

sim.py
4e143e11b8f4c5ec02c08912b5de0a42b8f394c4fcfbecb0219cfd3259f4f6da

By: Hoo
AndroidWindows
on 29 June 2024 - 14:29 #1315784

ซับซ้อน กึ่ง old school

ตัว window ก็ยังอุตส่าห์ทำงานกับ .bat แบบนี้ได้แฮะ
(bug หรือ feature?)

ปล. ควรต้องแจ้งไปที่ Window Defender ด้วยมั๊ยครับ?

By: FatzQatz
Contributor
on 29 June 2024 - 16:12 #1315786 Reply to:1315784

Byte Order Mark (BOM) เป็น feature การทำงานตามปกติครับ เพียงแค่ถูกผู้โจมตีหยิบมาใช้ประโยชน์ (abused) เฉกเช่นเดียวกับเทคนิค Right-To-Left Override (RTLO)

เราแก้ไขอะไรมันไม่ได้ครับ

By: wk18k on 30 June 2024 - 00:11 #1315803
wk18k's picture

ขอบคุณครับ เป็นบทความที่ดีมาก

By: umsak on 1 July 2024 - 09:44 #1315850

ลองใช้ online virus scan Document.zip ขึ้น clean
..อย่างนี้ถ้าติด ก็ไม่รู้ตัวเลยสิครับ?

By: FatzQatz
Contributor
on 1 July 2024 - 15:33 #1315888 Reply to:1315850

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

ผลลัพธ์คือ Microsoft Defender ใน lab ของผมไม่สามารถตรวจจับอะไรได้ทั้งนั้นครับ (ณ 1 ก.ค.67), ไม่ว่าจะเป็น static-based หรือ behavior-based ก็ตาม

แต่ถ้าเครื่องคอมพิวเตอร์มีการติดตั้งใช้งาน EDR/XDR ก็อาจจะมีการตรวจจับได้อยู่ครับ

By: acitmaster
AndroidUbuntuWindowsIn Love
on 1 July 2024 - 12:01 #1315863
acitmaster's picture

ยอดเยี่ยมครับ

By: wichate
Android
on 1 July 2024 - 17:04 #1315908

เทคนิคนี้น่าจะใช้ขโมย crypto ได้เยอะอยู่