【渗透测试】从域名到真实IP:渗透测试中的信息收集

【渗透测试】信息收集

域名系统

概念

DNS(Domain Name System,域名系统)是互联网的一项核心服务,它的主要作用是将人类易于记忆的域名(如 www.example.com)转换为计算机用于通信的IP地址(如 93.184.216.34)。这个过程被称为“域名解析”。

在域名系统中,位于顶级域名(TLD)之前的那一部分就是二级域名。例如,在example.com这个域名中,example是二级域名,而.com是顶级域名。

DNS服务器

  1. 根服务器(Root):全球共有13组根DNS服务器,它们被命名为从A到M。这些根DNS服务器是互联网域名系统(DNS)的最高层级,负责将域名转换为IP地址的初始步骤。
  2. 顶级域服务器(TLD,如 .com, .org):负责某个顶级域(例如 .com.org、国家域 .cn 等)下域名信息的 DNS 服务器集合。
  3. 权威服务器(Authoritative,存储特定域名的真实记录):对某个域名拥有最终、可信 DNS 记录(A、AAAA、MX、NS、TXT 等)的服务器。
  4. 递归解析器(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 /displaydns

    Linux/macOS:systemd-resolve --statisticssudo 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证书”。

作用

  1. 数据加密:通过 SSL/TLS 协议对客户端和服务器之间的通信进行加密,防止敏感信息(如密码、银行卡号、个人信息等)在传输过程中被窃听或截取。
  2. 身份验证:SSL证书由受信任的第三方机构(称为 CA,Certificate Authority,证书颁发机构)签发,可以验证网站的真实身份,防止用户访问假冒网站(如钓鱼网站)。
  3. 保证数据完整性,防止数据在传输过程中被篡改。

常见的SSL证书类型

  • DV(Domain Validation)证书:仅验证域名所有权,签发快,适合个人网站或测试环境。
  • OV(Organization Validation)证书:验证组织信息,适合企业网站。
  • EV(Extended Validation)证书:最高级别验证,地址栏会显示公司名称(部分浏览器已不再高亮显示),适用于银行、电商等对安全性要求极高的场景。

真实IP收集

  1. 超级ping网站:https://ping.chinaz.com/,若发现一个域名ping出多个ip,一般来说,认为开启了CDN

  2. ping命令

  3. dig命令

    dig命令用于Linux系统,在Windows中可以通过WSL使用

    语法:dig [@server] name [type]

    • @server:可选,指定要查询的 DNS 服务器(如 @8.8.8.8
    • name:要查询的域名(如 example.com
    • type:DNS 记录类型(如 AMXCNAMETXTNSSOA 等)

    仅显示域名对应的IP:dig +short example.com

  4. 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 层看到。

绕过方法

  1. 查询历史DNS记录:查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录

    网站:https://x.threatbook.cn/

    https://sitereport.netcraft.com/

  2. 使用国外主机访问:国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。

  3. 利用网站漏洞,报错

  4. 发邮件

  5. 收集更多子域名,有些子域名可能直接指向源站

私网与公网IP

查看本机IP地址:ipconfig

根据 RFC 1918 标准,以下三类地址是私有地址,只能在内网使用,不能直接在互联网上路由:

私网地址范围CIDR 表示
10.0.0.0 ~ 10.255.255.25510.0.0.0/8
172.16.0.0 ~ 172.31.255.255172.16.0.0/12
192.168.0.0 ~ 192.168.255.255192.168.0.0/16

查看本机公网IP:curl ifconfig.me

旁站

旁站是指 与目标网站部署在同一台服务器(或同一IP地址)上的其他网站。每个网站一个端口。

简单来说,就是同IP下的不同域名

C段

C段指的是 IP地址中前三个字节相同 的一组IP地址。

例如:192.168.1.0/24 表示从 192.168.1.0192.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 数可用主机数
/24255.255.255.08256254
/25255.255.255.1287128126
/26255.255.255.19266462
/16255.255.0.01665,53665,534
/8255.0.0.02416,777,216很多

早期ipv4分类

类型网络范围默认子网掩码主机数量
A类1.x.x.x ~ 126.x.x.x255.0.0.0 (/8)1600万+
B类128.x.x.x ~ 191.x.x.x255.255.0.0 (/16)6万+
C类192.x.x.x ~ 223.x.x.x255.255.255.0 (/24)254台设备

C类IP中,保留192.168.1.0作为路由标识;保留192.168.1.255用于向该网段内所有设备发广播消息

常用端口

服务/协议端口号说明
ftp21文件传输协议
ssh\sftp22安全外壳协议,用于远程登录
telnet23远程主机管理,常用于交换机、路由器等设备
smtp25发送邮件(简单邮件传输协议)
pop3110接收邮件(邮局协议版本3)
dns53域名解析服务
smb445微软文件共享,Windows系统常用,也与139端口相关
https443安全超文本传输协议(HTTPS)
http80超文本传输协议(HTTP)
apache80, 443Web服务器,支持HTTP和HTTPS
nginx80, 443Web服务器,支持HTTP和HTTPS
tomcat8080Java应用服务器,Web服务默认端口
weblogic7001Oracle WebLogic Server 默认管理端口
mysql3306MySQL数据库服务
mssql1433Microsoft SQL Server 数据库服务
oracle1521Oracle 数据库服务
postgresql5432PostgreSQL 数据库服务
redis6379Redis 内存数据库服务
mongodb27017MongoDB 数据库服务
vnc5900远程控制工具,虚拟网络计算
IIS80Internet Information Services,微软Web服务器
jboss8080JBoss 应用服务器默认端口
rdp (Remote Desktop Protocol)3389远程桌面协议,Windows远程桌面连接
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值