# Dynamic Malware Analysis

## I. What is Dynamic Malware Analysis?

Phương pháp phân tích phần mềm độc hại động là phương pháp phân tích trong đó phần mềm độc hại được chạy và kiểm tra trong môi trường an toàn. Trong phương pháp này, nó nhằm mục đích phân tích hành vi của phần mềm độc hại bằng cách kiểm tra các hoạt động như mạng và tệp, v.v. trong môi trường an toàn.

### Dynamic Analysis Method

Ưu điểm:

* Nó tạo ra kết quả nhanh hơn nhiều so với phương pháp phân tích tĩnh.&#x20;
* Bạn có thể thực hiện phân tích tự động bằng hộp cát.&#x20;
* Đây là phương pháp phân tích đòi hỏi ít kiến ​​thức kỹ thuật hơn so với phân tích tĩnh, vì vậy người mới bắt đầu có thể học dễ dàng.

Nhược điểm:

* Bạn không thể xác định toàn bộ capacity của phần mềm độc hại vì hoạt động của phần mềm độc hại có thể khác nhau tùy theo các hệ thống khác nhau.&#x20;
* Thông thường, bạn không thể phân tích phần mềm độc hại nâng cao chỉ bằng phương pháp phân tích động, trong những trường hợp này, bạn có thể cần sử dụng cả phương pháp phân tích động và tĩnh cùng nhau.

## II. Which tools and software do we need?

### **Virtualization Software**

Chúng tôi không muốn tiến hành phân tích động trên hệ thống của riêng mình vì chúng tôi cần chạy phần mềm độc hại để có thể kiểm tra hoạt động của nó. Vì lý do này, chúng ta nên sử dụng Phần mềm ảo hóa giúp chúng ta làm việc trên một số hệ thống ảo.

Nhờ những phần mềm này, bạn có thể sử dụng một hệ điều hành khác trên hệ điều hành máy chủ của mình. Nếu chúng được cấu hình đúng cách, bạn có thể thực hiện phân tích của mình một cách an toàn vì phần mềm độc hại không thể thoát khỏi hệ điều hành ảo này. Sẽ rất hữu ích khi ghi lại một ghi chú nhỏ ở đây về các phần mềm ảo hóa này. Vì các môi trường ảo hóa này về cơ bản là phần mềm nên nhiều lỗ hổng khác nhau cho phép phần mềm độc hại thoát ra khỏi các môi trường ảo này và cho phép thực thi mã trên hệ điều hành máy chủ có thể xảy ra trên các môi trường này. Vì lý do này, điều quan trọng là phải luôn cập nhật phần mềm ảo hóa của bạn.

Một số phần mềm ảo hóa được sử dụng thường xuyên như sau:

* VMware Workstation
* VMware Fusion
* Oracle Virtualbox

Một môi trường phân tích động biệt lập lý tưởng bao gồm một thiết bị vật lý hoàn toàn riêng biệt và một mạng riêng biệt. Tuy nhiên, việc thiết lập môi trường phức tạp này vừa rất tốn kém vừa không cần thiết phải bắt đầu.

### **Utility Softwares**

1. Microsoft Office
2. Adobe Reader
3. Browser (Chrome, Firefox etc.)
4. WinRAR
5. Text Editors (Notepad++, Sublime Text etc.)

### **Debuggers**

Trình gỡ lỗi là phần mềm thường được các lập trình viên sử dụng để kiểm tra mã và phát hiện lỗi. Trình gỡ lỗi giúp xem hướng dẫn của một quy trình và thay đổi luồng chương trình. Sử dụng trình gỡ lỗi để tìm hiểu cấu trúc hoạt động của phần mềm độc hại và vô hiệu hóa một số cơ chế ngăn chặn bằng cách thực hiện các thay đổi đối với mã phần mềm độc hại.

Sau đây là một số trình gỡ lỗi thường được các nhà phân tích phần mềm độc hại ưa thích:

* Ollydbg
* X64dbg
* Windbg
* Radare2
* IDA

### **Network Monitoring Tools**

Thông tin như các kết nối mạng do phần mềm độc hại thiết lập, địa chỉ mà phần mềm độc hại liên lạc và cách nó liên lạc với những địa chỉ đó sẽ được báo cáo do phân tích phần mềm độc hại.

Chúng tôi cần một số phần mềm để phát hiện hoạt động mạng của phần mềm độc hại. Một số trong số đó là như sau:

* Wireshark
* Fiddler
* Burp Suite

### **Process Monitoring Tools**

Một quy trình mới được tạo cho chương trình chúng tôi chạy để phân tích phần mềm độc hại. Để giám sát các quy trình này, chúng ta nên sử dụng các công cụ giám sát quy trình. Windows đã đi kèm với một công cụ giám sát quy trình có tên là "Task Manager". Tuy nhiên, các công cụ giám sát quy trình khác hữu ích hơn về mặt cách sử dụng và tính năng phân tích phần mềm độc hại.

* Process Hacker
* Process Explorer (SysInternals)
* Procmon (SysInternals)

### **File Activity Monitoring Tools**

Hoạt động tệp là một trong những hoạt động đầu tiên cần được thực hiện trong phân tích động. Phần mềm độc hại có thể đọc tệp để thu thập thông tin từ hệ điều hành, ghi các thành phần khác của phần mềm độc hại vào hệ thống tệp và tự di chuyển đến thư mục khởi động để đảm bảo tính tồn tại lâu dài. Phần mềm độc hại có thể tham gia vào nhiều hoạt động khác nhau trong hệ thống tệp vì những lý do này và các lý do khác. Chúng ta nên phát hiện và chỉ ra những hoạt động này trong báo cáo phân tích phần mềm độc hại. Bạn có thể sử dụng các công cụ sau để xem hoạt động của tệp:

* Sysmon

### **Other Tools**

* SysInternal Tools (giúp bạn thực hiện hầu hết mọi nhiệm cụ của quản trị viên, từ giám sát hoặc bắt đầu một quy trình tới len lõi sâu vào hệ thống để xem ứng dụng của bạn đang truy cập các tệp và khóa registry nào)
* CFF Explorer (để phân tích và chỉnh sửa các tệp trong định dạng Portable Executable (PE) trên hệ điều hành Windows)
* PEView (phân tích các tệp Portable Executable (PE) trên hệ điều hành Windows)
* TriDNet
* BinText (rất hữu ích để tìm kiếm và trích xuất các chuỗi text từ các tệp nhị phân như các tệp thực thi (executable), DLL, và các tệp khác trên hệ điều hành Windows)
* PEiD
* Regshot (để chụp ảnh và so sánh trạng thái của Registry Windows trước và sau khi thực hiện một hành động cụ thể)
* HashMyFiles (để tạo và so sánh các mã băm (hash) của các tệp tin trên hệ thống Windows)

## III. Creating Virtual Machine

### **Installing Virtualization Software**

Tải xuống và cài đặt phần mềm ảo hóa [VMware Workstation](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/desktop-hypervisor.html.html.html?irclickid=TW3Tzu089xyKT1g0Y2WgIU9hUkHQQfUJhQ%2525253ABSA0\&irpid=10078\&irgwc=1)

### **Installing Operating System**

Sau khi cài đặt phần mềm ảo hóa trên hệ thống, chúng ta sẽ đi thiếp lập hệ điều hành với một số cài đặt sau.

Ta cần có file ISO của hệ điều hành muốn cài. Có thể sử dụng [MediaCreationTool](https://www.microsoft.com/en-us/software-download/windows10) để tạo file ISO cho hệ điều hành windows

Việc cài đặt win10 trên máy ảo tương tự làm như bình thường (cho nó 100gb dung lượng, trên 4gb ram...)

Phần hướng dẫn cài đặt ở đây nhé: <https://app.letsdefend.io/training/lesson_detail/creating-virtual-machine-for-dynamic-analysis>

## IV. What Should We Pay Attention to when we conduct a Dynamic Analysis?

### **Process Activities**

Khi phần mềm độc hại chạy, nó sẽ tạo ra một quy trình riêng giống như các ứng dụng khác. Mọi hoạt động trên hệ điều hành đều được thực hiện thông qua một tiến trình. Trước khi theo dõi các hoạt động khác, chúng tôi phải phát hiện các quy trình thuộc về phần mềm độc hại.

Một số lượng lớn các hoạt động quy trình, mạng, registry và file activities trong hệ điều hành. Vì không thể phân tích tất cả các hoạt động này nên chúng tôi có thể bắt đầu phân tích hoạt động của các quy trình phần mềm độc hại để xem liệu chúng tôi có thể tìm thấy điều gì chắc chắn về hoạt động của nó hay không.

Khi kiểm tra một tiến trình, cần đặc biệt chú ý đến các thông tin như liệu nó có tạo ra một tiến trình con mới hay không, các DLL mà nó nhập vào và người dùng nào điều hành nó. Bạn có thể sử dụng ứng dụng có tên Process Hacker để kiểm tra các quy trình.

<figure><img src="/files/gmb1lBSsiwj8Jg3IAUWw" alt=""><figcaption></figcaption></figure>

**Process Hacker** giúp dễ dàng kiểm tra các quy trình bằng cách liệt kê các quy trình trong chế độ xem phân cấp. Khi phần mềm độc hại tạo một quy trình mới, bạn có thể thấy quy trình mới được tạo trong quy trình gốc của nó.

Phần mềm độc hại có thể tự xâm nhập vào các quy trình khác nhau, thực hiện các hoạt động cho mục đích riêng của nó bằng các tệp nhị phân trên đất liền hoặc khiến các ứng dụng hợp pháp chạy ứng dụng của riêng chúng. Vì những lý do này, cần phải phân tích hoạt động của tất cả các quy trình thuộc về phần mềm độc hại và được phần mềm độc hại sử dụng.

Ví dụ: giả sử phần mềm độc hại tự tiêm vào quy trình **notepad.exe** sau khi nó chạy. Trong trường hợp này, chúng ta cần kiểm tra tất cả các hoạt động mà **notepad.exe** đã tạo kể từ thời điểm nó được đưa vào.

Chủ đề về **Process Injection** sẽ được thảo luận sau.

### **Network Activities**

Phần mềm độc hại thường thiết lập kết nối mạng để tải xuống the second payload, để giao tiếp bằng command and control (c2), chuyển sang các thiết bị khác trong mạng, để đánh cắp dữ liệu.

Khi kết thúc phân tích phần mềm độc hại, chúng tôi cần phát hiện các kết nối mạng này, tìm hiểu cách phần mềm độc hại giao tiếp và báo cáo các hoạt động mạng này.

**Wireshark** là phần mềm có thể đáp ứng mọi nhu cầu phân tích hoạt động mạng của bạn. Tuy nhiên, bạn có thể chọn các công cụ như **Fiddler**, trong trường hợp bạn biết rằng phần mềm độc hại giao tiếp đặc biệt qua giao thức HTTP (Phần mềm độc hại chủ yếu giao tiếp qua các giao thức như HTTP, SMTP).

### **Registry Activities**

Chúng tôi đã đề cập đến **Registries** trong  Windows tutorial. Xin nhắc lại một cách nhanh chóng, **registries** là cơ sở dữ liệu phân cấp được sử dụng để lưu trữ dữ liệu trong hệ điều hành Windows. Nó được những kẻ tấn công sử dụng cho các mục đích như đánh cắp dữ liệu và đảm bảo tính bền bỉ.

Windows giữ cho các ứng dụng chạy khi hệ điều hành được khởi động trong một số **registry keys**. Những kẻ tấn công nhằm mục đích đảm bảo tính bền bỉ bằng cách lợi dụng tính năng này của hệ điều hành và thêm phần mềm độc hại của riêng chúng vào **registry keys** này.

Một số **registry keys** này như:

* HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY\_CURRENT\_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
* HKEY\_LOCAL\_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY\_LOCAL\_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

Vì Registries cũng được các quy trình thông thường sử dụng rất nhiều nên bạn đặc biệt cần xem xét các thay đổi at the registry do các quy trình phần mềm độc hại thực hiện. Bằng cách sử dụng ứng dụng có tên **Regshot**, bạn có thể phát hiện những thay đổi mà phần mềm độc hại đã thực hiện on the Registries.

<figure><img src="/files/PDTMiSwjiRNjItTPDqMd" alt=""><figcaption></figcaption></figure>

Trước khi thực thi phần mềm độc hại, bạn có thể chạy **Regshot** và nhấp vào nút *"1st shot"* để cho phép **Regshot** thu thập các đăng ký hiện có.

Sau đó, bạn nên nhấn nút *"2nd shot"* để chụp ảnh mới sau khi chạy phần mềm độc hại và dành một chút thời gian để hiển thị hoạt động. Bạn có thể thấy sự khác biệt giữa hai bức ảnh chụp **Regshot** này bằng cách nhấn nút *"Compare".*

<figure><img src="/files/C3RrBAijtLOlnci2kQ6q" alt=""><figcaption></figcaption></figure>

### **File Activities**

Phần mềm độc hại thực hiện các hoạt động tập tin trên hệ điều hành vì nhiều lý do. Gần đây, những kẻ tấn công đã phát triển phần mềm độc hại không dùng tệp để ngăn chặn việc bị phát hiện.&#x20;

Trên Windows, có một thư mục tên là "**Temp**" nơi chứa các tệp tạm thời. Các ứng dụng thường sử dụng thư mục này để lưu trữ các tệp dễ bay hơi của chúng. Phần mềm độc hại thường tự sao chép vào thư mục **Temp**. Vì lý do này, bạn nên đặc biệt chú ý đến các hoạt động được thực hiện trên thư mục này.

Bạn có thể truy cập vào thư mục nào bằng cách "Win + R" sau đó nhấn **%temp%**

<figure><img src="/files/c7zo0dCxHQZ2IGYw23AG" alt=""><figcaption></figcaption></figure>

Để đảm bảo tính tồn tại lâu dài, phần mềm độc hại còn tự sao chép vào **Startup directory**, nơi chứa các ứng dụng sẽ tự động chạy khi hệ điều hành khởi động. Bạn nên đặc biệt chú ý đến các hoạt động được thực hiện trong các thư mục này.

Bạn có thể truy cập thư mục này bằng cách nhấn tổ hợp phím "Win ​​+R" và gõ lệnh sau sau đó:

* **shell:startup**
* **shell:common startup**

<figure><img src="/files/2xd8GMGDjdV4ORqkZw81" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2TohxgNTrrLshItlabkH" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/70x1iIavscgob2BWiHAU" alt=""><figcaption></figcaption></figure>

## Example 1

### **Preparing**

Lưu ý cần chuẩn bị môi trường thật kỹ tránh trường hợp lây sang máy thật của mình. và lưu ý đang chạy theo mode HOST-ONLY

Phần mềm sau khi giải nén ta nhận được:

<figure><img src="/files/SI3oGecnFBWOrFT5zIXJ" alt=""><figcaption></figcaption></figure>

### **Analyze**

Đối với việc xem Registry thì ta vô phần mềm RegShot (trước khi chạy mã độc thì 1st shot sau khi chạy xong thì 2nd shot và rồi so sánh chúng thì ta sẽ nhận được kết quả):

<figure><img src="/files/KcGsOKuYx98w1v1ch5Ki" alt=""><figcaption></figcaption></figure>

#### **Process Activities**

Vào phần Process Tree trong phần mềm Procmon thì ta nhận thấy chương trình chạy gồm có thêm vài subprocess và cũng như thời gian run (lifetime)

<figure><img src="/files/50d1oVciv3AxgEFiQ853" alt=""><figcaption></figcaption></figure>

Khi ta xem thì thấy quy trình đầu tiên mã độc chạy là **(PID 5192)**, chạy công cụ có tên **schtasks.exe (PID 10024)** và sau đó lại chạy phần mềm độc hại chính nó **(PID 9708).**

**Schtasks.exe** là một công cụ cho phép sử dụng **Task Scheduler** thông qua giao diện lệnh trong hệ điều hành Windows.&#x20;

Những kẻ tấn công đảm bảo tính liên tục bằng cách thêm phần mềm độc hại của riêng chúng vào các tác vụ đã lên lịch với sự trợ giúp của **Task Scheduler**.

Để xem kẻ tấn công đã thêm loại tác vụ theo lịch trình nào, chúng ta phải nhấp vào "**schtasks.exe**" **(PID 10024)** trong cây quy trình của Procmon và kiểm tra chi tiết của nó.

<figure><img src="/files/nkDvLYA4aILHxYNdxfRY" alt=""><figcaption></figcaption></figure>

Đây là câu lệnh mà **schtasks.exe** sẽ thực thi:

**"C:\Windows\System32\schtasks.exe" /Create /TN "Updates\VbxFiQYCyFDgGL" /XML "C:\Users\Viz\AppData\Local\Temp\tmp1696.tmp"**

Giải thích:&#x20;

* **"C:\Windows\System32\schtasks.exe"** - Đây là đường dẫn đến công cụ dòng lệnh schtasks.exe trong thư mục System32 của Windows, được sử dụng để quản lý các tác vụ lập trình theo lịch.
* **/Create** - Tham số để tạo một tác vụ mới.
* **/TN "Updates\VbxFiQYCyFDgGL"** - Tên của tác vụ được tạo, trong trường hợp này là "Updates\VbxFiQYCyFDgGL".
* **/XML "C:\Users\Viz\AppData\Local\Temp\tmp1696.tmp"** - Đường dẫn tới tệp XML chứa cấu hình của tác vụ được tạo.

Khi bấm vào để xem chi tiết thì không được vì file .tmp đã bị xóa -> ta sẽ vào **Task Scheduler** để kiểm tra:

<figure><img src="/files/2u56xAxMwYhBPebxFIFH" alt=""><figcaption></figcaption></figure>

Như ở tab **General**, ta thấy trên ảnh chụp màn hình trên ta có tên và nơi lưu trữ.

<figure><img src="/files/ysDr8gjPBI1903Bgnufn" alt=""><figcaption></figcaption></figure>

Trên tab **Triggers**, bạn có thể xem tác vụ theo lịch trình do kẻ tấn công thêm vào sẽ chạy trong những tình huống nào. Như có thể thấy trên ảnh chụp màn hình ở trên, tác vụ theo lịch trình này sẽ chạy khi đăng nhập (**at log on**).

<figure><img src="/files/RVWSNo188W8BL5wg6TE6" alt=""><figcaption></figcaption></figure>

#### **Network Activities**

Bạn có thể xem hành động nào sẽ chạy trên tab **Actions**. Bạn có thể thấy trên ảnh chụp màn hình ở trên rằng phần mềm độc hại có tên *"VbxFiQYCyFDgGL.exe"* do kẻ tấn công chuẩn bị sẽ chạy khi tác vụ theo lịch trình này chạy.

Về phần mạng ta dễ dàng nhận thấy có sự giao tiếp với domain “**5gw4d\[.]xyz**”.

<figure><img src="/files/34lvIOo1yfAyPfW6N6Ia" alt=""><figcaption></figcaption></figure>

#### **Registry Activities**

Tiếp theo quay lại phần mềm Process Monitor, để filter chương trình mã độc thì ta có thể nhấn chuột phải vào nó và chọn **add process** hoặc process and children của nó nữa.

<figure><img src="/files/1Zm8wBpxGJ3K2OD4Xg5A" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/azVmGUYjyIdqLXrp89Kp" alt=""><figcaption></figcaption></figure>

#### **File Activities**

Để phát hiện các hoạt động của tệp phần mềm độc hại, hãy tắt ba hoạt động còn lại trong menu trên cùng của procmon

<figure><img src="/files/YNwL6G31L9gEe1Z3KRbd" alt=""><figcaption></figcaption></figure>

Kiểm tra ta nhận thấy có tạo file **VbxFiQYCyFDgGL.exe** ở thư mục **C:\Users\Viz\AppData\Roaming**

<figure><img src="/files/cPTC09enilAHfGmJ8684" alt=""><figcaption></figcaption></figure>

### **Result**

* phần mềm độc hại đã tự sao chép vào thư mục "C:\Users\Username\AppData\Roaming" với tên "VbxFiQYCyFDgGL.exe",&#x20;
* đã sử dụng Task Scheduler để đảm bảo tính tồn tại, đã kích hoạt ứng dụng độc hại của chính nó để chạy mỗi lần đăng nhập bằng cách tạo một tác vụ theo lịch trình với tên "VbxFiQYCyFDgGL"&#x20;
* giao tiếp với máy chủ chỉ huy & kiểm soát, địa chỉ kiểm soát lệnh là "5gw4d\[.]xyz/PL341/index.php" và nó giao tiếp qua giao thức HTTP,&#x20;
* phát hiện ra các ứng dụng được cài đặt trong hệ thống với sự trợ giúp của khóa trong khóa đăng ký "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall",&#x20;
* đánh cắp dữ liệu nhạy cảm từ các ứng dụng như Chrome, Firefox, Thunderbird.

#### **Artifacts**

MD5: 7a0093c743fc33a5e111f2fec269f79b SHA256: 722ef401e5cbb067c5c33faa402774d3c75ef08e0c8cc4d7e66a9cfa53684088 File Name: e-Archive Dekont.exe File Name: VbxFiQYCyFDgGL.exe Domain: 5gw4d\[.]xyz URL: http\[:]//5gw4d\[.]xyz/PL341/index.php

Lưu ý về Common Registry Keys được mã độc sử dụng để đảm bảo tính bền vững:

<figure><img src="/files/uVIgm99KvUNbv6CWG2M1" alt=""><figcaption></figcaption></figure>

## Example 2

Regsvcs.exe là một công cụ có tên .NET Service Installation Utility, được cài đặt mặc định trong hệ điều hành Windows của Microsoft.

Những kẻ tấn công thường đặt tên cho các ứng dụng mặc định trong hệ điều hành để tránh bị phát hiện. Chúng tôi phải xác định xem phần mềm độc hại mà chúng tôi đang kiểm tra có thực sự là ứng dụng hợp pháp xuất hiện theo mặc định trong Windows hay đó là cách kẻ tấn công đặt tên cho phần mềm của riêng mình để ngăn chặn việc bị phát hiện.

Những kẻ tấn công có thể tiêm mã độc vào các ứng dụng hợp pháp bằng cách sử dụng các kỹ thuật như **Code Insert**, **Process Hollowing**, **Reflective DLL Insert** cho phép các ứng dụng này chạy mã độc. Ngoài ra, có những tệp nhị phân được gọi là "sống nhị phân trên đất" và cho phép thực hiện các hoạt động độc hại mà không cần tiêm mã độc

## Một số lưu ý khi phân tích động

* chú ý là các mã độc cần có thời gian để hoạt động (cần chờ 3-5phút để phân tích) vì có thể rất nhiều trường hợp chạy khi hệ thống rảnh
* **Thực thi với tư cách quản trị viên**. Hầu hết phần mềm độc hại có khả năng tự chấm dứt mà không thể hiện bất kỳ hoạt động độc hại nào khi không chạy ở đặc quyền cao. Vì lý do này, bạn có thể thử chạy phần mềm độc hại không hoạt động với người dùng được ủy quyền.

Nguồn setup: <https://systemweakness.com/building-a-secure-malware-analysis-lab-from-scratch-a-step-by-step-guide-2cbf15ba7c2c>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://viettaliii.gitbook.io/home/mal/malware-analysis-skill-path/dynamic-malware-analysis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
