[Forensics] HKLMystery - Dream

2025. 10. 14. 00:46·

Đề bài


Công cụ

Bài này yêu cầu mình phải tìm ra được con malware ẩn chứa trong máy tính nạn nhân và đưa ra hash SHA-1 của nó

Với những bài dạng IR - Incident Response thì mình sẽ sử dụng AutoPsy và IDA để làm, ngoài ra còn kha khá công cụ khác như Exterro FTK Imager hay Ghidra các bạn cũng có thể sử dụng, nó có tác dụng tương tự thôi


AutoPsy

Mình sẽ mở AutoPsy, chọn Logical File vì bài này cho mình thẳng ổ C của máy tính nạn nhân chứ không còn là ảnh ổ đĩa (vdu: ad1, E01, raw,...)

Để tìm kiếm malware thì đầu tiên mình sẽ vào phần File Types để xem nó có những file nào khả nghi, có khả năng là malware nhất thì sẽ export nó ra và phân tích tiếp

Có vẻ như không có mấy thông tin vì toàn những file như file ảnh (png), file html, nhưng nó cũng tồn tại một file exe là Loader.exe, mình sẽ export nó ra trước vì nhỡ đâu sau này cần dùng

Sau khi export xong mình sẽ ném thử lên VirusTotal để kiểm tra

Nhận thấy nó phát hiện đây có thể là một Trojan nên mình sẽ xem SHA-1 của nó và nộp thử

Đã thấy băm SHA-1, mình thử nộp xem sao

Vậy là mã băm này đã sai, mình tiếp tục tìm kiếm tiếp trên VirusTotal xem có thông tin gì không

Mình sẽ sang phần Details để xem chi tiết nó đã mở, ghi và xóa những file gì

Nhận thấy nó mở một file tên khá là lạ là b4ckd00r.exe, nghe có vẻ giống giống yêu cầu đề bài là backdoor malware rồi

Ở đây mình sẽ quay lại AutoPsy để tìm kiếm thông tin về b4ckd00r.exe xem nó ở đâu mà lại không xuất hiện ở file type

Mình đã thử vào Deleted Files cũng không thấy có sự xuất hiện của b4ckd00r.exe

Mình sẽ tìm kiếm trong folder prefetch, folder prefetch sẽ chứa thông tin dấu vết về việc một chương trình đã từng được thực thi như nào

Mình đã thấy B4CKD00R.EXE-17007CBC.pf nhưng chưa có thông tin gì thêm về file này nên mình quyết định chuyển hướng sang Amcache.hve

Amcache.hve là một hive của Registry, có thể được mở bằng Registry Explorer hoặc sử dụng tool AmcacheParser, file này là một trong những nguồn dữ liệu cực kỳ quan trọng khi điều tra các hoạt động trên hệ thống Windows, nhất là để phân tích và tìm kiếm những file từng được chạy, mình đã từng làm một bài sử dụng Amcache.hve trước đó rồi, mọi người có thể tìm xem thêm


AmcacheParser.exe

Mình sẽ export Amcache.hve ra và sử dụng tool AmcacheParser.exe trước

Lệnh 

AmcacheParser.exe -f Amcache.hve --csv out\amcache
AmcacheParser version 1.5.2.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/AmcacheParser

Command line: -f D:\Documents\CTF\Dreamhack\Forensics\HKLMystery\C\Windows\AppCompat\Programs\Amcache.hve --csv out\amcache

Single log file available: D:\Documents\CTF\Dreamhack\Forensics\HKLMystery\C\Windows\AppCompat\Programs\Amcache.hve.LOG1
Replaying log file: D:\Documents\CTF\Dreamhack\Forensics\HKLMystery\C\Windows\AppCompat\Programs\Amcache.hve.LOG1
At least one transaction log was applied. Sequence numbers have been updated to 0x001E. New Checksum: 0xCFE078B6
Single log file available: D:\Documents\CTF\Dreamhack\Forensics\HKLMystery\C\Windows\AppCompat\Programs\Amcache.hve.LOG1
Replaying log file: D:\Documents\CTF\Dreamhack\Forensics\HKLMystery\C\Windows\AppCompat\Programs\Amcache.hve.LOG1
At least one transaction log was applied. Sequence numbers have been updated to 0x001E. New Checksum: 0xCFE078B6

D:\Documents\CTF\Dreamhack\Forensics\HKLMystery\C\Windows\AppCompat\Programs\Amcache.hve is in new format!

Total file entries found: 31
Total device containers found: 9
Total device PnPs found: 174

Found 17 unassociated file entry

Results saved to: out\amcache

Total parsing time: 0,947 seconds

Sau đó mình sẽ kiểm tra file csv xem sao

Nhận thấy nó có một đoạn băm SHA-1, hãy cùng nộp thử xem sao

Nhưng trước khi thử thì mình sẽ hướng dẫn nốt cách mở bằng Registry Explorer


Registry Explorer

Đầu tiên mình sẽ export Amcache.hve ra từ AutoPsy, sau đó mở Registry Explorer lên và chọn Load Hive rồi chọn Amcache.hve

Sau đó mình tìm kiếm theo ApplicationFile thôi, lý do là vì nó là nơi chứa các file thực thi

Có thể thấy là mã băm SHA-1 cũng giống y hệt với cách trên


Như đã nói thì mình sẽ nộp thử xem sao

Lại sai rồi có vẻ là chưa đúng hướng


IDA

Sau một hồi vất vả tìm kiếm thì mình thấy AutoPsy đã hết giá trị khai thác, mình chuyển qua sử dụng IDA để xem Loader.exe đã làm những gì

Load file vào IDA và tiến hành phân tích

Đầu tiên mình sẽ vào trong main trước xem nó chạy những gì

Như những gì đã xem ở VirusTotal trước đó thì ở đây mình cũng sẽ thấy có một đoạn code thực thi việc copy đường dẫn của b4ckd00r.exe vào lpApplicationName và gọi hàm sub_140001750 - có thể là một hàm thực thi file

Ngoài ra có thể thấy ở trong main ngay trước đoạn copy path của malware sẽ có một chuỗi nhìn khá giống base64

Mình đã đổi tên thành first, second, third và second, third mình đã convert từ hex sang string cho dễ nhìn

  • first = eKQexDO1Q2Uk/
  • second = 0x644A4233766A6369LL = dJB3vjci
  • third = 0x3D41584F476967LL = =AXOGig

Sau đó mình tiến hành dịch ngược hàm sub_140001300 vì nó nhận vào ba chuỗi này và xuất kết quả ra con trỏ res, so sánh res[2] == (void *)20 thì sẽ chạy malware b4ckd00r.exe, nên khả năng res sẽ là key và là thứ mình cần tìm

Trong hàm sub_140001300 mình thấy có một đoạn như sau

v6 = sub_140003050(&Block, first, second);

Mình sẽ tiếp tục đi vào hàm này xem v6 sẽ nhận được giá trị gì

Tóm tắt chương trình mình thấy có những đoạn quan trọng sau

v3 = second[2];
v4 = first;
v6 = second;
v7 = first[2];

v8 = v7 + v3;

Block[2] = v8;

result = Block;
return result;

Vậy là khá rõ ràng v6 sẽ nhận vào là Block trong đó có Block[2] = first + second

Quay lại hàm ghép ba chuỗi ban đầu thì sẽ thấy đoạn sau

memmove((char *)v6 + v11, v9, (size_t)v10);

Đây cũng là một hàm ghép chuỗi khác, ghép third vào first + second mà chương trình vừa ghép xong

Ta sẽ thu được chuỗi sau

eKQexDO1Q2Uk/icjv3BJdgiGOXA=

Lý do second và third bị đảo ngược lại là do chuỗi hex trên máy tính khi hiển thị nó sẽ hiển thị dạng big-endian nhưng khi biểu diễn và chuyển đổi sang string thì phải là dạng little-endian nên sẽ đảo ngược lại

Đầu tiên sẽ là giải mã Base64

Sau đó là giải mã Hex

Sau đó sử dụng Python để gộp nó lại và chuyển sang in hoa và viết liền

>>> print("78 a4 1e c4 33 b5 43 65 24 fe 27 23 bf 70 49 76 08 86 39 70".replace(" ","").upper())
78A41EC433B5436524FE2723BF70497608863970

Flag

Flag: ascs{78A41EC433B5436524FE2723BF70497608863970}

'WriteUp > Forensics' 카테고리의 다른 글

[Forensics] DNS Exfil - CSCV 2025  (0) 2025.10.19
[Forensics] MZGZ - Dreamhack  (0) 2025.10.14
[Forensics] flask-forensics - Dreamhack  (0) 2025.10.12
[Forensics] abcdefg-who - Dreamhack  (0) 2025.10.12
[Forensics] My Nervous PPT - Dreamhack  (0) 2025.10.12
'WriteUp/Forensics' Other posts in category
  • [Forensics] DNS Exfil - CSCV 2025
  • [Forensics] MZGZ - Dreamhack
  • [Forensics] flask-forensics - Dreamhack
  • [Forensics] abcdefg-who - Dreamhack
longhd
longhd
Longhd's Blog
  • longhd
    Ha Duy Long - InfosecPTIT
    longhd
  • Total
    Today
    Yesterday
  • About me

    • Hello I'm Duy Long 👋🏻
    • View all categories (117) N
      • Certificates (4)
      • CTF (3)
      • WriteUp (94) N
        • Forensics (44) N
        • Steganography (5)
        • RE (9) N
        • OSINT (8)
        • Web (17)
        • MISC (6)
        • Crypto (3)
        • Pwn (2)
      • Love Story (0)
      • Labs (15)
        • Information Gathering (10)
        • Vulnerability Scanning (2)
        • Introduction to Web Applica.. (1)
        • Common Web Application Atta.. (1)
        • SQL Injection Attacks (1)
  • Blog Menu

    • Home
    • Tag
    • GuestBook
  • Popular Posts

  • Tags

    htb
    Re
    Web
    PTITCTF2025
    misc
    Steganography
    Forensics
    SunshineCTF2025
    Dreamhack
    EnigmaXplore3.0
    V1tCTF2025
    POCCTF2025
    OSINT
    CSCV2025
    CTF
    BuckeyeCTF2025
    picoCTF
    THM
    CHH
    writeup
  • Recent Comments

  • Recent Posts

  • hELLO· Designed ByLong.v4.10.4
longhd
[Forensics] HKLMystery - Dream
Go to Top

티스토리툴바