用户
搜索

[web安全] 开源情报收集一

  • TA的每日心情
    擦汗
    2020-11-25 20:57
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    5

    主题

    13

    帖子

    293

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2018-8-6

    i春秋签约作者

    发表于 2021-3-30 15:24:38 114645
    本帖最后由 W4rnIn9 于 2021-3-30 15:24 编辑

    渗透测试一般需要从广泛的信息收集阶段开始,这篇文章讨论了如何利用互联网上的开源信息来建立目标的概要。收集的数据可用于识别服务器、域名、版本号、漏洞、错误配置、可利用的端点和敏感信息泄漏。

    通过开源情报收集技术可以发现大量的数据,可能是一些很小的代码片段,一个技术论坛的问题,一个详细的细节,一个长期被遗忘的子域名,甚至是一个 PDF 文档,其中包含可用于攻击目标网站的信息。即使是简单的谷歌搜索通常也会产生有趣的结果。以下是我们在获得域名名称后所做的一些事情(没有特定的顺序)

    1.使用Whois查找管理员联系人和其他电子邮件地址。

    这些电子邮件地址通常也以有效用户的身份存在于应用程序中。电子邮件地址可以通过数据库泄露或HaveIBeenPwned这样的搜索服务来搜索,告诉你电子邮件是否被泄露了。

    1607353866261-c2abb4da-78ca-4efc-b4e7-75460223f8c6.png

    除了电子邮件地址,whois 查询可以返回 IP 历史信息,域名过期日期,甚至电话号码,这些可用于社工。

    1607411732105-ed067d8e-e715-4706-a3f9-a5c7e5029bf8.png

    2.谷歌高级搜索

    使用站点操作符限制在目标域,找到 php (或任何服务器端脚本文件类型) ,txt 或日志文件

    site:*.example.org ext:php | ext:txt | ext:log

    在一些情况下,我们使用这样的搜索查询确定了一些有趣的文件(例如日志文件) ,这些文件包含敏感信息和应用程序的完整系统路径。你可以将此查询与一个减号运算符结合起来,以排除特定的搜索结果。
    1607411753805-7b0a5133-b1d4-4b16-8093-414df8b0aede.png

    3.在域名(或子域)上搜索过时的文档

    文件类型首先包括 PDF、 Excel、 Word 和 PowerPoint。这些文档可能包含可用于其他攻击的信息。通常,包含在文件属性中的文档元数据(作者名等)可以用作应用程序中的有效用户名。

    site:*.example.org ext:pdf | ext:doc| ext:docx | ext:ppt | ext:pptx | ext:xls | ext:xlsx | ext:csv

    你可以在本地下载这些文件,并通过文档元数据提取器或查看每个文件的属性运行它们,以查看哪些信息被泄漏。

    要查看所有可用于搜索数据的选项,请参考 https://www.google.co.in/advanced_search。此外,谷歌黑客数据库(现在在exploit-db)允许您使用预先制定的查询来搜索互联网上具体和有趣的东西

    1607411782677-37caa781-061d-4f41-b39d-b5121d3aa378.png

    4.检查 robots.txt 文件中隐藏的、有趣的目录

    大多数商城、框架和内容管理系统都有定义良好的目录结构。因此,管理员目录通常是/admin 或/administration 。如果没有,robots.txt 很可能包含您要查找的目录名。

    1607411791814-82c78a21-0ad0-404e-a787-861756cdca83.png

    5.查看 HTML 源码来识别框架

    识别应用程序类型有助于将攻击集中到应用程序中具有漏洞组件的区域(例如插件和主题)。例如,如果你查看页面源代码并看到 wp-content,那么你就可以确定你正在查看一个 WordPress 站点。

    许多公开可用的浏览器插件也可以用来识别网站框架。的 Wappalyzer 在识别几种不同的服务器类型、服务器和客户端框架以及网站上的第三方插件方面做得很好。

    1607411803477-0a1308ca-1466-4165-a66d-d3cd52ef07d5.png

    6.通常情况下,如果您正在查看的站点是由第三方供应商创建的,那么您很可能会在主页底部看到“由第三方开发者公司技术支持”的字样。

    利用这个跟踪你的信息收集到承包商的网站也可以成为令人难以置信的回报。浏览它可能会发现构建它们的框架类型和版本号。作为其开发计划的一部分,承包商很可能在客户的站点上有一个测试/管理帐户。

    根据我的经验,许多网站管理员/开发人员经常使用公司名称(客户的公司或承包商的公司)的变种密码,以及一些最后带有/没有特殊字符的数字。例如,如果承包商公司被称为“example” ,那么001Example、 Example001、00example、 example00等就是在客户网站登录面板上的测试密码。

    (请注意我们的下一篇文章,关于我们如何使用这种技术来侵入和访问客户端的服务器并在其上运行 shell 命令。)

    7.浏览公司的 领英 资料,找出高级经理、董事和非技术人员。很多时候,在许多公司里非技术人员经常使用弱密码。通过搜索公司网站上的“关于我们”页面也可以找到目标。

    通过对电子邮件的发现,可以推测出用户名的格式。一旦用户名格式被理解,一个电子邮件地址列表和等价的用户名可以被创建,然后可以用来执行其他攻击,包括暴力登录页面,甚至利用弱密码重置功能。(我们不止一次发现搜索电子邮件地址和可能的用户名是有用的,这导致了由于使用弱密码而导致的完整的应用程序和服务器损害。)

    8.执行 IP 地址相关检查。由于在同一 IP (共享主机)上的应用程序不同且较弱,因此应用程序经常会受到损害。使用反向 IP 查找,您可以识别其他目标来查找。Bing有一个很好的搜索使用 IP 功能。

    1607411853407-78621c1c-f7b3-4ae1-97c9-f1e90264b11f.png

    you get signal IP Address也提供了一个反向查找工具。

    1607411863250-13a4d33b-d3ec-4aa8-b432-88d8642bca1a.png

    作为检查 IP 地址的一部分,还必须注意域名的 A和 PTR 记录。有时由于配置不当,当使用 PTR 或站点的A记录时,可以访问不同的站点。这些信息可以通过 nslookup 或 dig 命令获得

    dig -x 8.8.8.8
    nslookup 8.8.8.8

    9.枚举子域以查找容易实现的目标和客户端托管基础设施的较弱的入口点。子域枚举很容易成为评估和发现客户在网上公开的资产的最重要步骤之一,无论是作为他们业务的一部分,还是由于错误配置而意外发现的。

    可以使用许多工具进行子域名枚举,比如 dnscrecon,subbrute,knock.py,还可以使用谷歌搜索语法,或者像 dnsdumpster,甚至 virustotal. com 这样的站点。这些工具中的大多数都使用一个包含常见描述性词汇的大字典,比如 admin、 pages、 people、 hr、 downloads、 blog、 dev、 staging 等等。这些单词被附加到 主域名后面ーexample. org,创建一个子域名列表,例如 admin.example.org、 pages.example.org、 people.example.org 等等。然后可以根据 DNS 服务器检查这些名称中的每一个,以验证条目是否存在。

    1607411876920-079e6b6a-96b3-4a08-87b4-c59a979667ae.png

    10.为不同类型的资源请求查找 HTTP 状态代码和响应头。对于有效的、不存在的、重定向的页面、目录名等等。注意响应标头中的细微错误、额外空格和冗余值。

    1607411885516-66f239c1-520a-4b1a-b0fb-e3a40002a777.png

    另外,注意 CSP 头。这些包含允许脚本加载的域名和源代码。有时候,在 CSP 头部列出的域名中的输入错误或者不安全的 JavaScript 托管 CDN 可能是您执行 XSS 有效负载的唯一方法:)

    11.通过 Shodan 和 Censys 搜索客户端的域名,查找文件、 IP 地址、公开的服务和错误消息。Shodan 和 censys 的工作人员煞费苦心地对互联网进行了端口扫描,列举了各种服务,并对他们的发现进行了分类,使其可以用简单的关键词进行搜索。这些服务可以用来发现大量有趣的东西,包括开放摄像头、思科设备、医院设施管理服务器、配置薄弱的 telnet 和 snmp 服务以及 SCADA 系统。Censys 过去曾被用于寻找有趣的端点,这些端点托管了完整应用程序的源代码和整个 docker 镜像。

    1607411895436-ec53a530-7d2f-4e88-b210-60b3bb46bb4c.png

    12.在诸如 github、 gitlab、 bitbucket 等代码托管服务上查找客户端。各种有趣的事情可以在代码托管在线通过搜索存储库,包括网络漏洞,web程序的0day,配置问题,AWS 和其他秘密密钥。

    开发人员经常提交带有产品密码或 API 访问密钥的代码,只是为了后来意识到并删除敏感信息并进行额外的提交。但是,使用提交日志和检查特定的提交可以检索这些敏感的信息片段,然后可以使用这些信息对客户端托管的基础设施发起全面攻击。

    像 Gitrob 这样的工具可以用来查询 Github,并从命令行本身搜索敏感文件,以查找特定的组织。

    13.浏览站点的 HTML 源代码,以确定客户端是否在云上托管任何静态内容。像图片、 js 和 css 文件这样的内容可能托管在客户端拥有的 s3 bucket 上。如果客户使用云下载静态/动态内容,也可以在进行检测时识别。在这种情况下,如果客户端在存储上配置了错误的权限,那么查找客户端使用的存储库确实是有益的。在面向公众的存储里可以找到大量有趣的信息。

    像 diginina 的 Bucket Finder 这样的工具可以通过强行命名 Bucket 来自动化搜索过程。这个工具需要一个精心组织的存储库名和潜在的完整 url 列表才能有效。

    1607411913451-7a113753-bf9f-4bb7-9df0-94014d1c7000.png

    1607415507008-1d912040-59f6-4a5d-a075-eaebdd29455c.png

    开源网络情报本身就是一个不断发展和不断提高的研究领域。使用我上面列出的方法和其他技术,可以建立目标的档案,并发现一些弱点,有时甚至不需要从系统中发送一个数据包。
    本文翻译自https://blog.appsecco.com/open-source-intelligence-gathering-101-d2861d4429e3


    发表于 2021-3-30 17:16:28
    感谢分享
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册