游客发表
去年帮一个做渗透测试的绕过朋友查目标,他丢过来一个域名,取网说主站套了Cloudflare,站的真实直接扫IP全是绕过CDN节点。我看了眼域名,取网先没动工具,站的真实直接翻他的绕过DNS解析历史——三年前这站还没上CDN时,A记录指向一个洛杉矶的取网独立IP。那台服务器现在还在跑,站的真实只是绕过前端挂了Cloudflare。这种情况太常见了,取网很多站点的站的真实真实IP就藏在DNS历史里,压根不用绕。绕过
查DNS历史最直接的取网办法是跑SecurityTrails或者ViewDNS,免费额度够用。站的真实输入域名,看A记录的时间线,找最早那条或者CDN上线前最后那条。有次我查一个电商站,历史记录里有个IP在CDN启用后还持续解析了两个月,大概率是运维忘了删的备用入口。直接访问那个IP,Host头改成域名,后台登录页就出来了。这种“遗留解析”比任何高级技巧都省事。
如果DNS历史被清理过,下一步看子域名。主站套CDN不代表所有子域都套。用OneForAll或者Amass跑一遍子域枚举,重点找dev、test、staging、mail、ftp这类前缀。去年一个案例,主站Cloudflare,但dev.example.com直接解析到阿里云ECS,没有CDN。因为开发环境通常懒得配CDN,或者配了但没同步更新。找到这种子域,查它的A记录,往往就是同C段甚至同IP的真实服务器。
邮件服务器是另一个重灾区。很多站点主站CDN,但MX记录指向自建邮件服务器,而邮件服务器和Web服务器经常在同一台机器或同一内网。用dig查MX,拿到邮件服务器IP,再扫这个IP的80和443端口,看返回的证书里有没有目标域名。有次我查一个论坛,MX指向一个DigitalOcean的IP,访问443端口,证书SAN里赫然写着forum.example.com和www.example.com。Cloudflare只代理了Web流量,邮件流量绕不过去,真实IP就这么漏了。
SSL证书本身也是线索。Censys和Shodan可以按证书搜索。拿目标域名的证书指纹或者组织名称去搜,能找出所有用同一张证书的IP。很多运维图省事,主站和真实服务器用同一张Let's Encrypt证书,CDN回源时也是这张。你在Censys搜证书SHA256,过滤掉Cloudflare的IP段,剩下的就是真实服务器。这招对中小站点命中率极高,大厂反而少见,因为大厂证书管理规范,CDN和源站证书分开。
扫全网找特定特征也行,但费时间。比如目标网站有个独特的favicon.ico,算它的hash,去Shodan搜http.favicon.hash。或者页面里有个特殊的JS文件路径,用ZoomEye搜body内容。我试过一个站,favicon的mmh3 hash是-123456789,Shodan上一搜,三个IP,两个是Cloudflare,一个是源站。这种方法适合有耐心的人,扫全网几分钟到几小时不等,看目标特征是否唯一。
最后说个偏门但有效的:看目标网站的历史快照。Wayback Machine里翻2015年左右的存档,那时候很多站还没上CDN,页面源码里可能直接写着服务器IP,或者统计代码、广告代码里嵌了真实IP。有次我翻一个博客的2008年快照,评论区的 Gravatar 缓存地址直接暴露了源站IP。老站尤其管用,新站就算了。
这些方法没有先后顺序,哪个先出结果就用哪个。实际干活时我通常DNS历史和子域枚举同时跑,证书搜索挂后台,十分钟内基本能定位。Cloudflare不是铜墙铁壁,它只保护它代理的那部分,漏掉一个子域、一条MX记录、一张证书,真实IP就出来了。运维的疏忽永远比技术的漏洞好利用。
友情链接