Hướng Dẫn Thực Hành Chi Tiết Theo 20 Module CEH v13
Biên soạn CEH VIETNAM
Instructor Vinh Nguyen Tran Tuong
Đào tạo CEH v13 , CEH MASTER , CPENT / LPT và Điều Tra Chứng Cứ Số CHFI
Cung cấp Exam Voucher Chứng Chỉ Quốc Tế EC Council
Giáo trình này được thiết kế để cung cấp cho học viên Chứng chỉ Hacker Mũ Trắng (CEH v13) một lộ trình thực hành chi tiết, bám sát theo 20 module của chương trình. Môi trường thực hành bao gồm máy tấn công Kali Linux và các hệ thống mục tiêu: Metasploitable 2 (Linux), Metasploitable 3 (Windows Server 2008) và OWASP Broken Web Applications (OWASP BWA). Mục tiêu là giúp người học củng cố kiến thức lý thuyết và phát triển kỹ năng thực tế thông qua các bài lab cụ thể tại nhà.
Chuẩn Bị Môi Trường Lab
Trước khi bắt đầu, cần thiết lập một môi trường lab ảo hóa. Điều này cho phép thực hành các kỹ thuật tấn công một cách an toàn mà không ảnh hưởng đến hệ thống thật.
1. Cài đặt Phần Mềm Ảo Hóa
Sử dụng một phần mềm ảo hóa như VirtualBox (miễn phí) hoặc VMware Workstation Pro.
- VirtualBox: Tải về từ(https://www.virtualbox.org/wiki/Downloads)/
- Vmware Workstation Pro : Hiện có bản miễn phí tải về từ trang chủ Vmware (CEH VIETNAM có cung cấp nhiều lab từ mô trường này và các máy ảo Metasplotiable 2 , Metasploitable 3 hay OWASP-Bwa có thể chạy song song cả 2 môi trường.
2. Cài đặt Máy Tấn Công: Kali Linux
Kali Linux là một bản phân phối Linux dựa trên Debian, được trang bị sẵn nhiều công cụ cho pentest và giám định pháp y kỹ thuật số.
- Yêu cầu hệ thống tối thiểu (cho SSH server, không GUI): 128MB RAM (khuyến nghị 512MB), 2GB ổ cứng.2
- Yêu cầu hệ thống khuyến nghị (cho Xfce desktop và gói kali-linux-default): 2GB RAM (khuyến nghị ít nhất 8GB cho các ứng dụng nặng như Burp Suite), 20GB ổ cứng.2
- Các bước cài đặt chính:
- Tải Kali Linux: Truy cập https://www.kali.org/get-kali/ và tải file ISO cài đặt (khuyến nghị bản “Installer”).3
- Tạo máy ảo mới: Trong VirtualBox/VMware, tạo một máy ảo mới.
- Loại HĐH: Linux
- Phiên bản: Debian (64-bit) 4
- Cấu hình tài nguyên: Phân bổ RAM và dung lượng ổ cứng theo khuyến nghị.
- Mount ISO và khởi động: Chọn file ISO Kali Linux đã tải làm ổ đĩa quang ảo và khởi động máy ảo.
- Quá trình cài đặt:
- Chọn “Graphical install” hoặc “Install (Text-Mode)”.3
- Chọn ngôn ngữ, vị trí địa lý, kiểu bàn phím.2
- Đặt hostname (ví dụ: kali).2
- Tạo tài khoản người dùng (không phải root) và mật khẩu mạnh.2
- Phân vùng ổ đĩa: Chọn “Guided – use entire disk” cho mục đích lab.3
- Cấu hình network mirror (nếu được hỏi) để cập nhật phần mềm.4
- Cài đặt GRUB boot loader: Chọn “Yes” và chọn ổ đĩa ảo để cài GRUB.2
- Hoàn tất và khởi động lại: Sau khi cài đặt xong, khởi động lại máy ảo Kali.
- Lưu ý quan trọng:
- Đảm bảo máy tính hỗ trợ boot từ CD/DVD/USB trong BIOS/UEFI.2
- Tắt Secure Boot trong UEFI settings vì kernel Kali Linux không được ký.2
3. Cài đặt Hệ Thống Mục Tiêu
a. Metasploitable 2
Metasploitable 2 là một máy ảo Linux được cố tình thiết kế với nhiều lỗ hổng bảo mật phổ biến.
- Tải về: Từ SourceForge: http://sourceforge.net/projects/metasploitable/files/Metasploitable2/.4 Đây là file zip chứa file
.vmdk. - Các bước cài đặt (VirtualBox):
- Giải nén file zip đã tải.5
- Trong VirtualBox, chọn “Machine” -> “New…”.5
- Name: Metasploitable2.
- Type: Linux.
- Version: Ubuntu (64-bit) hoặc Oracle Linux (64-bit).5
- Memory size: 512MB hoặc 1GB là đủ (khuyến nghị 2048MB trong một số hướng dẫn 5, nhưng 512MB vẫn hoạt động).
- Hard disk: Chọn “Use an existing virtual hard disk file”. Nhấp vào biểu tượng thư mục, chọn “Add”, duyệt đến file .vmdk đã giải nén và chọn nó.5
- Nhấn “Create”.
- Đăng nhập: Sau khi khởi động, username: msfadmin, password: msfadmin.5
b. Metasploitable 3 (tải về từ link chia sẽ của CEH VIETNAM để chạy trên Vmware)
Metasploitable 3 là phiên bản nâng cấp, có cả bản Windows Server 2008 và Ubuntu, được thiết kế để thực hành các kỹ thuật khai thác nâng cao. Chúng ta sẽ tập trung vào bản Windows.
- Cách dễ nhất (OVA dựng sẵn): Một phiên bản .ova dựng sẵn cho Windows 2008 Server có thể tải từ GitHub của Brimstone: https://github.com/brimstone/metasploitable3/releases (file Metasploitable3-0.1.4.ova).6
- Trong VirtualBox, chọn “File” -> “Import Appliance…” và chọn file .ova đã tải.6
- Có thể cần tăng RAM lên hơn 1GB nếu có thể.6
- Cách chính thức (xây dựng từ Packer và Vagrant – phức tạp hơn):
- Cài đặt Packer, Vagrant, và Git.5
- Clone repository Metasploitable 3: git clone https://github.com/rapid7/metasploitable3.git.7
- Chạy lệnh Packer để build file .box từ ISO Windows (ví dụ: packer build.windows_2008_r2.json).8 Quá trình này sẽ tải ISO Windows Server 2008.
- Thêm box vào Vagrant: vagrant box add.windows_2008_r2_virtualbox.box –name=metasploitable3.8
- Khởi động máy ảo: cd metasploitable3-workspace (thư mục tạo bởi Vagrant), sau đó vagrant up.7
- Đăng nhập (nếu dùng Vagrant): username: vagrant, password: vagrant.5
c. OWASP Broken Web Applications (OWASP BWA)
OWASP BWA là một tập hợp các ứng dụng web có chủ đích chứa lỗ hổng, rất tốt cho việc thực hành tấn công ứng dụng web.
- Tải về: File OVA từ SourceForge: https://sourceforge.net/projects/owaspbwa/files/latest/download.9
- Yêu cầu hệ thống: 1GHz Processor, RAM 2GB+, 20GB+ ổ cứng.9
- Các bước cài đặt (VirtualBox):
- Trong VirtualBox, chọn “File” -> “Import Appliance…”.9
- Chọn file .ova OWASP BWA đã tải.
- Xem lại cài đặt và nhấn “Import”.9
- Đăng nhập: username: owaspbwa, password: owaspbwa.9
- Truy cập ứng dụng: Mở trình duyệt trong máy ảo OWASP BWA và truy cập http://localhost hoặc IP của máy ảo từ Kali.9
4. Cấu hình Mạng cho Lab
Để các máy ảo có thể giao tiếp với nhau và Kali có thể truy cập Internet (để tải công cụ, cập nhật), cấu hình mạng là rất quan trọng.
- Khuyến nghị: Sử dụng kết hợp Host-only Adapter và NAT Adapter cho Kali Linux. Các máy mục tiêu (Metasploitable 2, 3, OWASP BWA) chỉ cần Host-only Adapter để cô lập chúng khỏi mạng bên ngoài nhưng vẫn cho phép Kali tấn công.
- Host-only Network:
- Trong VirtualBox, vào File -> Preferences (hoặc Tools -> Network Manager trên các phiên bản mới) -> Host-only Networks.
- Tạo một Host-only adapter nếu chưa có (ví dụ: vboxnet0).11
- Cấu hình DHCP server cho adapter này (ví dụ: dải IP 192.168.56.100-254, subnet mask 255.255.255.0).
- Cấu hình cho Kali Linux:
- Trong Settings của máy ảo Kali, vào Network.
- Adapter 1: Enable Network Adapter, Attached to: Host-only Adapter, Name: (chọn adapter đã tạo, ví dụ vboxnet0).11 Điều này cho phép Kali giao tiếp với các máy mục tiêu.
- Adapter 2: Enable Network Adapter, Attached to: NAT.11 Điều này cho phép Kali truy cập Internet.
- Cấu hình cho Metasploitable 2, Metasploitable 3, OWASP BWA:
- Trong Settings của từng máy ảo mục tiêu, vào Network.
- Adapter 1: Enable Network Adapter, Attached to: Host-only Adapter, Name: (chọn cùng adapter vboxnet0 như Kali).
- Kiểm tra kết nối:
- Khởi động tất cả các máy ảo.
- Trên Kali, mở terminal và dùng lệnh ip a để xem địa chỉ IP của các card mạng.
- Trên các máy mục tiêu, dùng ifconfig (Linux) hoặc ipconfig (Windows) để xem địa chỉ IP.
- Từ Kali, thử ping đến địa chỉ IP của các máy mục tiêu để đảm bảo chúng có thể giao tiếp.
Bảng 0.1: Tổng quan Máy ảo và Thông tin Đăng nhập Mặc định
| Máy ảo | Hệ điều hành | Mục đích chính | Username | Password | Nguồn tải |
| Kali Linux | Linux (Debian) | Máy tấn công | (user tạo) | (user tạo) | https://www.kali.org/get-kali/ 3 |
| Metasploitable 2 | Linux (Ubuntu) | Khai thác lỗi Linux phổ biến | msfadmin | msfadmin | SourceForge 5 |
| Metasploitable 3 | Windows Server 2008 | Khai thác lỗi Windows Server | vagrant | vagrant | GitHub (Brimstone OVA) 6 hoặc Rapid7 (build) 7 |
| OWASP BWA | Linux | Thực hành lỗi ứng dụng web (DVWA, bWAPP, etc.) | owaspbwa | owaspbwa | SourceForge 9 |
Module 01: Giới Thiệu Về Ethical Hacking (Introduction to Ethical Hacking)
- A. Mục Tiêu Module
- Hiểu các khái niệm cơ bản về bảo mật thông tin: tính bí mật (Confidentiality), toàn vẹn (Integrity), sẵn sàng (Availability), xác thực (Authenticity), và không thể chối bỏ (Non-repudiation).12
- Phân biệt các loại tấn công (chủ động, bị động, nội bộ, v.v.) và các lớp hacker (mũ trắng, mũ đen, mũ xám).12
- Nắm vững khái niệm Ethical Hacking, phạm vi, giới hạn pháp lý và sự cần thiết của việc được ủy quyền.12
- Tìm hiểu về các phương pháp luận và framework trong Ethical Hacking như Cyber Kill Chain, MITRE ATT&CK Framework, và 5 giai đoạn của Ethical Hacking (Reconnaissance, Scanning, Gaining Access, Maintaining Access, Covering Tracks).13
- Nhận biết vai trò của Trí tuệ Nhân tạo (AI) trong Ethical Hacking (ví dụ: AI-driven ethical hacking, ChatGPT-powered AI tools).12
- Hiểu về các biện pháp kiểm soát an ninh thông tin, quản lý rủi ro, và tầm quan trọng của các luật lệ, tiêu chuẩn bảo mật.12
- Ghi chú: Module này tập trung vào lý thuyết và thiết lập nền tảng. Các bài thực hành chủ yếu liên quan đến việc cài đặt môi trường lab đã được trình bày ở phần “Chuẩn Bị Môi Trường Lab”.
- Mục tiêu của hacker mũ trắng là giúp tổ chức thực hiện các biện pháp phòng ngừa chống lại các cuộc tấn công độc hại bằng cách tự mình tấn công hệ thống, trong khi vẫn tuân thủ các giới hạn pháp lý.12 Triết lý này xuất phát từ thực tiễn đã được chứng minh là cố gắng bắt một tên trộm bằng cách suy nghĩ như một tên trộm.
- B. Bài Thực Hành Tương Ứng
- Lab 1.1: Hoàn tất cài đặt môi trường lab
- 1. Mục tiêu bài lab: Đảm bảo tất cả các máy ảo (Kali, Metasploitable 2, Metasploitable 3, OWASP BWA) đã được cài đặt đúng cách, cấu hình mạng phù hợp và có thể giao tiếp với nhau.
- 2. Máy mục tiêu: Tất cả các máy ảo trong lab.
- 3. Công cụ sử dụng: VirtualBox/VMware, terminal (cho lệnh ping, ip a, ifconfig).
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Kiểm tra trạng thái hoạt động của các máy ảo. Đảm bảo tất cả đều khởi động thành công.
- Bước 2: Kiểm tra địa chỉ IP của từng máy ảo.
- Trên Kali: ip a
- Trên Metasploitable 2 & OWASP BWA: ifconfig
- Trên Metasploitable 3 (Windows): ipconfig
- Bước 3: Từ Kali Linux, thử ping đến địa chỉ IP của Metasploitable 2, Metasploitable 3 và OWASP BWA.
- Ví dụ: ping <IP_Metasploitable2>
- Bước 4: (Tùy chọn) Thử truy cập một dịch vụ web đơn giản trên máy mục tiêu từ trình duyệt của Kali.
- Ví dụ: Nếu IP của Metasploitable 2 là 192.168.56.102, thử truy cập http://192.168.56.102 (sẽ thấy trang chủ của Metasploitable).
- Nếu IP của OWASP BWA là 192.168.56.104, thử truy cập http://192.168.56.104 (sẽ thấy trang chủ OWASP BWA).
- Ảnh minh họa hoặc mô tả chi tiết bước làm: Mô tả kết quả lệnh ping thành công (ví dụ: 64 bytes from… icmp_seq=1 ttl=64 time=… ms). Mô tả trang web hiển thị khi truy cập thành công.
- 5. Phân tích Kết quả:
- Nếu ping thành công và các dịch vụ web có thể truy cập, môi trường lab đã sẵn sàng.
- Nếu có sự cố, kiểm tra lại cấu hình mạng của các máy ảo (Host-only Adapter, NAT), đảm bảo chúng cùng trong một mạng Host-only và firewall của máy host không chặn giao tiếp.
- C. Liên Hệ Thực Tế và Nội Dung Thi CEH
- Việc hiểu rõ các khái niệm nền tảng là điều kiện tiên quyết trước khi đi sâu vào các kỹ thuật hacking cụ thể. Các khái niệm như CIA Triad (Confidentiality, Integrity, Availability) 12, các giai đoạn của một cuộc tấn công, và các vấn đề pháp lý là cốt lõi.
- Kỳ thi CEH (cả lý thuyết và thực hành) sẽ kiểm tra kiến thức về các khái niệm này, các phương pháp luận tấn công, và các quy định pháp luật liên quan đến an ninh mạng.13
- Trong thực tế, một chuyên gia pentest phải luôn hoạt động trong khuôn khổ pháp lý và có sự cho phép rõ ràng từ chủ sở hữu hệ thống. Mọi hành động phải được ghi chép cẩn thận.
- Sự phát triển của AI và Machine Learning đang thay đổi cách thức thực hiện ethical hacking, từ việc tự động hóa các tác vụ lặp đi lặp lại đến việc phân tích dữ liệu để phát hiện các mối đe dọa tinh vi hơn.14 CEH v13 đã tích hợp các nội dung liên quan đến AI vào chương trình đào tạo.15
Module 02: Thu Thập Thông Tin và Trinh Sát (Footprinting and Reconnaissance)
- A. Mục Tiêu Module
- Hiểu rõ mục đích của Footprinting và Reconnaissance: là giai đoạn đầu tiên của tấn công, thu thập càng nhiều thông tin về mục tiêu càng tốt để xây dựng hồ sơ bảo mật, xác định các điểm yếu tiềm ẩn và lên kế hoạch tấn công.17
- Phân biệt Passive Reconnaissance (không tương tác trực tiếp với mục tiêu, ví dụ: OSINT, Whois, DNS lookup từ public server) và Active Reconnaissance (tương tác trực tiếp, ví dụ: quét cổng, DNS interrogation vào server của mục tiêu).17
- Các loại thông tin cần thu thập: thông tin tổ chức (nhân viên, chi nhánh, tin tức), thông tin mạng (tên miền, IP, topology, Whois, DNS), thông tin hệ thống (HĐH, web server).17
- Kỹ thuật Footprinting:
- Sử dụng công cụ tìm kiếm (Google Hacking Database – GHDB).17
- Dịch vụ tra cứu Internet (ví dụ: archive.org).18
- Mạng xã hội, trang tìm việc.14
- Dark Web Footprinting.14
- Whois Footprinting (tra cứu thông tin đăng ký tên miền).14
- DNS Footprinting (truy vấn bản ghi DNS: A, MX, NS, SOA, PTR; DNS Zone Transfer).14
- Network Footprinting (ví dụ: Traceroute).14
- Email Footprinting (theo dõi email, thu thập địa chỉ).14
- Social Engineering (thu thập thông tin qua tương tác con người).17
- Công cụ Footprinting: whois, nslookup, dig, theHarvester, Maltego, Recon-ng, Shodan, FOCA, Dnsrecon, Nmap (cho reconnaissance).18
- Vai trò của AI trong Footprinting (ví dụ: AI-powered OSINT tools, tự động hóa tác vụ).17
- Biện pháp đối phó với Footprinting.20
- Việc thu thập thông tin một cách tỉ mỉ về mạng mục tiêu trước khi thử các exploit là rất quan trọng.19 Quá trình này giúp xác định các lỗ hổng trong khi tránh làm hỏng hệ thống mục tiêu.
- Các kỹ thuật thu thập thông tin bên ngoài bao gồm tra cứu WHOIS, trinh sát DNS và tìm kiếm cơ sở dữ liệu trực tuyến. Thu thập thông tin nội bộ có thể bao gồm việc nghe lén gói tin, quét cổng mạng con cục bộ và sử dụng các công cụ như máy chủ DHCP.19
- B. Bài Thực Hành Tương Ứng
- Lab 2.1: Thu thập thông tin DNS và Whois
- 1. Mục tiêu bài lab: Sử dụng các công cụ whois, nslookup, và dig để thu thập thông tin đăng ký tên miền và các bản ghi DNS của một mục tiêu công khai (ví dụ: zonetransfer.me – một trang web được thiết kế để cho phép DNS zone transfer cho mục đích học tập).
- 2. Máy mục tiêu: Không, thực hiện từ Kali, nhắm vào zonetransfer.me.
- 3. Công cụ sử dụng: whois, nslookup, dig.
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Sử dụng whois để lấy thông tin đăng ký tên miền.
- Lệnh: whois zonetransfer.me
- Giải thích lệnh: Truy vấn cơ sở dữ liệu Whois về tên miền zonetransfer.me.
- Kết quả mong đợi/Ảnh minh họa: Thông tin về người đăng ký (thường bị ẩn danh cho các tên miền thực tế), nhà đăng ký, ngày đăng ký/hết hạn, máy chủ tên miền (Name Servers). (Mô tả output điển hình của whois).
- Bước 2: Sử dụng nslookup để truy vấn các bản ghi DNS cơ bản.
- Lệnh:
Bash
nslookup zonetransfer.me
nslookup -type=MX zonetransfer.me
nslookup -type=NS zonetransfer.me
Sau khi có được danh sách Name Server (NS) từ lệnh trên (ví dụ: nsztm1.digi.ninja), có thể thử truy vấn một DNS server cụ thể:
Bash
# nslookup zonetransfer.me <dns_server_ip_from_NS_record_OR_name_server_hostname>
nslookup zonetransfer.me nsztm1.digi.ninja. - Giải thích lệnh: Truy vấn bản ghi A (mặc định, trả về địa chỉ IP), MX (Mail Exchange, máy chủ mail), NS (Name Server, máy chủ tên miền).13 Lệnh cuối cùng chỉ định một máy chủ DNS cụ thể để truy vấn, điều này hữu ích để kiểm tra sự nhất quán hoặc thông tin từ một máy chủ cụ thể.
- Kết quả mong đợi/Ảnh minh họa: Địa chỉ IP của zonetransfer.me, danh sách các máy chủ mail chịu trách nhiệm cho tên miền, và danh sách các máy chủ tên miền có thẩm quyền cho tên miền đó. (Mô tả output của nslookup cho từng loại bản ghi).
- Bước 3: Sử dụng dig để thực hiện các truy vấn DNS tương tự và nâng cao, đặc biệt là thử DNS Zone Transfer.
- Lệnh:
Bash
dig zonetransfer.me A
dig zonetransfer.me MX
dig zonetransfer.me NS
dig zonetransfer.me ANY
# Lấy một trong các Name Server từ kết quả ‘dig zonetransfer.me NS’, ví dụ nsztm1.digi.ninja.
dig axfr zonetransfer.me @nsztm1.digi.ninja. - Giải thích lệnh: dig <domain> <record_type> để truy vấn loại bản ghi cụ thể. ANY cố gắng lấy tất cả các bản ghi có sẵn. axfr là yêu cầu thực hiện một Full Zone Transfer (AXFR) từ một máy chủ DNS cụ thể (@nsztm1.digi.ninja.).13
- Kết quả mong đợi/Ảnh minh họa: Chi tiết các bản ghi DNS. Nếu lệnh dig axfr thành công, toàn bộ nội dung của zone file cho zonetransfer.me sẽ được hiển thị, bao gồm tất cả các bản ghi (A, MX, TXT, CNAME, v.v.). Đây là một lượng lớn thông tin chi tiết về cấu trúc DNS của mục tiêu. (Mô tả một phần output của zone transfer thành công, nhấn mạnh sự đa dạng của các bản ghi được tiết lộ).
- 5. Phân tích Kết quả:
- Thông tin từ whois có thể tiết lộ thông tin liên hệ của quản trị viên tên miền (mặc dù thường được bảo vệ bởi dịch vụ ẩn danh), nhà cung cấp dịch vụ Internet (ISP), và các máy chủ tên miền quản lý tên miền đó.
- Các bản ghi A, MX, NS cung cấp thông tin quan trọng về cơ sở hạ tầng mạng và mail của mục tiêu. Ví dụ, bản ghi A cho biết địa chỉ IP của máy chủ web, bản ghi MX cho biết máy chủ nào xử lý email cho tên miền.
- DNS Zone Transfer (AXFR) là một kỹ thuật mà một máy chủ DNS phụ yêu cầu toàn bộ bản sao của zone file từ máy chủ DNS chính. Nếu một máy chủ DNS được cấu hình sai để cho phép AXFR từ các nguồn không tin cậy, nó sẽ tiết lộ toàn bộ cấu trúc DNS nội bộ, bao gồm tên và địa chỉ IP của tất cả các máy chủ, máy trạm và thiết bị khác trong mạng đó.25 Đây được coi là một lỗ hổng bảo mật nghiêm trọng vì nó cung cấp cho kẻ tấn công một bản đồ chi tiết về mạng của tổ chức. Trang
zonetransfer.me được thiết kế đặc biệt để cho phép điều này nhằm mục đích giáo dục và thử nghiệm. Việc thực hành với trang này cho thấy rõ mức độ nguy hiểm của việc cấu hình sai DNS. - Lab 2.2: Thu thập email, subdomain với theHarvester
- 1. Mục tiêu bài lab: Sử dụng theHarvester để tự động thu thập địa chỉ email, tên miền con (subdomains), máy chủ ảo (virtual hosts) từ các nguồn dữ liệu công khai (OSINT – Open Source Intelligence) cho một tổ chức mục tiêu (ví dụ: microsoft.com hoặc một tên miền khác phù hợp cho mục đích học tập).
- 2. Máy mục tiêu: Không, thực hiện từ Kali, nhắm vào một tên miền công khai.
- 3. Công cụ sử dụng: theHarvester.
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Mở terminal trên Kali Linux.
- Bước 2: Chạy theHarvester với các tùy chọn cơ bản.
- Lệnh: theharvester -d microsoft.com -b google,bing,linkedin -l 500 -f results_microsoft.html
- Giải thích lệnh:
- -d microsoft.com: Chỉ định tên miền mục tiêu là microsoft.com. Thay thế bằng tên miền bạn muốn điều tra.
- -b google,bing,linkedin: Chỉ định các nguồn dữ liệu để tìm kiếm. theHarvester hỗ trợ nhiều nguồn như baidu, bufferoverun, crtsh, duckduckgo, github-code, intelx, hunter, linkedin, netcraft, pentesttools, projectdiscovery, rapiddns, rocketreach, subdomainfinderc99, securityTrails, threatcrowd, trello, twitter, virustotal, yahoo, zoomeye, shodan (một số nguồn như linkedin, hunter, intelx, shodan có thể yêu cầu API key để hoạt động hiệu quả hoặc không bị giới hạn).20
- -l 500: Giới hạn số lượng kết quả tìm kiếm từ mỗi nguồn là 500.
- -f results_microsoft.html: Lưu kết quả vào file HTML tên là results_microsoft.html. theHarvester cũng hỗ trợ lưu dưới dạng XML và JSON.
- Kết quả mong đợi/Ảnh minh họa: theHarvester sẽ bắt đầu quá trình tìm kiếm trên các nguồn đã chỉ định. Kết quả sẽ bao gồm danh sách các địa chỉ email, tên máy chủ (hosts), địa chỉ IP, và các tên miền con được tìm thấy liên quan đến microsoft.com. (Mô tả output hiển thị trên terminal và nội dung file HTML kết quả).
- 5. Phân tích Kết quả:
- Các địa chỉ email thu thập được có thể được sử dụng trong các chiến dịch tấn công lừa đảo (phishing) hoặc tấn công brute-force vào các dịch vụ email.
- Các tên miền con và tên máy chủ được phát hiện có thể trở thành mục tiêu cho các bước quét mạng và phân tích lỗ hổng sâu hơn. Việc xác định các tên miền con thường hé lộ các ứng dụng hoặc dịch vụ ít được bảo vệ hơn so với tên miền chính.
- Chất lượng và số lượng thông tin thu thập được bởi theHarvester phụ thuộc rất nhiều vào các nguồn dữ liệu được chọn (-b option) và mức độ thông tin công khai của tên miền mục tiêu.27 Một số nguồn dữ liệu có thể cung cấp thông tin phong phú hơn các nguồn khác, và việc sử dụng API key cho các dịch vụ như Shodan hay Hunter có thể mở khóa lượng dữ liệu lớn hơn nhiều.
- Lab 2.3: Trực quan hóa thông tin với Maltego
- 1. Mục tiêu bài lab: Sử dụng Maltego (phiên bản Community Edition – CE, có sẵn trên Kali Linux) để thu thập thông tin từ các nguồn OSINT và trực quan hóa các mối quan hệ giữa các thực thể (entities) khác nhau liên quan đến một tên miền hoặc một cá nhân cụ thể.
- 2. Máy mục tiêu: Không, thực hiện từ Kali Linux, sử dụng các “Transforms” để truy vấn dữ liệu từ Internet.
- 3. Công cụ sử dụng: Maltego CE.
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Khởi chạy Maltego.
- Từ menu Applications của Kali, tìm và mở Maltego (thường trong Information Gathering). Maltego là một ứng dụng Java và có thể yêu cầu nhiều bộ nhớ.24
- Lần đầu sử dụng, bạn cần đăng ký một tài khoản miễn phí với Paterva (nhà phát triển Maltego) và đăng nhập.24
- Bước 2: Tạo một Graph mới.
- Sau khi đăng nhập, bạn sẽ thấy màn hình chính. Nhấp vào biểu tượng “New” (hoặc File -> New Graph) để tạo một không gian làm việc mới.
- Bước 3: Thêm một thực thể vào Graph.
- Trong cửa sổ “Entity Palette” (thường ở bên trái), tìm và kéo thả một thực thể phù hợp vào Graph. Ví dụ, để điều tra một tên miền, kéo thực thể “Domain” vào. Để điều tra một người, kéo thực thể “Person”.
- Nhấp đúp vào thực thể trên Graph và nhập giá trị cho nó (ví dụ: example.com cho Domain, hoặc tên một người cho Person).
- Bước 4: Chạy các “Transforms”.
- Nhấp chuột phải vào thực thể trên Graph. Một menu ngữ cảnh sẽ xuất hiện, hiển thị các “Transforms” có sẵn cho loại thực thể đó. Transforms là các đoạn mã nhỏ tự động truy vấn các nguồn dữ liệu khác nhau.
- Ví dụ, với thực thể Domain:
- Chạy transform “To DNS Name – MX (mail server)” để tìm máy chủ mail.
- Chạy transform “To DNS Name – NS (name server)” để tìm máy chủ tên miền.
- Chạy transform “To Website [Quick lookup]” để tìm các website liên quan.
- Chạy transform “To Email Addresses [PGP]” hoặc các transform tìm email khác.
- Với thực thể Person:
- Chạy transform “To Email Address [Find common emails]”.24
- Chạy transform “To Phone Number”.24
- Chọn “Run All Transforms” hoặc chọn từng transform cụ thể. Maltego sẽ thực hiện các truy vấn và thêm các thực thể mới liên quan vào Graph, tự động vẽ các đường nối thể hiện mối quan hệ.
- Bước 5: Khám phá sâu hơn.
- Nhấp chuột phải vào các thực thể mới được tạo ra và tiếp tục chạy các transforms phù hợp để mở rộng mạng lưới thông tin. Ví dụ, từ một địa chỉ IP tìm được, có thể chạy transform để tìm các cổng mở hoặc vị trí địa lý.
- Kết quả mong đợi/Ảnh minh họa: Một sơ đồ mạng lưới (graph) hiển thị các thực thể (tên miền, IP, website, email, người, tổ chức, v.v.) và các mối quan hệ giữa chúng. Sơ đồ này giúp trực quan hóa lượng lớn dữ liệu OSINT. (Mô tả một graph ví dụ với các node và cạnh nối).
- 5. Phân tích Kết quả:
- Maltego là một công cụ mạnh mẽ để khai thác dữ liệu OSINT và trực quan hóa các mối liên kết phức tạp mà có thể khó phát hiện qua các phương pháp thủ công.24
- Nó giúp xây dựng một bức tranh tổng thể về mục tiêu, bao gồm cơ sở hạ tầng kỹ thuật, nhân sự chủ chốt, các mối quan hệ với các tổ chức khác, v.v.
- Mặc dù phiên bản Community Edition (CE) có một số giới hạn về số lượng transform có thể chạy đồng thời hoặc số lượng kết quả trả về so với phiên bản Pro, nó vẫn là một công cụ cực kỳ hữu ích để học và thực hành kỹ năng OSINT và phân tích liên kết. Khái niệm “Transforms” là trung tâm trong hoạt động của Maltego, cho phép tự động hóa việc truy vấn nhiều nguồn dữ liệu khác nhau.
- Lab 2.4: Tìm kiếm thiết bị IoT và dịch vụ với Shodan
- 1. Mục tiêu bài lab: Sử dụng Shodan (thông qua giao diện web hoặc CLI nếu có API key) để tìm kiếm các thiết bị kết nối Internet, dịch vụ đang chạy, và các lỗ hổng tiềm ẩn. Mặc dù việc tìm thấy trực tiếp các máy ảo trong lab (Metasploitable 2/3) trên Shodan là không khả thi với cấu hình mạng lab điển hình (Host-only/NAT), bài lab này sẽ tập trung vào việc sử dụng Shodan để tìm các mục tiêu công khai hoặc các phiên bản phần mềm cụ thể (ví dụ: ProFTPD 1.3.5 có trên Metasploitable 3).
- 2. Máy mục tiêu: Không, thực hiện từ Kali Linux (truy cập Shodan.io hoặc sử dụng Shodan CLI).
- 3. Công cụ sử dụng: Trình duyệt web, Shodan CLI (tùy chọn, yêu cầu API key).
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Truy cập Shodan.io và tạo tài khoản.
- Truy cập https://www.shodan.io/ và đăng ký một tài khoản. Tài khoản miễn phí có giới hạn về số lượng kết quả tìm kiếm và các bộ lọc có thể sử dụng.28 Để sử dụng CLI hoặc nhiều tính năng hơn, cần có API key (thường đi kèm với tài khoản trả phí hoặc tài khoản giáo dục).
- Bước 2: Thực hiện các truy vấn tìm kiếm cơ bản trên giao diện web của Shodan.
- Tìm kiếm theo từ khóa chung:
- webcamxp (Tìm các webcam chạy phần mềm WebCamXP)
- MongoDB (Tìm các máy chủ MongoDB) 28
- port:21 “ProFTPD 1.3.5” (Tìm các máy chủ FTP chạy ProFTPD phiên bản 1.3.5, phiên bản này có trên Metasploitable 3 và có lỗ hổng backdoor).28
- apache country:”US” (Tìm các máy chủ Apache ở Mỹ).28
- “default password” (Tìm các thiết bị có thể đang sử dụng mật khẩu mặc định).28
- Tìm kiếm theo lỗ hổng CVE:
- vuln:CVE-2014-0160 (Tìm các thiết bị có khả năng dính lỗ hổng Heartbleed).28
- vuln:CVE-2011-2523 (CVE cho vsftpd 2.3.4 backdoor, có trên Metasploitable 2).
- Tìm kiếm theo tên tổ chức hoặc dải IP (nếu biết):
- org:”Google LLC”
- net:8.8.8.0/24
- Tìm kiếm MQTT servers (thường dùng cho IoT):
- port:1883 product:”MQTT” 30
- Bước 3 (Tùy chọn): Sử dụng Shodan CLI (nếu có API key).
- Cài đặt Shodan CLI: sudo pip install shodan
- Khởi tạo với API key: shodan init YOUR_API_KEY 28
- Thực hiện tìm kiếm: shodan search webcamxp country:US
- Xem thông tin host: shodan host <IP_ADDRESS>
- Kết quả mong đợi/Ảnh minh họa: Shodan sẽ trả về danh sách các địa chỉ IP, thông tin cổng mở, banner dịch vụ, vị trí địa lý, tên tổ chức, và đôi khi là các lỗ hổng đã biết liên quan đến các thiết bị/dịch vụ tìm thấy. (Mô tả giao diện kết quả của Shodan, các thông tin chính được hiển thị).
- 5. Phân tích Kết quả:
- Shodan được mệnh danh là “công cụ tìm kiếm dành cho hacker” vì khả năng phát hiện các thiết bị và dịch vụ kết nối Internet mà thường không được tìm thấy bởi các công cụ tìm kiếm truyền thống.28
- Nó có thể giúp phát hiện các hệ thống lỗi thời, dịch vụ không an toàn, mật khẩu mặc định, và các thiết bị IoT không được bảo vệ.
- Việc hiểu cú pháp truy vấn của Shodan (sử dụng các bộ lọc như port:, country:, org:, product:, vuln:) là rất quan trọng để thu hẹp phạm vi tìm kiếm và tìm thấy thông tin hữu ích.
- Mặc dù việc tìm thấy trực tiếp các máy ảo trong lab trên Shodan là không thể với cấu hình mạng cục bộ, việc thực hành tìm kiếm các phiên bản phần mềm cụ thể (như ProFTPD 1.3.5 có trên Metasploitable 3) hoặc các lỗ hổng CVE đã biết giúp người học hiểu cách kẻ tấn công tìm kiếm mục tiêu tiềm năng trên Internet. Ví dụ, nếu Metasploitable 3 với ProFTPD 1.3.5 được phơi ra Internet, Shodan có thể tìm thấy nó bằng truy vấn product:”ProFTPD” version:”1.3.5″.
- C. Liên Hệ Thực Tế và Nội Dung Thi CEH
- Footprinting là bước nền tảng, quyết định sự thành công của các giai đoạn sau trong một cuộc kiểm thử xâm nhập hoặc một cuộc tấn công thực tế. Thông tin càng chi tiết và chính xác, kế hoạch tấn công càng hiệu quả và ít bị phát hiện hơn.
- Kỳ thi CEH (cả lý thuyết và thực hành) chắc chắn sẽ có nhiều câu hỏi và kịch bản liên quan đến việc sử dụng các công cụ và kỹ thuật footprinting để thu thập thông tin về mục tiêu.14 Thí sinh cần biết lựa chọn công cụ phù hợp cho từng loại thông tin cần thu thập (ví dụ:
whois cho thông tin đăng ký tên miền, dig/nslookup cho bản ghi DNS, theHarvester cho email và tên miền con, Shodan cho các dịch vụ phơi bày ra Internet). - Luôn phải cân nhắc các khía cạnh pháp lý và đạo đức khi thực hiện footprinting, đặc biệt là các kỹ thuật active reconnaissance có thể bị coi là xâm nhập nếu không có sự cho phép.
- Trí tuệ nhân tạo (AI) đang ngày càng được tích hợp vào các công cụ OSINT và các quy trình footprinting để tự động hóa việc thu thập, phân tích và trực quan hóa lượng lớn dữ liệu, giúp phát hiện các mối liên hệ và thông tin tiềm ẩn hiệu quả hơn.18
- Sự đa dạng của các công cụ và kỹ thuật được đề cập trong module này 20 cho thấy tầm quan trọng của nó. Việc không thực hiện footprinting kỹ lưỡng có thể dẫn đến bỏ lỡ các vector tấn công tiềm năng hoặc lãng phí thời gian vào các mục tiêu không phù hợp.
Bảng 2.1: Tổng quan Công cụ Footprinting và Mục tiêu Áp dụng
| Công cụ | Mục đích chính | Loại Reconnaissance | Mục tiêu ví dụ (Public Domain/Metasploitable IP nếu có) | Thông tin thu thập được |
| whois | Thu thập thông tin đăng ký tên miền. | Passive | zonetransfer.me, microsoft.com | Người đăng ký, nhà đăng ký, ngày hết hạn, name server. 14 |
| nslookup | Truy vấn các bản ghi DNS cơ bản. | Passive/Active | zonetransfer.me | Địa chỉ IP (A), máy chủ mail (MX), name server (NS). 13 |
| dig | Truy vấn DNS nâng cao, bao gồm zone transfer. | Passive/Active | zonetransfer.me | Chi tiết các bản ghi DNS, khả năng thực hiện zone transfer. 13 |
| theHarvester | Thu thập email, subdomain, host từ các nguồn công khai (Google, Bing, Shodan…). | Passive | microsoft.com | Địa chỉ email, tên miền con, host, IP. 20 |
| Maltego CE | Trực quan hóa mối quan hệ giữa các thực thể từ OSINT. | Passive | example.com (hoặc một tổ chức/cá nhân) | Sơ đồ mạng lưới thông tin (IP, domain, email, website, người liên quan). 18 |
| Shodan | Tìm kiếm thiết bị và dịch vụ kết nối Internet. | Passive | apache, port:21 “ProFTPD 1.3.5” | IP, port mở, banner dịch vụ, lỗ hổng đã biết. 20 |
| Nmap (scripts recon) | Thực hiện các tác vụ reconnaissance chủ động (ví dụ: dns-brute, whois-ip). | Active | Metasploitable 2/3 IP | Subdomain, thông tin Whois từ IP, dịch vụ mạng. |
Module 03: Quét Mạng (Scanning Networks)
- A. Mục Tiêu Module
- Hiểu rõ khái niệm quét mạng (Network Scanning): là quá trình sử dụng các công cụ để gửi các gói tin đến một loạt địa chỉ IP hoặc một mạng con nhằm xác định các host đang hoạt động (live hosts), các cổng (ports) đang mở trên các host đó, các dịch vụ (services) đang chạy trên các cổng đó, và có thể cả hệ điều hành (Operating System – OS) của các host.13 Quá trình quét không phải là hành vi xâm nhập thực sự mà là một dạng trinh sát mở rộng.31
- Nắm vững các kỹ thuật kiểm tra host sống (Host Discovery):
- ICMP Echo Ping (Ping Scan): Gửi gói ICMP Echo Request và chờ Echo Reply.20
- Ping Sweep: Thực hiện Ping Scan trên một dải IP.20
- TCP SYN Ping: Gửi gói TCP SYN đến một cổng (thường là 80) và chờ SYN/ACK hoặc RST.20
- TCP ACK Ping: Gửi gói TCP ACK đến một cổng và chờ RST (nếu cổng đóng hoặc host không tồn tại) hoặc không phản hồi (nếu cổng mở và được lọc bởi firewall trạng thái).20
- UDP Ping Scan: Gửi gói UDP đến một cổng và chờ ICMP Port Unreachable (nếu cổng đóng) hoặc không phản hồi (nếu cổng mở hoặc bị lọc).20
- Hiểu sâu về các kỹ thuật quét cổng (Port Scanning) và cách chúng hoạt động:
- TCP Connect Scan (-sT): Hoàn thành bắt tay ba bước TCP. Dễ bị phát hiện và log lại.31
- SYN Scan (Half-open Scan, Stealth Scan, -sS): Gửi gói SYN, nếu nhận SYN/ACK thì cổng mở, sau đó gửi RST để không hoàn thành kết nối. Ít bị log hơn, nhanh hơn, cần quyền root.19
- UDP Scan (-sU): Gửi gói UDP. Nếu nhận ICMP Port Unreachable thì cổng đóng. Nếu không phản hồi hoặc phản hồi khác thì cổng có thể mở hoặc bị lọc. Chậm và không đáng tin cậy bằng TCP scan.19
- FIN Scan (-sF), Xmas Scan (-sX), Null Scan (-sN): Gửi các gói TCP với các cờ đặc biệt. Các hệ thống tuân thủ RFC 793 sẽ trả về RST nếu cổng đóng, không phản hồi nếu cổng mở. Kỹ thuật này có thể qua mặt một số firewall không trạng thái và bộ lọc gói tin.
- Hiểu vai trò của các cờ TCP (TCP Flags): SYN (Synchronize), ACK (Acknowledge), FIN (Finish), RST (Reset), PSH (Push), URG (Urgent) trong việc thiết lập, duy trì, kết thúc kết nối và trong các kỹ thuật quét.31
- Thực hiện phát hiện phiên bản dịch vụ (Service Version Detection, -sV): Xác định chính xác tên và phiên bản của dịch vụ đang chạy trên cổng mở.20
- Thực hiện phát hiện hệ điều hành (OS Fingerprinting/Banner Grabbing, -O): Dự đoán hệ điều hành của mục tiêu dựa trên cách nó phản hồi với các gói tin đặc biệt hoặc thông tin từ banner dịch vụ.13
- Nắm bắt các kỹ thuật quét tránh bị phát hiện bởi Hệ thống phát hiện xâm nhập (IDS) và Tường lửa (Firewall):
- Fragmentation (-f): Chia nhỏ gói tin thành các mảnh nhỏ hơn.14
- Decoys (-D): Tạo ra các gói tin giả mạo từ các địa chỉ IP khác nhau để che giấu IP thật.35
- Source Port Manipulation (–source-port): Chỉ định cổng nguồn cụ thể, có thể qua mặt firewall cấu hình lỏng lẻo.35
- Timing Techniques (-T0 đến -T5): Điều chỉnh tốc độ quét để tránh bị phát hiện (ví dụ: -T0 rất chậm, -T5 rất nhanh).35
- Idle Scan (-sI): Quét mục tiêu thông qua một máy “zombie” trung gian, hoàn toàn ẩn danh IP của kẻ tấn công.14
- Thành thạo việc sử dụng công cụ quét mạng Nmap và các tùy chọn của nó.13
- Hiểu về vai trò của Trí tuệ Nhân tạo (AI) trong việc tăng cường và tự động hóa quá trình quét mạng (ví dụ: AI-assisted vulnerability scanning, Host Discovery with AI, Port Scanning with AI).14
- Biết các biện pháp phát hiện và ngăn chặn hành vi quét mạng từ phía phòng thủ.14
- Quá trình quét mạng giúp kẻ tấn công xác định các cách thức xâm nhập vào hệ thống mục tiêu và khám phá thêm thông tin để tìm ra các lỗi cấu hình.31 Các mục tiêu chính của quét mạng bao gồm phát hiện host sống, cổng mở, dịch vụ đang chạy, hệ điều hành và kiến trúc hệ thống của mục tiêu.31
- B. Bài Thực Hành Tương Ứng
- Lab 3.1: Phát hiện Host sống với Nmap
- 1. Mục tiêu bài lab: Sử dụng các kỹ thuật khác nhau của Nmap để xác định các máy chủ (hosts) đang hoạt động trong dải mạng của phòng lab (192.168.56.0/24).
- 2. Máy mục tiêu: Metasploitable 2, Metasploitable 3, OWASP BWA (cần đảm bảo các máy này đang chạy và có IP trong dải 192.168.56.0/24, ví dụ: 192.168.56.102, 192.168.56.103, 192.168.56.104).
- 3. Công cụ sử dụng: Nmap.
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Ping Scan (ICMP Echo Request). Đây là phương pháp cơ bản nhất.
- Lệnh: sudo nmap -sn 192.168.56.0/24
- Giải thích lệnh:
- sudo: Một số kỹ thuật quét của Nmap yêu cầu quyền root để gửi các gói tin raw.
- -sn: (No port scan) Chỉ thực hiện host discovery (ping scan), không quét cổng. Đây là cách nhanh nhất để liệt kê các host đang hoạt động.32
- 192.168.56.0/24: Dải IP mục tiêu.
- Kết quả mong đợi/Ảnh minh họa: Nmap sẽ liệt kê các địa chỉ IP trong dải 192.168.56.0/24 đang “up” (hoạt động) và phản hồi lại gói ICMP Echo Request. (Mô tả output của Nmap hiển thị các host up, ví dụ: Host 192.168.56.102 is up).
- Bước 2: TCP SYN Ping. Kỹ thuật này thường hiệu quả hơn khi ICMP bị chặn bởi firewall.
- Lệnh: sudo nmap -PS 192.168.56.0/24 (Hoặc có thể chỉ định cổng cụ thể: sudo nmap -PS80,443,22 192.168.56.0/24)
- Giải thích lệnh: -PS<portlist>: Gửi gói TCP SYN đến các cổng được chỉ định (mặc định là cổng 80 nếu không chỉ định). Nếu host phản hồi bằng SYN/ACK (cổng mở) hoặc RST (cổng đóng), Nmap sẽ đánh dấu host đó là đang hoạt động.32
- Kết quả mong đợi/Ảnh minh họa: Danh sách các host sống. Kết quả có thể khác với -sn nếu một số host chặn ICMP nhưng vẫn mở các cổng TCP phổ biến.
- Bước 3: TCP ACK Ping. Kỹ thuật này có thể hữu ích để phát hiện host nằm sau một số loại firewall không trạng thái.
- Lệnh: sudo nmap -PA 192.168.56.0/24 (Hoặc có thể chỉ định cổng cụ thể: sudo nmap -PA80,443,22 192.168.56.0/24)
- Giải thích lệnh: -PA<portlist>: Gửi gói TCP ACK đến các cổng được chỉ định (mặc định là cổng 80). Các host đang hoạt động thường sẽ phản hồi bằng gói RST, vì gói ACK không thuộc về một kết nối TCP hiện có.20
- Kết quả mong đợi/Ảnh minh họa: Danh sách các host sống.
- Bước 4 (Tùy chọn): ARP Ping Scan (chỉ hiệu quả trong cùng mạng LAN).
- Lệnh: sudo nmap -PR 192.168.56.0/24
- Giải thích lệnh: -PR: Gửi các gói ARP request đến các host trong mạng LAN. Đây là cách rất nhanh và đáng tin cậy để phát hiện host trong cùng một segment mạng, vì các host không thể dễ dàng chặn ARP.
- Kết quả mong đợi/Ảnh minh họa: Danh sách các host sống trong mạng LAN.
- 5. Phân tích Kết quả:
- So sánh kết quả thu được từ các kỹ thuật phát hiện host khác nhau. Một số host có thể không phản hồi với ICMP ping (do firewall chặn) nhưng lại phản hồi với TCP SYN ping hoặc TCP ACK ping đến các cổng đang mở hoặc đóng.
- ARP Ping Scan thường là phương pháp hiệu quả nhất trong mạng nội bộ vì nó hoạt động ở Layer 2 và khó bị chặn hơn.
- Việc hiểu rõ sự khác biệt giữa các kỹ thuật này giúp người làm pentest lựa chọn phương pháp phù hợp nhất để lập bản đồ mạng một cách toàn diện, ngay cả khi đối mặt với các biện pháp phòng thủ cơ bản. Sự đa dạng của các kỹ thuật này là cần thiết để đảm bảo không bỏ sót mục tiêu tiềm năng.20
- Lab 3.2: Quét cổng và phát hiện dịch vụ với Nmap trên Metasploitable 2
- 1. Mục tiêu bài lab: Sử dụng Nmap để thực hiện các kiểu quét cổng khác nhau, xác định các cổng đang mở, các dịch vụ đang chạy trên các cổng đó, phiên bản của dịch vụ và hệ điều hành của máy Metasploitable 2.
- 2. Máy mục tiêu: Metasploitable 2 (ví dụ IP: 192.168.56.102).
- 3. Công cụ sử dụng: Nmap.
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: TCP Connect Scan. Đây là kiểu quét đầy đủ, hoàn thành bắt tay ba bước TCP.
- Lệnh: nmap -sT -p- –min-rate 1000 -T4 192.168.56.102 -oN metasploitable2_tcp_connect_scan.txt
- Giải thích lệnh:
- -sT: Thực hiện TCP Connect Scan.33
- -p-: Quét tất cả 65535 cổng TCP.
- –min-rate 1000: Gửi ít nhất 1000 gói tin mỗi giây để tăng tốc độ quét (cẩn thận khi dùng trên mạng không phải lab).
- -T4: Sử dụng template thời gian “Aggressive”, giúp quét nhanh hơn. Các tùy chọn từ -T0 (paranoid, rất chậm) đến -T5 (insane, rất nhanh).
- 192.168.56.102: Địa chỉ IP của Metasploitable 2.
- -oN metasploitable2_tcp_connect_scan.txt: Lưu kết quả ra file văn bản.
- Kết quả mong đợi/Ảnh minh họa: Danh sách các cổng TCP đang ở trạng thái “open”, cùng với tên dịch vụ mặc định liên kết với cổng đó (dựa trên file /etc/services). Ví dụ: 21/tcp open ftp, 22/tcp open ssh, 80/tcp open http, 445/tcp open microsoft-ds. (Mô tả output Nmap với các cổng mở).
- Bước 2: SYN Scan (Stealth Scan). Kiểu quét này không hoàn thành bắt tay ba bước, ít bị log hơn.
- Lệnh: sudo nmap -sS -p- –min-rate 1000 -T4 192.168.56.102 -oN metasploitable2_syn_scan.txt
- Giải thích lệnh: -sS: Thực hiện SYN Scan. Cần quyền root (sudo) để tạo raw packets.33 Các tùy chọn khác tương tự như trên.
- Kết quả mong đợi/Ảnh minh họa: Kết quả tương tự như TCP Connect Scan, nhưng quá trình quét có thể nhanh hơn và “tàng hình” hơn một chút đối với các hệ thống ghi log cơ bản.
- Bước 3: UDP Scan (thường chậm hơn và khó xác định chính xác hơn TCP scan).
- Lệnh: sudo nmap -sU –top-ports 20 192.168.56.102 -oN metasploitable2_udp_scan.txt
- Giải thích lệnh:
- -sU: Thực hiện UDP Scan.33
- –top-ports 20: Chỉ quét 20 cổng UDP phổ biến nhất theo Nmap để tiết kiệm thời gian, vì quét toàn bộ 65535 cổng UDP rất chậm.
- Kết quả mong đợi/Ảnh minh họa: Danh sách các cổng UDP. Trạng thái có thể là “open” (nếu nhận được phản hồi từ dịch vụ), “closed” (nếu nhận được ICMP Port Unreachable), hoặc “open|filtered” (nếu không nhận được phản hồi, Nmap không chắc chắn cổng mở hay bị firewall lọc). Ví dụ: 53/udp open|filtered domain, 161/udp open|filtered snmp.
- Bước 4: Phát hiện phiên bản dịch vụ và Hệ điều hành.
- Lệnh: sudo nmap -sV -O –version-intensity 5 192.168.56.102 -oN metasploitable2_version_os_scan.txt
- Giải thích lệnh:
- -sV: Thực hiện phát hiện phiên bản dịch vụ. Nmap sẽ gửi các probe đặc biệt đến các cổng mở để xác định chính xác tên và phiên bản của dịch vụ đang chạy.20
- -O: Thực hiện phát hiện hệ điều hành. Nmap gửi một loạt các probe TCP/IP và phân tích phản hồi để đoán hệ điều hành.20
- –version-intensity 5: Mức độ thăm dò phiên bản (0-9, mặc định 7). Mức thấp hơn sẽ nhanh hơn nhưng ít chính xác hơn.
- Kết quả mong đợi/Ảnh minh họa: Output sẽ chi tiết hơn, bao gồm:
- Cổng mở, trạng thái, tên dịch vụ.
- Phiên bản cụ thể của dịch vụ: Ví dụ, 21/tcp open ftp vsftpd 2.3.4, 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0), 80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2).
- Thông tin hệ điều hành dự đoán: Ví dụ, OS details: Linux 2.6.X.
- Bước 5 (Tùy chọn): Quét với script mặc định và các tùy chọn tích hợp.
- Lệnh: sudo nmap -A -T4 192.168.56.102 -oN metasploitable2_aggressive_scan.txt
- Giải thích lệnh: -A: Bật chế độ “Aggressive”, tương đương với việc bật OS detection (-O), version detection (-sV), script scanning (-sC), và traceroute (–traceroute). -sC chạy các script thuộc nhóm “default”, thường là các script an toàn và cung cấp thông tin hữu ích.
- Kết quả mong đợi/Ảnh minh họa: Kết quả rất chi tiết, bao gồm tất cả thông tin từ các bước trước, cộng thêm output từ các script NSE (Nmap Scripting Engine) như thông tin cấu hình SMB, trạng thái NFS shares, v.v.
- 5. Phân tích Kết quả:
- Kết quả quét sẽ cho thấy Metasploitable 2 có rất nhiều cổng và dịch vụ đang mở, nhiều trong số đó là các phiên bản cũ và có lỗ hổng đã biết. Ví dụ:
- vsftpd 2.3.4 (FTP port 21): Có lỗ hổng backdoor nổi tiếng.
- OpenSSH 4.7p1 (SSH port 22): Có thể có một số lỗ hổng cũ.
- Telnet (port 23): Giao thức không mã hóa, mật khẩu có thể bị sniff.
- Postfix smtpd (SMTP port 25): Có thể cho phép user enumeration.
- Apache httpd 2.2.8 (HTTP port 80): Có thể có lỗ hổng web server hoặc module.
- Samba smbd 3.0.20 (SMB ports 139, 445): Phiên bản cũ, có nhiều lỗ hổng.
- UnrealIRCd (IRC port 6667): Có lỗ hổng backdoor.
- Apache Tomcat/Coyote JSP engine 1.1 (port 8180): Mật khẩu quản trị mặc định yếu.
- Thông tin phiên bản dịch vụ và hệ điều hành là cực kỳ quan trọng để tìm kiếm các exploit cụ thể trong các module sau (đặc biệt là Module 05: Vulnerability Analysis và Module 06: System Hacking). Việc so sánh kết quả giữa TCP Connect Scan (-sT) và SYN Scan (-sS) giúp hiểu về mức độ “tàng hình” và yêu cầu quyền của từng loại scan. UDP scan thường cho thấy các dịch vụ DNS (53) và SNMP (161) trên Metasploitable 2, đây cũng là các vector tấn công tiềm năng.
- Lab 3.3: Kỹ thuật quét tránh Firewall/IDS (Ví dụ: Idle Scan trên Metasploitable 3)
- 1. Mục tiêu bài lab: Thực hành kỹ thuật Idle Scan (-sI) với Nmap để quét một máy mục tiêu (Metasploitable 3) một cách ẩn danh thông qua việc sử dụng một máy “zombie” trung gian trong mạng lab. Kỹ thuật này làm cho lưu lượng quét dường như xuất phát từ máy zombie chứ không phải từ máy tấn công.
- 2. Máy mục tiêu:
- Target: Metasploitable 3 (Windows Server 2008, ví dụ IP: 192.168.56.103).
- Zombie: Một máy khác trong mạng lab có IPID sequence dễ đoán và ít traffic mạng. Metasploitable 2 (192.168.56.102) có thể là một ứng cử viên, hoặc một máy ảo Windows XP cũ. Việc tìm zombie phù hợp là một phần của bài lab.36
- 3. Công cụ sử dụng: Nmap.
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Tìm một “zombie” host phù hợp.
- Một zombie host tốt cần phải “idle” (ít traffic) và có IP ID sequence tăng dần một cách toàn cục (predictable incremental IP ID).36
- Lệnh để quét mạng và tìm các host tiềm năng: sudo nmap -sn 192.168.56.0/24
- Lệnh để kiểm tra IPID sequence của một host tiềm năng (ví dụ: 192.168.56.102):
Bash
sudo nmap -v -O 192.168.56.102
# Hoặc sử dụng script ipidseq
sudo nmap -p80 –script ipidseq –script-args host=192.168.56.102
Quan sát dòng “IP ID Sequence Generation” trong output. Nếu là “Incremental” hoặc “All zeros”, host đó có thể là zombie tốt. “Randomized” hoặc “Broken” sẽ không hoạt động. - Kết quả mong đợi/Ảnh minh họa: Output từ ipidseq hoặc phần OS detection của Nmap cho thấy IP ID sequence của zombie là “Incremental”.
- Bước 2: Thực hiện Idle Scan.
- Giả sử 192.168.56.102 (Metasploitable 2) là zombie phù hợp và 192.168.56.103 (Metasploitable 3) là mục tiêu.
- Lệnh: sudo nmap -sI 192.168.56.102 192.168.56.103 -p 21,80,135,139,445 -Pn -oN metasploitable3_idle_scan.txt
- Giải thích lệnh:
- -sI <zombie_IP> <target_IP>: Chỉ định thực hiện Idle Scan, với <zombie_IP> là IP của máy zombie và <target_IP> là IP của máy mục tiêu.36
- -p 21,80,135,139,445: Chỉ định các cổng cụ thể cần quét trên Metasploitable 3 (ví dụ: FTP, HTTP, RPC, NetBIOS, SMB).
- -Pn: Bỏ qua giai đoạn host discovery (ping scan), giả định mục tiêu đang hoạt động. Điều này hữu ích vì bản thân Idle Scan không gửi gói tin trực tiếp đến mục tiêu từ IP của kẻ tấn công trong giai đoạn host discovery.
- Kết quả mong đợi/Ảnh minh họa: Nmap sẽ báo cáo trạng thái các cổng (open, closed, filtered) trên Metasploitable 3. Nếu thành công, log trên Metasploitable 3 (nếu có) sẽ ghi nhận lưu lượng quét đến từ IP của Metasploitable 2 (máy zombie), chứ không phải từ IP của Kali Linux. (Mô tả output Nmap cho thấy các cổng mở/đóng trên target).
- 5. Phân tích Kết quả:
- Idle Scan là một kỹ thuật quét tàng hình cao cấp, cho phép kẻ tấn công quét mục tiêu mà không để lộ địa chỉ IP thực của mình trên log của mục tiêu.36 Thay vào đó, máy zombie sẽ bị “đổ lỗi”.
- Hiệu quả của Idle Scan phụ thuộc rất nhiều vào việc tìm được một máy zombie tốt (ít traffic, IPID sequence dễ đoán). Trong môi trường lab, việc này có thể dễ dàng hơn so với trên Internet.
- Kỹ thuật này minh họa cuộc rượt đuổi “mèo vờn chuột” giữa kẻ tấn công cố gắng ẩn mình và người phòng thủ cố gắng phát hiện các hành vi bất thường. Nó cũng cho thấy tầm quan trọng của việc giám sát lưu lượng mạng không chỉ từ các nguồn bên ngoài mà còn cả lưu lượng bất thường giữa các máy chủ nội bộ.
- C. Liên Hệ Thực Tế và Nội Dung Thi CEH
- Quét mạng là một bước không thể thiếu trong quy trình pentest để xác định “attack surface” – tập hợp các điểm yếu tiềm năng mà kẻ tấn công có thể khai thác. Kết quả từ giai đoạn quét mạng sẽ định hướng cho các hoạt động phân tích lỗ hổng và khai thác sau này.
- Trong kỳ thi CEH lý thuyết, các câu hỏi thường xoay quanh việc hiểu các loại cờ TCP (SYN, ACK, FIN, RST), các kiểu quét khác nhau của Nmap (ví dụ: -sT, -sS, -sU, -sF, -sX, -sN, -sV, -O, -sI), ưu và nhược điểm của từng loại, cách đọc và phân tích output của Nmap.
- Kỳ thi CEH Practical chắc chắn sẽ yêu cầu thí sinh sử dụng Nmap để quét các mục tiêu, phát hiện dịch vụ, phiên bản phần mềm, hệ điều hành, và có thể cả việc áp dụng các kỹ thuật né tránh IDS/Firewall.14 Ví dụ, một yêu cầu có thể là “Thực hiện quét cổng trên máy chủ X mà không bị phát hiện bởi IDS Y” hoặc “Xác định tất cả các dịch vụ web đang chạy trên dải IP Z và phiên bản của chúng”.
- Trong môi trường thực tế, các quản trị viên mạng và chuyên gia bảo mật sử dụng các công cụ giám sát mạng, IDS/IPS, và SIEM để phát hiện và phản ứng lại các hành vi quét mạng đáng ngờ. Việc hiểu các kỹ thuật quét giúp họ cấu hình các hệ thống phòng thủ này hiệu quả hơn.
- Thí sinh CEH nên làm quen với các tùy chọn nâng cao của Nmap như điều chỉnh thời gian quét (-T0 đến -T5), các định dạng output (-oN, -oX, -oG để dễ dàng xử lý kết quả), và cơ bản về Nmap Scripting Engine (NSE) để thực hiện các tác vụ quét và phát hiện lỗ hổng phức tạp hơn. Kiến thức về các kỹ thuật né tránh như phân mảnh gói tin (-f), sử dụng mồi nhử (-D), thao tác cổng nguồn (–source-port), và điều chỉnh thời gian 35 là rất quan trọng.
Bảng 3.1: Các Kiểu Quét Nmap Phổ Biến và Mục Đích
| Kiểu Quét | Tham số Nmap chính | Mô tả Ngắn gọn | Ưu điểm | Nhược điểm/Yêu cầu |
| Ping Scan | -sn | Chỉ phát hiện host sống, không quét cổng. | Nhanh chóng liệt kê host hoạt động. | Có thể bị chặn bởi firewall nếu ICMP bị cấm. |
| TCP Connect Scan | -sT | Hoàn thành bắt tay 3 bước TCP để xác định cổng mở. | Đáng tin cậy, không cần quyền root. | Dễ bị phát hiện và log lại, chậm hơn SYN scan. |
| SYN Scan (Stealth) | -sS | Gửi SYN, nhận SYN/ACK (mở) hoặc RST (đóng), gửi RST để không hoàn thành kết nối. | Nhanh hơn -sT, ít bị log hơn. | Cần quyền root. Một số IDS/IPS tinh vi vẫn có thể phát hiện. |
| UDP Scan | -sU | Gửi gói UDP. Cổng đóng trả về ICMP Port Unreachable. Cổng mở/lọc thường không phản hồi. | Phát hiện dịch vụ UDP (DNS, SNMP, NTP). | Chậm, không đáng tin cậy bằng TCP scan, khó phân biệt mở và lọc. Cần quyền root. |
| FIN/Xmas/Null Scan | -sF/-sX/-sN | Gửi gói TCP với cờ FIN/URG+PSH+FIN/không cờ. Cổng đóng trả RST, cổng mở không phản hồi (theo RFC 793). | Có thể qua mặt một số firewall không trạng thái. | Không hoạt động trên Windows. Cần quyền root. |
| Version Detection | -sV | Gửi các probe đặc biệt đến cổng mở để xác định tên và phiên bản dịch vụ. | Cung cấp thông tin chi tiết về dịch vụ, quan trọng cho việc tìm exploit. | Tăng thời gian quét, có thể bị phát hiện. |
| OS Detection | -O | Gửi các probe TCP/IP và phân tích phản hồi để dự đoán HĐH. | Giúp thu hẹp phạm vi tìm kiếm exploit. | Cần ít nhất một cổng mở và một cổng đóng để hoạt động tốt. Kết quả là dự đoán. Cần root. |
| Idle Scan | -sI <zombieIP> | Quét mục tiêu thông qua một máy “zombie” trung gian, ẩn IP thật. | Hoàn toàn ẩn danh IP nguồn đối với mục tiêu. | Khó tìm zombie phù hợp, chậm hơn, cần quyền root. 36 |
| ACK Scan | -sA | Gửi gói ACK. Dùng để xác định luật của firewall (stateful/stateless) và cổng nào được lọc. | Giúp lập bản đồ bộ lọc của firewall. | Không xác định được cổng mở hay đóng. Cần quyền root. |
| Script Scan (default) | -sC | Chạy các script NSE thuộc nhóm “default” để thu thập thêm thông tin hoặc kiểm tra lỗ hổng cơ bản. | Tự động hóa việc thu thập thông tin chi tiết. | Tăng thời gian quét, một số script có thể “ồn ào”. |
| Aggressive Scan | -A | Bật OS detection (-O), version detection (-sV), script scanning (-sC), and traceroute (–traceroute). | Quét toàn diện với một lệnh duy nhất. | “Ồn ào”, dễ bị phát hiện, tốn thời gian. |
Module 04: Liệt Kê (Enumeration)
- A. Mục Tiêu Module
- Hiểu rõ khái niệm Enumeration: Đây là giai đoạn mà kẻ tấn công thiết lập kết nối chủ động với các hệ thống mục tiêu và gửi các truy vấn trực tiếp để thu thập thông tin chi tiết hơn so với giai đoạn quét mạng. Mục tiêu là trích xuất thông tin như tên người dùng, tên máy, tài nguyên mạng, các thư mục chia sẻ (shares), và các dịch vụ đang chạy cùng cấu hình của chúng.14
- Nhận biết các loại thông tin có thể thu thập được qua enumeration: Bao gồm tài nguyên mạng, thư mục chia sẻ, bảng định tuyến (routing tables), cài đặt dịch vụ và kiểm toán, chi tiết về SNMP và FQDN (Fully Qualified Domain Name), tên máy tính, danh sách người dùng và nhóm, các ứng dụng và banner của chúng.41
- Nắm vững các kỹ thuật enumeration chính và các cổng dịch vụ liên quan:
- NetBIOS Enumeration (Cổng 137/UDP cho Name Service, 139/TCP cho Session Service): Thu thập danh sách các máy tính thuộc một domain, các chính sách và mật khẩu (nếu có thể), và đặc biệt là các thư mục chia sẻ. Kẻ tấn công có thể đọc/ghi vào các thư mục chia sẻ từ xa hoặc thậm chí khởi động tấn công DoS nếu NetBIOS được cấu hình yếu.14
- SNMP Enumeration (Cổng 161/UDP): Sử dụng Simple Network Management Protocol để lấy thông tin chi tiết về cấu hình thiết bị mạng (routers, switches), máy chủ, máy in, bao gồm bảng định tuyến, tài khoản người dùng, và topology mạng nếu community string (ví dụ: “public”, “private”) dễ đoán hoặc mặc định.14
- LDAP Enumeration (Cổng 389/TCP, 636/TCP cho LDAPS): Truy vấn Lightweight Directory Access Protocol, thường được sử dụng bởi Active Directory, để thu thập thông tin về người dùng, nhóm, máy tính, đơn vị tổ chức (OU), và các thuộc tính khác trong domain.14
- NTP Enumeration (Cổng 123/UDP): Thu thập thông tin từ Network Time Protocol server, như danh sách các host đang kết nối đến NTP server, thông tin thời gian hệ thống, phiên bản NTP, có thể giúp xác định các client trong mạng.14
- NFS Enumeration (Cổng 2049/TCP, và portmapper trên cổng 111/TCP/UDP): Liệt kê các thư mục được chia sẻ qua Network File System, thường thấy trên các hệ thống Unix/Linux.14
- SMTP Enumeration (Cổng 25/TCP): Sử dụng các lệnh SMTP như VRFY (verify), EXPN (expand), và RCPT TO (recipient to) để xác định sự tồn tại của các tài khoản người dùng hợp lệ trên máy chủ mail.14
- DNS Enumeration (Nâng cao): Bao gồm các kỹ thuật như DNS Cache Snooping (truy vấn cache của DNS server để tìm các bản ghi đã được phân giải gần đây) và DNSSEC Zone Walking (khai thác DNSSEC để liệt kê tất cả các bản ghi trong một zone nếu cấu hình sai).14
- RPC Enumeration (Cổng 135/TCP cho RPC Endpoint Mapper): Liệt kê các dịch vụ Remote Procedure Call đang chạy và các endpoint của chúng.
- SMB Enumeration (Cổng 445/TCP, và 139/TCP): Tương tự NetBIOS, nhưng tập trung vào giao thức Server Message Block để liệt kê shares, users, và các thông tin khác từ hệ thống Windows và Samba.
- FTP Enumeration (Cổng 21/TCP): Kiểm tra quyền truy cập anonymous, liệt kê file và thư mục nếu được phép.
- Làm quen với các công cụ enumeration phổ biến: enum4linux, nbtscan, snmpwalk, snmp-check, onesixtyone, ldapsearch, python-ldapdomaindump, smtp-user-enum, Netcat, Nmap (sử dụng các script trong Nmap Scripting Engine – NSE như smb-enum-users, snmp-sysdescr, smtp-commands), SuperEnum, RPCScan, Dnsrecon.14
- Hiểu về vai trò của Trí tuệ Nhân tạo (AI) trong việc tự động hóa và nâng cao hiệu quả của quá trình enumeration (ví dụ: AI-powered ChatGPT có thể được dùng để tạo các câu lệnh enumeration).14
- Nắm được các biện pháp đối phó với enumeration từ phía phòng thủ, ví dụ như vô hiệu hóa các dịch vụ không cần thiết, sử dụng community string mạnh cho SNMP, cấu hình firewall chặn các truy vấn enumeration từ bên ngoài.41
- Trong giai đoạn enumeration, kẻ tấn công tạo các kết nối chủ động với hệ thống mục tiêu và gửi các truy vấn định hướng để thu thập thêm thông tin. Thông tin này được sử dụng để xác định các lỗ hổng bảo mật, từ đó giúp khai thác hệ thống mục tiêu.41
- B. Bài Thực Hành Tương Ứng
- Lab 4.1: NetBIOS Enumeration trên Metasploitable 3 (Windows Server 2008) với nbtscan và enum4linux
- 1. Mục tiêu bài lab: Thu thập thông tin NetBIOS từ máy chủ Metasploitable 3, bao gồm tên máy, tên workgroup/domain, danh sách các thư mục chia sẻ (shares), và danh sách người dùng.
- 2. Máy mục tiêu: Metasploitable 3 (Windows Server 2008, ví dụ IP: 192.168.56.103).
- 3. Công cụ sử dụng: nbtscan, enum4linux (chạy từ Kali Linux).
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: Sử dụng nbtscan để quét và phát hiện các NetBIOS name service trong mạng hoặc trên một host cụ thể.
- Lệnh (quét dải mạng): nbtscan -r 192.168.56.0/24
- Lệnh (quét target cụ thể): nbtscan 192.168.56.103
- Giải thích lệnh:
- nbtscan: Tên công cụ.
- -r: Quét một dải địa chỉ IP (range scan). Nếu không có -r, lệnh sẽ quét một host duy nhất.41
- Kết quả mong đợi/Ảnh minh họa: Output sẽ hiển thị một bảng với các cột: địa chỉ IP, NetBIOS Name (tên máy), Server (cho biết máy có phải là server không), User (tên người dùng đang đăng nhập nếu có), và MAC Address. Ví dụ:
192.168.56.103 METASPLOITABLE3 SHR NT METASPLOITABLE3 SRV…
(Mô tả output của nbtscan, làm nổi bật tên máy và các dịch vụ NetBIOS được quảng bá). - Bước 2: Sử dụng enum4linux để thực hiện enumeration chi tiết hơn đối với các dịch vụ SMB/NetBIOS trên Metasploitable 3.
- Lệnh: enum4linux -a 192.168.56.103
- Giải thích lệnh:
- enum4linux: Tên công cụ.
- -a: Thực hiện tất cả các tùy chọn enumeration đơn giản (bao gồm lấy thông tin OS, user list, share list, group list, password policy, etc.).46
- 192.168.56.103: Địa chỉ IP của Metasploitable 3.
- Kết quả mong đợi/Ảnh minh họa: enum4linux sẽ cung cấp một lượng lớn thông tin, bao gồm:
- Thông tin hệ điều hành (OS Information).
- Tên Workgroup/Domain.
- Danh sách người dùng (User list) – có thể bao gồm cả SID.
- Danh sách các thư mục chia sẻ (Share list) – ví dụ: IPC$, ADMIN$, C$, và các share tùy chỉnh.
- Chính sách mật khẩu (Password policy) – ví dụ: độ dài tối thiểu, thời gian hiệu lực.
- Danh sách nhóm (Group list) và thành viên.
(Mô tả các phần chính trong output của enum4linux, ví dụ: phần “Users on 192.168.56.103”, “Shares on 192.168.56.103”, “Password Policy for 192.168.56.103”). - 5. Phân tích Kết quả:
- nbtscan cung cấp một cái nhìn nhanh về các host có NetBIOS đang hoạt động và tên của chúng.
- enum4linux đi sâu hơn, trích xuất thông tin chi tiết từ dịch vụ SMB. Danh sách người dùng thu được (ví dụ: Administrator, vagrant) có thể được sử dụng cho các cuộc tấn công đoán mật khẩu hoặc brute-force. Danh sách các thư mục chia sẻ (đặc biệt là các administrative shares như C$ hoặc các share có quyền ghi không an toàn) có thể là nơi chứa thông tin nhạy cảm hoặc là điểm để tải lên malware. Thông tin về chính sách mật khẩu giúp kẻ tấn công ước lượng độ khó của việc bẻ khóa mật khẩu.
- Trên Metasploitable 3, enum4linux có thể tìm thấy các user như vagrant, Administrator và các share mặc định. Việc này cho thấy tầm quan trọng của việc làm cứng (hardening) cấu hình SMB/NetBIOS, như vô hiệu hóa NetBIOS over TCP/IP nếu không cần thiết, giới hạn quyền truy cập vào shares, và sử dụng mật khẩu mạnh.
- Lab 4.2: SNMP Enumeration trên Metasploitable 2 với snmpwalk và onesixtyone
- 1. Mục tiêu bài lab: Sử dụng các công cụ SNMP để truy vấn thông tin từ dịch vụ SNMP đang chạy trên Metasploitable 2, khai thác việc sử dụng community string mặc định (“public”).
- 2. Máy mục tiêu: Metasploitable 2 (Linux, ví dụ IP: 192.168.56.102). Metasploitable 2 được biết là có dịch vụ SNMPv1/v2c được kích hoạt với community string “public” cho phép truy cập read-only.
- 3. Công cụ sử dụng: onesixtyone, snmpwalk (chạy từ Kali Linux).
- 4. Hướng dẫn từng bước thực hiện:
- Bước 1: (Giả định chưa biết community string) Sử dụng onesixtyone để brute-force community string.
- Tạo một file văn bản, ví dụ community.txt, chứa các community string phổ biến. Mỗi string trên một dòng:
public
private
manager
admin
community
secret - Lệnh: onesixtyone -c community.txt 192.168.56.102 -w 100
- Giải thích lệnh:
- onesixtyone: Tên công cụ.
- -c community.txt: Chỉ định file chứa danh sách community string để thử.43
- 192.168.56.102: Địa chỉ IP của Metasploitable 2.
- -w 100: Đợi 100ms cho phản hồi (tùy chỉnh nếu mạng chậm).
- Kết quả mong đợi/Ảnh minh họa: onesixtyone sẽ thử từng community string trong file. Nếu thành công, nó sẽ hiển thị community string hợp lệ và một số thông tin cơ bản về hệ thống. Ví dụ:
192.168.56.102 [public] Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
(Mô tả output của onesixtyone khi tìm thấy community string “public”). - Bước 2: Sử dụng snmpwalk để “walk” (duyệt) qua cây Management Information Base (MIB) của thiết bị bằng community string đã tìm thấy.
- Lệnh (lấy toàn bộ MIB – có thể rất nhiều output):
snmpwalk -c public -v1 192.168.56.102 - Lệnh (lấy thông tin cụ thể hơn, ví dụ thông tin hệ thống):
snmpwalk -c public -v1 192.168.56.102 system
Hoặc snmpwalk -c public -v1 192.168.56.102.1.3.6.1.2.1.1 (OID cho system group) - Lệnh (lấy thông tin về các network interfaces):
snmpwalk -c public -v1 192.168.56.102 interfaces
Hoặc snmpwalk -c public -v1 192.168.56.102.1.3.6.1.2.1.2 (OID cho interfaces group) - Lệnh (lấy danh sách các tiến trình đang chạy – hrSWRunName):
snmpwalk -c public -v1 192.168.56.102 hrSWRunName
Hoặc snmpwalk -c public -v1 192.168.56.102.1.3.6.1.2.1.25.4.2.1.2 (OID cho hrSWRunName) 43 - Lệnh (lấy danh sách user accounts – đôi khi có thể tìm thấy):
snmpwalk -c public -v1 192.168.56.102.1.3.6.1.4.1.77.1.2.25 (OID cho user accounts trên một số hệ thống) - Giải thích lệnh:
- snmpwalk: Tên công cụ.
- -c public: Chỉ định community string là “public”.43
- -v1: Chỉ định sử dụng SNMP version 1 (Metasploitable 2 hỗ trợ v1 và v2c với community “public”).
- 192.168.56.102: Địa chỉ IP của Metasploitable 2.
- system, interfaces, hrSWRunName hoặc các OID (Object Identifier) cụ thể: Chỉ định phần nào của cây MIB cần truy vấn. Nếu không chỉ định, snmpwalk sẽ cố gắng duyệt toàn bộ cây MIB từ root.
- Kết quả mong đợi/Ảnh minh họa: Output sẽ là một danh sách dài các OID và giá trị tương ứng của chúng. Ví dụ:
- SNMPv2-MIB::sysDescr.0 = STRING: Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
- SNMPv2-MIB::sysUpTimeInstance = Timeticks: (360000) 1:00:00.00
- IF-MIB::ifDescr.1 = STRING: lo
- IF-MIB::ifDescr.2 = STRING: eth0
- HOST-RESOURCES-MIB::hrSWRunName.1234 = STRING: “/usr/sbin/apache2 -k start” (ví dụ tên tiến trình)
(Mô tả một vài dòng output điển hình, làm nổi bật thông tin hệ thống, network, process). - 5. Phân tích Kết quả:
- SNMP, nếu được cấu hình không an toàn (sử dụng community string mặc định/dễ đoán như “public”, “private” và phiên bản SNMPv1/v2c không mã hóa), có thể tiết lộ một lượng lớn thông tin cực kỳ nhạy cảm về hệ thống và mạng.
- Thông tin thu thập được bao gồm: mô tả hệ thống (HĐH, phiên bản kernel), thời gian uptime, cấu hình các giao diện mạng (địa chỉ IP, MAC), bảng định tuyến, danh sách các tiến trình đang chạy, đôi khi cả danh sách tài khoản người dùng, và nhiều thông số hoạt động khác.
- Những thông tin này rất giá trị cho kẻ tấn công để hiểu rõ hơn về mục tiêu, xác định các dịch vụ tiềm năng để tấn công, và thậm chí là các thông tin có thể dùng để leo thang đặc quyền hoặc tấn công các hệ thống khác trong mạng. Việc Metasploitable 2 để lộ nhiều thông tin qua SNMP với community “public” là một ví dụ điển hình về cấu hình yếu.
- Trong thực tế, nên sử dụng SNMPv3 với xác thực và mã hóa mạnh, thay đổi community string mặc định, và sử dụng ACL để giới hạn các IP được phép truy vấn SNMP.
- Lab 4.3: SMTP User Enumeration trên Metasploitable 2 với smtp-user-enum hoặc Metasploit module
- 1. Mục tiêu bài lab: Sử dụng các kỹ thuật SMTP enumeration để xác định các tài khoản người dùng hợp lệ trên máy chủ SMTP của Metasploitable 2.
- 2. Máy mục tiêu: Metasploitable 2 (Linux, ví dụ IP: 192.168.56.102). Metasploitable 2 chạy dịch vụ Postfix SMTP server trên cổng 25, dịch vụ này có thể phản hồi lại các lệnh VRFY hoặc EXPN.
- 3. Công cụ sử dụng: smtp-user-enum (một script Perl phổ biến) hoặc module auxiliary/scanner/smtp/smtp_enum trong Metasploit Framework (chạy từ Kali Linux).
- 4. Hướng dẫn từng bước thực hiện:
- Cách 1: Sử dụng smtp-user-enum
- Bước 1: Chuẩn bị một danh sách các tên người dùng tiềm năng. Tạo một file văn bản, ví dụ users.txt, và thêm vào đó các tên người dùng phổ biến hoặc các tên bạn nghi ngờ có thể tồn tại trên Metasploitable 2.
root
admin
msfadmin
user
test
sysadmin
backup
service
student
klog
daemon
ftp
games
news - Bước 2: Chạy smtp-user-enum để thử các tên người dùng.
- Lệnh: smtp-user-enum -M VRFY -U users.txt -t 192.168.56.102
- Giải thích lệnh:
- smtp-user-enum: Tên script.
- -M VRFY: Sử dụng lệnh SMTP VRFY để kiểm tra người dùng. Các lựa chọn khác bao gồm -M EXPN (expand mailing lists/aliases) hoặc -M RCPT (kiểm tra qua RCPT TO command).26
VRFY thường được thử đầu tiên. - -U users.txt: Chỉ định file chứa danh sách tên người dùng cần thử.26
- -t 192.168.56.102: Chỉ định địa chỉ IP của máy chủ SMTP mục tiêu.26
- Kết quả mong đợi/Ảnh minh họa: Script sẽ thử từng tên người dùng trong users.txt. Nếu máy chủ SMTP phản hồi một cách khác biệt cho tên người dùng tồn tại (ví dụ, mã 250 hoặc 252 cho VRFY), script sẽ báo cáo tên người dùng đó là hợp lệ. Ví dụ:
Starting SMTP VRFY Enumeration on 192.168.56.102 (port 25) with 10 processes…
0 Found, 0 Guessed, 14 Tested @ 10:00:00
…msfadmin existsuser existsroot exists…Found 5 users.“`(Mô tả output liệt kê các user được tìm thấy, ví dụ: msfadmin, user, root, klog, daemon).
- Cách 2: Sử dụng Metasploit Framework
- Bước 1: Khởi chạy Metasploit console.
- Lệnh: msfconsole
- Bước 2: Sử dụng module smtp_enum.
- Lệnh: use auxiliary/scanner/smtp/smtp_enum 45
- Bước 3: Xem và thiết lập các tùy chọn.
- Lệnh: show options
- Thiết lập địa chỉ IP mục tiêu: set RHOSTS 192.168.56.102
- Thiết lập đường dẫn đến file user: set USER_FILE /path/to/your/users.txt (thay /path/to/your/users.txt bằng đường dẫn thực tế đến file users.txt của bạn).
- (Tùy chọn) Có thể thay đổi phương thức kiểm tra bằng cách set CMD <VRFY|EXPN|RCPT>. Mặc định thường là VRFY.
- Bước 4: Chạy module.
- Lệnh: run hoặc exploit
- Kết quả mong đợi/Ảnh minh họa: Metasploit sẽ thực hiện kiểm tra và báo cáo các tên người dùng được tìm thấy. Ví dụ:
[*] 192.168.56.102:25 SMTP User: msfadmin
[*] 192.168.56.102:25 SMTP User: user
…[] Scanned 1 of 1 hosts (100% complete)[] Auxiliary module execution completed“`(Mô tả output của Metasploit hiển thị các user được tìm thấy).
- 5. Phân tích Kết quả:
- Việc xác định được các tên người dùng hợp lệ trên một hệ thống là một bước quan trọng trong giai đoạn enumeration. Những tên người dùng này sau đó có thể được sử dụng làm đầu vào cho các cuộc tấn công đoán mật khẩu (password guessing) hoặc tấn công brute-force nhắm vào các dịch vụ khác như SSH, FTP, hoặc các ứng dụng web.
- Các lệnh SMTP như VRFY và EXPN ban đầu được thiết kế cho mục đích gỡ lỗi và quản trị, nhưng chúng lại vô tình trở thành một nguồn rò rỉ thông tin nếu máy chủ SMTP không được cấu hình để vô hiệu hóa hoặc hạn chế chúng.26 Nhiều máy chủ SMTP hiện đại đã tắt các lệnh này theo mặc định hoặc chỉ cho phép chúng từ các địa chỉ IP tin cậy. Tuy nhiên, Metasploitable 2 vẫn để ngỏ khả năng này.
- Kết quả từ smtp-user-enum hoặc Metasploit sẽ cung cấp một danh sách các tài khoản người dùng thực sự tồn tại, giúp kẻ tấn công tập trung nỗ lực vào các mục tiêu có giá trị thay vì đoán mò.
- (Tùy chọn) Lab 4.4: LDAP Enumeration (nếu có môi trường Active Directory)
- 1. Mục tiêu bài lab: Tìm hiểu cách liệt kê thông tin từ một dịch vụ LDAP, thường là Microsoft Active Directory (AD), để thu thập thông tin về người dùng, nhóm, máy tính và cấu trúc tổ chức.
- 2. Máy mục tiêu: Một Domain Controller (DC) trong môi trường lab. Metasploitable 3 (Windows Server 2008) không phải là DC theo mặc định, nhưng có thể được nâng cấp thành DC, hoặc người học có thể tự dựng một máy ảo Windows Server khác và cấu hình AD. Nếu không có DC trong lab, phần này có thể mang tính lý thuyết hoặc hướng dẫn sử dụng công cụ trên các mục tiêu giả định.
- 3. Công cụ sử dụng: ldapsearch (công cụ dòng lệnh chuẩn của Linux), LdapAdmin (công cụ GUI cho Windows), python-ldapdomaindump 44,
CrackMapExec (CME) 49, Nmap (với các script NSE như
ldap-search). - 4. Hướng dẫn từng bước thực hiện (mang tính chất giới thiệu nếu không có DC):
- Bước 1: Xác định địa chỉ IP của Domain Controller và cổng LDAP (thường là 389/TCP cho LDAP và 636/TCP cho LDAPS).
- Bước 2: Sử dụng ldapsearch (nếu có thông tin đăng nhập hoặc cho phép anonymous bind).
- Lệnh (truy vấn anonymous bind, lấy thông tin cơ bản):
ldapsearch -x -H ldap://<DC_IP> -b “dc=example,dc=com” “(objectClass=*)”
(Thay <DC_IP> bằng IP của DC, và dc=example,dc=com bằng Base DN của domain). - Giải thích lệnh:
- -x: Sử dụng simple authentication (thay vì SASL).
- -H ldap://<DC_IP>: URL của LDAP server.
- -b “dc=example,dc=com”: Base DN để bắt đầu tìm kiếm.
- “(objectClass=*)”: Bộ lọc để lấy tất cả các đối tượng.
- Kết quả mong đợi/Ảnh minh họa: Output dạng LDIF (LDAP Data Interchange Format) hiển thị các đối tượng và thuộc tính của chúng trong AD.
- Bước 3: Sử dụng python-ldapdomaindump (nếu có thông tin đăng nhập).
- Lệnh: ldapdomaindump -u ‘DOMAIN\username’ -p ‘password’ <DC_IP> -o /tmp/ldap_dump 44
- Giải thích lệnh: Công cụ này kết nối tới LDAP, xác thực và dump toàn bộ thông tin domain (users, groups, computers, policies) ra các file HTML, JSON, CSV dễ đọc.44
- Kết quả mong đợi/Ảnh minh họa: Các file output chứa thông tin chi tiết về domain.
- Bước 4: Sử dụng CrackMapExec (CME) cho LDAP enumeration.
- Lệnh (liệt kê user không cần password nếu null sessions được cho phép hoặc có creds):
crackmapexec ldap <DC_IP> -u ” -p ” –users
crackmapexec ldap <DC_IP> -u ‘username’ -p ‘password’ –groups - Giải thích lệnh: CME là một công cụ mạnh mẽ cho pentest AD, có thể thực hiện nhiều tác vụ enumeration qua LDAP và các giao thức khác.49
- Kết quả mong đợi/Ảnh minh họa: Danh sách users, groups, hoặc các thông tin khác tùy theo module của CME.
- 5. Phân tích Kết quả:
- LDAP enumeration là một trong những kỹ thuật quan trọng nhất khi pentest môi trường Active Directory. Nó có thể tiết lộ cấu trúc toàn bộ của domain, danh sách chi tiết người dùng (bao gồm mô tả, lần đăng nhập cuối, trạng thái tài khoản), các nhóm và thành viên, máy tính trong domain, các chính sách mật khẩu, và nhiều thông tin cấu hình khác.
- Thông tin này giúp kẻ tấn công xác định các tài khoản mục tiêu (ví dụ: tài khoản quản trị, tài khoản dịch vụ), hiểu các mối quan hệ tin cậy, và tìm kiếm các điểm yếu cấu hình để khai thác.
- Ngay cả khi không có thông tin đăng nhập, một số LDAP server (đặc biệt là các phiên bản cũ hoặc cấu hình sai) có thể cho phép “anonymous bind” hoặc “null session”, tiết lộ một phần thông tin.
- Việc sử dụng các công cụ như python-ldapdomaindump giúp tự động hóa quá trình thu thập và trình bày dữ liệu một cách dễ hiểu, tiết kiệm thời gian đáng kể cho pentester.
- C. Liên Hệ Thực Tế và Nội Dung Thi CEH
- Enumeration cung cấp những “miếng mồi” cụ thể và chi tiết, là cơ sở để lựa chọn và thực hiện các cuộc tấn công tiếp theo. Ví dụ, danh sách người dùng thu được từ NetBIOS hoặc SMTP enumeration có thể được dùng để brute-force mật khẩu SSH hoặc RDP. Các thư mục chia sẻ (shares) được phát hiện có thể chứa file cấu hình nhạy cảm hoặc là nơi để tải lên mã độc. Thông tin phiên bản dịch vụ chi tiết từ SNMP hoặc Nmap giúp tìm kiếm exploit chính xác trên các cơ sở dữ liệu lỗ hổng.
- Trong kỳ thi CEH, các câu hỏi lý thuyết sẽ tập trung vào việc hiểu mục đích của từng loại enumeration, các cổng dịch vụ liên quan, công cụ nào được sử dụng cho kỹ thuật nào (ví dụ: enum4linux cho SMB/NetBIOS, snmpwalk cho SNMP, smtp-user-enum cho SMTP), và ý nghĩa của các thông tin thu thập được. Phần thi thực hành (CEH Practical) có thể yêu cầu thí sinh thực hiện enumeration trên các mục tiêu để tìm ra thông tin cụ thể cần thiết cho các bước tấn công sau.14
- Trong môi trường thực tế, các quản trị viên hệ thống thường áp dụng các biện pháp làm cứng (hardening) để hạn chế tối đa lượng thông tin bị rò rỉ qua enumeration. Điều này bao gồm việc vô hiệu hóa các dịch vụ không cần thiết (như NetBIOS over TCP/IP), sử dụng SNMPv3 với cơ chế xác thực và mã hóa mạnh thay vì community string đơn giản, cấu hình SMTP server không phản hồi với các lệnh VRFY/EXPN từ các nguồn không tin cậy, và sử dụng firewall để chặn các truy vấn enumeration đến các cổng nhạy cảm từ bên ngoài mạng.
- Sự phát triển của AI cũng đang được ứng dụng vào enumeration, ví dụ như sử dụng các mô hình ngôn ngữ lớn để tự động tạo ra các câu lệnh truy vấn phức tạp hoặc phân tích kết quả enumeration để tìm ra các điểm yếu tiềm ẩn một cách nhanh chóng hơn.41
Bảng 4.1: Kỹ Thuật Enumeration, Công Cụ và Thông Tin Thu Thập
| Kỹ thuật Enumeration | Công cụ chính | Port mặc định | Thông tin mục tiêu có thể thu thập | Máy mục tiêu ví dụ trong lab |
| NetBIOS | nbtscan, enum4linux, Nmap (nbtstat.nse) | 137/UDP, 139/TCP | Tên máy, workgroup/domain, user list, share list, OS info, password policy. 41 | Metasploitable 3 |
| SNMP | snmpwalk, onesixtyone, snmp-check, Nmap (NSE) | 161/UDP, 162/UDP (traps) | Cấu hình thiết bị, routing tables, user accounts, running processes, network interfaces. 43 | Metasploitable 2 |
| LDAP | ldapsearch, python-ldapdomaindump, CrackMapExec | 389/TCP, 636/TCP (LDAPS) | User accounts, group memberships, computer objects, OU structure, domain policies. 44 | (AD Domain Controller) |
| NTP | ntpdate, ntpq, Nmap (ntp-info.nse) | 123/UDP | List of connected hosts, system time, NTP version. 41 | Metasploitable 2/3 |
| NFS | showmount -e, Nmap (nfs-ls.nse, nfs-showmount.nse) | 2049/TCP, 111/TCP/UDP (portmapper) | Exported/shared directories and permissions. 41 | Metasploitable 2 |
| SMTP | smtp-user-enum, Metasploit, telnet, Nmap (NSE) | 25/TCP | Valid user accounts (via VRFY, EXPN, RCPT TO). 26 | Metasploitable 2 |
| DNS | dig, nslookup, dnsrecon, Nmap (NSE) | 53/TCP/UDP | Zone records (A, MX, NS, SOA, PTR), potential for zone transfer, cache snooping. 21 | zonetransfer.me |
| SMB | enum4linux, smbclient, CrackMapExec, Nmap (NSE) | 445/TCP, 139/TCP | Shares, users, groups, OS information, domain information. (Tương tự NetBIOS nhưng qua SMB) | Metasploitable 3 |
| FTP | nmap -sV -p 21 –script ftp-anon <target> | 21/TCP | Anonymous login allowed, listable directories/files if anon. | Metasploitable 2/3 |
| RPC | rpcinfo, Nmap (rpcinfo.nse) | 135/TCP (MS RPC), 111/TCP/UDP (Portmapper) | Registered RPC services and program numbers. | Metasploitable 2/3 |
Module 05: Phân Tích Lỗ Hổng (Vulnerability Analysis)
- A. Mục Tiêu Module
- Hiểu rõ khái niệm Phân tích lỗ hổng (Vulnerability Analysis): Là quá trình có hệ thống nhằm xác định, đánh giá (thường dựa trên mức độ nghiêm trọng và khả năng khai thác) và ưu tiên các điểm yếu bảo mật (lỗ hổng) trong hệ thống, mạng, ứng dụng hoặc giao thức.14
- Nắm vững Vòng đời quản lý lỗ hổng (Vulnerability Management Life Cycle): Bao gồm các giai đoạn như xác định tài sản, quét lỗ hổng, phân tích, báo cáo, khắc phục và xác minh.14
- Biết cách phân loại lỗ hổng: Thường dựa trên mức độ nghiêm trọng (ví dụ: Low, Medium, High, Critical) và phạm vi khai thác (ví dụ: Local – yêu cầu truy cập cục bộ, Remote – có thể khai thác từ xa).53
- Nhận diện các nguyên nhân phổ biến gây ra lỗ hổng:
- Misconfiguration: Cấu hình sai các dịch vụ, ứng dụng, hệ điều hành (ví dụ: quyền truy cập không đúng, dịch vụ không cần thiết được bật).
- OS/Application Flaws: Lỗi trong mã nguồn của hệ điều hành hoặc ứng dụng.
- Default Passwords/Configurations: Sử dụng mật khẩu hoặc cấu hình mặc định không an toàn.
- Poor Patch Management: Không cập nhật bản vá cho các lỗ hổng đã biết.
- Design Flaws: Lỗi trong thiết kế kiến trúc của hệ thống hoặc ứng dụng.
- Zero-Day Vulnerabilities: Lỗ hổng chưa được công bố hoặc chưa có bản vá.
- Third Party Risks: Lỗ hổng từ các thư viện hoặc thành phần của bên thứ ba.
- Legacy Platform Vulnerabilities: Sử dụng các nền tảng cũ không còn được hỗ trợ.
- Improper Certificate and Key Management: Quản lý chứng chỉ và khóa mã hóa yếu kém.54
- Làm quen với các cơ sở dữ liệu lỗ hổng công khai:
- CVE (Common Vulnerabilities and Exposures): Một danh sách các lỗ hổng và phơi bày bảo mật thông tin được công khai, mỗi mục có một mã định danh CVE duy nhất (ví dụ: CVE-2011-2523).14
- NVD (National Vulnerability Database): Một cơ sở dữ liệu của chính phủ Hoa Kỳ, được đồng bộ hóa với danh sách CVE, cung cấp thông tin chi tiết hơn như điểm CVSS, bản vá, và các thông tin liên quan.14
- Hiểu về Hệ thống tính điểm lỗ hổng CVSS (Common Vulnerability Scoring System): Một framework tiêu chuẩn để đánh giá mức độ nghiêm trọng của lỗ hổng, bao gồm các nhóm metric:
- Base Metrics: Các đặc tính cố hữu của lỗ hổng (ví dụ: Attack Vector, Attack Complexity, Privileges Required, User Interaction, Confidentiality/Integrity/Availability Impact). Điểm Base thường được NVD báo cáo.55
- Temporal Metrics: Các yếu tố thay đổi theo thời gian (ví dụ: Exploit Code Maturity, Remediation Level, Report Confidence).
- Environmental Metrics: Các yếu tố phụ thuộc vào môi trường cụ thể của tổ chức.
- Phân biệt các loại quét lỗ hổng:
- External vs. Internal Scanning: Quét từ bên ngoài mạng (như một hacker) so với quét từ bên trong mạng.54
- Host-based vs. Network-based Scanning: Quét lỗ hổng trên một máy chủ cụ thể so với quét nhiều thiết bị trên mạng.53
- Authenticated (Credentialed) vs. Unauthenticated (Uncredentialed) Scanning: Quét với quyền truy cập (ví dụ: user/pass) cho phép kiểm tra sâu hơn so với quét mà không có thông tin đăng nhập.
- Automated Scanning: Sử dụng các công cụ tự động để phát hiện lỗ hổng dựa trên các quy tắc và cơ sở dữ liệu đã biết.54
- Tìm hiểu các phương pháp tiếp cận đánh giá lỗ hổng:
- Product-based Assessment: Đánh giá dựa trên các sản phẩm bảo mật cụ thể.
- Service-based Assessment: Đánh giá dựa trên các dịch vụ đang chạy.
- Tree-based Assessment: Kiểm toán viên chọn các chiến lược khác nhau cho từng máy hoặc thành phần.54
- Inference-based Assessment: Xây dựng danh sách các giao thức, sau đó phát hiện cổng và dịch vụ, rồi thực hiện các bài kiểm tra liên quan.53
- Sử dụng các công cụ quét lỗ hổng phổ biến: Nessus, OpenVAS (GVM – Greenbone Vulnerability Management), Nikto, Nmap (sử dụng NSE scripts cho vulnerability scanning), Burp Suite (cho ứng dụng web), SearchSploit/Exploit-DB (để tìm exploit cho các lỗ hổng đã phát hiện).13
- Học cách phân tích báo cáo quét lỗ hổng: Xác định các kết quả dương tính giả (false positives – báo cáo lỗ hổng không tồn tại) và âm tính giả (false negatives – bỏ sót lỗ hổng thực sự), ưu tiên các lỗ hổng cần khắc phục dựa trên mức độ nghiêm trọng và bối cảnh kinh doanh.14
- Nhận biết vai trò của Trí tuệ Nhân tạo (AI) trong phân tích lỗ hổng, ví dụ như các công cụ đánh giá lỗ hổng được hỗ trợ bởi AI (AI-Powered Vulnerability Assessment Tools).14
- Vulnerability research là cần thiết để thu thập thông tin về các xu hướng bảo mật, các mối đe dọa mới được phát hiện, bề mặt tấn công, vector tấn công và các kỹ thuật.53 Nó giúp các tổ chức phát triển các chiến lược phòng thủ mạnh mẽ.
- Quét lỗ hổng liên quan đến việc phân tích các giao thức, dịch vụ và cấu hình để phát hiện các lỗ hổng và lỗi thiết kế có thể làm lộ hệ điều hành và ứng dụng của nó để khai thác, tấn công
Nguồn tham khảo
CEH VIETNAM https://cehvietnam.com
Đào tạo CEH v13, CEH MASTER, CPENT / LPT
Vulnerability Scanning with Nessus Home | Free Video Tutorial – Udemy, CEH VIETNAM https://www.udemy.com/tutorial/metasploit-framework-penetration-testing-with-metasploit/vulnerability-scanning-with-nessus-home/
Setting up a pentest Lab with pfSense in virtualBox – Infosec, CEH VIETNAM https://www.infosecinstitute.com/resources/penetration-testing/setting-pentest-lab-pfsense-virtualbox/
How To Install Kali Linux – A Step-by-Step Guide – UltaHost, CEH VIETNAM https://ultahost.com/knowledge-base/how-to-install-kali-linux-a-step-by-step-guide/
Installing Kali Linux | Kali Linux Documentation, CEH VIETNAM https://www.kali.org/docs/installation/hard-disk-install/
Getting Started with Metasploitable2 and Kali Linux – Packt, CEH VIETNAM https://www.packtpub.com/en-us/learning/how-to-tutorials/getting-started-metasploitable2-and-kali-linux
Create a Vulnerable Desktop VM – Mastering Enterprise Networks – Eagle Pubs, CEH VIETNAM https://eaglepubs.erau.edu/mastering-enterprise-networks-labs/chapter/metasploitable/
Pre-built Metasploit 3 – Kali Linux 2018: Assuring Security by Penetration Testing, CEH VIETNAM https://www.oreilly.com/library/view/kali-linux-2018/9781789341768/f7491420-750a-4974-b16e-a6595a440036.xhtml
Setting Up a Vulnerable Target | Metasploit Documentation – Docs @ Rapid7, CEH VIETNAM https://docs.rapid7.com/metasploit/setting-up-a-vulnerable-target/
Learning Pentesting with Metasploitable3 – Infosec, CEH VIETNAM https://www.infosecinstitute.com/resources/penetration-testing/learning-pentesting-metasploitable3/
how to install owasp broken web apps in virtualbox : r/OracleVMVirtualBox – Reddit, CEH VIETNAM https://www.reddit.com/r/OracleVMVirtualBox/comments/11rvdw8/how_to_install_owasp_broken_web_apps_in_virtualbox/
Kali Linux and OWASP NOOB : r/Kalilinux – Reddit, CEH VIETNAM https://www.reddit.com/r/Kalilinux/comments/1abxwsz/kali_linux_and_owasp_noob/
Tutorial: Setting up a Virtual Pentesting Lab at Home – Cybrary, CEH VIETNAM https://www.cybrary.it/blog/tutorial-for-setting-up-a-virtual-penetration-testing-lab-at-your-home
CEHv13 Notes – Module 01: Introduction to Ethical Hacking , CEH VIETNAM https://blog.51sec.org/2025/01/cehv13-notes-module-1-introduction-to.html
Certified Ethical Hacker (CEH v13) Syllabus Explained (2025) – Axximum Infosolutions, CEH VIETNAM https://www.axximuminfosolutions.com/article/certified-ethical-hacker-ceh-v13-syllabus/
CEH Certification | Ethical Hacking Training & Course – EC-Council, CEH VIETNAM https://www.eccouncil.org/train-certify/certified-ethical-hacker-ceh/
Certified Ethical Hacker (CEHV13), CEH VIETNAM https://itsecurityct.com/wp-content/uploads/2024/12/CEH-V13.pdf
CEH – Certified Ethical Hacker Training with Certification – tecnovy Academy, CEH VIETNAM https://tecnovy.com/en/ec-council/certified-ethical-hacker-ceh
CEHv13 Module 2 Footprinting and Reconnaissance | PDF – SlideShare, CEH VIETNAM https://www.slideshare.net/slideshow/cehv13-module-2-footprinting-and-reconnaissance-b4c1/276494423
CEHv13 Notes – Module 02: Footprinting and Reconnaissance – NETSEC, CEH VIETNAM https://blog.51sec.org/2025/02/cehv13-notes-module-02-footprinting-and.html?m=0
CEHv13 Module 2: Footprinting and Reconnaissance.pdf – SlideShare, CEH VIETNAM https://www.slideshare.net/slideshow/cehv13-module-2-footprinting-and-reconnaissance-pdf/276501816
CEH v13 AI – Infosec Train, CEH VIETNAM https://www.infosectrain.com/wp-content/uploads/2024/10/CEH-v13.pdf
DNS (Domain Name System) Pentesting – Hackviser, CEH VIETNAM https://hackviser.com/tactics/pentesting/services/dns
DNS hacking (beginner to advanced) | Infosec, CEH VIETNAM https://www.infosecinstitute.com/resources/hacking/dns-hacking/
The Harvester & Recon-NG – StackSkills, CEH VIETNAM https://stackskills.com/courses/kali-linux-tutorial-for-ethical-hacking-penetration-test/lectures/54919234
Maltego 4, Part 02: Reconnaissance on a Person (Boris Epshteyn) – Hackers Arise, CEH VIETNAM https://hackers-arise.com/maltego-4-part-2-reconnaissance-on-a-person-boris-epshteyn/
DNS zone transfer and zone file (Updated) – ClouDNS Blog, CEH VIETNAM https://www.cloudns.net/blog/zone-transfer-zone-file-domain-namespace/
The Ultimate Guide to SMTP and DNS Enumeration Practices – InfosecTrain, CEH VIETNAM https://www.infosectrain.com/blog/the-ultimate-guide-to-smtp-and-dns-enumeration-practices/
OSINT: Master The Harvester on Kali Linux: Ultimate Guide to Information Gathering, CEH VIETNAM https://www.youtube.com/watch?v=OOAiqaZCESY
How To Discover IoT Devices With Shodan – ITU Online IT Training, CEH VIETNAM https://www.ituonline.com/how-to/how-to-discover-iot-devices-with-shodan/
Metasploitable 3 Walkthrough: Penetration Testing (Part 1) – SecureLayer7, CEH VIETNAM https://blog.securelayer7.net/metasploitable-3-walkthrough/
Module 18: IoT and OT Hacking – Rootkid – Cyber Journal, CEH VIETNAM https://blog.rootkid.in/exam-prep-notes/certified-ethical-hacker-v12-practical-notes/module-18-iot-and-ot-hacking
Module 3 Scanning Networks | PDF – Scribd, CEH VIETNAM https://www.scribd.com/document/675392504/Module-3-Scanning-Networks
Host Discovery | Nmap Network Scanning, CEH VIETNAM https://nmap.org/book/man-host-discovery.html
How to perform a TCP port scan on Metasploitable2 using Nmap in Kali Linux – LabEx, CEH VIETNAM https://labex.io/tutorials/nmap-how-to-perform-a-tcp-port-scan-on-metasploitable2-using-nmap-in-kali-linux-417884
Using Metasploit and Nmap to Scan for Vulnerabilities in Kali Linux | GeeksforGeeks, CEH VIETNAM https://www.geeksforgeeks.org/using-metasploit-and-nmap-to-scan-for-vulnerabilities-in-kali-linux/
Nmap Cheat Sheet Part 4: Master Firewall Scanning & IDS Evasion | Infosec, CEH VIETNAM https://www.infosecinstitute.com/resources/penetration-testing/nmap-cheat-sheet-part-4/
TCP Idle Scan (-sI) | Nmap Network Scanning, CEH VIETNAM https://nmap.org/book/idlescan.html
Perform Idle Scanning in Nmap – LabEx, CEH VIETNAM https://labex.io/tutorials/nmap-perform-idle-scanning-in-nmap-547105
Scanning and Managing Hosts | Metasploit Documentation – Docs @ Rapid7, CEH VIETNAM https://docs.rapid7.com/metasploit/scanning-and-managing-hosts/
Certified Ethical Hacker (CEH v13 with AI) | Decabyte, CEH VIETNAM http://decabyte.info/wp-content/uploads/2025/05/Certified-Ethical-Hacker-CEH-v13-with-AI_20250215_032152_0000.pdf
AidanBurkeCyb/Network-Vulnerability-Assessment-with-Nmap – GitHub, CEH VIETNAM https://github.com/AidanBurkeCyb/Network-Vulnerability-Assessment-with-Nmap
CEHv13 Notes – Module 04: Enumeration – NETSEC, CEH VIETNAM https://blog.51sec.org/2025/03/cehv13-notes-module-04-enumeration.html
How do I use Metasploit to perform NetBIOS enumeration on a target | Edureka Community, CEH VIETNAM https://www.edureka.co/community/286794/how-use-metasploit-to-perform-netbios-enumeration-on-target
SNMP Enumeration test – Enumeration – Certified Ethical Hacker questions | TrustEd Institute, CEH VIETNAM https://trustedinstitute.com/concept/ceh/enumeration/snmp-enumeration/
python-ldapdomaindump | Kali Linux Tools, CEH VIETNAM https://www.kali.org/tools/python-ldapdomaindump/
SMTP User Enumeration Utility – Rapid7 Vulnerability Database, CEH VIETNAM https://www.rapid7.com/db/modules/auxiliary/scanner/smtp/smtp_enum/
How to use enum4linux for Network Infrastructure VAPT? – CyberSapiens, CEH VIETNAM https://cybersapiens.com.au/cyber-awareness/how-to-use-enum4linux-for-network-infrastructure-vapt/
Enum4Linux – Windows & Samba Enumeration – YouTube, CEH VIETNAM https://www.youtube.com/watch?v=cGVNWU17nuM
Password Cracking: SNMP – Hacking Articles, CEH VIETNAM https://www.hackingarticles.in/snmp-password-cracking/
Active directory pentesting: cheatsheet and beginner guide – HackTheBox, CEH VIETNAM https://www.hackthebox.com/blog/active-directory-penetration-testing-cheatsheet-and-guide
Certified Ethical Hacker (CEH v13) – Encryptic Security – Ethical Hacking Course, CEH VIETNAM https://landing.encrypticsecurity.com/certified-ethical-hacker-training/
Collect MIB Walk Data Using the SolarWinds® SNMP Walk Tool – YouTube, CEH VIETNAM https://www.youtube.com/watch?v=yvG9mZpI7pY
SNMP Walk – IBM, CEH VIETNAM https://www.ibm.com/docs/en/sevone-npm/7.1.0?topic=guide-snmp-walk
CEH13 Notes – Module 05: Vulnerability Analysis – NETSEC, CEH VIETNAM https://blog.51sec.org/2025/05/cehv13-notes-module-05-vulnerability.html
Certified Ethical Hacker (CEHv13) Module 05 Vulnerability Analysis Flashcards | Quizlet, CEH VIETNAM https://quizlet.com/976116357/certified-ethical-hacker-cehv13-module-05-vulnerability-analysis-flash-cards/
Understanding the Difference Between CVE and CVSS – Balbix, CEH VIETNAM https://www.balbix.com/insights/whats-the-difference-between-cve-and-cvss/
Article 2 – Navigating the NVD and CVSS: A Guide to Managing Vulnerabilities – adorsys, CEH VIETNAM https://adorsys.com/blog/article-2-navigating-the-nvd-and-cvss-a-guide-to-managing-vulnerabilities/
How To Use Nmap for Vulnerability Scanning: Complete Tutorial – eSecurity Planet, CEH VIETNAM https://www.esecurityplanet.com/networks/nmap-vulnerability-scanning-made-easy/
How to conduct a basic vulnerability scan on Metasploitable2 in Kali Linux | LabEx, CEH VIETNAM https://labex.io/tutorials/wireshark-how-to-conduct-a-basic-vulnerability-scan-on-metasploitable2-in-kali-linux-417878
How To Setup: Metasploitable 2 & OpenVAS (Tutorial) – YouTube, CEH VIETNAM https://www.youtube.com/watch?v=O8FQO17yEKw
Manual Exploitation | Metasploit Documentation – Docs @ Rapid7, CEH VIETNAM https://docs.rapid7.com/metasploit/manual-exploitation/
SearchSploit – Exploit DB, CEH VIETNAM https://www.exploit-db.com/documentation/Offsec-SearchSploit.pdf
Vulnerability Scanning – Mastering Enterprise Networks – Eagle Pubs, CEH VIETNAM https://eaglepubs.erau.edu/mastering-enterprise-networks-labs/chapter/vulnerability-scanning/





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