CompTIA Pentest+ (PT0-002) Bài 7: Phân tích kết quả quét lỗ hổng
Sau khi thu thập thông tin về mục tiêu trong giai đoạn trinh sát, bước tiếp theo là quét và phân tích các điểm yếu, lỗ hổng trên các dịch vụ, hệ thống, ứng dụng web của tổ chức. Kết quả quét sẽ giúp đội ngũ PenTest lập bản đồ mạng, danh sách tài sản, lựa chọn vector tấn công hiệu quả và lên kế hoạch xâm nhập chi tiết.
Trong bài này, chúng ta sẽ tìm hiểu cách sử dụng các công cụ phổ biến như Nmap, NSE script, Burp Suite để quét, đánh giá và báo cáo các lỗ hổng bảo mật thường gặp trong mạng doanh nghiệp.
I. Giới thiệu về Nmap và NSE
- Quét các mục tiêu thú vị
- Nmap (Network Mapper) là công cụ quét mạng được sử dụng rộng rãi nhất hiện nay với nhiều tùy chọn linh hoạt và khả năng mở rộng:
- Khám phá máy chủ và dịch vụ (host and service discovery)
- Dấu vân tay hệ điều hành (OS fingerprinting)
- Thu thập địa chỉ MAC
- Phát hiện các máy chủ dễ bị tấn công (vulnerable hosts)
Ví dụ:
Đội PenTest của Security365 sử dụng Nmap để quét hệ thống của comptia.academy với lệnh:
nmap -sS -O -p- --script vuln 10.0.0.0/24
Giải thích các tùy chọn:
-sS
: quét TCP SYN, nhanh và kín đáo-O
: dò hệ điều hành-p-
: quét tất cả 65535 cổng--script vuln
: chạy các NSE script để phát hiện lỗ hổng phổ biến10.0.0.0/24
: dải mạng cần quét
Nmap trả về báo cáo chi tiết:
- 20 máy tính đang hoạt động trong dải mạng, chạy các HĐH như Windows 10, Windows Server 2016, Ubuntu Linux, CentOS…
- Các dịch vụ phổ biến đang mở như HTTP (cổng 80), HTTPS (443), SSH (22), DNS (53), FTP (21), SMB (445)…
- Một số máy tính có dấu hiệu chạy dịch vụ lỗi thời, dễ bị khai thác như telnet (23), rsh (514), rlogin (513)
- Phát hiện lỗ hổng nghiêm trọng CVE-2019-0708 (BlueKeep) trên máy chủ Windows Server 2008 R2, có thể thực thi mã từ xa
- Website trên máy chủ web dính lỗi SQL injection và XSS
- Dịch vụ FTP cho phép đăng nhập nặc danh
- Cân nhắc về tốc độ và hiệu năng quét
- Quét lỗ hổng là một phần của PenTest, tuy nhiên quá trình này có thể khá “hung hăng” và gây xáo trộn
- Bạn có thể điều chỉnh tốc độ quét bằng tùy chọn timing:
-T <0-5>
, với T0 là chậm nhất và T5 là nhanh nhất - Trong một số trường hợp, thiết bị mạng áp dụng tính năng hạn chế băng thông (rate limiting), giới hạn lưu lượng dữ liệu thông qua cơ chế traffic policing hoặc traffic shaping.
- Nmap sẽ phát hiện rate limiting và tự động điều chỉnh tốc độ quét để tránh làm tràn ngập mạng (flooding).
Ví dụ:
Khi quét quá nhanh với lệnh nmap -T5 comptia.academy
, đội Security365 nhận được email từ quản trị mạng yêu cầu giảm tải vì đang gây ảnh hưởng.
Sau khi hạ xuống mức -T2
, quét vẫn diễn ra ổn định và không có khiếu nại gì thêm.
Nmap cũng ghi nhận lại các dấu hiệu rate limiting như thời gian phản hồi (latency) bất thường cao từ một số máy chủ cụ thể, ví dụ máy chủ web khi quét các cổng HTTP/HTTPS.
- Dùng giao thức TCP hay UDP khi quét
- TCP có thể cung cấp kết quả chi tiết hơn khi quét. Nmap có nhiều loại quét sử dụng TCP như:
- TCP ACK để vượt qua tường lửa (firewall ruleset)
- TCP connect (full scan) và quét XMAS (Christmas tree)
- Ngược lại UDP scan thường chậm hơn và khó khăn hơn. Ngoài ra các cổng mở (open) và được lọc (filtered) hiếm khi trả lời.
- Vì vậy, đội ngũ có thể chọn không thực hiện UDP scan để tiết kiệm thời gian.
Ví dụ:
Đội ngũ Security365 chạy lệnh so sánh kết quả giữa TCP SYN scan và UDP scan:
nmap -sS comptia.academy nmap -sU comptia.academy
Kết quả cho thấy:
- TCP scan phát hiện 6 cổng mở bao gồm HTTP (80), HTTPS (443), SSH (22), SMTP (25), POP3 (110), IMAP (143) sau 30 giây
- UDP scan chỉ nhận được phản hồi từ DNS (53) và SNMP (161) và tốn gần 10 phút để hoàn thành
- Hầu hết các dịch vụ phổ biến chạy trên nền TCP, ngoại trừ một số ứng dụng đặc thù như DNS, DHCP, SNMP, NTP, TFTP, VoIP dùng UDP
- UDP scan phù hợp để tìm lỗ hổng giao thức hoặc đoán mật khẩu dịch vụ, nhưng khó phát hiện cổng đóng/mở vì thiếu phản hồi
- Viết script với Nmap Scripting Engine (NSE)
- NSE là thành phần cốt lõi của Nmap cho phép người dùng tùy biến và tự động hóa quá trình quét.
- Các script có thể:
- Thực hiện khám phá mạng nâng cao
- Xác định lỗ hổng
- Phát hiện sự tồn tại của phần mềm độc hại như trojan và backdoor
- Để sử dụng một NSE script, chỉ cần thêm tùy chọn:
--script <tên script>
Ví dụ:
Đội Security365 chạy script để quét lỗ hổng phổ biến trên máy chủ web của comptia.academy:
nmap -sV --script=http-enum,http-vuln*,http-backup-finder comptia.academy
-sV
: dò phiên bản dịch vụhttp-enum
: liệt kê các đường dẫn của trang webhttp-vuln*
: tất cả các script liên quan đến lỗ hổng HTTPhttp-backup-finder
: tìm các tệp sao lưu ẩn
Nmap phát hiện:
- Website chạy trên nền WordPress với nhiều plugin và theme lỗi thời
- Tệp sao lưu
backup_db.sql
chứa thông tin cấu hình CSDL - Có thể truy cập vào trang
/wp-admin
mà không cần xác thực - Nhiều lỗ hổng nghiêm trọng như RCE qua plugin, LFI, RFI, XSS, SQLi trên các trang lỗi
- Sử dụng thư viện script của Nmap
- Các script được nhóm thành nhiều loại khác nhau, bao gồm:
- Malware – script có thể phát hiện mã độc
- Discovery – dùng để khám phá mạng, dịch vụ và máy chủ
- Vulnerabilities – các lệnh khai thác (exploitation)
- Để sử dụng nhiều script trong một lệnh, dùng dấu phẩy (,) để ngăn cách
- Một tùy chọn mạnh mẽ là dùng tên cơ sở script kết hợp ký tự đại diện (*) hoặc chạy tất cả script trong một loại cụ thể
Ví dụ:
Để quét toàn diện các lỗ hổng mạng, web, các mối đe dọa như mã độc trên hệ thống comptia.academy, đội Security365 chạy lệnh:
nmap -sV --script "vuln,discovery,malware" 192.168.1.0/24
Các script phổ biến trong bộ Nmap:
smb-vuln-*
: các lỗ hổng của dịch vụ SMB (EternalBlue, MS08-067…)ftp-anon
: cho phép truy cập FTP nặc danhdns-zone-transfer
: chuyển vùng DNShttp-enum
: liệt kê các đường dẫn của websitessh-brute
: tấn công brute-force SSHsmb-brute
: brute-force SMBmysql-brute
: brute-force MySQL
II. Liệt kê các máy tính và tài sản mạng
- Lập bản đồ mạng
- Trước khi tấn công, đội cần lập bản đồ mạng
- Để cung cấp thông tin chi tiết về các máy chủ và dịch vụ đang chạy trong môi trường mục tiêu
- Khi đánh giá mạng, cần thu thập càng nhiều chi tiết càng tốt. Một số loại quét bao gồm:
- Ping Scan: để biết máy nào đang phản hồi
- TCP Scan: kiểm tra cổng TCP đang mở và lắng nghe
- OS Fingerprinting: xác định hệ điều hành đang sử dụng
Ví dụ:
Đội Security365 thực hiện lập bản đồ mạng của comptia.academy theo các bước:
- Dùng lệnh
nmap -sn 192.168.1.0/24
để liệt kê các máy tính sống trong dải mạng - Quét các cổng TCP phổ biến với SYN scan
nmap -sS -p 1-1024 192.168.1.1-254
- Dò hệ điều hành với tùy chọn
-O
:nmap -sV -O 192.168.1.100
- Chạy script thu thập thông tin với
--script discovery
Kết quả:
- Phát hiện 50 máy tính, 5 máy in, 10 camera, 2 điện thoại VoIP đang hoạt động
- Máy chủ web 192.168.1.10 mở cổng 80, 443 chạy WordPress trên Ubuntu 20.04
- Máy chủ thư điện tử 192.168.1.20 mở cổng SMTP, POP3, IMAP chạy Exchange 2016 trên Windows Server 2019
- Phát hiện 2 access point không dây có SSID “comptia” và “comptiaguest”
- Tìm thấy máy chủ quản lý CCTV trên cổng 8080, sử dụng giao thức RTSP để truyền luồng video
- Có 1 máy chủ cơ sở dữ liệu chạy MySQL ẩn sau NAT với cổng mặc định 3306
- Liệt kê danh sách các máy trạm chạy hệ điều hành Windows 10 và MAC OS
- Phát hiện các máy tính và dịch vụ thú vị
- Đội cần dùng kết hợp nhiều loại quét để hiểu toàn diện về môi trường mạng
- Theo mặc định, Nmap thực hiện khám phá máy chủ bằng:
- Gói TCP SYN tới cổng 443
- Gói TCP ACK tới cổng 80
- Gói ICMP loại 8 (echo request)
- Gói ICMP loại 13 (timestamp request)
- Các yêu cầu ARP để thu thập địa chỉ MAC
Ví dụ:
Để phát hiện các hệ thống thú vị tiềm ẩn lỗ hổng trong mạng comptia.academy, đội Security365:
- Dùng lệnh
nmap 192.168.1.0/24
để khám phá máy chủ theo phương pháp mặc định - Gửi các gói tin TCP ACK và SYN tới các cổng phổ biến (21, 22, 25, 80, 110, 139, 443, 445) để kiểm tra trạng thái
- Thêm tùy chọn
-sU
để gửi các gói UDP tới cổng DNS (53) và SNMP (161) - Sử dụng kỹ thuật OS fingerprinting (-O) để suy ra hệ điều hành
- Chạy các NSE script như
smb-vuln*
,ftp-anon
,dns-zone-transfer
để tìm lỗ hổng dịch vụ.
Kết quả chỉ ra:
- Máy chủ thư điện tử mail.comptia.academy (192.168.1.20) có thể bị tấn công SMTP Open Relay và brute-force POP3/IMAP
- 2 máy trạm 192.168.1.55 và 192.168.1.60 dính lỗi SMBv1 và MS17-010 cho phép đánh cắp thông tin đăng nhập và thực thi mã từ xa
- Máy chủ web chạy mã nguồn WordPress 4.7 lỗi thời, một plugin lưu trữ mật khẩu dưới dạng plaintext trong CSDL
- Tên miền comptia.academy có bản ghi DNS wildcard cho phép tạo subdomain tùy ý, tiềm ẩn nguy cơ tấn công DNS Rebinding
- Dịch vụ FTP cho phép truy cập nặc danh vào thư mục /pub chứa các tài liệu nội bộ
- Máy chủ 192.168.1.100 mở cổng Telnet (23) và sử dụng giao thức Rlogin (513) không an toàn
- Điều chỉnh cách thức quét
- Đội có thể cần điều chỉnh cách quét nếu gặp trục trặc
- Ví dụ: nếu tường lửa chặn ICMP ping mặc định, đội có các lựa chọn khác như:
- TCP ACK Ping
-PA <danh sách cổng>
: đặt cờ ACK trong TCP header - UDP Ping
-PU <danh sách cổng>
: sử dụng giao thức UDP
- TCP ACK Ping
- Nmap sẽ hiện thị các cổng được phát hiện, với một trong bốn trạng thái:
- Open (mở), closed (đóng), filtered (bị lọc), unfiltered (không lọc)
Ví dụ: Khi quét comptia.academy bằng lệnh nmap -sn 192.168.1.0/24
, đội Security365 chỉ nhận về 10 máy sống trong số 50 máy đã biết. Nguyên nhân là do tường lửa perimeter chặn gói ICMP và TCP SYN tới cổng 443.
Chuyển sang dùng phương pháp TCP ACK tới cổng 80 với lệnh nmap -PA -p80 192.168.1.0/24
, đội đã phát hiện ra 45 máy sống. Các máy này trả lời gói TCP ACK bằng gói RST nếu cổng đóng hoặc không trả lời gì nếu cổng mở.
Cuối cùng đội áp dụng UDP ping tới cổng DNS 53 nmap -PU -p53 192.168.1.0/24
và xác định được 48 máy tính đang hoạt động. Kiểm tra cho thấy 2 máy không phản hồi đều có cài đặt tường lửa cá nhân chặn tất cả các loại ping.
- Giai đoạn khám phá máy chủ
- Trong khám phá máy chủ, đội có một số tùy chọn sau:
- Bỏ qua hoàn toàn pha khám phá và coi tất cả máy là sống bằng cách dùng tùy chọn
-Pn
- Chỉ thực hiện phát hiện mạng mà không quét cổng với tùy chọn
-sn
- Chạy script mà không ping hay quét cổng bằng hai tùy chọn
-Pn
và-sn
cùng lúc
- Bỏ qua hoàn toàn pha khám phá và coi tất cả máy là sống bằng cách dùng tùy chọn
Ví dụ: Đội Security365 chạy các lệnh sau để khám phá máy chủ web comptia.academy:
Copy codenmap -Pn -sV -p 80,443 comptia.academy
nmap -sn --script dns-brute comptia.academy
nmap -Pn -sn --script http-title comptia.academy
Giải thích:
- Lệnh đầu bỏ qua ping và quét cổng 80, 443 để xác định dịch vụ web
- Lệnh thứ hai chỉ dò tên miền phụ với script
dns-brute
mà không quét cổng - Lệnh cuối cùng bỏ qua ping và quét cổng, chỉ chạy script
http-title
để lấy tiêu đề trang web => Các lệnh này giúp tiết kiệm thời gian và băng thông khi chỉ tập trung vào một số thông tin cụ thể về mục tiêu
- Dấu vân hệ điều hành (OS Fingerprinting)
- Nmap có thể phát hiện HĐH và phiên bản đang chạy cùng với việc dò dịch vụ trên một máy hoặc dải địa chỉ
- Khi đã xác định được máy dễ bị tấn công, có thể giảm thiểu lỗ hổng hoặc đội có thể chủ động thực hiện tấn công vào hệ thống
- Trong quá trình dò vân, đội có thể sử dụng quét chủ động (active) hoặc thụ động (passive)
- Passive: thu thập lưu lượng mạng bằng công cụ bắt gói như Wireshark mà không cố gắng chủ động kết nối với bất kỳ máy chủ nào
- Active: chủ động gửi các gói dò đến mục tiêu và sau đó phân tích các gói tin trả về
Ví dụ: Chạy lệnh nmap -O comptia.academy
để dò hệ điều hành máy chủ web của tổ chức:
- Nmap gửi một loạt các gói dò tìm TCP/IP tới các cổng mở như SYN, ACK, NULL, FIN, Xmas…
- Từ nội dung và thứ tự của các gói phản hồi, Nmap so khớp dấu vân với cơ sở dữ liệu hơn 2600 hệ điều hành đã biết
- Các thuộc tính được sử dụng bao gồm: thứ tự các cờ TCP (flags), kích thước cửa sổ TCP (window size), giá trị TTL ban đầu, đặc điểm gói ICMP…
- Nmap xác định hệ thống comptia.academy chạy Linux kernel 3.X, có thể là Ubuntu 14.04 hoặc Debian 8 với độ tin cậy 90%
- Kiểm tra bằng lệnh
nmap -sV
cho thấy máy chủ web chạy Apache 2.4.18 trên nền Ubuntu, khớp với kết quả trên
Ngoài ra Nmap cũng hỗ trợ OS fingerprinting thụ động bằng lệnh nmap -sV --script=sinfp.vlan
để suy ra hệ điều hành dựa trên dữ liệu bắt được từ lưu lượng mạng mà không cần tương tác trực tiếp, hữu ích cho việc giám sát bảo mật liên tục.
- Xác định HĐH đang chạy
- Khi nhận được phản hồi từ mục tiêu, Nmap sẽ cố gắng hết sức để ước tính HĐH nào đang chạy
- Một số yếu tố chính để xác định HĐH:
- Cờ Don’t Fragment (DF) trong IPv4 header: bật hay tắt?
- Kích thước cửa sổ TCP (Window Size – WS): HĐH dùng giá trị WS nào?
- Time to Live (TTL): giá trị TTL của gói ra là bao nhiêu?
Ví dụ: Quét máy chủ mail.comptia.academy với tập hợp tùy chọn dò HĐH nmap -O --osscan-guess --fuzzy mail.comptia.academy
:
- Nmap gửi các gói dò theo thứ tự: TCP SYN tới cổng mở, TCP ACK tới cổng đóng, UDP tới cổng đóng, ICMP Echo Request
- Dựa vào thông tin gói trả về (IP ID, kích thước WS, giá trị TTL, cách đóng TCP handshake…), Nmap suy ra:
- Máy chủ chạy Windows Server, có thể là 2012 hoặc 2016
- Lý do: cờ DF được bật, TTL ban đầu là 128, WS là 8192, thứ tự đóng kết nối TCP đặc trưng cho Windows (RST trước ACK)
- Tùy chọn
--osscan-guess
cho phép đoán HĐH nếu không khớp chính xác - Tùy chọn
--fuzzy
sử dụng so khớp mờ để tăng khả năng nhận diện khi dấu vân không rõ ràng
- Nmap cũng phát hiện dịch vụ Exchange 2016 và IIS 10 chạy trên máy chủ, giúp khẳng định đó là Windows Server phiên bản mới.
III. Phân tích kết quả từ các bản quét
- Kiểm tra lưu lượng mạng
- Tùy vào loại bài kiểm tra, đội cần thu thập càng nhiều thông tin về mục tiêu càng tốt
- Một số câu hỏi mà đội cần tìm ra:
- Máy chủ và thiết bị nào thú vị và đáng để theo đuổi?
- Mục tiêu nằm ở đâu?
- Chúng ta muốn gì khi truy cập vào thiết bị hoặc máy chủ?
- Khi nào và bằng cách nào nên tấn công?
Ví dụ: Dựa vào kết quả quét lỗ hổng của Nessus và Acunetix, đội Security365 đánh giá và lựa chọn các mục tiêu tấn công hàng đầu:
- Máy chủ web comptia.academy dùng WordPress với plugin lậu cho phép thực thi mã và truy cập CSDL từ xa
- Mục tiêu: chiếm quyền điều khiển máy chủ và đánh cắp dữ liệu khách hàng, mã nguồn
- Thời điểm: cuối tuần khi ít người truy cập web và giám sát
- Cách thức: tận dụng lỗ hổng RCE của plugin lậu ABC để tải Webshell PHP, tạo tài khoản quản trị ngầm và ẩn dấu vết
- Máy trạm văn phòng nằm trong mạng 10.0.20.0/24 chạy Windows 7 không bản vá, dính lỗ hổng SMB và mã độc đào coin
- Mục tiêu: truy cập mạng nội bộ, đánh cắp dữ liệu tài chính và lây lan mã độc tống tiền
- Thời điểm: giờ hành chính khi nhiều máy tính bật và người dùng đăng nhập
- Cách thức: sử dụng khai thác SMB như EternalBlue và DoublePulsar để cài backdoor, lấy nội dung RAM và key logger
- Máy chủ cơ sở dữ liệu 192.168.1.100 sử dụng tài khoản mật khẩu mặc định và cho phép truy cập xa qua cổng 3306
- Mục tiêu: đọc, sửa hoặc xóa dữ liệu khách hàng và mã nguồn ứng dụng
- Thời điểm: ngay trong đêm để kịp sao lưu và mã hóa dữ liệu trước khi bị phát hiện
- Cách thức: dùng sqlmap để tấn công lỗ hổng SQLi trên site rồi connect tới CSDL, sử dụng Metasploit để brute-force mật khẩu và mã hóa các bản ghi
- Các phương pháp kiểm thử
- Tùy vào các tham số phạm vi dự án, đội có thể sử dụng một trong ba phương pháp khi kiểm thử:
- Unknown environment – không có thông tin nào được cung cấp cho đội
- Partially known environment – đội được cung cấp một số thông tin
- Known environment – đội được cung cấp tất cả chi tiết của môi trường
- Khi đội tìm hiểu thêm thông tin, họ có thể phác thảo sơ đồ mạng (topology) và xác định ranh giới rõ ràng hơn.
Ví dụ: Đội Security365 được yêu cầu thực hiện kiểm tra xâm nhập black-box (unknown environment) vào hệ thống của comptia.academy. Quy trình phát hiện thông tin diễn ra như sau:
- Giai đoạn 1 – Thăm dò bên ngoài:
- Lấy thông tin whois, tra DNS và subdomain của trang web
- Google dorking và OSINT trên mạng xã hội để tìm nhân viên IT, quản trị viên
- Quét trang web với Acunetix, WPScan và xem mã nguồn để khai thác lỗ hổng
- Giai đoạn 2 – Quét bên trong:
- Dò tìm dải mạng nội bộ bằng cách ping sweep và TCP SYN scan
- Dò tìm dải mạng nội bộ bằng cách ping sweep và TCP SYN scan
- Phát hiện các máy chủ, dịch vụ và lỗ hổng với Nmap
- Bắt lưu lượng mạng nội bộ tại router biên để tìm mật khẩu và tài khoản
- Giai đoạn 3 – Xâm nhập sâu:
- Sử dụng exploit để truy cập máy chủ web, cài webshell và keylogger
- Tìm và giải mã các tệp cấu hình chứa mật khẩu của hệ thống
- Phát tán mã độc tới các máy trạm và nâng cao đặc quyền
Sau mỗi giai đoạn, đội Security365 lại có cái nhìn rõ hơn về cấu trúc mạng, vị trí và loại tài sản, dịch vụ quan trọng của tổ chức. Từ đó họ điều chỉnh kịch bản và quyết định hướng tấn công phù hợp để đạt được quyền truy cập tối đa (Domain Admin) mà không bị phát hiện.
Đối với phương pháp partially/fully known, đội Security365 sẽ được cung cấp trước một phần hoặc toàn bộ sơ đồ mạng và tài liệu hệ thống. Lúc này họ có thể rút ngắn thời gian trinh sát và tập trung vào khai thác các lỗ hổng đã biết một cách nhanh chóng và hiệu quả hơn.
- Báo cáo bằng Nmap
- Nmap có thể đưa ra kết quả đặc biệt tốt khi khám phá các thiết bị mạng và lỗ hổng liên quan
- Khi xem kết quả quét, Nmap có một số định dạng báo cáo như:
- Interactive output: dễ đọc cho con người và là định dạng mặc định
- XML output (
-oX
): dạng linh hoạt - Grepable output (
-oG
): tạo tệp phù hợp với lệnh grep - Normal output (
-oN
): giống interactive nhưng có thể lưu kết quả quét Nmap vào tệp văn bản để phân tích sau
Ví dụ: Sau khi quét trang comptia.academy, đội Security365 xuất báo cáo bằng các lệnh:
Copy code# Xuất ra file XML để xử lý tự động
nmap -sV -oX report.xml comptia.academy
# Lưu kết quả dạng grep để lọc bằng AWK/Sed
nmap -sV -oG report.grep comptia.academy
# Ghi toàn bộ quá trình quét chi tiết vào file
nmap -sV -p- -oN report.nmap comptia.academy
Đồng thời họ cũng sử dụng công cụ Searchsploit và Vulners để tìm các mã khai thác đã công bố (public exploit) cho những phiên bản dịch vụ cụ thể từ kết quả quét Nmap.
Kết hợp với các báo cáo quét lỗ hổng chuyên sâu từ Nessus, Acunetix và kết quả phân tích lưu lượng mạng, đội Security365 có bằng chứng và cơ sở dữ liệu đầy đủ để viết báo cáo tấn công và PoC (proof of concept) chi tiết về các lỗ hổng bảo mật quan trọng của hệ thống comptia.academy.
- Giao tiếp với Zenmap
- Zenmap là công cụ giao diện đồ họa (GUI) đi kèm với Nmap
- Có thể sử dụng trên nhiều nền tảng khác nhau như Windows, Linux, MacOS
- Tạo hình ảnh trực quan về sơ đồ mạng (network topology)
- Để đánh giá các thiết bị và cung cấp cái nhìn sâu sắc khi lên kế hoạch tấn công
Ví dụ: Sau khi quét mạng nội bộ của comptia.academy bằng Zenmap, giao diện hiển thị:
- Sơ đồ mạng gồm 3 vùng: DMZ với máy chủ web và thư điện tử, LAN với các máy trạm, Server Farm với máy chủ CSDL và quản lý
- Biểu tượng từng thiết bị (máy tính, điện thoại, máy in, camera) với thông tin cổng dịch vụ đang mở
- Đường kết nối giữa các thiết bị cho thấy kết nối mạng và phân vùng VLAN
- Bảng liệt kê các máy chủ, dịch vụ, hệ điều hành và lỗ hổng tương ứng
- Mức độ nghiêm trọng của lỗ hổng được thể hiện màu sắc như đỏ (critical), cam (high), vàng (medium)…
Nhìn vào bản đồ trực quan này, đội Security365 dễ dàng xác định:
- Vùng DMZ chứa nhiều lỗ hổng web và không được bảo vệ đúng mực nên cần ưu tiên tấn công trước
- Từ DMZ sẽ pivotig vào mạng LAN và phát tán mã độc tới các máy trạm
- Máy chủ CSDL và tệp được đặt chung vùng Server Farm nên có thể truy cập trực tiếp sau khi xâm nhập
- Các điểm yếu về mật khẩu và cấu hình sai VLAN cho phép truy cập giữa các vùng vốn phải độc lập
- Thu thập dấu vết bằng DNS
- Có thể tiết lộ thêm các mục tiêu giúp đội tìm hiểu thêm về cấu trúc mạng của tổ chức
- DNS có thể trở thành nạn nhân của một số mối đe dọa:
- Tấn công làm tràn hoặc khuếch đại (DNS flood/amplification)
- Đầu độc bộ nhớ cache (cache poisoning)
- Lộ tệp vùng (zone file)
Ví dụ: Để kiểm tra các lỗ hổng DNS của comptia.academy, đội Security365 sử dụng các kỹ thuật sau:
- Dùng công cụ như DNSRecon, DNSEnum, fierce để dò tìm tên miền phụ (subdomain) và địa chỉ IP tương ứng
- Phát hiện trang quản trị Gitlab tại git.comptia.academy có khả năng chứa mã nguồn và mật khẩu
- Trang dev.comptia.academy tiết lộ đang chạy WordPress phiên bản cũ chứa nhiều lỗ hổng
- Truy vấn bản ghi ANY với DNS server của comptia.academy để xem liệu nó có hỗ trợ DNSSEC không
- Kết quả cho thấy DNSSEC chưa được triển khai, dễ bị tấn công bằng cách tạo bản ghi giả mạo
- Chạy script
nmap --script=dns-zone-transfer --script-args=domain=comptia.academy
để thử chuyển vùng- Máy chủ DNS cho phép chuyển vùng không hạn chế, listing toàn bộ tên miền phụ kèm địa chỉ IP
- Lộ các tên miền nhạy cảm như: vpn.comptia.academy, m.comptia.academy (webmail), crm.comptia.academy, voip.comptia.academy
- Quét trang web và ứng dụng
- Trong bài kiểm tra xâm nhập, đội có thể kiểm tra máy chủ web của tổ chức theo một số cách:
- Kiểm tra thủ công mã nguồn và các thành phần trong trang web xem có chứa chú thích (comment) hoặc các mục thú vị khác không
- Xem nhật ký truy cập web (access log) để theo dõi hoạt động của một trang web
- Chặn lưu lượng bằng proxy giữa trình duyệt web và máy chủ
- Burp Suite là một nền tảng tích hợp dùng để kiểm tra bảo mật của ứng dụng web
- Hoạt động như một proxy cục bộ để bắt các yêu cầu HTTP và phản hồi
- Khi sử dụng proxy, đội có thể thu thập thêm dữ liệu để kiểm tra các vấn đề bảo mật xảy ra trong một giao dịch web
- Lỗ hổng có thể bao gồm: điểm yếu mật mã, xác thực thiếu hoặc yếu và các lỗ hổng web khác
- Khi phát hiện, Burp Suite sẽ liệt kê chi tiết của các lỗ hổng trong bảng điều khiển
Ví dụ: Cấu hình Burp Suite làm proxy trung gian giữa trình duyệt và trang comptia.academy, đội Security365 bắt được các yêu cầu:
- Login POST request chứa username và password dạng base64
- Giá trị cookie session không đặt cờ httpOnly và secure
- Tham số orderID trong URL có dạng số và tự động tăng
- Input của form tìm kiếm không được lọc và hiển thị lại trên trang kết quả
Dựa vào đó, đội tiến hành các kiểm tra: - Tấn công bruteforce tài khoản admin bằng Intruder và password list
- Thử đoán và đổi giá trị cookie session để cướp phiên đăng nhập
- Tăng giảm giá trị orderID để truy cập vào đơn hàng của người dùng khác (IDOR)
- Chèn các ký tự đặc biệt và payload SQLi, XSS vào ô tìm kiếm Phát hiện trang web comptia.academy dính nhiều lỗ hổng nghiêm trọng cho phép:
- Đăng nhập admin với tài khoản mật khẩu yếu
- Chiếm quyền truy cập của người dùng đã đăng nhập
- Xem và sửa đổi đơn đặt hàng, lộ thông tin khách
- Chèn mã độc vào CSDL và trang kết quả tìm kiếm để tấn công người dùng và admin
Tổng kết: Phân tích kết quả các bài kiểm tra, quét và thu thập thông tin là công đoạn vô cùng quan trọng trong quá trình kiểm tra xâm nhập. Nó đòi hỏi sự kết hợp giữa kiến thức chuyên sâu về an ninh mạng, khả năng suy luận và óc phán đoán của người pentest. Kết quả phân tích giúp xác định được các tài sản quan trọng, phương thức triển khai công nghệ, lỗ hổng tồn tại trên từng hệ thống. Từ đó hình thành nên bức tranh tổng quan về trạng thái an ninh mạng của tổ chức, thứ tự ưu tiên trong việc khắc phục và nâng cao hệ thống bảo vệ. Báo cáo đánh giá cũng là cơ sở để đưa ra các khuyến nghị về chính sách, quy trình an ninh cũng như kế hoạch ứng phó sự cố hiệu quả khi xảy ra tấn công thật sự. Ngoài ra với các bằng chứng và PoC rõ ràng, báo cáo pentest còn giúp nâng cao nhận thức của lãnh đạo và các bên liên quan về mối đe dọa an ninh mạng, từ đó thúc đẩy việc đầu tư nguồn lực thích đáng cho an toàn thông tin. Để trở thành một chuyên gia pentest, bên cạnh việc thành thạo các công cụ, phương pháp luận kiểm thử, cần phải liên tục trau dồi và cập nhật kiến thức chuyên sâu về các lĩnh vực liên quan như quản trị hệ thống, phát triển ứng dụng web, điện toán đám mây, di động… Thông qua các chương trình đào tạo, chứng chỉ an ninh mạng uy tín như CompTIA PenTest+, CEH, OSCP…
Khuyến nghị:
- Để được đào tạo bài bản về kiến thức và kỹ năng Pentest, bạn nên tham gia khóa học chính thức CompTIA PenTest+ của CompTIA Vietnam tại website: https://comptia.edu.vn
- Hoặc tham gia học online qua Learning Management System (LMS) trên cổng đào tạo An toàn thông tin trực tuyến Security365.vn: https://security365.vn
Trình bày bởi : Vinh Nguyen Tran Tưong
Tài liệu hỗ trợ học tập và ôn thi Chứng Chỉ Quốc Tế CompTIA Pentest +
Chú ý : Các ví dụ chỉ là giả định cho dễ hiểu, không phải là tình huống thực tế.
Để lại một bình luận