通过开源情报收集技术可以找到很多数据,尤其是那些有大量在线服务的公司,总会有些代码泄漏、在论坛上提问泄漏技术细节、被遗忘的二级域名、包含元数据的PDF文件(可以用来帮助搞定一个网站)。甚至简单的谷歌搜索都会找到一些有趣的东西。拿到目标名字(域名)后,我们可以做下面这些事:(排名不分先后)
1. Whois查询,找到管理员联系信息和其他邮件地址。这些邮件地址经常也是网站的注册用户。通过一些泄漏的数据库或一些像HaveIBeenPwned的搜索服务来查看某个邮箱的相关密码是否已被泄漏。
查询whois记录 ,whois.domaintools.com 是一个不错的选择。
2. 谷歌高级搜索,使用"site",来限制到特定的域名,寻找php(或者其他文件类型的文件)、txt或日志文件:
用谷歌搜索寻找phpinfo()文件。
3. 搜索目标域名的文档。文件类型包括 PDF、Excel、Word和PPT。这些文档可能包含着一些可以帮助你进行其他攻击的信息。很多情况下,这些文档属性里包含的元数据(作者等)正好就是网站应用的一个用户名。
此图为exploit-db上的 Google Hacking Database。
4. 检查robots.txt文件,可以找到一些隐藏的、有趣的目录。很多购物网站、框架和内容管理系统有着很好的目录结构。所以管理员目录是/admin或者/administrator。如果不是,robots.txt文件很可能包含着你想要寻找的目录。
上图是一个流行网站的robots.txt文件。
5. 查看HTML源码来寻找 购物/内容管理系统/框架等信息。识别这些应用类型可以帮助缩小攻击范围(有漏洞的部分:插件和主题等)。比如,如果你看页面信息看到 wp-content 你就可以确定这个一个WordPress网站了。
wappalyzer对https://www.wordpress.org的识别情况。
6. 通常情况下,如果你的目标网站是由第三方提供商创建的,那么你就很可能会在网站主页底部看到各种“Powered by 第三方开发公司”。
根据我的经验,很多网站管理员/开发者经常使用的密码是他们公司名字的变形(客户的公司或承包商的公司),在后面跟一些数字或者特殊字符(可能没有特殊字符)。比如,如果承包商名字是“Example Developers ”,然后 001Example、Example001、00example、example00等很可能就会是目标网站使用的密码。
7. 查看LinkedIn信息来寻找目标公司的高级管理员、经理和非技术职员。通常,弱密码都是那些非技术管理者使用的。查看网站“关于我们”部分,也可以找到一些“软目标”(非技术的管理者)。
基于找到的一些邮箱地址,可以推导出用户名的格式。一旦用户名格式确定了,就可以得到一组邮件地址和对应的用户名,这些可以用来进行其他攻击,包括登录暴力破解,甚至弱密码重置功能。(不止一次,我们发现搜索邮箱地址和可能的用户名,再加上弱密码,就可以完全搞定目标网站。)
8. 进行IP地址相关检查。很多时候网站会因为和其它一个比较弱的网站托管在同一个服务器上而受到影响。使用IP地址反查,你可以找到其它的相关目标。Bing有个很出色IP搜索功能。
作为检查IP地址的一部分,注意域名的A记录和PTR记录也很重要。有时候,因为配置错误,使用PTR或A记录的网站可能会连接到其他的网站。这些信息可以通过nslookup和dig命令来获取:
nslookup example.org
9. 枚举二级域名来寻找容易入手或者比较弱的入口。评估目标客户的线上资产,二级域名枚举是非常重要的一步,不管是由于他们业务需求分配的,还是因为错误配置导致的。
进行二级域名枚举有很多工具,比如:dnsrecon,subbrute, knock.py,使用谷歌site 操作符或者像dnsdumpster和virustotal.com这些网站。这些工具多使用大量的常见二级域名比如:admin、pages、people、hr、downloads、blog、dev、staging等等。这些二级域名跟在主域名后面——example.org,生成一系列可能的二级域名像admin.exapmle.org,pages.example.org,people.example等等。可以通过进行DNS查询来判断这些猜测的域名是否存在。
使用dnsrecon来暴力破解二级域名。
10. 寻找不同请求的HTTP状态码和响应头:合法的页面、不存在的页面、跳转的页面、目录名称等。寻找响应头里微小的变化、额外的空格和冗余值等。
另外,注意CSP头,它们包含着允许加载脚本的域名和源。有时,CSP列出的域名或CDN上不安全是脚本是你执行XSSpayload的唯一方式:)
11. 从Shodan和Censys搜索目标域名,寻找文件、IP地址、暴露的服务和错误信息。Shodan和Censys 已经煞费苦心地扫描了端口、枚举服务并对他们的发现使用关键字归类从而可以进行搜索。这些服务可以用来发现很多有趣的东西包括,开放的摄像头,思科设备,医院设施管理服务器,SCADA系统。Censys过去被用来寻找放有源代码和整个dokcer镜像的端点服务器。
shodan可以用来发现有趣的文件和设备。
12. 从代码托管服务网站上查找,像Github、gitlab、bitbucket等网站。可以在这些网站上找到各种有用的东西,包括web漏洞、web应用的0day、配置问题、AWS和其它的密钥。
像Gitrob这样的工具可以用来搜索Github的内容,以寻找特定组织的敏感文件。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)