Malware

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

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

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

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

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

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

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

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

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

โค้ดที่แท้จริงซ่อนอยู่ท่ามกลางคอมเม้นท์
ภาพที่ 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 เช่นเดียวกัน

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

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

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

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

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

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

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

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

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

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

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

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

ภาษาเวียดนามถูกพบใช้งานอยู่ภายในไฟล์ 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 ตามที่เห็นได้จากภาพด้านล่างนี้

ผลลัพธ์จาก tosint

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

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

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

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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

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

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

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

ชื่อไฟล์ - SHA256

List of Event Organizers....bat
dcc2b331d3f83771a48bf66b0845fcf865551197a05ab6ba57996d8a7082ef71

update1.bat
5b279e48eed115eccff837a37aa81217c8f9d02340e53922b68c8600d9e26cba

Document.zip
4ae7c33fdeaa89d78293ac4b43c4ca8a32bc57a7b7fc70674b10ff303c55a987

sim.py
4e143e11b8f4c5ec02c08912b5de0a42b8f394c4fcfbecb0219cfd3259f4f6da

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

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

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

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

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

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

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

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

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