External Recon Methodology

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

如果您对黑客职业感兴趣并想要攻破不可攻破的目标 - 我们正在招聘!(需要流利的波兰语书面和口头表达能力)。

资产发现

所以你被告知某家公司的所有内容都在范围内,你想弄清楚这家公司实际拥有什么。

这个阶段的目标是获取所有主公司拥有的公司,然后获取这些公司的资产。为此,我们将:

  1. 查找主公司的收购情况,这将为我们提供范围内的公司。

  2. 查找每家公司的ASN(如果有),这将为我们提供每家公司拥有的IP范围。

  3. 使用反向whois查找来搜索与第一家公司相关的其他条目(组织名称、域名...)(这可以递归进行)。

  4. 使用其他技术,如shodan的orgssl过滤器来搜索其他资产(ssl技巧可以递归进行)。

收购

首先,我们需要知道主公司拥有哪些其他公司。 一个选项是访问https://www.crunchbase.com/搜索主公司,并点击“收购”。在那里,您将看到主公司收购的其他公司。 另一个选项是访问主公司的维基百科页面并搜索收购

好的,在这一点上,您应该知道所有在范围内的公司。让我们弄清楚如何找到它们的资产。

ASNs

自治系统号(ASN)是由互联网编号分配机构(IANA)分配给自治系统(AS)的唯一编号。 一个ASIP地址块组成,这些IP地址块具有明确定义的访问外部网络的策略,并由单个组织管理,但可能由多个运营商组成。

找出公司是否分配了任何ASN以查找其IP范围是很有趣的。对范围内的所有主机执行漏洞测试并查找这些IP内的域名是很有趣的。 您可以在https://bgp.he.net/中通过公司名称IP域名进行搜索。 根据公司所在地区,这些链接可能有助于收集更多数据: AFRINIC (非洲), Arin (北美), APNIC (亚洲), LACNIC (拉丁美洲), RIPE NCC (欧洲)。无论如何,第一个链接中可能已经包含所有有用信息**(IP范围和Whois)。

此外,BBOT子域枚举会自动在扫描结束时汇总和总结ASNs。

您还可以使用http://asnlookup.com/(它有免费API)查找组织的IP范围。 您可以使用http://ipv4info.com/查找域的IP和ASN。

寻找漏洞

此时,我们已经知道范围内的所有资产,如果允许,您可以对所有主机启动一些漏洞扫描器(Nessus,OpenVAS)。 此外,您可以启动一些端口扫描 或使用服务如 shodan 来查找开放端口**,根据您找到的内容,您应该查看本书以了解如何对运行的多种可能服务进行渗透测试另外,值得一提的是,您还可以准备一些默认用户名密码列表,并尝试使用https://github.com/x90skysn3k/brutespray对服务进行暴力破解**。

域名

我们知道范围内的所有公司及其资产,现在是时候找出范围内的域名了。

请注意,在以下提出的技术中,您还可以找到子域,这些信息不应被低估。

首先,您应该查找每家公司的主域名。例如,对于 特斯拉公司,主域名将是 tesla.com

反向DNS

当您找到所有域的IP范围时,您可以尝试对这些IP执行反向DNS查找,以找到范围内的更多域。尝试使用受害者的某些DNS服务器或一些知名DNS服务器(1.1.1.1,8.8.8.8)。

反向 Whois(循环)

whois 中,您可以找到许多有趣的 信息,如 组织名称地址电子邮件、电话号码... 但更有趣的是,如果您通过这些字段之一执行 反向 whois 查找,您可以找到与该公司相关的 更多资产。 您可以使用在线工具,如:

您可以使用 DomLink 来自动化此任务(需要 whoxy API 密钥)。 您还可以使用 amass 执行一些自动反向 whois 发现:amass intel -d tesla.com -whois

请注意,您可以使用此技术在每次发现新域时发现更多域名。

跟踪器

如果在 2 个不同页面中找到 相同跟踪器的相同 ID,则可以假设 两个页面 都由 同一团队管理。 例如,如果您在几个页面上看到相同的 Google Analytics ID 或相同的 Adsense ID

有一些页面和工具可以让您通过这些跟踪器和更多内容进行搜索:

Favicon

您知道我们可以通过查找相同的 favicon 图标哈希来找到与我们的目标相关的域和子域吗?这正是 @m4ll0k2 制作的 favihash.py 工具所做的。以下是如何使用它:

favihash - 发现具有相同favicon图标哈希的域

简而言之,favihash 将允许我们发现具有与我们目标相同的 favicon 图标哈希的域。

此外,您还可以使用 favicon 哈希搜索技术,如此博文中所述。这意味着,如果您知道 web 技术中易受攻击版本的 favicon 的哈希,您可以在 shodan 中搜索,找到更多易受攻击的地方

这是如何计算网站的favicon哈希值

版权 / 唯一字符串

在网页中搜索可能在同一组织的不同网站之间共享的字符串版权字符串可能是一个很好的例子。然后在Google、其他浏览器甚至Shodan中搜索该字符串:shodan search http.html:"Copyright string"

CRT 时间

通常会有一个类似于cron job的任务

更新服务器上的所有域证书。这意味着即使用于此操作的 CA 在有效期内未设置生成时间,也可以在证书透明度日志中找到属于同一公司的域。\

查看这个文章以获取更多信息

电子邮件 DMARC 信息

您可以使用网站,例如https://dmarc.live/info/google.com,或者使用工具,例如https://github.com/Tedixx/dmarc-subdomains来查找共享相同 dmarc 信息的域和子域

被动接管

人们通常会将子域分配给属于云提供商的 IP 地址,然后在某个时候失去该 IP 地址但忘记删除 DNS 记录。因此,只需在云中(如 Digital Ocean)生成一个虚拟机,您实际上将接管一些子域

这篇文章解释了这个情况,并提出了一个在 DigitalOcean 中生成虚拟机获取新机器的IPv4,然后在 Virustotal 中搜索指向它的子域记录的脚本。

其他方法

请注意,您可以使用此技术每次发现新域时发现更多域名。

Shodan

由于您已经知道拥有 IP 空间的组织的名称,您可以在 shodan 中使用以下数据进行搜索:org:"Tesla, Inc." 检查找到的主机,查看 TLS 证书中的新意外域。

您可以访问主网页的TLS 证书,获取组织名称,然后在shodan已知的所有网页的TLS 证书中搜索该名称,使用过滤器:ssl:"Tesla Motors",或者使用类似sslsearch的工具。

Assetfinder

Assetfinder是一个查找与主域相关的和它们的子域的工具,非常惊人。

寻找漏洞

查找一些域接管。也许某些公司正在使用某个域,但他们失去了所有权。只需注册它(如果足够便宜),然后通知该公司。

如果您发现任何具有不同 IP 的域,则应执行基本漏洞扫描(使用 Nessus 或 OpenVAS)和一些端口扫描,使用nmap/masscan/shodan。根据正在运行的服务,您可以在本书中找到一些“攻击”它们的技巧请注意,有时域托管在客户无法控制的 IP 内,因此不在范围内,请小心。

漏洞赏金提示注册 Intigriti,这是一家由黑客创建的高级漏洞赏金平台!立即加入我们,访问https://go.intigriti.com/hacktricks,开始赚取高达**$100,000**的赏金!

子域

我们知道范围内的所有公司,每家公司的所有资产以及与公司相关的所有域。

现在是时候找到每个找到的域的所有可能子域了。

DNS

让我们尝试从DNS记录中获取子域。我们还应尝试进行区域传送(如果存在漏洞,应该报告)。

OSINT

获取大量子域的最快方法是在外部来源中搜索。最常用的工具如下(为了获得更好的结果,请配置API密钥):

其他有趣的工具/API,即使不是直接专门用于查找子域的,也可以用来查找子域,比如:

  • gau: 从AlienVault的Open Threat Exchange,Wayback Machine和Common Crawl中获取给定域的已知URL。

该项目免费提供与赏金计划相关的所有子域。您还可以使用 chaospy 访问这些数据,甚至访问该项目使用的范围 https://github.com/projectdiscovery/chaos-public-program-list

您可以在这里找到许多这些工具的比较https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off

DNS 暴力破解

让我们尝试使用可能的子域名来暴力破解 DNS 服务器以查找新的子域

对于此操作,您将需要一些常见的子域名单词列表,例如

还需要良好 DNS 解析器的 IP 地址。为了生成可信 DNS 解析器列表,您可以从 https://public-dns.info/nameservers-all.txt 下载解析器并使用 dnsvalidator 进行筛选。或者您可以使用:https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt

DNS 暴力破解最推荐的工具有:

  • massdns:这是第一个执行有效 DNS 暴力破解的工具。它非常快,但容易产生误报。

  • gobuster: 我认为这个工具只使用了一个解析器

  • shuffledns 是一个围绕 massdns 编写的 go 语言封装工具,允许您使用主动暴力破解枚举有效子域名,同时解析具有通配符处理和简单输入输出支持的子域名。

  • aiodnsbrute 使用 asyncio 异步地暴力破解域名。

第二轮DNS暴力破解

在利用公开资源和暴力破解找到子域之后,您可以生成子域的变体,以尝试找到更多信息。有几种工具可用于此目的:

  • dnsgen 给定域和子域生成排列组合。

  • goaltdns: 给定域名和子域名生成排列组合。

  • 您可以在这里获取 goaltdns 排列组合词表

  • gotator: 给定域和子域生成排列。如果没有指定排列文件,gotator 将使用自己的文件。

  • altdns: 除了生成子域名排列外,它还可以尝试解析它们(但最好使用前面评论过的工具)。

  • 您可以在这里获取altdns排列词表

  • dmut: 另一个执行子域的排列、变异和修改的工具。该工具将对结果进行暴力破解(不支持dns通配符)。

  • 您可以在这里获取dmut排列词表。

  • alterx: 基于一个域名,它根据指定的模式生成新的潜在子域名,以尝试发现更多子域名。

智能排列生成

  • regulator: 有关更多信息,请阅读这个post,但基本上它会从发现的子域名中获取主要部分,并将它们混合以找到更多子域名。

  • subzuf: subzuf 是一个子域名暴力破解工具,配备了一个非常简单但有效的DNS响应引导算法。它利用提供的一组输入数据,如定制的单词列表或历史DNS/TLS记录,准确地合成更多对应的域名,并根据在DNS扫描过程中收集的信息进一步扩展它们。

子域发现工作流程

查看我写的关于如何使用Trickest工作流程自动化从一个域中发现子域的博客文章,这样我就不需要在我的计算机上手动启动一堆工具了:

虚拟主机

如果你找到一个包含一个或多个网页属于子域的IP地址,你可以尝试通过在OSINT来源中查找IP中的域名或者通过在该IP中暴力破解VHost域名来找到该IP中的其他子域。

OSINT

你可以使用HostHunter 或其他API来查找一些IP中的VHosts

暴力破解

如果你怀疑某个子域可能隐藏在一个Web服务器中,你可以尝试暴力破解它:

使用这种技术,您甚至可以访问内部/隐藏的端点。

CORS暴力破解

有时您会发现只有在_Origin标头中设置有效域/子域时,页面才会返回Access-Control-Allow-Origin_标头。在这些情况下,您可以滥用这种行为来发现新的子域

存储桶暴力破解

在寻找子域的同时,要留意是否指向任何类型的存储桶,如果是的话,检查权限 此外,在这个阶段,您将知道范围内的所有域,尝试暴力破解可能的存储桶名称并检查权限

监控

您可以通过监控证书透明度日志来监控域的新子域的创建,sublert 可以做到这一点。

寻找漏洞

检查可能的子域接管。 如果子域指向某个S3存储桶检查权限

如果您发现任何与资产发现中已发现的IP不同的子域,您应进行基本漏洞扫描(使用Nessus或OpenVAS)和一些端口扫描使用nmap/masscan/shodan。根据运行的服务,您可以在本书中找到一些“攻击”它们的技巧请注意,有时子域托管在客户不控制的IP内,因此不在范围内,请小心。

IPs

在初始步骤中,您可能已经找到了一些IP范围、域和子域。 现在是时候收集所有这些范围内的IP和**域/子域(DNS查询)**了。

使用以下免费API服务,您还可以找到域和子域使用过的先前IP。这些IP可能仍然归客户所有(并且可能允许您找到CloudFlare绕过)。

您还可以使用工具hakip2host检查指向特定IP地址的域。

寻找漏洞

端口扫描所有不属于CDN的IP(因为您很可能在那里找不到任何有趣的东西)。在发现的运行服务中,您可能能够找到漏洞

查找关于如何扫描主机的指南

Web服务器搜索

我们已经找到了所有公司及其资产,知道了范围内的IP范围、域和子域。现在是搜索Web服务器的时候了。

在之前的步骤中,您可能已经执行了一些对发现的IP和域的侦察,因此您可能已经找到了所有可能的Web服务器。但是,如果没有,我们现在将看到一些快速搜索Web服务器的技巧

请注意,这将针对Web应用程序发现,因此您应该执行漏洞端口扫描如果范围允许)。

使用masscan可以找到与web服务器相关的开放端口快速方法**。 另一个友好的工具用于查找Web服务器是httprobe, fprobehttpx。您只需传递一个域列表,它将尝试连接到端口80(http)和443(https)。此外,您可以指示尝试其他端口:

截图

现在你已经发现了在范围内的所有Web服务器(包括公司的IP地址以及所有域名子域名),你可能不知道从哪里开始。所以,让我们简单点,先开始截取它们的屏幕截图。只需查看主页,你就可以找到更奇怪的端点,这些端点更有可能存在漏洞

要执行建议的想法,你可以使用EyeWitnessHttpScreenshotAquatoneShutterGowitnesswebscreenshot

此外,你可以使用eyeballer来查看所有截图,告诉你可能包含漏洞的内容,以及哪些不包含。

公共云资产

为了找到属于公司的潜在云资产,你应该从能够识别该公司的关键字列表开始。例如,对于加密公司,你可以使用诸如:"crypto"、"wallet"、"dao"、"<domain_name>"、<"subdomain_names">等词语。

你还需要常用的存储桶中使用的常见词语的词表:

然后,使用这些词语生成排列组合(查看第二轮DNS暴力破解获取更多信息)。

使用生成的词表,你可以使用工具,如cloud_enumCloudScrapercloudlistS3Scanner

请记住,在寻找云资产时,你应该不仅仅寻找AWS中的存储桶

寻找漏洞

如果发现公开的存储桶或暴露的云功能等内容,你应该访问它们,尝试查看它们提供了什么,并尝试滥用它们。

电子邮件

有了范围内的域名子域名,你基本上已经有了开始搜索电子邮件的所有必要信息。以下是对我来说寻找公司电子邮件最有效的API工具

寻找漏洞

稍后,电子邮件将有助于暴力破解Web登录和认证服务(如SSH)。此外,它们也是钓鱼所必需的。此外,这些API还将为你提供更多关于电子邮件背后的人的信息,这对于钓鱼活动很有用。

凭证泄漏

有了域名子域名电子邮件,你可以开始寻找过去泄露的属于这些电子邮件的凭证:

寻找漏洞

如果找到有效的泄漏凭证,这将是一个非常容易的胜利。

机密信息泄漏

凭证泄漏涉及公司遭受泄漏并出售敏感信息的黑客攻击。然而,公司可能受到其他泄漏的影响,这些信息不在这些数据库中:

Github泄漏

凭证和API可能会泄漏在公司那些github公司的开发人员公共存储库中。 你可以使用工具Leakos下载一个组织及其开发人员的所有公共存储库,并自动运行gitleaks

Leakos也可用于对其提供的URL传递的所有文本运行gitleaks,因为有时网页也包含机密信息

Github Dorks

还要检查这个页面,以查找你攻击的组织中可能还可以搜索的github dorks

Github Dorks & Leaks

粘贴泄漏

有时攻击者或工作人员会在粘贴网站上发布公司内容。这可能包含或不包含敏感信息,但搜索这些信息非常有趣。 你可以使用工具Pastos同时在80多个粘贴网站中搜索。

Google Dorks

虽然老旧,但黄金谷歌dorks始终有助于找到不应存在的暴露信息。唯一的问题是,google-hacking-database包含数千个可能的查询,你无法手动运行。因此,你可以选择你最喜欢的10个查询,或者你可以使用工具,如Gorks来运行它们。

请注意,期望使用常规Google浏览器运行整个数据库的工具将永远无法结束,因为Google会很快阻止你。

寻找漏洞

如果找到有效的泄漏凭证或API令牌,这将是一个非常容易的胜利。

公共代码漏洞

如果发现公司有开源代码,你可以对其进行分析,寻找其中的漏洞

根据语言的不同,你可以使用不同的工具

Source code Review / SAST Tools

还有一些允许你扫描公共存储库的免费服务,例如:

大多数漏洞都存在于Web应用程序中,因此我想谈一下Web应用程序测试方法论,你可以在这里找到这些信息

我还想特别提到Web自动化扫描器开源工具,因为尽管你不应该期望它们找到非常敏感的漏洞,但它们对于在工作流程中实施一些初始的Web信息非常有用。

总结

恭喜!到目前为止,你已经执行了所有基本的枚举。是的,这是基本的,因为还可以进行更多的枚举(稍后会看到更多技巧)。

所以你已经:

  1. 找到了范围内的所有公司

  2. 找到了所有公司拥有的资产(如果在范围内,则执行一些漏洞扫描)

  3. 找到了所有公司拥有的域名

  4. 找到了域名的所有子域(有子域接管吗?)

  5. 找到了范围内所有IP地址(来自和不来自CDN

  6. 找到了所有Web服务器并对它们进行了截图(有什么奇怪的值得深入研究的吗?)

  7. 找到了公司拥有的所有潜在公共云资产

  8. 电子邮件凭据泄漏秘密泄漏,这些可能让你轻松获得巨大收益

  9. 对你找到的所有网站进行渗透测试

全面侦察自动化工具

有几种工具可以针对给定范围执行所提议的部分操作。

参考资料

如果你对黑客职业感兴趣并想要黑入不可黑入的 - 我们正在招聘!(需要熟练的波兰语书面和口语能力)。

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)

支持HackTricks的其他方式:

最后更新于