STài Liệu Học Tập PWK
Tài Liệu Học Tập PWK

6. Information Gathering

PWK / OSCP

Lập bản đồ bề mặt tấn công bằng thu thập thông tin thụ động và chủ động

Mở đầu

Cách sử dụng bộ slide

Điều hướng

Mũi tên trái/phải, Space, Home và End.

Mục lục

Mở danh sách chủ đề và nhảy đến slide cần xem.

Toàn màn hình

Dùng khi quay video hoặc trình chiếu trực tiếp.

In / PDF

Mỗi slide được tách thành một trang 16:9.

Sao chép lệnh

Các khối lệnh quan trọng có nút sao chép.

Ghi nhớ vị trí

Tải lại trang vẫn trở về slide đang học.

Mở đầu

Bản đồ chương 6

01Vòng đời pentestHiểu vai trò của enumeration trong toàn bộ engagement.
02Passive Information GatheringThu thập dữ liệu công khai với mức tương tác thấp.
03Active Information GatheringTương tác trực tiếp với DNS, TCP/UDP và dịch vụ.
04Service EnumerationNmap, SMB, SMTP, SNMP và Living off the Land.
05Ghi chép & lặp lạiBiến phát hiện mới thành giả thuyết và vòng enumeration tiếp theo.
Mở đầu

Vì sao Information Gathering quan trọng?

Attack surface thay đổi

Hệ thống, phần mềm, cấu hình và kiến trúc mạng luôn biến động.

Pentest là chu kỳ

Không phải một lần quét rồi kết thúc; cần đánh giá định kỳ và sau thay đổi lớn.

Dữ liệu dẫn đường

Kết quả enumeration quyết định công cụ, độ sâu và bước tiếp theo.

Giảm phỏng đoán

Thông tin tốt giúp ưu tiên mục tiêu và tránh khai thác mù quáng.

6.1 Vòng đời pentest

Vòng đời một penetration test

01Defining the ScopeXác định rõ tài sản được phép và không được phép kiểm thử.
02Information GatheringThu thập càng nhiều dữ liệu có liên quan càng tốt.
03Vulnerability DetectionTìm điểm yếu dựa trên bề mặt tấn công đã lập bản đồ.
04Initial FootholdTạo quyền truy cập ban đầu trong phạm vi cho phép.
05Privilege EscalationTìm đường nâng quyền trên hệ thống đã truy cập.
06Lateral MovementMở rộng hiểu biết và di chuyển sang tài sản liên quan.
07Reporting / AnalysisGhi bằng chứng, tác động và nguyên nhân.
08Lessons Learned / RemediationĐề xuất sửa chữa và cải thiện quy trình.
6.1 Vòng đời pentest

Scope là ranh giới kỹ thuật và pháp lý

Hai vùng cần phân biệt

In scope

IP range, host, ứng dụng, thời gian và kỹ thuật được phép.

Out of scope

Tài sản hoặc hành động không được kiểm thử.

Quy tắc làm việc

  • Xác nhận mục tiêu và time frame trước khi enumeration.
  • Không tự mở rộng sang host hoặc domain chỉ vì “có vẻ liên quan”.
  • Khi phát hiện tài sản mới, ghi nhận và xin xác nhận nếu chưa nằm trong scope.
6.1 Vòng đời pentest

Information Gathering là quá trình lặp

Passive Recon
Active Enumeration
Foothold
New Context
  • Mỗi phát hiện mới có thể tạo thêm hostname, IP, domain, user, service hoặc trust relationship.
  • Dữ liệu mới phải được đưa trở lại vòng enumeration.
  • Khi một hướng khai thác bế tắc, quay lại notes và kiểm tra các giả thuyết chưa xác minh.
6.1 Vòng đời pentest

Passive và Active Information Gathering

Tiêu chíPassiveActive
Tương tác với mục tiêuKhông hoặc rất ít; thường qua bên thứ baTương tác trực tiếp với dịch vụ/hạ tầng
Mức độ lộ diệnThấp hơnCao hơn, dễ tạo log hoặc cảnh báo
Độ sâuPhụ thuộc dữ liệu công khaiThường cho kết quả chi tiết hơn
Ví dụWHOIS, search engine, code repo, ShodanDNS query, port scan, SMB/SMTP/SNMP enumeration
Điều kiệnTuân theo scope và Rules of EngagementCần đặc biệt chú ý tải, downtime và IDS/IPS
6.2 Passive Information Gathering

Mục tiêu của OSINT

Làm rõ attack surface

Tìm domain, subdomain, IP, công nghệ và dịch vụ liên quan.

Nhận diện con người

Tìm vai trò, tên người dùng, email và thông tin tổ chức có liên quan.

Bổ trợ bước sau

Hỗ trợ password guessing, phishing được ủy quyền và lựa chọn hướng kiểm thử.

Tạo chu kỳ

Kết quả từ công cụ này trở thành đầu vào cho công cụ khác.

6.2 Passive Information Gathering

Hai cách hiểu về “passive”

Hai trường phái

Diễn giải nghiêm ngặt

Không truy cập trực tiếp hệ thống của mục tiêu; chỉ dựa trên bên thứ ba.

Diễn giải linh hoạt

Tương tác như người dùng Internet bình thường, nhưng chưa kiểm thử lỗ hổng.

Cách lựa chọn

  • Cách nghiêm ngặt giữ kín hoạt động tốt hơn nhưng có thể hạn chế kết quả.
  • Cách linh hoạt có thể đăng ký tài khoản hoặc xem website như người dùng bình thường.
  • Lựa chọn phải dựa trên mục tiêu, scope và Rules of Engagement.
6.2 Passive Information Gathering

OSINT không phải quy trình tuyến tính

Search engine
WHOIS / DNS history
Code repositories
Device search
Security posture
Notes & hypotheses
6.2 Passive Information Gathering

Bài học từ một chi tiết tưởng như vô hại

Ý nghĩa

  • Một nhân viên dùng email công ty trong bài đăng sở thích cá nhân.
  • Chi tiết nhỏ cho phép nhóm kiểm thử xây dựng một kịch bản social engineering phù hợp.
  • Điểm yếu gốc không chỉ nằm ở cá nhân, mà còn ở chính sách và chương trình awareness.

Chuỗi suy luận

Public postEmployee contextAuthorized test scenarioOrganizational finding
6.2 Passive Information Gathering

Những gì cần ghi vào notes

Nhóm dữ liệuVí dụCâu hỏi tiếp theo
Tổ chức & con ngườiTên, vai trò, email patternCó tạo được username list hợp lệ không?
Domain & DNSRegistrar, name server, subdomainCó netblock hoặc host mới cần xác minh không?
Web technologyServer, framework, client libraryCần version detection hay kiểm tra cấu hình nào?
Code & secretsRepo, file path, hash, token dấu hiệuCó phải bí mật thật? Còn dùng được? Thuộc scope?
Dịch vụ InternetIP, port, bannerƯu tiên active validation ở đâu?
6.2.1 WHOIS

WHOIS cung cấp gì?

D

Domain

Registrar, ngày đăng ký, ngày hết hạn, name server.

IP

Netblock

NetRange, CIDR, NetName và tổ chức sở hữu/được cấp phát.

P

People

Registrant, admin, tech contact — nếu không được bảo vệ riêng tư.

N

Next step

Đưa name server, domain liên quan và netblock vào notes.

6.2.1 WHOIS

Forward WHOIS lookup

WHOIS domain
kali@kali:~$ whois megacorpone.com -h 192.168.50.251

Domain Name: MEGACORPONE.COM
Registrar WHOIS Server: whois.gandi.net
Registrar URL: http://www.gandi.net
...
Registrant Name: Alan Grofield
Registrant Organization: MegaCorpOne
...
Name Server: NS1.MEGACORPONE.COM
Name Server: NS2.MEGACORPONE.COM
Name Server: NS3.MEGACORPONE.COM
...

Cách chạy

  • `-h` chỉ định WHOIS server trong môi trường lab.
  • Không phải mọi trường đều hữu ích; tập trung vào registrar, contact và name server.

Cách đọc

  • Đối chiếu contact với website tổ chức.
  • Đưa name server vào danh sách DNS enumeration.
  • Ghi ngày đăng ký/hết hạn nếu có giá trị bối cảnh.
6.2.1 WHOIS

Reverse WHOIS trên địa chỉ IP

WHOIS IP
kali@kali:~$ whois 38.100.193.70 -h 192.168.50.251

...
NetRange:       38.0.0.0 - 38.255.255.255
CIDR:           38.0.0.0/8
NetName:        COGENT-A
...
OrgName:        PSINet, Inc.
Address:        2450 N Street NW
City:           Washington
Country:        US
...
6.2.1 WHOIS

WHOIS — checklist thực hành

  1. Thực hiện forward lookup cho domain nằm trong scope.
  2. Ghi registrar, WHOIS server, name server và contact có liên quan.
  3. Thực hiện reverse lookup cho IP đã xác minh.
  4. Phân biệt tài sản của khách hàng với hạ tầng hosting/CDN của bên thứ ba.
  5. Đưa mọi hostname hoặc netblock mới trở lại vòng DNS/OSINT.
6.2.2 Google Hacking

Tìm kiếm từ rộng đến hẹp

01Broad queryXác định dấu vết web ban đầu.
02Add operatorsGiới hạn domain, loại file, tiêu đề hoặc nội dung.
03Exclude noiseDùng dấu trừ để loại kết quả không hữu ích.
04Inspect resultsĐọc directory listing, robots.txt và tài liệu được index.
05Feed notesDùng phát hiện mới cho truy vấn kế tiếp.
6.2.2 Google Hacking

Các toán tử cốt lõi

Toán tửMục đíchVí dụ từ tài liệu
`site:`Giới hạn trong một domain`site:megacorpone.com`
`filetype:` / `ext:`Giới hạn loại file`site:megacorpone.com filetype:txt`
`-`Loại trừ kết quả`site:megacorpone.com -filetype:html`
`intitle:`Tìm chuỗi trong tiêu đề trang`intitle:"index of" "parent directory"`
Kết hợpThu hẹp theo nhiều điều kiệnKết hợp domain + loại file + loại trừ
6.2.2 Google Hacking

robots.txt có thể tiết lộ đường dẫn

robots.txt
User-agent: *
Allow: /
Allow: /nanites.php
  • `robots.txt` hướng dẫn crawler cho phép hoặc không cho phép truy cập tài nguyên.
  • Nó không phải cơ chế kiểm soát truy cập.
  • Đường dẫn được liệt kê có thể trở thành đầu mối enumeration, nhưng vẫn phải nằm trong scope.
6.2.2 Google Hacking

Directory listing và dữ liệu được index

Ý nghĩa

  • `intitle:"index of" "parent directory"` có thể tìm trang liệt kê thư mục.
  • Directory không có index page đôi khi hiển thị toàn bộ file.
  • Kết quả có thể lộ backup, tài liệu hoặc cấu hình nhạy cảm.

Dấu hiệu cần chú ý

📁 /├── backup/├── docs/├── config.old└── index-less directory
6.2.2 Google Hacking

Kỹ năng quan trọng nhất

Kết hợp toán tử

Một toán tử hiếm khi đủ; giá trị nằm ở cách kết hợp.

Lặp truy vấn

Mỗi kết quả hữu ích tạo ra tên file, từ khóa hoặc subdomain mới.

Loại bỏ nhiễu

Dùng điều kiện loại trừ để giảm hàng trăm kết quả không liên quan.

Suy luận

Hiểu ý nghĩa kỹ thuật của file và cấu trúc được tìm thấy.

6.2.3 Netcraft

Netcraft trong passive reconnaissance

DNS

DNS search

Tìm host/subdomain liên quan đến domain.

Site report

Xem thông tin đăng ký, lịch sử và dữ liệu site.

Technology

Nhận diện web server, application server, framework và thư viện.

Netblock context

Tìm host khác chia sẻ cùng vùng địa chỉ IP.

6.2.3 Netcraft

Từ site report đến active testing

01Collect subdomainsLập danh sách host có khả năng thuộc mục tiêu.
02Record technologyGhi server, framework và client-side components.
03PrioritizeChọn host có công nghệ hoặc vai trò đáng chú ý.
04Validate activelyChuyển sang DNS, port scan và service enumeration trong scope.
6.2.4 Open-Source Code

Nguồn mã công khai cần kiểm tra

GH

GitHub

Repository, commit history, issue và file.

G

GitHub Gist

Đoạn mã và cấu hình chia sẻ nhanh.

GL

GitLab

Project và source code công khai.

SF

SourceForge

Dự án và gói mã nguồn mở.

6.2.4 Open-Source Code

Mã nguồn tiết lộ những gì?

Dấu hiệuGiá trị cho pentestHành động tiếp theo
Ngôn ngữ / frameworkHiểu stack ứng dụngTìm version, cấu hình và bề mặt liên quan
Tên file / pathHiểu cấu trúc triển khaiTìm file tương tự trên host được phép
Username / emailXây dựng identity contextĐối chiếu với domain và dịch vụ
Hash / token / keyCó thể là secret bị commitXác minh an toàn, không công khai hoặc lạm dụng ngoài scope
Commit historySecret có thể đã bị xóa khỏi bản mớiKiểm tra lịch sử khi Rules of Engagement cho phép
6.2.4 Open-Source Code

GitHub search trong ví dụ

GitHub search
path:users
  • Tìm các file có từ `users` trong đường dẫn hoặc tên file.
  • Ví dụ tài liệu tìm thấy `xampp.users`, gợi ý môi trường XAMPP.
  • File xuất hiện username và password hash; cần ghi vào notes cho giai đoạn active sau.
6.2.4 Open-Source Code

Manual review và secret scanners

CáchĐiểm mạnhGiới hạn
Manual inspectionHiểu ngữ cảnh và phát hiện pattern bất thườngChậm trên repository lớn
Gitrob / GitleaksTự động tìm regex và chuỗi entropy caoCần access token/API; có false positive và false negative
Kết hợpAutomation lọc nhanh, con người xác minhVẫn cần quy trình xử lý secret an toàn
6.2.5 Shodan

Google tìm nội dung — Shodan tìm thiết bị

Search engineTập trungKết quả thường thấy
Google và tương tựNội dung web được indexTrang, file, text, directory
ShodanThiết bị kết nối InternetIP, port, service, banner, version, technology
6.2.5 Shodan

Quy trình đọc kết quả Shodan

01Search hostnameTập hợp IP và dịch vụ liên quan.
02Filter Top PortsThu hẹp theo SSH, HTTP hoặc dịch vụ quan tâm.
03Inspect bannersGhi version và thông tin phản hồi.
04Open host summaryXem toàn bộ port, service và technology trên host.
05Prioritize validationChọn nơi bắt đầu active testing.
6.2.6 Headers & TLS

Security Headers — đọc tín hiệu hardening

CSP

Content-Security-Policy

Thiếu header không tự động đồng nghĩa có lỗ hổng, nhưng là tín hiệu về hardening.

XFO

X-Frame-Options

Một trong các header phòng vệ được tài liệu nhắc đến.

Server hardening

Tắt service thừa, xóa account không dùng, đổi default password và đặt header phù hợp.

?

Hypothesis

Kết quả yếu có thể gợi ý cần kiểm tra kỹ hơn cấu hình và quy trình vận hành.

6.2.6 Headers & TLS

SSL/TLS configuration review

Quan sátCách hiểu theo tài liệu
Hỗ trợ TLS 1.0 / 1.1Dùng phiên bản legacy, cho thấy hardening chưa theo best practice hiện hành tại thời điểm tài liệu.
Cipher suite cũCó thể liên quan thuật toán hoặc mode yếu.
Poodle / Heartbleed checksSSL Labs có thể nhận diện một số vấn đề TLS nổi tiếng.
Điểm tổng thể tốt hơn header scanKhông có nghĩa hệ thống đã được harden đầy đủ.
6.2 Passive Information Gathering

Checklist kết thúc passive phase

  1. Danh sách domain, subdomain, IP và netblock đã xác minh.
  2. Name server, mail server và DNS record đáng chú ý.
  3. Công nghệ web, framework, banner và version từ nguồn công khai.
  4. Tên người dùng, email pattern và vai trò liên quan.
  5. Repository, file path hoặc secret candidate cần xử lý an toàn.
  6. Danh sách giả thuyết cần active validation và mức ưu tiên.
6.3 Active Information Gathering

Active Information Gathering

DNS

DNS Enumeration

Truy vấn record, brute-force hostname và reverse lookup.

TCP

Port Scanning

Xác định host sống, port mở và service.

SMB

SMB Enumeration

NetBIOS name, OS/domain context và shares.

SMTP

SMTP Enumeration

Banner và kiểm tra phản hồi VRFY/EXPN.

SNMP

SNMP Enumeration

Community string, MIB, process, software, user và local port.

Win

Living off the Land

Dùng công cụ có sẵn trên Windows khi không có Kali.

6.3 Active Information Gathering

Living off the Land / LOLBAS

Bối cảnh

  • Trong assumed breach, có thể chỉ được cấp một Windows workstation.
  • Không phải lúc nào cũng có thể cài Nmap hoặc công cụ yêu thích.
  • Tận dụng binary, script và library có sẵn hoặc được tin cậy.

Công cụ xuất hiện trong chương

NS

nslookup

DNS enumeration

TNC

Test-NetConnection

Kiểm tra ICMP/TCP port

NET

net view

Liệt kê SMB share

TEL

telnet

Tương tác TCP text protocol

6.3.1 DNS Enumeration

Các loại DNS record thường gặp

RecordChức năng
NSAuthoritative name server của domain.
AIPv4 của hostname.
AAAAIPv6 của hostname.
MXMail exchanger; số priority thấp hơn được ưu tiên trước.
PTRReverse lookup từ IP sang hostname.
CNAMEAlias trỏ đến record khác.
TXTDữ liệu text tùy ý, thường dùng verification hoặc policy.
6.3.1 DNS Enumeration

Truy vấn A, MX và TXT với host

Linux host
kali@kali:~$ host www.megacorpone.com
www.megacorpone.com has address 149.56.244.87

kali@kali:~$ host -t mx megacorpone.com
megacorpone.com mail is handled by 10 fb.mail.gandi.net.
megacorpone.com mail is handled by 20 spool.mail.gandi.net.
megacorpone.com mail is handled by 50 mail.megacorpone.com.
megacorpone.com mail is handled by 60 mail2.megacorpone.com.

kali@kali:~$ host -t txt megacorpone.com
megacorpone.com descriptive text "Try Harder"
megacorpone.com descriptive text "google-site-verification=..."
6.3.1 DNS Enumeration

Phân biệt hostname hợp lệ và NXDOMAIN

Forward lookup
kali@kali:~$ host www.megacorpone.com
www.megacorpone.com has address 149.56.244.87

kali@kali:~$ host idontexist.megacorpone.com
Host idontexist.megacorpone.com not found: 3(NXDOMAIN)

Positive response

  • Có IP trả về → record tồn tại và có thể là server hoạt động.
  • Không có nghĩa service phía sau chắc chắn đang mở.

Negative response

  • `NXDOMAIN` → public DNS record không tồn tại.
  • Không loại trừ split DNS hoặc record nội bộ.
6.3.1 DNS Enumeration

Forward DNS brute force bằng Bash

Wordlist + loop
kali@kali:~$ cat list.txt
www
ftp
mail
owa
proxy
router

kali@kali:~$ for ip in $(cat list.txt); do host $ip.megacorpone.com; done
www.megacorpone.com has address 149.56.244.87
Host ftp.megacorpone.com not found: 3(NXDOMAIN)
mail.megacorpone.com has address 51.222.169.212
...
router.megacorpone.com has address 51.222.169.214
  • Dùng wordlist hostname phổ biến và kiểm tra phản hồi của từng tên.
  • SecLists có wordlist đầy đủ hơn tại `/usr/share/seclists` sau khi cài đặt.
  • Tên hợp lệ trở thành đầu vào cho port scan và service enumeration.
6.3.1 DNS Enumeration

Reverse DNS brute force

PTR lookup loop
kali@kali:~$ for ip in $(seq 200 254); do host 51.222.169.$ip; done | grep -v "not found"

208.169.222.51.in-addr.arpa domain name pointer admin.megacorpone.com.
209.169.222.51.in-addr.arpa domain name pointer beta.megacorpone.com.
210.169.222.51.in-addr.arpa domain name pointer fs1.megacorpone.com.
...
220.169.222.51.in-addr.arpa domain name pointer vpn.megacorpone.com.
6.3.1 DNS Enumeration

DNSRecon — standard scan

dnsrecon -t std
kali@kali:~$ dnsrecon -d megacorpone.com -t std

[*] std: Performing General Enumeration against: megacorpone.com...
[-] DNSSEC is not configured for megacorpone.com
[*] SOA ns1.megacorpone.com 51.79.37.18
[*] NS ns1.megacorpone.com 51.79.37.18
[*] MX mail.megacorpone.com 51.222.169.212
[*] TXT megacorpone.com Try Harder
[*] Enumerating SRV Records
[+] 0 Records Found
  • `-d` chỉ định domain.
  • `-t std` thực hiện general enumeration.
  • Kết quả gom SOA, NS, MX, TXT và SRV trong một lần chạy.
6.3.1 DNS Enumeration

DNSRecon — subdomain brute force

dnsrecon -t brt
kali@kali:~$ dnsrecon -d megacorpone.com -D ~/list.txt -t brt

[*] Using the dictionary file: /home/kali/list.txt
[+] A www.megacorpone.com 149.56.244.87
[+] A mail.megacorpone.com 51.222.169.212
[+] A router.megacorpone.com 51.222.169.214
[+] 3 Records Found
  • `-D` chỉ định dictionary file.
  • `-t brt` chọn brute-force enumeration.
  • Kết quả cần được xác minh và đưa vào host inventory.
6.3.1 DNS Enumeration

DNSenum — tự động hóa rộng hơn

dnsenum
kali@kali:~$ dnsenum megacorpone.com

...
admin.megacorpone.com.     IN A 51.222.169.208
beta.megacorpone.com.      IN A 51.222.169.209
fs1.megacorpone.com.       IN A 51.222.169.210
intranet.megacorpone.com.  IN A 51.222.169.211
mail.megacorpone.com.      IN A 51.222.169.212
...
vpn.megacorpone.com.       IN A 51.222.169.220

megacorpone.com class C netranges:
51.79.37.0/24
51.222.39.0/24
51.222.169.0/24
66.70.207.0/24
149.56.244.0/24
...
6.3.1 DNS Enumeration

DNS enumeration từ Windows

xfreerdp + nslookup
kali@kali:~$ xfreerdp /u:student /p:lab /v:192.168.50.152

C:\Users\student> nslookup mail.megacorptwo.com
Server:  UnKnown
Address:  192.168.50.151
Name:    mail.megacorptwo.com
Address: 192.168.50.154

C:\Users\student> nslookup -type=TXT info.megacorptwo.com 192.168.50.151
info.megacorptwo.com text = "greetings from the TXT record body"
  • `nslookup ` dùng DNS server mặc định.
  • `nslookup -type=TXT ` truy vấn loại record và server cụ thể.
  • Có thể tự động hóa thêm bằng PowerShell hoặc Batch.
6.3.1 DNS Enumeration

Dấu hiệu để chuyển bước hoặc quay lại

Kết quả DNSBước tiếp theo
Hostname mớiResolve IP, kiểm tra scope, port scan.
MX / mail hostSMTP enumeration và banner validation.
`snmp`, `siem`, `vpn`, `router`Ưu tiên theo vai trò, nhưng không suy đoán service chỉ từ tên.
NXDOMAIN hàng loạtĐổi wordlist hoặc kiểm tra wildcard DNS.
Netblock mớiXác minh ownership và scope trước khi sweep.
PTR khác với A recordGhi cả hai và xác minh dữ liệu stale/split DNS.
6.3.2 TCP/UDP Port Scanning

Quét cổng: tác động và trách nhiệm

Ủy quyền

Port scanning ngoài lab có thể trái pháp luật; cần sự cho phép trực tiếp bằng văn bản.

Tải hệ thống

Scan lớn có thể làm nghẽn link, quá tải server hoặc gây downtime.

Phát hiện

Lưu lượng scan có thể kích hoạt IDS/IPS và tạo log.

Phương pháp

Kết quả scan trước quyết định phạm vi và kiểu scan sau.

6.3.2 TCP/UDP Port Scanning

TCP CONNECT và three-way handshake

ClientSYN →← SYN-ACKACK →
Port OPEN
  • Client gửi SYN đến destination port.
  • Port mở trả SYN-ACK.
  • Client gửi ACK để hoàn tất kết nối.
  • Port đóng thường trả RST/RST-ACK hoặc từ chối kết nối.
6.3.2 TCP/UDP Port Scanning

Netcat TCP scan

nc TCP
kali@kali:~$ nc -nvv -w 1 -z 192.168.50.152 3388-3390

(UNKNOWN) [192.168.50.152] 3390 (?) : Connection refused
(UNKNOWN) [192.168.50.152] 3389 (ms-wbt-server) open
(UNKNOWN) [192.168.50.152] 3388 (?) : Connection refused
sent 0, rcvd 0
Tùy chọnÝ nghĩa
`-n`Không resolve DNS.
`-vv`Verbose hơn.
`-w 1`Timeout 1 giây.
`-z`Zero-I/O mode, không gửi application data.
6.3.2 TCP/UDP Port Scanning

UDP scan hoạt động khác TCP

ScannerEmpty UDP packet →
Port đóng← ICMP Port Unreachable
Port mở / filteredCó thể không phản hồi
6.3.2 TCP/UDP Port Scanning

Netcat UDP scan

nc UDP
kali@kali:~$ nc -nv -u -z -w 1 192.168.50.149 120-123

(UNKNOWN) [192.168.50.149] 123 (ntp) open
  • `-u` chọn UDP.
  • Nhiều application không phản hồi empty packet.
  • Protocol-specific probe thường chính xác hơn với UDP.
6.3.2 TCP/UDP Port Scanning

Các lỗi thường gặp khi quét UDP

  1. Tin tuyệt đối vào trạng thái “open” khi không nhận ICMP.
  2. Chỉ quét danh sách “interesting ports” và bỏ lỡ port ít phổ biến.
  3. Bỏ qua UDP vì tập trung vào TCP.
  4. Không dùng protocol-specific scanner/probe khi cần xác minh.
  5. Không tính đến firewall/router làm rơi ICMP.
6.3.2 TCP/UDP Port Scanning

Phương pháp quét từ rộng đến sâu

01Define questionTìm web server, mail server hay toàn bộ dịch vụ?
02Small targeted scanVí dụ quét 80/443 trên dải được phép.
03Background full scanChỉ trên host đáng chú ý và theo giới hạn tải.
04Service probesVersion, banner, NSE hoặc protocol-specific enumeration.
05Re-prioritizeKết quả mới quyết định scan kế tiếp.
6.3.3 Nmap

Nmap và raw sockets

Khái niệm

  • Nmap là công cụ quét cổng đa năng, phát triển lâu năm.
  • Nhiều kỹ thuật yêu cầu `sudo` để thao tác raw socket.
  • Không có raw socket, Nmap có thể chuyển sang Berkeley socket API.

Phạm vi quét

1000

Default ports

Mặc định quét 1000 TCP port phổ biến.

65535

Full TCP

`-p 1-65535` kiểm tra toàn bộ TCP port.

UDP

UDP

`-sU` cần diễn giải thận trọng.

6.3.3 Nmap

Đo footprint của scan bằng iptables

Chuẩn bị bộ đếm
kali@kali:~$ sudo iptables -I INPUT 1 -s 192.168.50.149 -j ACCEPT
kali@kali:~$ sudo iptables -I OUTPUT 1 -d 192.168.50.149 -j ACCEPT
kali@kali:~$ sudo iptables -Z
Tùy chọnÝ nghĩa
`-I`Chèn rule vào chain.
`-s` / `-d`Source / destination IP.
`-j ACCEPT`Chấp nhận traffic để đếm.
`-Z`Đưa packet/byte counters về 0.
6.3.3 Nmap

Default scan — 1000 TCP port phổ biến

nmap
kali@kali:~$ nmap 192.168.50.149

PORT     STATE SERVICE
53/tcp   open  domain
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
464/tcp  open  kpasswd5
593/tcp  open  http-rpc-epmap
636/tcp  open  ldapssl
3268/tcp open  globalcatLDAP
3269/tcp open  globalcatLDAPssl
6.3.3 Nmap

Full TCP scan — đổi độ sâu lấy thời gian và traffic

nmap -p 1-65535
kali@kali:~$ nmap -p 1-65535 192.168.50.149

...
5985/tcp  open  wsman
9389/tcp  open  adws
47001/tcp open  winrm
49664/tcp open  unknown
...
Nmap done: 1 host up scanned in 2141.22 seconds
ScanTraffic trong ví dụKết quả
Default 1000 portsKhoảng 72 KBNhanh hơn, có thể bỏ lỡ high ports.
All 65535 portsKhoảng 4 MBTìm thêm WinRM, ADWS và dynamic ports.
6.3.3 Nmap

So sánh các kỹ thuật scan

Kỹ thuậtTùy chọnĐặc điểm
SYN scan`-sS`Không hoàn tất handshake; nhanh, cần raw socket.
TCP Connect`-sT`Hoàn tất handshake; không cần raw socket, chậm hơn.
UDP scan`-sU`Dựa trên ICMP và probe theo protocol; dễ mơ hồ.
Combined`-sU -sS`Có bức tranh TCP + UDP đầy đủ hơn, traffic cao hơn.
Host discovery`-sn`Tìm host sống mà không port scan đầy đủ.
6.3.3 Nmap

SYN scan (`-sS`)

Nmap SYN scan
kali@kali:~$ sudo nmap -sS 192.168.50.149

Not shown: 989 closed tcp ports (reset)
PORT     STATE SERVICE
53/tcp   open  domain
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
...
  • Không gửi ACK cuối để hoàn tất three-way handshake.
  • Ít packet hơn TCP connect và thường nhanh hơn.
  • Tên “stealth” mang tính lịch sử; firewall hiện đại vẫn có thể phát hiện và log.
6.3.3 Nmap

TCP Connect scan (`-sT`)

Nmap TCP connect
kali@kali:~$ nmap -sT 192.168.50.149

Not shown: 989 closed tcp ports (conn-refused)
PORT     STATE SERVICE
53/tcp   open  domain
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
...
  • Dùng Berkeley sockets API và hoàn tất kết nối.
  • Không cần đặc quyền raw socket.
  • Có thể cần khi quét qua một số loại proxy.
  • Thường chậm hơn SYN scan.
6.3.3 Nmap

UDP và combined scan

Nmap UDP/TCP
kali@kali:~$ sudo nmap -sU 192.168.50.149
123/udp open ntp
389/udp open ldap

kali@kali:~$ sudo nmap -sU -sS 192.168.50.149
53/tcp   open domain
445/tcp  open microsoft-ds
53/udp   open domain
123/udp  open ntp
389/udp  open ldap
...
6.3.3 Nmap

Network sweeping với `-sn`

Host discovery
kali@kali:~$ nmap -sn 192.168.50.1-253

Nmap scan report for 192.168.50.6
Host is up (0.12s latency).
Nmap scan report for 192.168.50.8
Host is up (0.12s latency).
...
Nmap done: 254 IP addresses (13 hosts up) scanned in 3.74 seconds
  • Không chỉ gửi ICMP echo.
  • Nmap còn dùng TCP SYN 443, TCP ACK 80 và ICMP timestamp.
  • Host discovery có thể bị firewall ảnh hưởng; “down” không phải luôn là host không tồn tại.
6.3.3 Nmap

Greppable output để tạo host list

-oG + grep
kali@kali:~$ nmap -v -sn 192.168.50.1-253 -oG ping-sweep.txt

kali@kali:~$ grep Up ping-sweep.txt | cut -d " " -f 2
192.168.50.6
192.168.50.8
192.168.50.9
...
6.3.3 Nmap

Sweep theo dịch vụ cụ thể

Tìm web server
kali@kali:~$ nmap -p 80 192.168.50.1-253 -oG web-sweep.txt

kali@kali:~$ grep open web-sweep.txt | cut -d" " -f2
192.168.50.6
192.168.50.20
192.168.50.21
  • Quét port 80 trên dải mạng có thể chính xác hơn ping sweep cho mục tiêu tìm web.
  • Có thể thay bằng 443, 445, 25 hoặc port phù hợp với giả thuyết.
  • Sau sweep, chạy scan sâu hơn trên host có port mở.
6.3.3 Nmap

Top ports và aggressive detection

--top-ports + -A
kali@kali:~$ nmap -sT -A --top-ports=20 192.168.50.1-253 -oG top-port-sweep.txt

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.3
80/tcp open  http    Apache httpd 2.4.41 (Ubuntu)
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Under Construction
...
  • `--top-ports=20` dựa trên tần suất trong `nmap-services`.
  • `-A` bật OS detection, version detection, script scanning và traceroute.
  • `-A` tạo nhiều traffic hơn; không dùng mặc định trên mọi host.
6.3.3 Nmap

`nmap-services` và port frequency

/usr/share/nmap/nmap-services
kali@kali:~$ cat /usr/share/nmap/nmap-services

finger 79/udp 0.000956
http   80/sctp 0.000000
http   80/tcp 0.484143  # World Wide Web HTTP
http   80/udp 0.035767
hosts2-ns 81/tcp 0.012056
...
  • Cột 1: service name.
  • Cột 2: port/protocol.
  • Cột 3: tần suất port được thấy mở trong dữ liệu nghiên cứu.
  • Nmap dùng tần suất để xác định “top ports”.
6.3.3 Nmap

OS fingerprinting

-O --osscan-guess
kali@kali:~$ sudo nmap -O 192.168.50.14 --osscan-guess

Running (JUST GUESSING): Microsoft Windows 2008|2012|2016|7|Vista (88%)
Aggressive OS guesses: Windows Server 2008 R2 (88%), Windows Server 2012 R2 (88%), ...
No exact OS matches for host
  • Dựa trên khác biệt trong TCP/IP stack, TTL, window size và packet behavior.
  • `--osscan-guess` hiển thị dự đoán ngay cả khi độ chính xác chưa cao.
  • Firewall/proxy có thể sửa header và làm kết quả sai.
6.3.3 Nmap

Banner grabbing và service enumeration

-A service scan
kali@kali:~$ nmap -sT -A 192.168.50.14

21/tcp open ftp?
| 220-FileZilla Server 1.2.0
| ssl-cert: Subject: commonName=filezilla-server self signed certificate
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
...
  • `-A` chạy nhiều thành phần; `-sV` chỉ tập trung version detection.
  • Banner có thể bị quản trị viên sửa để đánh lạc hướng.
  • Xác minh version bằng nhiều dấu hiệu trước khi chọn exploit.
6.3.3 Nmap

Nmap Scripting Engine (NSE)

NSE discovery script
kali@kali:~$ nmap --script http-headers 192.168.50.6

80/tcp open http
| http-headers:
|   Server: Apache/2.4.41 (Ubuntu)
|   Content-Length: 209
|   Content-Type: text/html
|_  (Request type: HEAD)

kali@kali:~$ nmap --script-help http-headers
http-headers
Categories: discovery safe
Performs a HEAD request for the root folder ("/") ...
  • Script nằm trong `/usr/share/nmap/scripts`.
  • NSE hỗ trợ discovery, enumeration, brute force và vulnerability checks.
  • Dùng `--script-help` hoặc đọc file script khi không có Internet.
  • Chọn script theo câu hỏi cụ thể, không chạy toàn bộ script mù quáng.
6.3.3 Nmap

Windows: Test-NetConnection

PowerShell
PS C:\Users\student> Test-NetConnection -Port 445 192.168.50.151

ComputerName     : 192.168.50.151
RemotePort       : 445
SourceAddress    : 192.168.50.152
TcpTestSucceeded : True
6.3.3 Nmap

Windows: tự động quét 1–1024 bằng TcpClient

PowerShell one-liner
PS C:\Users\student> 1..1024 | % {echo ((New-Object Net.Sockets.TcpClient).Connect("192.168.50.151", $_)) "TCP port $_ is open"} 2>$null

TCP port 88 is open
...
  • `1..1024` tạo dải số.
  • `%` là alias của `ForEach-Object`.
  • `$_` là port hiện tại.
  • `2>$null` ẩn lỗi kết nối thất bại.
6.3.3 Nmap

Nmap — cây quyết định thực hành

01Host alive?Dùng `-sn` hoặc targeted port sweep.
02Which ports?Top ports trước, full ports trên host ưu tiên.
03TCP or UDP?Dựa trên service hypothesis; không bỏ qua UDP.
04What service/version?`-sV`, banner, targeted NSE.
05Can I trust it?Đối chiếu nhiều nguồn; banner và OS guess có thể sai.
06What next?Chuyển sang protocol-specific enumeration.
6.3.4 SMB Enumeration

SMB và NetBIOS

Thành phầnPort / vai tròGhi chú
NetBIOSTCP 139 và một số UDP portSession/name service cho mạng cục bộ; dùng cho tương thích cũ.
SMBTCP 445File/printer sharing và nhiều chức năng Windows.
Quan hệThường cùng xuất hiệnEnumeration 139 và 445 thường đi cùng nhau.
Rủi roLịch sử nhiều lỗi và cấu hình yếuPhiên bản hiện đại đã được cải thiện; vẫn cần xác minh version/config.
6.3.4 SMB Enumeration

Tìm SMB/NetBIOS host bằng Nmap

Nmap 139,445
kali@kali:~$ nmap -v -p 139,445 -oG smb.txt 192.168.50.1-254
kali@kali:~$ cat smb.txt

# Ports scanned: TCP(2;139,445)
Host: 192.168.50.21 () Status: Up
Host: 192.168.50.21 () Ports: 139/closed/tcp, 445/closed/tcp
...
# 254 IP addresses (15 hosts up) scanned
  • `-oG` lưu kết quả dễ lọc.
  • Chỉ host có 139/445 open mới chuyển sang SMB enumeration sâu.
  • Host “up” nhưng port đóng không phải SMB server.
6.3.4 SMB Enumeration

Thu thập NetBIOS name bằng nbtscan

nbtscan -r
kali@kali:~$ sudo nbtscan -r 192.168.50.0/24

IP address       NetBIOS Name  Server    User
192.168.50.124   SAMBA         <server>  SAMBA
192.168.50.134   SAMBAWEB      <server>  SAMBAWEB
...
  • `-r` dùng source UDP port 137.
  • NetBIOS name có thể gợi ý vai trò host.
  • Tên mô tả là đầu mối, không phải bằng chứng cuối cùng.
6.3.4 SMB Enumeration

NSE scripts cho SMB

Danh sách script
kali@kali:~$ ls -1 /usr/share/nmap/scripts/smb*

smb2-capabilities.nse
smb2-security-mode.nse
smb-enum-domains.nse
smb-enum-groups.nse
smb-enum-processes.nse
smb-enum-shares.nse
smb-enum-users.nse
smb-os-discovery.nse
...
6.3.4 SMB Enumeration

SMB OS discovery — hữu ích nhưng không tuyệt đối

smb-os-discovery
kali@kali:~$ nmap -v -p 139,445 --script smb-os-discovery 192.168.50.152

139/tcp open netbios-ssn
445/tcp open microsoft-ds
| smb-os-discovery:
|   OS: Windows 10 Pro 22000
|   Computer name: client01
|   Domain name: megacorptwo.com
|   Forest name: megacorptwo.com
|   FQDN: client01.megacorptwo.com
...
  • Trong lab, script báo Windows 10 nhưng host thực tế là Windows 11.
  • NSE có thể bổ sung computer name, domain, forest và FQDN.
  • Tài liệu lưu ý script này phụ thuộc SMBv1 trong kịch bản được mô phỏng.
6.3.4 SMB Enumeration

Windows: liệt kê SMB shares với net view

net view
C:\Users\student> net view \\dc01 /all

Share name  Type  Comment
ADMIN$      Disk  Remote Admin
C$          Disk  Default share
IPC$        IPC   Remote IPC
NETLOGON    Disk  Logon server share
SYSVOL      Disk  Logon server share
The command completed successfully.
  • `/all` hiển thị cả administrative shares kết thúc bằng `$`.
  • `NETLOGON` và `SYSVOL` là dấu hiệu thường gặp trên Domain Controller.
  • Quyền nhìn thấy share không đồng nghĩa có quyền đọc nội dung.
6.3.5 SMTP Enumeration

SMTP VRFY và EXPN

CommandMục đíchGiá trị enumeration
VRFYYêu cầu server xác minh địa chỉ/userSo sánh phản hồi để nhận diện username tồn tại.
EXPNYêu cầu mở rộng thành viên mailing listCó thể lộ danh sách thành viên nếu server cho phép.
BannerChuỗi chào khi kết nối port 25Gợi ý mail software và nền tảng.
6.3.5 SMTP Enumeration

Xác minh user bằng Netcat

SMTP session
kali@kali:~$ nc -nv 192.168.50.8 25

220 mail ESMTP Postfix (Ubuntu)
VRFY root
252 2.0.0 root
VRFY idontexist
550 5.1.1 <idontexist>: Recipient address rejected: User unknown in local recipient table
^C
Phản hồiCách hiểu
`252 2.0.0 root`Server chấp nhận/xác nhận user theo hành vi trong lab.
`550 5.1.1 ... User unknown`Username không tồn tại theo phản hồi server.
6.3.5 SMTP Enumeration

Tự động hóa SMTP VRFY bằng Python

vrfy.py
#!/usr/bin/python
import socket
import sys

if len(sys.argv) != 3:
    print("Usage: vrfy.py <username> <target_ip>")
    sys.exit(0)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = sys.argv[2]
s.connect((ip,25))
print(s.recv(1024))
user = (sys.argv[1]).encode()
s.send(b'VRFY ' + user + b'\r\n')
print(s.recv(1024))
s.close()
  • Nhận `username` và `target_ip` từ command line.
  • Mở TCP socket đến port 25.
  • Đọc banner, gửi `VRFY`, đọc phản hồi và đóng socket.
6.3.5 SMTP Enumeration

Chạy script và so sánh phản hồi

Python output
kali@kali:~/Desktop$ python3 smtp.py root 192.168.50.8
b'220 mail ESMTP Postfix (Ubuntu)\r\n'
b'252 2.0.0 root\r\n'

kali@kali:~/Desktop$ python3 smtp.py johndoe 192.168.50.8
b'220 mail ESMTP Postfix (Ubuntu)\r\n'
b'550 5.1.1 <johndoe>: Recipient address rejected: User unknown in local recipient table\r\n'
6.3.5 SMTP Enumeration

SMTP enumeration từ Windows

PowerShell + Telnet
PS C:\Users\student> Test-NetConnection -Port 25 192.168.50.8
TcpTestSucceeded : True

PS C:\Windows\system32> dism /online /Enable-Feature /FeatureName:TelnetClient
...

C:\Windows\system32> telnet 192.168.50.8 25
220 mail ESMTP Postfix (Ubuntu)
VRFY goofy
550 5.1.1 <goofy>: Recipient address rejected: User unknown
VRFY root
252 2.0.0 root
  • `Test-NetConnection` chỉ xác nhận TCP port mở.
  • Telnet cho phép tương tác text protocol trực tiếp.
  • Bật Telnet Client bằng DISM cần quyền quản trị.
  • Tài liệu cũng đề cập chuyển `telnet.exe` từ máy phát triển khi phù hợp với engagement.
6.3.6 SNMP Enumeration

Vì sao SNMP thường làm lộ nhiều dữ liệu?

UDP

Stateless UDP

Dễ bị spoofing/replay hơn nếu triển khai yếu.

v1/2c

Không mã hóa

Community string và dữ liệu có thể bị chặn trên mạng cục bộ.

public

Default strings

`public` và `private` thường bị để mặc định.

MIB

Quản trị sâu

Có thể lộ user, process, software, network và cấu hình.

6.3.6 SNMP Enumeration

MIB Tree và OID

MIB
system
host resources
vendor
users
processes
software
TCP ports
  • MIB là cơ sở dữ liệu phân cấp cho thông tin quản trị.
  • Mỗi nhánh/leaf được định danh bằng OID.
  • Có thể query toàn cây hoặc một OID cụ thể để giảm nhiễu.
6.3.6 SNMP Enumeration

Một số Windows SNMP OID trong tài liệu

OIDDữ liệu
`1.3.6.1.2.1.25.1.6.0`System Processes
`1.3.6.1.2.1.25.4.2.1.2`Running Programs
`1.3.6.1.2.1.25.4.2.1.4`Processes Path
`1.3.6.1.2.1.25.2.3.1.4`Storage Units
`1.3.6.1.2.1.25.6.3.1.2`Software Name
`1.3.6.1.4.1.77.1.2.25`User Accounts
`1.3.6.1.2.1.6.13.1.3`TCP Local Ports
6.3.6 SNMP Enumeration

Tìm SNMP server trên UDP/161

Nmap SNMP discovery
kali@kali:~$ sudo nmap -sU --open -p 161 192.168.50.1-254 -oG open-snmp.txt

Nmap scan report for 192.168.50.151
Host is up (0.10s latency).
PORT    STATE SERVICE
161/udp open  snmp
...
  • `-sU` chọn UDP.
  • `--open` chỉ hiển thị port mở.
  • `-p 161` giới hạn đúng SNMP port.
  • `-oG` lưu kết quả để lọc và làm đầu vào.
6.3.6 SNMP Enumeration

Brute-force community string với onesixtyone

onesixtyone
kali@kali:~$ echo public > community
kali@kali:~$ echo private >> community
kali@kali:~$ echo manager >> community
kali@kali:~$ for ip in $(seq 1 254); do echo 192.168.50.$ip; done > ips
kali@kali:~$ onesixtyone -c community -i ips

Scanning 254 hosts, 3 communities
192.168.50.151 [public] Hardware: Intel64 ... Windows Version 6.3 ...
  • `-c community` đọc danh sách community strings.
  • `-i ips` đọc danh sách IP.
  • Phản hồi có thể lộ hardware và OS string.
6.3.6 SNMP Enumeration

Walk toàn bộ MIB tree

snmpwalk -c -v -t
kali@kali:~$ snmpwalk -c public -v1 -t 10 192.168.50.151

iso.3.6.1.2.1.1.1.0 = STRING: "Hardware: Intel64 ... Windows Version 6.3 ..."
iso.3.6.1.2.1.1.4.0 = STRING: "admin@megacorptwo.com"
iso.3.6.1.2.1.1.5.0 = STRING: "dc01.megacorptwo.com"
iso.3.6.1.2.1.2.1.0 = INTEGER: 24
...
Tùy chọnÝ nghĩa
`-c public`Community string.
`-v1`SNMP version.
`-t 10`Timeout 10 giây.
6.3.6 SNMP Enumeration

Enum user và process bằng OID cụ thể

User Accounts OID
kali@kali:~$ snmpwalk -c public -v1 192.168.50.151 1.3.6.1.4.1.77.1.2.25

... = STRING: "Guest"
... = STRING: "krbtgt"
... = STRING: "student"
... = STRING: "Administrator"
Running Programs OID
kali@kali:~$ snmpwalk -c public -v1 192.168.50.151 1.3.6.1.2.1.25.4.2.1.2

... = STRING: "System"
... = STRING: "smss.exe"
... = STRING: "svchost.exe"
... = STRING: "winlogon.exe"
... = STRING: "lsass.exe"
...
6.3.6 SNMP Enumeration

Enum software và local TCP ports

Installed Software
kali@kali:~$ snmpwalk -c public -v1 192.168.50.151 1.3.6.1.2.1.25.6.3.1.2

... = STRING: "Microsoft Visual C++ 2019 X64 Minimum Runtime - 14.27.29016"
... = STRING: "VMware Tools"
... = STRING: "Microsoft Visual C++ 2015-2019 Redistributable (x86) - 14.27.290"
...
TCP Local Ports
kali@kali:~$ snmpwalk -c public -v1 192.168.50.151 1.3.6.1.2.1.6.13.1.3

...88...   = INTEGER: 88
...135...  = INTEGER: 135
...389...  = INTEGER: 389
...445...  = INTEGER: 445
...5985... = INTEGER: 5985
...
  • Đối chiếu software với process để xác định ứng dụng/version có liên quan.
  • Local listening port có thể lộ service không truy cập được từ bên ngoài.
  • Phát hiện local-only service là đầu mối cho post-exploitation hoặc tunneling trong phạm vi được phép.
Phương pháp PWK

Mẫu ghi chép cho mỗi phát hiện

TrườngNội dung nên ghi
AssetIP, hostname, domain, owner/scope status.
SourceWHOIS, DNS, Nmap, SMB, SMTP, SNMP hoặc nguồn OSINT.
CommandLệnh chính xác đã chạy và thời điểm.
EvidenceOutput quan trọng, screenshot hoặc file kết quả.
InterpretationĐiều gì đã được xác minh — tách khỏi suy đoán.
HypothesisCâu hỏi kỹ thuật tiếp theo.
Next actionTool/scan cụ thể và điều kiện dừng.
Phương pháp PWK

Khi nào nên quay lại enumeration?

0

Exploit không phù hợp

Version hoặc service chưa được xác minh đủ.

Không có foothold

Có thể bỏ lỡ port, UDP, vhost, DNS hoặc share.

Privilege escalation bế tắc

Tìm local service, process, software, user hoặc network context mới.

Lateral movement thiếu hướng

Quay lại DNS, SMB, SNMP và identity mapping.

?

Kết quả mâu thuẫn

Banner, OS guess và hostname không khớp; cần nguồn thứ hai.

Phát hiện tài sản mới

Đưa asset mới qua toàn bộ chu trình passive/active phù hợp.

Phương pháp PWK

Dấu hiệu một hướng enumeration không còn hiệu quả

  1. Chạy lại cùng một scan nhưng không có câu hỏi mới.
  2. Wordlist không còn tạo hostname mới sau nhiều vòng hợp lý.
  3. Banner hoặc fingerprint vẫn mơ hồ và không có nguồn đối chiếu.
  4. Traffic tăng mạnh nhưng giá trị thông tin không tăng.
  5. Target rate-limit, timeout hoặc có dấu hiệu bất ổn.
  6. Kết quả nằm ngoài scope hoặc ownership chưa được xác minh.
Phương pháp PWK

Sai lầm thường làm mất thời gian

Sai lầmCách khắc phục
Chỉ chạy default NmapFull scan có chọn lọc trên host ưu tiên; nhớ UDP.
Tin banner/OS guess tuyệt đốiXác minh bằng nhiều công cụ và protocol-specific query.
Không lưu outputDùng `-oG`/file output và ghi timestamp.
Không phân biệt fact/hypothesisĐánh dấu rõ “đã xác minh” và “cần kiểm tra”.
Quên đưa host mới vào vòng lặpDuy trì asset inventory và checklist per-host.
Scan quá rộng quá sớmBắt đầu targeted, mở rộng theo kết quả.
6.4 Wrapping Up

Tổng kết chương 6

P

Passive

WHOIS, Google operators, Netcraft, code repositories, Shodan và security posture services.

A

Active

DNS queries, TCP/UDP scanning và service-specific enumeration.

N

Nmap

Scan types, sweep, output format, OS/service detection và NSE.

W

Windows

nslookup, Test-NetConnection, TcpClient, net view và Telnet.

S

Services

SMB, SMTP và SNMP cung cấp context sâu khi cấu hình cho phép.

Mindset

Enumeration là quá trình lặp, dựa trên bằng chứng và câu hỏi kỹ thuật.

6.4 Wrapping Up

Checklist tự đánh giá

  1. Tôi có thể giải thích passive và active khác nhau thế nào.
  2. Tôi biết khi nào dùng WHOIS, search operators, code repo và Shodan.
  3. Tôi đọc được A, MX, TXT, PTR và phân biệt NXDOMAIN.
  4. Tôi hiểu TCP CONNECT, SYN scan và hạn chế của UDP scan.
  5. Tôi biết dùng Nmap theo hướng broad-to-narrow và kiểm soát traffic.
  6. Tôi có thể enum SMB, SMTP và SNMP trong lab được phép.
  7. Tôi ghi rõ fact, hypothesis, command, evidence và next action.
Tài Liệu Học Tập PWK

Tiếp tục học PWK / OSCP bằng tiếng Việt

Security365

Sách, video và tài liệu tiếng Việt hỗ trợ học tập PWK / OSCP

security365.vn/pwk-oscp/

Học có hệ thống • Thực hành trong lab được cấp phép • Ghi chép theo phương pháp pentest

01 / 97
← → / Space • Home • End
Đã sao chép