信息收集笔记(一)

信息收集在开始一项渗透测试工作的前期工作中有着很重要的地位,因为这决定了你能找到的攻击面有多大,也是你能否成功渗透目标的关键。

收集方法

信息收集分为两类:主动收集和被动收集。

主动收集是指通过扫描确认目标的操作系统和网络服务,为后续发现漏洞提供信息帮助,但它可能引起目标的注意,或被记录下扫描行为。一些服务指纹检测、网站爬虫都是主动收集的方式,它们直接向目标发起请求,在有防火墙的情况下,可能会被拦截告警。

被动收集是指在不接触目标的情况下,通过互联网搜索来收集目标遗留在网络中的信息。这样可以避免引起目标的警觉。网上很多人说的公开来源情报(Open-Source Intelligence,OSINT,简称“开源情报”)正是需要被动收集的信息,它是从公共资源中收集到的。

在收集信息时,无论是主动还是被动,建议使用小号,尤其是在一些社交平台上的信息收集,小号可以避免行为暴露。

下面介绍 6 个信息收集的方法,分别是子域名与 IP 收集、端口服务探测、网站指纹识别、旁站与 C 段查询、WAF 探测和敏感信息收集。

子域名与 IP 收集

收集子域名和 IP 常常是信息收集的开端,这对你摸清整个目标的资产起着很关键的作用,它们直接决定了渗透目标范围的大小。
关于收集子域名的技术原理在《红蓝对抗之域名搜集方法总结》中有详细的介绍,主要包括证书透明度、DNS 查询、Whois 查询、备案网站、搜索引擎、暴力猜测等多种方法实现。
收集子域名可以通过一些在线网站或者本地工具来收集,常用的工具或站点有 OneForAll、subDomainsBrute、subfinder、ESD、Amass、DNSDumpster 和 Subdomain Finder。

  • OneForAll 功能上非常集全,使用字典爆破、证书透明度、常规检查(域传递、sitemap 文件、robts 文件、内容安全策略
    csp 等)、网络爬虫、DNS 数据集、DNS 查询、威胁情报平台、搜索引擎等多种方式,也支持多种文件格式导出。OneForAll
    收集到的有效域名很多,但经常会有误报,速度相对比较慢。

使用示例如下:

python3 oneforall.py --target XXX.com run
  • subDomainsBrute采用暴力猜解域名的方式,速度快、准确度高。但由于是字典猜解方式,仍会存在一定的漏报。
    同一域名有时会有指向多个 IP 地址情况,因为企业可能采用 CDN 内容分发网络,就近选择网络最好的节点服务器响应用户,因此有时同一台机器访问同一个域名时,会访问到不同的 IP。subDomainsBrute 会将同一域名指向的多个 IP 一并收集起来,但如果超过 10 个 IP 就会放弃收集。
    使用示例如下:
python3 subDomainsBrute.py XXX.com
  • subfinder 的扫描速度很快,它支持很多第三方 API 接口(需要配置),同时支持多种输出格式,但 subfinder没有字典爆破域名的功能。

使用示例如下:

subfinder -d XXX.com
  • ESD支持域名爆破、DNS 解析、域传递、搜索引擎、证书透明度等多种搜索方式,还支持 zoomeye、censys、fofa、shodan等网络空间搜索引擎的接口结果收集,这个需要在配置文件中设置 key 或者账密才能使用。ESD 有时的搜索结果不太稳定,对同一域名的多次搜索可能会不一样。
    使用示例如下:
esd -d lagou.com
  • Amass是一款 OWASP 出口的资产搜索工具,除了常规的域名收集方式,它还支持搜索结果可视化,并能从很多网站和 API收集子域名。另外,它提供了一套类似 Nmap的脚本引擎,支持用户自定义数据源以扩展搜索范围。它的扫描速度非常慢,但能够收集到非常多的子域名信息。数据里面有不少是跳转到主页 的,实际没有单独的子域网站,即不同域名指向同一台服务器,或者是直接 302 跳转到主页的情况。这些子域在网站扫描时可以考虑去重,避免重复扫描。
    使用示例如下:
amass enum -o out.txt -d lagou.com
  • DNSDumpster可以在线搜索子域名以及相应的 IP 地址,提供 xlsx 文件导出,以及整个域名映射关系图、IP分布地图等信息,在展示和准确度上还是不错的。它的搜索速度也很快,但就是子域收集相对少很多。
  • Subdomain Finder支持在线搜索子域名以及相应的 IP 地址。它的扫描速度很快,若没有显示 IP则代表域名没有绑定有效的网络服务器,或者无法访问该域名。在界面上,它直接提供“Check Status”功能来检测网站的访问状态。该网站上还提供有“Private scan”功能,可以防止扫描时被记录。但它的不足之处在于,扫描结果无法直接导出文件到本地。

在收集域名时常用 Subdomain Finder + OneForAll + subfinder + Amass 的组合。

端口服务探测

端口 3389 用于远程桌面连接,如果发现了,也可以尝试用弱密码登录,或者利用一些远程桌面漏洞去测试,针对开放端口和服务识别的方式,在渗透测试过程可以有针对性地采取不同的测试方法,虽然简单,但非常有效。

Nmap -A XXX.com

​-A 参数开启端口扫描、系统检测、版本检测、脚本扫描及路由追踪,是一个比较常用的参数。

网站指纹识别

网站指纹是 Web 服务组件在开发时留下的类型、版本等标记信息,包括 Web 服务器指纹、Web 运用指纹及前端框架指纹等。
除了前面用 Nmap 扫描端口和服务的方法,还可以通过前端网页和返回一些 HTTP 头信息来判断网站使用的哪些开发框架、服务器、系统,在渗透测试时也可以提供有针对性的测试思路。
Chrome 插件Wappalyzer。在你打开网站后,点击插件,按钮就会弹出网站的指纹信息。
在线检测网站也支持指纹检测:https://scan.top15.cn/web/,其他检测指纹的工具还有 WhatWeb、WPScan、JoomScan 等。

旁站与 C 段查询

有时测试的网站非常坚固,找不到任何漏洞,那我们就可以尝试对“旁站”进行渗透测试。旁站即同一服务器上的其他域名网站,如果你能攻下该旁站,就有机会间接拿到目标网站的权限。
还有另一种方法就是查询 C 段 IP,即同一内网段的服务器。比如 XXX.com 的 IP 为 100.75.118.232,那它的 C 段 IP 为 100.75.118.1~100.75.118.255,通过攻下同一 C 段的服务器,再间接渗透到目标服务器。
无论是旁站还是 C 段渗透方式,都是尝试从目标网站的旁路途径去间接渗透目标。在这里我推荐几个在线查询旁站和 C 段的网站,同时提供一些指纹检测信息。
(1)https://www.webscan.cc/
(2)https://chapangzhan.com/

WAF 探测

当网站开启 WAF(Web 防火墙)时,很多测试请求都会被拦截,导致无法正常扫描。此时就要分析 WAF 找到绕过的方法,否则很难挖到漏洞。在不知道的情况下,还以为真的没有漏洞,其实有时只是被 WAF 拦截了而已。不过就算挖到了漏洞,利用起来也有一定的门槛。
因此,在测试前,若发现发包经常测试失败的话,除非网络不通,否则都建议先探测下 WAF。如果存在 WAF 就尝试寻找绕过的方法,再改造测试用例进行重试。
SQLMap 就支持 WAF 检测, TScan 也支持,不过有时会误报。介绍一下 SQLMap 检测 WAF 的方法,使用命令如下:

python sqlmap.py -u "http://www.XXX.com" --identify-waf --batch

上述代码中,–identify-waf 参数开启 WAF 检测,–batch 参数不询问用户输入,按默认执行。
SQLMap 既支持常见 WAF 的检测,也支持自己写脚本扩展检测能力。

敏感信息收集

在授权的渗透测试过程中,我们要多方收集与目标相关的信息,包括 Google、GitHub、社交平台等多方渠道。我曾多次利用 GitHub 找到一些账号密码或密钥,从而获得授权测试的网站的最高权限,收集 GitHub 相关的敏感信息如下:

Gitrob,https://github.com/michenriksen/gitrob;
码小六,https://github.com/4x99/code6;
GitMonitor,https://github.com/Talkaboutcybersecurity/GitMonitor。

根据收集到的相关信息,我们还可以制作字典用来猜解一些相关账号和密码,此类的相关工具有:

Wordhound,https://github.com/kurobeats/wordhound;
BruteScrape,https://github.com/cheetz/brutescrape。

几款综合能力较好的信息收集工具:

  • Recon-NG 是一款被动信息收集工具,它可以通过搜索获取 IP
    地址、地理位置、用户、邮件地址、密码泄露或者其他敏感信息,最终生成一份完整报告。
  • iKy的界面很酷,它能够从 Twitter、GitHub、Skype、Linkedin、Instagram
    等社交平台上收集信息,但需要提前设置各平台上的 API
    KEY,可以输入一个邮箱地址去搜索其上述平台上的关联信息,最后会以可视化效果展示出来,如下图所示。
  • discover综合使用了很多工具,包括 dnsrecon、goofile、whois、recon-ng、dnssy\Nikto
    等,它能够收集邮箱地址、雇员名字、主机信息、域名、IP 等一系列信息,最后提供 html 报告。
    信息收集不局限于上面举例的这些,有些通过 Google 搜索到的文档、图片、敏感文件和目录等都可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值