如何有效识别网站真实IP?

7 人参与

渗透测试或安全审计中,判断目标站点背后到底是哪台服务器,往往决定后续的攻击面能否展开。很多企业直接把网站托管在CDN、WAF之后,表面的IP只是一层“雾”。要穿透这层雾,必须把“真实IP”找出来,否则所有后续的端口扫描、漏洞探测都会在错位的主机上打转。

核心思路概览

思路可以归结为四个维度:历史解析、子域名与旁站、公开搜索引擎、证书与TTL信息。每个维度都提供一条或多条线索,交叉验证后往往能锁定唯一的IP。

DNS历史记录挖掘

  • 利用 dnsdb.ioviewdns.info 查询域名的历史A记录,注意筛选出出现次数最多且在CDN启用前的IP。
  • 对比不同时间段的TTL值,异常偏高(如300秒以上)往往是CDN缓存,偏低的记录更可能是源站。
  • 把历史IP导入 pingtraceroute,观察是否出现“* * *”的丢包现象,丢包率低的往往是真实服务器。

子域名与旁站扫描

  • 使用 phpinfo.meSublist3r 抓取全部子域名;子域名常常没有走全局CDN。
  • 对每个子域名执行 nslookup,记录返回的IP;若出现与主域不同的IP,直接尝试访问,验证页面内容是否与主站一致。
  • 旁站工具(如 webscan.cc)列出同IP下的其他站点,交叉比对页面结构或标题,往往能发现隐藏的真实IP。

利用第三方搜索引擎

FOFA、Shodan、Zoomeye等空间搜索平台提供的语法非常灵活。比如在FOFA中输入 host="example.com" && cert="*.example.com",系统会返回所有匹配证书的资产,其中不少直接暴露源站IP。搜索结果里常伴随端口、服务指纹,进一步确认后即可定位。

SSL证书泄露的线索

HTTPS站点的证书里会记录 Subject Alternative Name(SAN)字段,很多时候会出现子域名对应的IP地址。通过 Censyscrt.sh 下载证书,解析后搜索 IP Address 项,往往能直接得到目标服务器的公网IP。

跨地域请求与TTL分析

从不同国家的节点发起 HTTP 请求,CDN会根据就近原则返回不同的边缘IP。如果某一次请求返回的IP在多次测试中保持不变,而且TTL值与本地网络相近(如45~60),这通常是源站的真实IP。结合 curl -I -s -o /dev/null -w "%{remote_ip} %{time_total}" 的输出,即可快速筛选。

把上述几个维度的结果交叉对照,若出现同一个IP在历史解析、子域名、证书以及跨地域请求中均被指向,那么基本可以认定为目标站点的真实IP。随后再用 nmaphttpx 等工具进行进一步指纹识别,整个流程便完成了。

参与讨论

7 条评论
  • Autumn Breeze

    这方法靠谱,之前找IP就靠子域名和证书交叉验证。

    回复
  • 笔落惊鸿

    有人试过用FOFA搜证书吗?会不会误报太多?

    回复
  • 夜半狐鸣

    感觉TTL分析那块有点复杂,新手不太容易上手啊。

    回复
  • 雾里呢喃

    我一般直接扫旁站,经常能找到源站IP,效率挺高的。

    回复
  • 晚晴

    这个思路挺全的,就是工具得一个个试,有点费时间。

    回复
  • 朱雀圣女

    历史解析查到的IP,怎么判断是不是旧的废弃IP啊?🤔

    回复
  • 复活兔子

    之前搞渗透就卡在这步了,看完感觉清晰了点。

    回复