# 1. Phân tích Ransomware
## Tác động của malware: mã hóa các file văn bản, hình ảnh trong đường dẫn
- Tôi sẽ thực hiện phân tích, đánh giá, giải mã tệp tin được mã hóa bởi ransomware
### Đối tượng phân tích:

Đây là một bản demo về ransomware giảng viên đã đưa trong môn học của tôi. Nó khá cơ bản nhưng có thể giúp tôi khái quát, bước đầu hiểu cơ bản về cách thức mã hóa của ransomware.
- Tệp tin tôi đang phân tích được viết bằng *autoit* vì vậy tôi sẽ sử dụng công cụ ```myAutToExe``` để decompile và phân tích nó rõ hơn.

### Phân tích chi tiết:

- Đây sẽ là đường dẫn đến các tệp tin sẽ bị mã hóa ```C:\data\test\at19n``` mà tác giả đã biên dịch. Bây giờ chúng ta có thể tùy chỉnh đường dẫn này theo ý của mình =)))))

- List file có thể bị mã hóa và có sử dụng loại trừ


- Sau khi bị mã hóa các file sẽ có đuôi là ```.CryptXXX``` và nó được mã hóa bởi AES_256

- Ngoài ra tôi còn tìm được một hàm CREATEKEY() có thể đây là key dùng để mã hóa tệp tin sẽ được sử dụng

> Việc phân tích cơ bản đã hoàn thành.
## Thử nghiệm chạy thử trên Windows 10
- Tôi sẽ tạo các tệp tin khác nhau theo đường dẫn C:\data\test\at19n để test hoạt động của ransomware


- Đúng như đã phân tích toàn bộ file nằm trong list file đã bị mã hóa hoàn toàn với đuôi .CryptXXX, ransomware hoạt động khá tốt.
## Tiến hành giải mã tệp tin bị mã hóa bởi ransomware
### Các công cụ hỗ trợ (tham khảo)
- Công cụ bắt gói tin: Wireshark
- Kiểm tra sự thay đổi trong Registry của hệ thống: CRegistry Comparison
*link tham khảo tool* [https://listoffreeware.com/best-free-software-to-compare-registry/](https://)
- Công cụ dùng để Static Analysis file là PEid. Dùng nó để đọc header của file virus (.exe)
### Giải mã
- Sử dụng công cụ CRegistry Comparison để kiểm tra sự thay đổi trong Registry của hệ thống


- Một list key được hiển thị ở đây. Bây giờ việc tiếp theo là tạo tool để decrypt file
- Tôi sẽ tạo tool decrypt_file bằng autoit (tham khảo tool):
[https://actvneduvn-my.sharepoint.com/:u:/g/personal/at19n0106_actvn_edu_vn/EeEMtSpMg8lPtOw-KpVmGb8B-aL8ooFEbIt_YJdyl4lOig?e=cHxWWA](https://)

- Tôi sẽ demo decrypt_file text1.txt đã bị mã hóa ở trên 
với password là một trong các key được lọc nhờ công cụ CRegistry Comparison

- Đúng như tất cả những gì đã phân tích trên tôi đã decrypt file thành công.

- Như vậy tôi đã hoàn thành decrypt file.
***
# 2. Cài đặt Windows Server
- Đầu tiên tôi tải **VMWARE PRO** nhấn vào đây để tải [VMWARE PRO](https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html) về máy
- Tiếp theo là tôi tải file **IOS** của **Windows Server** về máy nhấm vào đây để tải [Windows Server](https://www.microsoft.com/en-us/evalcenter/download-windows-server-2019) nên chọn bản 2019 để có thể tối ưu hơn
- Sau đây là các bước tiến hành cài đặt **Windows Server** trên **VMWARE**
- Đầu tiên mở phần mềm ảo hóa **VMWARE** lên chọn **Create a New Virtual Machine**

- Chọn **Custom** rồi nhấn **Next** cho đến đây
- Tích vào ô cuối cùng rồi nhấn **Next** cho đến đây

- Tạo 1 thư mục để chứa máy ảo rồi chọn **Browse** vào thư mục đó tiếp tục nhấn **Next**

- Chọn 2 **Number of cores per processor** rồi nhấn **Next**

- Nhấn **Next** liên tục đến đây nhấn **Finish**

- Đến đây chọn **Edit virtual machine settings**

- Chọn **CD/DVD(SATA), ở phần **Connection** chọn **Use ISO image file** browse file ISO đã tải ở trên vào rồi nhấn **OK**

- Tiếp theo **Power on this virtual machine** để khởi động VMWARE

- Vào màn hình chính nhập thật nhanh bất kì kí tự nào để vào đc đây. Rồi nhân **Enter**

- Nhấn **Next**

- Nhấn **Install now **

- Chọn dòng thứ 2 rồi nhấn **Next**

- Tích vào **I accept the license tems** rồi nhấn **Next**

- Chọn **Custom** dòng ở dưới (mình lỡ bấm xong ko chụp lại đc)
- Nhấn **Next**. Rồi ngồi chờ nó cài đặt

- Chờ mòn thanh xuân

- Đặt password cho máy(có số, chữ và chữ cái đặc biệt)

- Đến đây bấm tổ hợp phím **Ctrl+ALT+Delete** rồi bấm **Cancel** rồi nhập password

- Vậy là tôi đã hoàn thành việc cài đặt máy ảo Windows Server

# 3. Windows Server 2019(Triển khai IIS trên máy DC)
### Triển khai Internet Information Services(IIS) trên Windows Server 2019
- Đầu tiên tôi triển khai Domain controller trên 2 máy trên Windows Server 2019
- Truy cập vào đường link này để triển khai Domain controller [Triển khai Domain Controller](https://quantrimang.com/cong-nghe/active-directory-tren-windows-server-2019-180096)
### Triển khai giải pháp mã hóa Asymantric (Public key, Private key) để mã hóa đường truyền web (https)
## Step 1: Cài đặt Active Directory Certificate Service lên máy DC
- Đầu tiên chúng ta chạy **Server Manager** và nhấp vào **Add roles and features**

- Nhấn vào **Add roles and featuers**
- Tiếp theo nhấn **Next**

- Chọn **Role-based or feature-based installation**

- Chọn host bạn muốn thêm các service

- Tích vào hộp **Active Directory Domain Services**

- Các tính năng bổ sung được yêu cầu để thêm AD DS. Nhấp vào nút **Add Features**

- Nhấn **Next**

- Tiếp tục nhấn **Next**

- Tích vào 2 hộp **Certification Authority** và **Certification Enrollment Web Server** rồi bấm **Next**

- Cuối cùng nhấn **Install** để cài đặt **Active Derectory**

- Sau khi quá trình cài đặt kết thúc, nhấp vào nút **Close**

- Tiếp theo bấm vào đây

- Nhấn **Next** để tiếp tục

- Tích vào hộp này rồi bấm **Next**

- Tiếp tục nhấn **Next**

- Tiếp tục nhân **Next**

- Nhấn **Next** cho đến đây và chọn **Sha256**

- Rồi tiếp tục nhấn **Next** cho đến đây rồi bấm **Configure**

## Step 2: Trên Web Server, 1 máy Windows Server khác cài dịch vụ Web Server để test (IIS)
##### 1. Đầu tiên tôi tiến hành triển khai IIS trên máy DC
- Chọn **Add roles and features**

- Bấm **Next** cho đến đây

- Tích vào hộp Web Server(IIS) rồi nhấn **Add features** tiếp tục nhấn **Next** cho đến đây

- Đây là phần chọn các tính năng của Web Server. Hãy chọn những tính năng mà bạn muốn thêm. Trong ví dụ này, các tùy chọn mặc định được giữ nguyên. Tất nhiên, bạn có thể thêm các tính năng này sau khi cài đặt IIS. Nhấn **Next** rồi nhấn **Install** để cài đặt IIS
- Chạy trình duyệt web và truy cập vào **localhost**, sau đó bạn có thể xác minh IIS có đang chạy bình thường không

##### 2. Sử dụng IIS trên Windows Server 2019
- Đầu tiên, ở màn hình chính tôi nhấn vào **Tools** rồi chọn **Internet Information Services(IIS) manages**

- Mở các mục ở bảng điều khiển bên trái, **Default Web Site** được cấu hình

- Mở **Default Document**, sau đó có thể xác nhận các tài liệu mặc định

- Giờ vào ổ đĩa C chọn **inetpub** chọn **wwwroot** tạo thư mục **blueteam**. Ở đây mở notepad tạo 1 file có tên là **index.html** sau đó bỏ source html vào đây như trên.

- Bây giờ vào **Internet Information Services(IIS) Manager**. Nhấn chuột phải vào **WIN-349CG70HMEB** chọn **Add Website** để tạo 1 website

- Giờ tạo 1 website có tên là **www.blueteam.org**

- Vào **Default Document** đẩy file **index.html** lên trên cùng

##### 3. Cấu hình DNS cho Website
- Đầu tiên vào màn hình chính nhấn **Tools** chọn **DNS**

- Nhấn chuột phải vào **WIN-349CG70HMEB** chọn **New Zone** tạo với tên là **blueteam.org** đến **Dynamic Update** tích ô thứ hai rồi nhấn **Next**

- Tiếp theo vào màn hình chính nhấn chuột phải chọn **New Alias(CNAME)**

- Tạo **www** cho website

- Sau đó khởi động lại

- Truy cập vào web **http://www.blueteam.org/**

## Step 3: Trên máy Web Server tạo Cert cho máy chủ Web, request máy CA để xin Digital Certificate để import vào IIS
- Đầu tiên vào **Internet Information Services(IIS) Manages** chọn **Server Certificate**

- Sau đó chọn **Creat Domain Certificate** và nhập các thông tin liên quan rồi nhấn **Next**

- Nhấn **Select** chọn mục đầu tiên rồi ở phần **Friendly name** nhập **www.blueteam.org** rồi nhấn **Finish**

- Giờ vào **IIS** vào **Sites** chọn **blueteam** nhấn **Bingdings** cài đặt sang **https**

## Step 4: Test
- Truy cập vào trang web **https://www.blueteam.org**

- Hoàn thành cài đặt tạo Cert cho máy chủ Web

- Vậy là tôi đã hoàn thành việc triển khai IIS trên Windows Server
***
# 4. Build Linux Web Server && Create an SSL Certificate Authority
## Để xây dựng Web Server trên Linux thì chúng tôi cần 3 công cụ đó là [Apache http Server](https://httpd.apache.org/download.cgi), [Bind 9 DNS](https://www.isc.org/bind/#:~:text=BIND%209%20on%20the%20Internet%20BIND%20is%20used,zones%2C%20to%20service%20providers%20with%20large%20resolver%20farms.), [OpenSSl CA](https://www.openssl.org/)
### Apache2 Web Server
- Mục tiêu của Dự án Máy chủ HTTP Apache là xây dựng một dự án an toàn, hiệu quả và máy chủ HTTP có thể mở rộng dưới dạng phần mềm nguồn mở tuân thủ tiêu chuẩn. Các kết quả từ lâu đã là máy chủ web số một trên Internet.
- Để cài [``Apache Web Server``](https://installati.one/install-apache2-kalilinux/) chúng tôi sử dụng lệnh
```
sudo apt-get update && sudo apt-get -y install apache2
```
- 
### Bind 9 DNS
- Một phần quan trọng của việc quản lý cấu hình server và cơ sở hạ tầng bao gồm duy trì một cách dễ dàng để tra cứu network interface và địa chỉ IP theo tên, bằng cách cài đặt Hệ thống domain (DNS) thích hợp. Sử dụng domain đủ điều kiện (FQDN), thay vì địa chỉ IP, để chỉ định địa chỉ mạng giúp giảm bớt cấu hình của dịch vụ và ứng dụng, đồng thời tăng khả năng bảo trì của các file cấu hình. Cài đặt DNS của bạn cho mạng riêng của bạn là một cách tốt để cải thiện việc quản lý các server của bạn.
- Để cài [``Bind9 DNS``](https://qastack.vn/ubuntu/330148/how-do-i-do-a-complete-bind9-dns-server-configuration-with-a-hostname0) chúng tôi sử dụng lệnh
```
sudo apt update && sudo apt install bind9 bind9utils
```
### OpenSSL Certificate Authority
- OpenSSL là bộ công cụ SSL/TLS mật mã cung cấp nhiều giải pháp cho những người làm việc về Digital Certificate, Certificate Authority, kiểm tra SSL/TLS, phát triển hoặc triển khai ứng dụng, kiểm tra ứng dụng và kiểm tra bảo mật
- Để Cài Openssl chúng tôi sử dụng lệnh
```
sudo apt update && sudo apt-get install openssl
```
## Build Web Server
- Sử dụng lệnh ``ifconfig`` để kiểm tra ip và ip đó sẽ là mặc apache2 web ser

- Mình phải add host ip và tên mình mong muốn qua
```
sudo nano /etc/hosts
```
- Thêm địa chỉ host và tên miền mình mong muốn vào file **/etc/hosts**

- Tiếp đó chúng tôi sẽ đưa một file **.html** giao diện cho web server của mình
```
sudo nano /var/www/html/index.html
```
- và sửa lại file ``index.html`` bằng code của mình
```htmlembedded=
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Marquee Example</title>
<style>
body {
background-color: #ffffff;
color: #000000;
font-family: Arial, sans-serif;
position: relative;
margin: 0;
}
marquee {
behavior: scroll;
direction: left;
scrollamount: 5;
padding: 10px;
}
h1 {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
margin: 0;
}
</style>
</head>
<body>
<marquee>
BLUE TEAM AT19
</marquee>
</body>
</html>
```
- Chúng tôi bắt đầu dịch vụ bằng lệnh
```
sudo service apache2 start
```

- Tiếp đó chúng tôi cấu hình DNS qua công cụ bind9
```
cd /etc/bind
```
- Ở trong Bind9 DNS này yêu cầu:
- Đầu tiên ta se cần sửa **/etc/bind/named.conf.options**. Chúng ta sẽ sửa **forwarders** thành 
- Sau đó mở file **/etc/bind/named.conf.local** và bổ sung 1 zone mới
- Tiếp theo đó tạo file csdl DNS **/etc/bind.db.AT19N0127.com.vn** và **/etc/bind/db.172** qua lệnh
```
sudo cp /etc/bind/db.127 /etc/bind/db.172
sudo cp /etc/bind/db.local /etc/bind/db.AT19N0127.com.vn
```


- Sau đó ta sử file **/etc/resolv.conf** và **/etc/named.conf** giúp truy vấn để chuyển đổi các hostname đến địa chỉ ip và ngược lại


- Cuối cùng khởi động lại **bind9 DNS** để các thao tác vừa rồi có hiệu lực và dùng lệnh để check
```
nslookup AT19N0127.com.vn
```


- Tiếp đó chúng tôi tạo chứng chỉ CA công khai qua lệnh
```
sudo openssl req -newkey rsa:2048 -sha256 -new -nodes -x509 -days 3650 -keyout /etc/ssl/key.pem -out /etc/ssl/cert.pem
```

- Với RSA 2048 bit và SHA-256
- Chúng tôi đang yêu cầu chứng chỉ x509 mới mà chúng tôi muốn có hiệu lực trong 3650 ngày. Chúng tôi muốn sử dụng **key.pem** làm khóa riêng cho chứng chỉ và chúng tôi đang lưu nó trong **cert.pem** .


- Tiếp đó chúng tôi chỉnh file
```
sudo nano /etc/apache2/sites-available/default-ssl.conf
```
- Đây là những thứ tôi cần sửa thành đường dẫn CA vừa xin công khai
-

thành

- Cuối cùng chúng tôi sử dụng các lệnh để enable service
```
sudo a2ensite default-ssl.conf
sudo a2ensite default-ssl
sudo a2enmod ssl
sudo service apache2 restart
```




- Tiếp đó ta cần click và **``Accept the Rick and Continue``**

- VÀ ĐÂY LÀ KẾT QUẢ



