免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

网络安全实战:信息收集实战——子域名、端口、指纹、社工信息聚合

网络安全实战:信息收集实战——子域名、端口、指纹、社工信息聚合 前言在迷雾中寻找那扇虚掩的门在网络攻击的链条中信息收集是那个最枯燥、最耗时却也是最决定成败的环节。很多初入行的渗透测试人员往往按捺不住躁动的心拿到一个目标就急匆匆地掏出 SQLMap 或 Burp Suite 开始怼注入或者对着登录框一通爆破。这就像是特种部队在作战时连敌人的大门朝哪开、有多少卫兵、是否藏着陷阱都不知道就盲目冲锋。结果往往是撞得头破血流或者在 WAF 的报警声中草草收场。应始终信奉一句话“渗透测试的本质是信息不对称的博弈。”攻击者之所以能战胜防御者并非总是因为技术有多高超往往是因为我们比防御者更了解他们的系统——比开发者更清楚遗留的测试接口比运维更懂那些被遗忘的开放端口比管理员更明白那套陈旧的 CMS 版本意味着什么。信息收集不是简单的“丢扫描器”而是一场精密的“拼图游戏”。我们需要从海量的噪声中提取出那些能够撕开防线的特征信号。今天我们就摒弃教科书式的参数罗列以实战的视角深入剖析子域名、端口、指纹与社工信息聚合的攻防艺术。第一章 广度优先子域名收集的“地毯式搜索”面对一个大型目标主域名往往固若金汤。主站通常部署着最昂贵的 WAF、最严格的监控和最专业的运维团队。但是正如城堡的侧门往往防守薄弱大型企业的边缘资产往往是攻击者的突破口。1.1 证书透明度日志公开的秘密现代 HTTPS 的普及给我们留下了一个巨大的金矿——证书透明度日志。为了防止恶意证书签发CA 机构会将所有签发的证书记录在公开的日志系统中。实战技法利用CT Log搜索引擎如 Censys、 crt.sh 或国内的开发者工具是首选。我不会只搜索单个主域名而是关注证书的“Subject Alternative Name” (SAN) 字段。很多时候一张证书可能包含几十个子域名。例如一张通配符证书*.target.com可能意外地泄露了内部测试环境的域名jenkins.internal.target.com。自动化利器我常用的组合是Sublist3r或OneForAll。特别是OneForAll它集成了多个接口能够自动化地从 API 接口如 VirusTotal、SecurityTrails拉取数据。但要注意自动化工具跑出的结果往往包含大量误报或已失效的域名。手工验证是必不可少的步骤。我会写一个简单的脚本对收集到的域名进行 DNS 解析过滤掉那些 CNAME 指向但 A 记录已失效的“幽灵域名”。1.2 爆破的艺术DNS 枚举的深度如果被动收集不够我们需要主动出击。DNS 爆破并非简单的字典堆砌。分层爆破策略很多新手上来就用subdomainsbrute加上百万字典跑结果是被目标 DNS 服务器的限速机制封禁 IP。我的习惯是分层处理粗扫使用 Top 1w 的常用字典如www,mail,test,dev快速探测存活。精扫针对大型企业往往有特定的命名规律。通过分析已发现的子域名推导其命名规则。如果发现node-01.target.com那么node-02到node-99都值得尝试。字典定制将企业名称缩写、英文简写加入字典。比如redmine-targetgitlab-target。1.3 泛解析的噩梦与破局最让渗透测试人员头疼的莫过于泛解析。访问askldjklasj.target.com竟然也返回 200 OKIP 地址和主站一样。这就像战场上的烟雾弹让扫描器瞬间爆炸。实战对抗破局的关键在于“异质性”。我们要寻找那些不遵循泛解析规则的特殊子域名。特殊记录查询查询 MX、TXT、NS 记录。泛解析通常只针对 A 记录。如果发现mail.target.com指向了企业内部邮件服务器而非泛解析 IP那这就是真实资产。HTTP 响应差异编写脚本对比随机子域名和字典子域名的响应体长度、Title、哈希值。如果响应内容完全一致判定为泛解析如果出现细微差异如Welcome to GitlabvsWelcome to Jira则极有可能是真实资产。1.4 网络空间测绘引擎上帝视角的侦察在这个时代ZoomEye、Shodan、Fofa 这样的网络空间测绘引擎给了我们“上帝视角”。不仅仅是搜索域名我们可以在 ZoomEye 中搜索app:WordPress hostname:target.com直接找出目标使用的特定应用组件。实战案例曾有一次主站没有任何漏洞但我通过 ZoomEye 搜索该企业的 IP 段发现了一个并未绑定域名的独立 IP上面运行着一个老旧的Zookeeper管理中心且未授权访问。通过这个边缘资产直接拿到了内网权限。这就是“IP 历史记录”与“端口资产”的威力。第二章 深度触探端口扫描与服务的“画像”域名只是门牌号端口才是真正的窗户。很多高危服务并不在常规的 80 或 443 端口上而是隐藏在高位端口或者伪装在非标准端口上。2.1 Nmap不仅仅是检测存活Nmap 是端口扫描的瑞士军刀但很多人只会用nmap -sV。在实战中为了躲避 IDS/WAF 的检测我们需要更加隐蔽的扫描策略。隐蔽扫描技巧分片扫描将数据包分片发送绕过某些简单的包过滤防火墙。慢速扫描使用T1或T2时序模板将扫描时间拉长避免触发流量阈值。虽然慢但在高安全目标下活着比快更重要。僵尸扫描利用伪造源 IP 技术通过空闲主机进行扫描实现完全的匿名扫描虽然条件苛刻但在特定场景下威力巨大。2.2 全端口的必要性很多企业的安全策略是“只对外开放 80, 443, 22, 3389”。但实际上开发人员为了方便调试可能会临时开放 8080, 8888, 9090 等端口事后却忘记关闭。SOP标准作业程序建议必须进行全端口扫描。虽然耗时长但收益往往惊人。我曾扫出过 65535 端口上跑着的 Weblogic 服务直接拿下权限。2.3 服务指纹识别透视表象端口开放只是表象真正的风险在于服务版本和组件。Nmap -sV虽然能识别服务但在面对经过修改的 Web Server如魔改的 Nginx或 Java 中间件时往往力不从心。深度指纹识别我会配合使用WhatWeb或Wappalyzer的 CLI 版本。重点识别CMS 类型与版本直接搜索对应漏洞。开发框架是 Spring BootThinkPHP还是 DjangoSpring Boot 的 Actuator 端点泄露是一个高频漏洞点。第三方组件查看 HTTP 响应头中的X-Powered-BySet-Cookie中的特征字符串。例如JSESSIONID暗示 Java 环境PHPSESSID暗示 PHP 环境。实战案例一次测试中目标站点只有一个静态登录页没有任何漏洞。但在指纹识别时我发现 HTTP 响应头里有一个冷门的X-Upstream-Addr泄露了后端是一个内网的Kibana服务。通过调整请求包我直接访问到了 Kibana 的控制台利用CVE-2019-7609漏洞实现了 RCE。第三章 精准打击Web 指纹与架构分析当锁定了 Web 应用后我们需要给它做一次“CT扫描”搞清楚它是怎么搭建起来的。3.1 静态文件的去噪很多人忽略robots.txt、sitemap.xml、README.md这些静态文件。这些文件往往泄露了目录结构、后台路径甚至是具体的 CMS 版本。实战技巧查看静态资源的哈希值。比如http://target.com/static/js/common.js。如果这个 JS 文件的哈希值与某个开源 CMS如 WordPress v5.4的对应文件哈希一致那么目标的 CMS 版本就已锁定。3.2 源码泄露的“寻宝游戏”这是我最喜欢的环节。开发者为了方便经常把.git、.svn、.DS_Store、WEB-INF等配置文件遗留在 Web 目录下。.git 泄露利用githack工具直接还原源代码。这是最高价值的漏洞意味着你可以审计代码逻辑找出 0-day 漏洞。SVN 泄露同样可以下载源码。备份文件尝试www.zip,web.tar.gz,backup.sql等常见文件名。一旦撞库成功拿到数据库备份或源码备份渗透测试基本宣告结束。3.3 WAF 与蜜罐的识别在指纹识别阶段我们还要判断防守方的“盾牌”。通过发送恶意的 Payload如../../etc/passwd观察响应包。如果返回 403 Forbidden 且页面是 Cloudflare 的特征那就要考虑更换 IP 或绕过策略。如果响应包极其怪异比如返回了一个看似正常的页面但包含大量随机链接这可能是蜜罐。对于蜜罐我们要么绕过要么果断放弃避免打草惊蛇。第四章 湿件渗透社工信息聚合的艺术网络安全不仅有“硬件”还有“湿件”——人。人是系统中最脆弱的环节。信息收集的最高境界是从公开的网络信息中拼凑出人的画像。4.1 GitHub 代码泄露开发者的后花园GitHub 是红队信息收集的必争之地。开发人员经常在提交代码时不小心上传了配置文件、密钥、API 接口文档。实战搜索语法target.com passwordtarget.com api_keytarget.com smtpfilename:.env进阶技巧通过搜索目标企业的邮箱后缀如target.com找到开发人员的 GitHub 账号。查看他们的Commits记录。即使现在的代码是安全的几个月前的提交记录里可能藏着数据库密码。我曾在一个开发者的旧仓库里发现了一个jdbc:mysql连接串里面包含了测试环境的数据库账号密码。令人惊喜的是这个测试库账号竟然和生产库密码相同。4.2 邮箱与组织架构绘制利用theHarvester等工具我们可以从 Google、Bing、LinkedIn 等平台抓取目标企业的邮箱格式。通过分析邮件头我们可以确认企业的邮件网关类型。通过 LinkedIn领英我们可以绘制企业的组织架构。知道谁是 IT 经理谁是 HR。这不仅有助于社工钓鱼还能让我们知道哪些账号是高价值目标如管理员账号admintarget.com。4.3 搜索引擎的“尸体”互联网是有记忆的。利用Wayback Machine互联网档案馆我们可以查看目标网站的历史快照。很多已经被删除的接口、测试页面依然留存在历史快照中。比如主站已经升级到了新版但 2018年的快照里可能还保留着旧版的upload.php接口。这个接口在新版中可能只是被注释掉了并没有真正删除成为了一个“时光机漏洞”。第五章 聚合与产出从数据到情报信息收集的最后一步是将散落的拼图拼成一张完整的攻击地图。我们需要对收集到的信息进行清洗和去重资产库建立将域名、IP、端口、中间件版本录入 Excel 或渗透测试管理系统。脆弱点标注将疑似存在漏洞的点如弱口令、旧版本组件标记为红色。攻击路径规划根据资产分布规划攻击路径。是先拿边缘资产的 Shell还是直接爆破主站后台结语没有调查权就没有发言权在网络安全的战场上如果你觉得无懈可击往往是因为你看的不够仔细。那扇虚掩着的门可能藏在第 65535 个端口后藏在一段被遗忘的 JS 代码里藏在两年前的一次 Git Commit 中。信息收集是对耐心的考验是对细心的磨砺。它枯燥因为它需要你像考古学家一样在沙砾中翻找它精彩因为当你找到那个关键碎片时整个防线将在你眼前瞬间崩塌。
返回列表