Notification texts go here Contact Us Buy Now!

[Write-up] Practical Malware Analysis | Part 1 - Chapter 1 - Lab 1-1


Bài write-up tổng hợp lại quá trình mình thực hành các bài lab trong cuốn sách "Practical Malware Analysis" của tác giả Michael Sikorski and Andrew Honig từ nhà xuất bản No Starch Press

Download the ebook

Download the labs

PART I- BASIC ANALYSIS


CHAPTER 1 - BASIC STATIC TECHNIQUES

Sau khi tải bài lab về và chạy cài đặt vào folder bất kỳ ta có kết quả như sau:

PracticalMalwareAnalysis-Labs

Tiến hành mở thư mục BinaryCollection:

PracticalMalwareAnalysis-Labs

Mở tiếp Chapter_1L:

PracticalMalwareAnalysis-Labs

Write up Lab 1-1

Các file cần phân tích lần lượt là Lab01-01.dllLab01-01.exe.

Questions

1. Upload the files to http://www.VirusTotal.com/ and view the reports. Does either file match any existing antivirus signatures?
2. When were these files compiled?
3. Are there any indications that either of these files is packed or obfuscated? If so, what are these indicators?
4. Do any imports hint at what this malware does? If so, which imports are they?
5. Are there any other files or host-based indicators that you could look for on infected systems?
6. What network-based indicators could be used to find this malware on infected machines?
7. What would you guess is the purpose of these files?

Answers

1. Upload the files to http://www.VirusTotal.com/ and view the reports. Does either file match any existing antivirus signatures?

Lab01-01.exe

FILELab01-01.exe
SIZE16384
MD5BB7425B82141A1C0F7D60E5106676BB1
SHA19DCE39AC1BD36D877FDB0025EE88FDAFF0627CDB
SHA26558898BD42C5BD3BF9B1389F0EEE5B39CD59180E8370EB9EA838A0B327BD6FE47

Mẫu Lab01-01.exe lần đầu tiên được gửi tới Virustotal vào ngày 2012-02-16 07:31:54 UTC và kể từ đó, tính đến thời điểm viết bài nó có tỷ lệ phát hiện là virus 53/70:

VirusTotal.com reports for Lab01–01.exe

Lab01-01.dll

FILELab01-01.dll
SIZE163840
MD5290934C61DE9176AD682FFDD65F0A669
SHA1A4B35DE71CA20FE776DC72D12FB2886736F43C22
SHA265F50E42C8DFAAB649BDE0398867E930B86C2A599E8DB83B8260393082268F2DBA

Mẫu Lab01-01.dll lần đầu tiên được gửi tới Virustotal vào ngày 2011-07-04 19:57:48 UTC và kể từ đó, tính đến thời điểm viết bài nó có tỷ lệ phát hiện là virus 45/70:

VirusTotal.com reports for Lab01–01.dll

2. When were these files compiled?

Sử dụng tool PEView để tìm thông tin này:

IMAGE_NT_HEADERS IMAGE_FILE_HEADER Time Date Stamp

Lab01-01.exe compile time - 2010/12/19 Sunday 16:16:19 UTC

PEView Lab01-01.exe

Lab01-01.dll compile time - 2010/12/19 Sunday 16:16:38 UTC

PEView Lab01-01.dll

Bonus thêm cách khác:

Trên trang kết quả quét của Virustotal Details History ta cũng có kết quả tương tự.

Virustotal details Lab01-01.exe


Virustotal details Lab01-01.dll

3. Are there any indications that either of these files is packed or obfuscated? If so, what are these indicators?

Khi một file được packed (đóng gói), sẽ khó phân tích hơn vì nó thường bị obfuscated ( làm rối) và nén. Những dấu hiệu chính cho thấy chương trình đã được đóng gói đó là strings hoặc thông tin hiển thị hoặc bao gồm các chức năng nhất định như LoadLibrary hoặc GetProcAddress - được sử dụng cho các chức năng bổ sung. Một tệp thực thi được packed có một wrapper program (chương trình bao bọc) để giải nén và chạy tệp và khi phân tích tĩnh một chương trình được packed, chỉ chương trình wrapper được kiểm tra.
Obfuscation là kỹ thuật biến đổi code của chương trình thành dạng rất khó đọc với mục đích che giấu thông tin về chương trình, gây khó khăn cho việc phát hiện và phân tích.

Packing là một dạng của obfuscation, thực hiện nén đoạn code ban đầu thành dạng không thể phân tích. Một chương trình đã được packed bao gồm 2 phần: đoạn bị packed (biến đổi từ chương trình gốc) và wrapper (làm nhiệm vụ giải nén đoạn packed).
 

Một chương trình được packed thường có một số dấu hiệu sau đây:

  • Số lượng strings rất ít, ít hơn hẳn so với một chương trình thông thường với kích thước tương đương;
  • PE sections bất thường: ví dụ, virtual size lớn hơn rất nhiều so với raw size (dấu hiệu cho thấy chương trình được packed); section flags bất thường (như hình dưới),… 


  • Sử dụng trình packer.

Việc pack file được thực hiện thông qua một trình packer (có thể sử dụng packer có sẵn hoặc tự viết). Một số trình packer thông dụng có thể kể đến như: UPX, Themida, The Enigma Protector, VMProtect, Obsidium, MPRESS, Exe Packer 2.300, ExeStealth,… Biết được thông tin về trình packer được sử dụng là bước quan trọng để unpack file. Có nhiều tools hỗ trợ công việc này, tiêu biểu là PEiD, RDG Packer Detector, ExeInfo.

kid0604.wordpress.com

Quay lại câu hỏi, sử dụng công cụ PEiD, kết quả:

PEiD Lab01-01.exe

PEiD Lab01-01.dll

Kết quả cho thấy cả hai file Lab01-01.exeLab01-01.dll đều không bị đóng gói, cùng sử dụng trình biên dịch Microsoft Visual C++ 6.0.

Bonus thêm cách khác: 

PEview

Sử dụng PEView ta thấy kích thước ảo gần với kích thước dữ liệu thô của file.

PEView size Lab01-01.exe

Malcode Analyst Pack

Sử dụng Malcode Analyst Pack, có thể xem "strings" và thấy có rất nhiều trong số chúng.

Có vẻ như có một lượng kha khá thông tin được trả về. Trong trường hợp tệp được đóng gói hoặc bị xáo trộn, sẽ tìm thấy rất ít chuỗi dễ đọc.
Mặc dù không có nhiều chuỗi được trả về, nhưng dường như vẫn có một lượng thông tin tốt được trả về. Một địa chỉ ip, exec, sleep và các chức năng khác được tìm thấy.

Lab01-01.exe và Lab01-01.dll

Malcode Analyst Pack Lab01-01.exe and Lab01-01.dll

IDAPro
Một kỹ thuật khác có thể được sử dụng để xác định xem phần mềm độc hại có được đóng gói hay không là sử dụng IDAPro để xem hướng dẫn có hợp lý hay không và liệu có bất kỳ bằng chứng nào về việc chuyển sang sơ khai bộ giải mã hay không:

Lab01-01.exe

IDAPro Lab01-01.exe

Lab01-01.dll

IDAPro Lab01-01.dll

Nhìn vào cả exe và dll trong IDAPro cho thấy rằng các hướng dẫn dường như không chuyển đến sơ khai bộ giải mã dưới bất kỳ hình thức nào và các hướng dẫn được hiển thị rõ ràng.

4. Do any imports hint at what this malware does? If so, which imports are they?

Sử dụng Dependency Walker kết quả:

Lab01-01.exe gọi tới các hàm:

  • CreateFileA
  • FindNextFileA
  • FindFirstFileA
  • CopyFileA

Dự đoán: Phần mềm độc hại này sẽ  thực hiện thao tác tìm kiếm và copy.

Dependency Walker Lab01-01.exe

Lab01-01.dll gọi tới các hàm:

  • CreateProcess
  • Sleep

Dự đoán:  Phần mềm độc hại này có khả năng sinh ra một quy trình mới và ngủ (tạm dừng thực thi) ở một số giai đoạn.

Dependency Walker Lab01-01.dll

Ngoài ra thông qua thư viện ws2_32. dll ta biết được tệp thực thi còn thực hiện các chức năng như: socket , connect , send , recvclosesocket điều này cho thấy rằng phần mềm độc hại này có thể thực thi qua máy chủ.

Dependency Walker lab01-01.dll_ws2_32. dll

Note: Ba thư viện sau được dùng: kernel32.dll , ws2_32.dll, msvcrt.dll

Kernel32.dll là một tệp thư viện liên kết động 32 bit được thiết kế cho hệ điều hành Windows.  Nhiệm vụ chính của nó là quản lý bộ nhớ hệ thống, các hoạt động đầu vào / đầu ra và ngắt. Tệp này được tải vào một không gian bộ nhớ bảo vệ khi Windows khởi động trong nỗ lực ngăn các ứng dụng khác chiếm lấy không gian này.

Ws2_32. dll là một thư viện được liên kết động được sử dụng để xử lý các kết nối mạng. Đây là một chương trình nhỏ liên quan đến các quy trình phần mềm, tương tự như các tệp EXE, nhưng thay vì đưa ra các lệnh, tệp . dll cho phép các ứng dụng giao tiếp với nhau.

Msvcrt.dll là một mô-đun chứa các hàm thư viện C tiêu chuẩn như printf, memcpycos. Nó là một phần của Thư viện Microsoft C Runtime.

infosecwriteups.com

5. Are there any other files or host-based indicators that you could look for on infected systems?

Lab01-01.exe:

Kiểm tra kỹ hơn các chuỗi chứa trong Lab01-01.exe cho thấy rằng nó đang tham chiếu đến một tệp có tên C:\windows\system32\kerne132.dll. Đây là một lỗi chính tả rất tinh vi của tệp Kernel32.dll hợp pháp (chú ý sử dụng 1 thay vì l ) vì điều này có thể là tệp độc hại và chúng tôi có thể sử dụng tệp này để tìm kiếm các hệ thống bị nhiễm.

Kerna123

Lab01-01.dll:

Không có

6. What network-based indicators could be used to find this malware on infected machines?

Lab01-01.exe:

Không có 

Lab01-01.dll:

Kiểm tra kỹ hơn các chuỗi chứa trong Lab01-01.dll cho thấy có một địa chỉ IP. Do điều này và quá trình nhập mạng, rất có khả năng DLL này liên hệ với địa chỉ IP này và do đó, chúng tôi có thể sử dụng điều này để tìm các hệ thống bị nhiễm đã liên hệ với 127.26.152.13.

IP

7. What would you guess is the purpose of these files?

Dựa trên những liệt kê ở trên ta có thể đoán rằng cách thức hoạt động của hai tệp như sau:

Lab01-01.exe:

 Dùng để chạy Lab01-01.dll

Lab01-01.dll:

Hoạt động như một backdoor hoặc troijan truy cập từ xa (RAT). Dựa trên các lần nhập nó tìm kiếm C:\windows\system32\kerne132.dll có tồn tại không, và nếu không thì nó sẽ coppy file dll sang C:\windows\system32\kerne132. Khi một chương trình lạ sử dụng thư viện kernel132, nó sẽ mở ra một kết nối đến IP 127.26.152.13 với user/password cho sẵn.

Kết thúc write up Part I - Chapter 1 -Lab01

Đây là bài write up đầu tiên của mình, rất vui khi tiếp tục những bài write-up tiếp theo.

Đăng nhận xét

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.