侦察的重要性
当你去做漏洞挖掘的时候,你需要收集目标的一些信息。有人认为侦察就是一种自动化的发现漏洞的方式,其实不是。
侦察更多的是让你有一个更好的攻击面,让你有更多的攻击机会,发现潜在的漏洞。
自动化是侦察的一个方向,但是要明确,手动分析也非常的重要。
下面,将用三篇文章来介绍基于范围的侦察。
三篇文章以下面的思维导图为基础,介绍最小的范围,中等范围和最大范围侦察。

基于范围的侦察方法
基于范围,顾名思义就是基于作用域进行划分的侦察方法。你有的时候,目标范围过大,有的时候就是一个单一的目标,进行全部的侦察,你没那么多的精力,也非常耗时,这个时候基于范围的侦察就有效了。
它主要:
- 节约时间
- 你知道要找什么
- 自动化侦察
- 找到的漏洞很少出现在范围外
- 有更好的侦察结果
小范围侦察
目标: 寻找单个应用的URL,登录后台/非生产环境/测试环境等
内容发现
目标枚举,重点是需要一个好的字典
工具列表:
网站指纹
检查应用运行的服务,通常使用的服务器,库和第三方组件可能 过时,存在已知的安全问题
工具列表:
- Wappalyzer Plugin
- Whatweb
CVE跟踪
检查应用过时的软件和库的CVEs
网站:
- https://cve.mitre.org/
- https://www.cvedetails.com/
- https://www.exploit-db.com/
- https://snyk.io/
- https://www.cybersecurity-help.cz/vdb/
端口扫描
执行端口扫描是有用的,因为你有的时候会得到一些有趣的端口,这些端口还运行着一些服务。这些服务可能有默认密码,配置错误等问题
工具:
链接劫持
如果应用有一些媒体档案,第三方链接的网站,过期的域名,你都可以尝试接管
工具:
- BurpBLH (burp 插件)
JS文件发现
主要是对JS文件进行搜索,包括了使用了硬编码,或者有敏感信息等等。 在挖掘JS文件的时候,你可以从下面几个点来进行:
- 硬编码API
- 敏感信息,包括AWS凭证等
- S3 Buckets
- 子域名
- PII信息
- API接口
- 有趣的参数
- 逻辑绕过限制,比如XSS和开放重定向
方法:
- 自动化工具来搜硬编码
- 自动化工具查找参数,关键字,接口和其他信息
- 递归下载所有的JS文件,使用正则表达式查找信息
- 在一段时间间隔内,比较这一段时间JS文件的变化
工具:
- SecretFinder
- JFScan
- LinkFinder
- DetectDynamicJS(Burp Plugin)
- Retire.js (Burp Plugin/Browser Extension/Standalone)
- JS Link Finder (Burp Plugin)
参数发现
通常你可以发现那些在应用中不直接可见但是仍然在服务器端处理的参数。这些参数很容易受攻击,包括SSRF,开放重定向,XSS,SQL注入和IDORs等等
工具:
- Arjun
- ParamSpider
- Param Miner (burp插件)
回溯历史
检查回溯历史总是一个好主意。经常可以找到通过应用工作流程可能不再可用但仍可访问的 url。有时,敏感页面缓存时会显示有趣的信息,您还可以获得一些接口来测试各种不同的漏洞。
工具:
搜索
在特定领域的Github Dorking和Google Dorking是非常有用的,可以寻找到很多的接口,暴露的服务来增加攻击面。小范围的侦察中,可以使用检查认证令牌,uuid,用户标识符,备份文件,敏感信息缓存等。
工具:
敏感信息泄露
可以发现泄漏的凭证、数据库和各种组织的其他敏感信息,攻击者可能会滥用这些信息。然而,这可能或不可能被接受。
来源:
- Intelx
- Hacking Forums 黑客论坛
- Darknet/Darkweb Analysis
云安全
现在很多公司正在向云基础设施转移,并使用云存储选项,如 AWS S3 bucket、 GCP bucket 等来存储他。然而,由于简单的配置错误,组织可能会向攻击者泄露/暴露一些信息。可以去枚举存储桶和其他基于云的服务,并查找其中的错误配置。
[…] Day020:Recon之基于范围的自动化(1) […]
赞赞