Romhack CTF 2022 – [Forensics] Chiếc email nguy hiểm…

Tram Ho

image.png

Giới thiệu

image.png

You got Mail là một challenge có độ khó Medium, nằm trong mảng Forensics (điều tra số), mô phỏng lại một Incident (sự cố) khi công ty X phát hiện ra máy tính của một nhân viên trong công ty bị dính mã độc. Team IR (Incident Response) đã ngay lập tức thu thập chứng cứ trên máy tính này. Nhiệm vụ của chúng ta là phải tìm hiểu xem mã độc thâm nhập vào bằng cách nào (với tiêu đề như trên thì chắc là qua email rồi) và chuyện gì đã xảy ra. Let’s go~

Đề bài

Bạn có thể tải backup đề bài về tại đây: https://mega.nz/file/D08wnIDa#aZzUc9FNJJLSF1xWjd8B2YD_HCpVnStbemXfkEeQjBY (khá nặng)

Phân tích

image.png

Sau khi giải nén file zip ra chúng ta thu được file khá nặng là case_1.ad1 (1.4 GB). Chạy thử lệnh file kiểm tra xem là dạng file gì:

image.png

Well, không có thông tin gì. Thử gooogle thì có thông tin ở blog này: https://tmairi.github.io/posts/dissecting-the-ad1-file-format/

This format is also referred to as AD1 from their extension, and are generated by the popular digital forensics tool; FTK Imager.

Như vậy, ta cần cài đặt công cụ FTK Imager để có thể đọc được file. Sau khi cài đặt xong, mở lên chúng ta có (Chọn File > Add Evidence Item… > Image File):

image.png

Đây là image (ảnh) một phần ổ đĩa cứng của máy tính nạn nhân (Tên user là info). Giờ chúng ta cần đào bới xem bên trong này có những gì. Để có cái nhìn khái quát nhất, bước đầu chúng ta export ra danh sách các thư mục trong file image:

image.png

Với hint từ đề bài, chúng ta tìm kiếm các ứng dụng hoặc từ khóa liên quan đến mail như: mail, Thunderbird, Outlook,… Và đúng thật là nạn nhân của chúng ta có sử dụng mail client ThunderBird:
image.png

ThunderBird sẽ lưu trữ các email được tải về trong thư mục ImapMail ở trong các profile ở đường dẫn C:Users<user_name>AppDataRoamingThunderbirdProfiles<profile_name>ImapMail<mail_domain>. Sẽ có các file INBOX, Draft, Sent tương ứng với các thư mục mail trong một hòm mail thông thường

Truy cập vào thư mục này trong FTK Imager, xem nội dung file INBOX:

image.png

Đây chính là nội dung mail mà nạn nhân nhận được. Người nhận là info@windowsliveupdater.com (có thể là mailing list thông báo chung?), người gửi là ai đó từ bộ phận HR hr@windowsliveupdater.com:

Kéo xuống phía dưới, chúng ta thấy 1 email khác, và đây chính là email nghi vấn, bạn có thể để ý đến file đính kèm:

image.png

nội dung đính kèm là một file policy_draft.zip và được bảo vệ bằng mật khẩu, nghe khá là phù hợp với nội dung email đúng không. Thực hiện base64 decode phần nội dung đính kèm, và đổi tên thành policy_draft.zip rồi xem thông tin:

image.png

bên trong là một file Excel policy.xlsm. Chú ý đến chữ cái m ở cuối file extension, nó thể hiện rằng file này là một file Excel có chứa macro. Rất nhiều các payload độc hại được phát tán qua hình thức nhúng macro vào trong file văn bản như thế này.

Đến bước giải nén file zip và đọc file policy.xlsm thì rất có thể các chương trình anti-virus sẽ cảnh báo và xóa mất file, để có thể làm tiếp thì bạn cần tạm thời tắt anti-virus đi nhé. Tất nhiên, đây là đề CTF thì chúng ta có thể tin tưởng được nhưng thực tế thì đừng có tắt nhé

Để có thể đọc được các macro bên trong file, chúng ta có thể sử dụng các công cụ: olevba.pyoledump.py

Giải nén file và “mạnh dạn” mở bằng Excel, chúng ta sẽ thấy đây là file trắng tinh, giống như thắc mắc trong email sau… (mail nằm trong file Sent-1)

image.png

Nếu chúng ta chọn Enable Content sẽ thấy bắn ra dialog báo lỗi, chọn Debug và xem phần macro bên trong, ta sẽ thấy file này không hẳn là không có gì

Enable Contentsẽ ngay lập tức thực thi macro nhúng bên trong file nên thực tế đừng làm như vậy nhé, hãy sử dụng công cụ phân tích khác

image.png

Đây là full source code của macro:

Nhìn khá là rối rắm đúng không. Tác giả malware đã cố tính đặt tên biến khó hiểu cùng một vài thuật toán để obfuscate (làm rối code) gây khó khăn cho người phân tích. Sử dụng công cụ olevba.py, chạy với switch --deobf--decode sẽ giúp chúng ta decode các string này:

image.png

image.png

  • Hàm rdqkfyyuzfrq đơn giản là sẽ hex decode string được truyền vào.
  • Hàm aisvagnmiamcvp sẽ giải mã ra string: C:UsersinfoAppDataLocalMicrosoftWindowsExplorer

image.png

Nhìn vào các string khác cũng không có gì khả nghi, đều là các string liên quan đến hoạt động của malware (tải mã độc, thực thi, chỉnh sửa registry) duy nhất có đoạn code này:

đoạn code này thực hiện thuật toán XOR đơn giản, code lại bằng python:
image.png

Như vậy ta đã có được nửa đầu của flag. Thế còn nửa còn lại ở đâu. Với các mã độc dạng này, file đầu tiên sẽ đóng vai trò dropper, và từ file này sẽ thực hiện việc tải xuống và thực thi file chính (payload). Trong trường hợp này, file được tải về là:

image.png

Tiếp tục “mạnh dạn” truy cập vào https://widowsliveupdater.com/update.exe (do hết giải CTF hiện đã không vào được nữa, bạn có thể xem file backup ở đây: https://mega.nz/file/v0E2hIIA#-uQESLcO4o7bpQmsvg1sVlLDo_qfrovZPQ28zqi9Z3w) ta tải về được một file thực thi viết bằng C#. Đưa vào công cụ ILSpy để xem decompile:

image.png

Chú ý đến PSEmpire_Stage1.Program:

PSEmpire is a great tool with a wide variety of uses in the Information Security community including learning, red teaming and even more nefarious uses such as being used by the Ryuk Ransomware.
Sadly, it has been officially announced the PSEmpire is no longer being supported and development has stopped.

có thể nói là một công cụ đển tấn công sâu hơn vào hệ thống bên trong nội bộ công ty. Tất nhiên với đề bài CTF mô phỏng thì toàn bộ các phần độc hại đã được loại bỏ. Tương tự với phần macro, ta cũng chú ý đến đoạn code base64 và XOR:

Decode với CyberChef ta được phần còn lại của flag:

image.png

Kết

Vậy có thể tóm tắt lại vụ incident (mô phỏng) này bắt nguồn từ việc hacker bằng một cách nào đó đã chiếm được tài khoản mail của HR, sau đó dùng tài khoản này fake việc công ty cập nhật policy đồng thời gửi mail chứa mã độc phát tán đến các thành viên khác. Thế nên, chúng ta cần hết sức cảnh giác với các email (có file đính kèm) khả nghi, cho dù nó đến từ đồng nghiệp của mình hay ai đi chăng nữa.

See ya!

Tham khảo

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo