【渗透测试】信息收集
域名系统
概念
DNS(Domain Name System,域名系统)是互联网的一项核心服务,它的主要作用是将人类易于记忆的域名(如 www.example.com)转换为计算机用于通信的IP地址(如 93.184.216.34)。这个过程被称为“域名解析”。
在域名系统中,位于顶级域名(TLD)之前的那一部分就是二级域名。例如,在example.com这个域名中,example是二级域名,而.com是顶级域名。
DNS服务器
- 根服务器(Root):全球共有13组根DNS服务器,它们被命名为从A到M。这些根DNS服务器是互联网域名系统(DNS)的最高层级,负责将域名转换为IP地址的初始步骤。
- 顶级域服务器(TLD,如
.com,.org):负责某个顶级域(例如.com、.org、国家域.cn等)下域名信息的 DNS 服务器集合。 - 权威服务器(Authoritative,存储特定域名的真实记录):对某个域名拥有最终、可信 DNS 记录(A、AAAA、MX、NS、TXT 等)的服务器。
- 递归解析器(Recursive Resolver,如 ISP(网络服务提供商) 或公共 DNS 服务):用户设备配置的 DNS 客户端所查询的服务器(例如 Google Public DNS:
8.8.8.8 / 8.8.4.4、Cloudflare DNS:1.1.1.1 / 1.0.0.1),负责为客户端完成完整解析过程。
DNS解析
浏览器缓存 → 操作系统解析(内部再分:Hosts → 系统缓存 → 外部DNS) → 递归解析器 → 根服务器 → 顶级域服务器 → 权威服务器 → 返回结果并缓存 → 建立连接。
浏览器缓存检查
- 浏览器首先在自身缓存中查找该域名(如
www.google.com)的 DNS 记录,受 DNS 记录的 TTL(生存时间) 控制,过期后自动清除。不同浏览器之间相互独立。 - 若缓存未过期,直接使用记录中的 IP,无需再次解析。
Hosts 文件检查
- 若浏览器没有命中,系统会检查本地
hosts文件(Windows 在C:\Windows\System32\drivers\etc\hosts),对于Linux或MacOS系统,则位于/etc/hosts。 - 若文件中存在该域名的映射(例如
142.250.190.68 www.google.com),直接使用对应 IP。
操作系统缓存检查
-
若Hosts文件没有,操作系统会查询本地 DNS 缓存。这是操作系统层面维护的域名解析结果(例如 Windows 的
DNS Client Service)。 -
查看方法:Windows:
ipconfig /displaydnsLinux/macOS:
systemd-resolve --statistics或sudo killall -INFO mDNSResponder(不同发行版命令不同) -
如果找到有效记录,直接返回 IP。
向本地 DNS 服务器发起查询
- 如果本地没有记录,系统会将查询请求交给递归解析器(Recursive Resolver),一般由 ISP 或 公共 DNS(如 8.8.8.8) 提供。
递归查询开始:向根服务器请求
- 递归解析器若没有缓存,会先请求 根域名服务器(Root Server)。
- 根服务器不会返回目标 IP,而是告诉解析器:“
.com顶级域名服务器在这里。”
查询顶级域名服务器(TLD Server)
- 递归解析器接着向
.com顶级域名服务器发出查询。 - TLD 服务器返回负责
google.com的权威 DNS 服务器地址。
查询权威 DNS 服务器(Authoritative Server)
- 递归解析器向
google.com的权威服务器请求www.google.com的 IP。 - 权威服务器返回真实记录(如
142.250.190.68)。
结果缓存与返回
- 递归解析器将该结果返回给客户端操作系统,并在本地缓存(遵循记录中的 TTL 时长)。
- 操作系统也缓存一份结果,供后续请求复用。
浏览器发起连接
- 浏览器获得 IP 后,通过 TCP(三次握手)或 TLS(若为 HTTPS)与目标服务器建立连接,然后开始 HTTP 请求流程。
子域名信息查询
在线网站
http://tools.bugscaner.com/subdomain/
https://site.ip138.com/
工具
JSFinder:https://github.com/Threezh1/JSFinder
这个工具主要是从js中爬取子域名信息
ICP备案
ICP备案,全称是“互联网信息服务备案”(Internet Content Provider Registration),是中国大陆对网站、APP等互联网信息服务提供者实行的一种行政管理制度。
查询网站:https://beian.miit.gov.cn/输入网站备案号可以查询网站域名
SSL证书
SSL证书(Secure Sockets Layer Certificate)是一种数字证书,用于在互联网上建立加密连接,确保客户端(如浏览器)与服务器(如网站)之间传输的数据安全、私密且未被篡改。尽管现在广泛使用的是其继任者 TLS(Transport Layer Security,传输层安全协议),但人们仍习惯性地称这类证书为“SSL证书”。
作用
- 数据加密:通过 SSL/TLS 协议对客户端和服务器之间的通信进行加密,防止敏感信息(如密码、银行卡号、个人信息等)在传输过程中被窃听或截取。
- 身份验证:SSL证书由受信任的第三方机构(称为 CA,Certificate Authority,证书颁发机构)签发,可以验证网站的真实身份,防止用户访问假冒网站(如钓鱼网站)。
- 保证数据完整性,防止数据在传输过程中被篡改。
常见的SSL证书类型
- DV(Domain Validation)证书:仅验证域名所有权,签发快,适合个人网站或测试环境。
- OV(Organization Validation)证书:验证组织信息,适合企业网站。
- EV(Extended Validation)证书:最高级别验证,地址栏会显示公司名称(部分浏览器已不再高亮显示),适用于银行、电商等对安全性要求极高的场景。
真实IP收集
-
超级ping网站:
https://ping.chinaz.com/,若发现一个域名ping出多个ip,一般来说,认为开启了CDN -
ping命令
-
dig命令
dig命令用于Linux系统,在Windows中可以通过WSL使用
语法:
dig [@server] name [type]@server:可选,指定要查询的 DNS 服务器(如@8.8.8.8)name:要查询的域名(如example.com)type:DNS 记录类型(如A、MX、CNAME、TXT、NS、SOA等)
仅显示域名对应的IP:
dig +short example.com -
nslookup指令
nslookup example.com若发现非权威应答里面有多个IP,可以认为开启了CDN
CDN
CDN(Content Delivery Network,内容分发网络)是一种分布式服务器系统,旨在将网站、应用或其他网络内容更快速、高效、可靠地传递给用户。
CDN 通过在全球多个地理位置部署边缘节点(Edge Servers),将原始服务器(Origin Server)上的内容缓存到离用户更近的节点上。当用户请求内容时,CDN 会自动将请求路由到距离最近或负载最轻的节点,从而减少延迟、提升加载速度,并降低源站压力。
绕过原因
CDN会隐藏真实源站IP地址。CDN 作为中间代理,对外只暴露其边缘节点的 IP。渗透测试人员若直接对 CDN 提供的 IP 进行扫描或攻击,实际打的是 CDN 节点,而非真正的服务器。这就会导致无法探测到源站的真实漏洞(如 Web 应用漏洞、开放端口、弱服务配置等)。
另外,某些漏洞只能在源站复现,比如服务器配置错误(如 Apache 目录列表)、内部接口泄露、调试页面、未授权访问等。这些内容可能被 CDN 缓存策略或安全规则屏蔽,无法从 CDN 层看到。
绕过方法
-
查询历史DNS记录:查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录
网站:
https://x.threatbook.cn/https://sitereport.netcraft.com/ -
使用国外主机访问:国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
-
利用网站漏洞,报错
-
发邮件
-
收集更多子域名,有些子域名可能直接指向源站
私网与公网IP
查看本机IP地址:ipconfig
根据 RFC 1918 标准,以下三类地址是私有地址,只能在内网使用,不能直接在互联网上路由:
| 私网地址范围 | CIDR 表示 |
|---|---|
10.0.0.0 ~ 10.255.255.255 | 10.0.0.0/8 |
172.16.0.0 ~ 172.31.255.255 | 172.16.0.0/12 |
192.168.0.0 ~ 192.168.255.255 | 192.168.0.0/16 |
查看本机公网IP:curl ifconfig.me
旁站
旁站是指 与目标网站部署在同一台服务器(或同一IP地址)上的其他网站。每个网站一个端口。
简单来说,就是同IP下的不同域名
C段
C段指的是 IP地址中前三个字节相同 的一组IP地址。
例如:192.168.1.0/24 表示从 192.168.1.0 到 192.168.1.255 的所有IP,这就是一个典型的 C段。
/24 是 CIDR(无类别域间路由,Classless Inter-Domain Routing)表示法 中的一种写法,用来简洁地描述一个 IP 地址段(子网)的范围。
/24表示子网掩码为255.255.255.0,即 IP 地址的前 24 位是网络部分,后 8 位是主机部分。IPv4 总共 32 位,CIDR 的数字表示“网络部分占多少位”,剩下的就是“主机部分”。
| CIDR | 子网掩码 | 主机位数 | 总 IP 数 | 可用主机数 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 8 | 256 | 254 |
| /25 | 255.255.255.128 | 7 | 128 | 126 |
| /26 | 255.255.255.192 | 6 | 64 | 62 |
| /16 | 255.255.0.0 | 16 | 65,536 | 65,534 |
| /8 | 255.0.0.0 | 24 | 16,777,216 | 很多 |
早期ipv4分类
| 类型 | 网络范围 | 默认子网掩码 | 主机数量 |
|---|---|---|---|
| A类 | 1.x.x.x ~ 126.x.x.x | 255.0.0.0 (/8) | 1600万+ |
| B类 | 128.x.x.x ~ 191.x.x.x | 255.255.0.0 (/16) | 6万+ |
| C类 | 192.x.x.x ~ 223.x.x.x | 255.255.255.0 (/24) | 254台设备 |
C类IP中,保留
192.168.1.0作为路由标识;保留192.168.1.255用于向该网段内所有设备发广播消息
常用端口
| 服务/协议 | 端口号 | 说明 |
|---|---|---|
| ftp | 21 | 文件传输协议 |
| ssh\sftp | 22 | 安全外壳协议,用于远程登录 |
| telnet | 23 | 远程主机管理,常用于交换机、路由器等设备 |
| smtp | 25 | 发送邮件(简单邮件传输协议) |
| pop3 | 110 | 接收邮件(邮局协议版本3) |
| dns | 53 | 域名解析服务 |
| smb | 445 | 微软文件共享,Windows系统常用,也与139端口相关 |
| https | 443 | 安全超文本传输协议(HTTPS) |
| http | 80 | 超文本传输协议(HTTP) |
| apache | 80, 443 | Web服务器,支持HTTP和HTTPS |
| nginx | 80, 443 | Web服务器,支持HTTP和HTTPS |
| tomcat | 8080 | Java应用服务器,Web服务默认端口 |
| weblogic | 7001 | Oracle WebLogic Server 默认管理端口 |
| mysql | 3306 | MySQL数据库服务 |
| mssql | 1433 | Microsoft SQL Server 数据库服务 |
| oracle | 1521 | Oracle 数据库服务 |
| postgresql | 5432 | PostgreSQL 数据库服务 |
| redis | 6379 | Redis 内存数据库服务 |
| mongodb | 27017 | MongoDB 数据库服务 |
| vnc | 5900 | 远程控制工具,虚拟网络计算 |
| IIS | 80 | Internet Information Services,微软Web服务器 |
| jboss | 8080 | JBoss 应用服务器默认端口 |
| rdp (Remote Desktop Protocol) | 3389 | 远程桌面协议,Windows远程桌面连接 |
1万+

被折叠的 条评论
为什么被折叠?



