渗透测试之信息收集全攻略:从子域名挖掘到端口扫描实战指南
渗透测试信息收集策略
1. 信息收集的重要性
信息收集是渗透测试的第一步,目的是获取尽可能多的关于目标的信息,以便发现潜在漏洞。
2. 子域名收集
方法一:子域名挖掘器
使用工具如sublist3r进行暴力枚举:
sublist3r-dexample.com方法二:Google 搜索语法
https://cn.bing.com 测验网址
Google搜索本质上属于被动信息收集(不触碰目标服务器)。针对子域名,核心操作符是site:。
1. 基础子域名查询
site:example.com这只是列出所有收录页面,噪音很大。
2. 精准提取子域名(排除主站)
site:*.example.com -site:www.example.com -site:example.com
*是通配符,-是排除符。这能直接列出所有二级、三级域名。
3. 寻找“隐藏管理后台”或“测试环境”
site:*.example.com intitle:"登录" | intitle:"admin" | inurl:login site:*.example.com inurl:dev | inurl:test | inurl:staging4. 寻找泄露的配置文件或源码(可能包含内部域名)
site:example.com filetype:conf | filetype:env | filetype:yaml3. DNS与IP信息查询
使用dig命令查询DNS解析记录:
digexample.com ANYdigexample.com Adigexample.com MX可获取的信息包括:
- IP地址
- 邮件服务器
- DNS服务器
- 注册商信息(WHOIS)
4. 目录与端口扫描
目录扫描工具:
- dirb
- dirbuster
- gobuster
端口扫描工具:
- nmap - 扫描C段发现开放端口和服务
nmap基本命令
nmap -sS -sV -p22,80,3306,443 192.168.178.1Nmap扫描命令示例:-sS -sV -p参数组合可指定扫描22(SSH)、80(HTTP)、3306(MySQL)、443(HTTPS)等常见服务端口
关键点:
- 目标类型决定输入格式(IP/网段)
- Nmap通过
-p参数可精准扫描指定端口 - 端口号与服务需对应记忆(如443=HTTPS)
nmap 192.168.178.1-160 探测存活端口- 可以同时扫描多个IP,比如"nmap 192.168.50.1 192.168.50.158"
- 还能扫描整个IP段,例如"nmap 192.168.50.1-160",这样会自动探测该范围内所有存活主机的常见端口
nmap -sL192.168.178.0/24 nmap -sn 192.168.178.0/24-sL:只是列出即将扫描的主机列表,不会实际执行扫描,相当于"预览模式"。
-sn:这才是真正执行主机存活探测的参数,但不扫描端口。
**半连接扫描(-sS)和全连接扫描(-sT)**的区别:
半连接扫描只完成TCP三次握手的前两步(发送SYN,接收SYN-ACK后就结束),
而全连接扫描会完整走完三次握手过程。
-p-扫描所有端口
-T0到-T5数值越小(如T0)扫描越慢但更精准,数值大(如T5)则速度快但容易漏扫。
--script vuln参数启动漏洞扫描
常见服务端口
| 端口 | 常见服务 | 用途举例 |
|---|---|---|
21/tcp | FTP | 文件传输 |
22/tcp | SSH | Linux 远程管理 |
23/tcp | Telnet | 明文远程管理 |
25/tcp | SMTP | 邮件发送 |
53/tcp/udp | DNS | 域名解析 |
80/tcp | HTTP | Web 网站 |
110/tcp | POP3 | 邮件接收 |
139/tcp | NetBIOS | Windows 文件共享相关 |
143/tcp | IMAP | 邮件接收与管理 |
443/tcp | HTTPS | 加密 Web 网站 |
445/tcp | SMB | Windows 文件与打印共享 |
3306/tcp | MySQL | MySQL 数据库 |
3389/tcp | RDP | Windows 远程桌面 |
5432/tcp | PostgreSQL | PostgreSQL 数据库 |
6379/tcp | Redis | Redis 数据库 |
8080/tcp | HTTP 备用端口 | Web 管理页面、应用服务 |
8443/tcp | HTTPS 备用端口 | 加密管理页面、应用服务 |
#最简单端口扫描 ┌──(root㉿kali)-[~] └─# nmap 192.168.178.1 Starting Nmap 7.98 ( https://nmap.org ) at 2026-07-19 04:55 -0400 Nmap scan report for 192.168.178.1 Host is up (0.00059s latency). Not shown: 995 filtered tcp ports (no-response) PORT STATE SERVICE 80/tcp open http 81/tcp open hosts2-ns 902/tcp open iss-realsecure 912/tcp open apex-mesh 3306/tcp open mysql MAC Address: 00:50:56:C0:00:08 (VMware) Nmap done: 1 IP address (1 host up) scanned in 5.62 seconds看懂端口状态
Nmap 常见的六种端口状态如下:
| 状态 | 通俗解释 | 技术含义 |
|---|---|---|
open | 门开着,里面有人提供服务 | 应用正在接受 TCP 连接、UDP 数据报或 SCTP 关联 |
closed | 能找到门,但门后没有服务 | 目标可达,但没有应用监听该端口 |
filtered | 被保安拦住,看不到门内情况 | 防火墙或过滤设备使 Nmap 无法判断开放还是关闭 |
unfiltered | 能到达端口,但当前探测无法判定开关 | 常见于 ACK 扫描 |
open|filtered | 可能开放,也可能被过滤 | 探测没有响应,无法区分两种情况 |
closed|filtered | 可能关闭,也可能被过滤 | 特定扫描方式下无法区分 |
--reason判断原因
PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 64 23/tcp closed telnet reset ttl 64 80/tcp filtered http no-response解释:
syn-ack:收到 SYN/ACK,因此判断端口开放;reset:收到 RST,因此判断端口关闭;no-response:没有收到响应,结合当前扫描方式判断为过滤。
TCP 与 UDP 可以组合
sudonmap-sS-sU-pT:22,80,443,U:53,161192.168.56.101T:指定 TCP 端口U:指定 UDP 端口
