掌握你的网络边界与攻击面:基础侦察技术详解

本文深入探讨网络安全中的边界防御与攻击面管理,涵盖子域名枚举、版本分析、搜索引擎侦察、Shodan监控等实用技术,帮助企业建立持续的安全监控体系,及时发现暴露在互联网上的服务与潜在风险。

了解你的网络边界/攻击面

注意 - 本文最初于2020年7月发布在我的网站infosecamateur.com上。在Twitter @mconnarty上关注我!

组织使用各种各样的产品和方法来试图实现"安全"。这包括我们的设备日志监控、渗透测试服务、端点保护工具、漏洞扫描器等,不胜枚举。然而,有点像你丢失东西时令人沮丧的说法"它就在你最后找的地方",漏洞往往出现在你最不安全的环节——通常是你根本不知道存在的地方。

在这篇文章中,我想谈谈我认为被稍微忽视的一点——也许是因为任务的规模,那就是人们真正理解他们的网络边界/攻击面。

像Mitre的Att&ck框架和洛克希德·马丁的网络杀伤链这样的威胁模型,以及各种各样的信息都表明,侦察是众所周知和被理解的。渗透测试员完全有能力进行黑盒侦察,但根据我的经验,他们经常要么从事广泛而浅层的范围(简单且偶尔无效的漏洞扫描),要么从事狭窄且专注于特定服务的范围。此外,侦察必须是一个持续的过程,以捕捉任何新的风险。

作为网络防御者,我想了解我所保护网络的弱点,这意味着我喜欢进行一些基本的侦察并编目暴露的内容,检查我发现的任何服务的补丁状态,并对我发现的内容进行批判性审视。然后可以将其添加到任何现有漏洞扫描/监控等的范围中。理想情况下,这应该是更加严格和定期进行的事情。

我常做的事情

子域名枚举

除了暴力破解子域名外,我会使用SecurityTrails.com等网络工具或仅使用Google来识别子域名。https://securitytrails.com/blog/subdomain-scanner-find-subdomains 是一篇很好的博客文章,重点介绍了一些可用于此目的的工具和技术。

一些子域名可能强烈暗示它们的用途。例如,webmail.company[.]com可能指向OWA(Outlook Web Access)实例。其他的可能更难确定,可能需要调查DNS服务器/反向代理/负载均衡器以确定内部IP。

通常,我只需将其放入地址栏并尝试通过http和https访问它,但这存在一些明显的缺点。如果它不是Web服务,那么查看暴露的端口可能会揭示它是什么;如果是Web服务,你可能不知道正在发布的具体目录,例如web2.company.com/unknown_directory/。

版本分析

如果你能够连接到暴露的服务,那么识别运行的版本通常是我的下一步。许多漏洞扫描工具将能够识别过时的版本,识别服务可能意味着这现在被纳入定期的扫描范围。为了快速获胜,我找到版本的常见位置是:

对于Web服务:

  • 网页本身可能简单地在某处显式显示它,通常在页面的顶部或底部
  • 在源代码中,这可能也很明确地列出,但通常可以在导入的脚本或命名约定中识别(例如web2.company.com/site/js_source_4.42.6.js)
  • 在HTTP头中——使用开发者控制台或CURL -v(详细模式)。版本可能列在HTTP响应的字段中
  • 对徽标进行反向图像搜索——有时Web应用程序很难识别,你可能只看到一个带有徽标的登录框,对徽标进行反向图像搜索可以给你提供线索

其他服务:

  • 获取横幅
  • nmap -v(对此持保留态度!)

知道版本后,CVEDetails.com可以突出显示任何值得关注且可能需要立即关注的漏洞。此外,某些版本可能接近或超过EOL(生命周期结束),因此风险可能不会立即显现,但如果无法更新,则需要密切监控。

Google

Google和其他搜索引擎可以作为一个很好的起点,揭示对对手有用的各种信息。这可能是从社会工程学角度有用的信息,这可能是另一篇博客文章的主题,但可以收集到其他信息。

服务 - 例如,“login site:company.com"及其变体可以揭示任何可能未知的登录页面。尝试其他词语,如vpn、admin等。Google Dorks有详细记录,值得浏览其中一些。https://www.exploit-db.com/google-hacking-database

信息泄露 - 通常人们可能在尝试解决问题时询问论坛,并可能粘贴配置细节以尝试获得答案。这里的信息可能包括内部命名结构、可能的凭据以及组织中使用的技术类型,所有这些都给了任何成功访问网络的人一个优势。

Shodan

Shodan.io对于识别任何可能开放的服务和端口非常有用,并且还可以突出显示任何已知的漏洞。这些端口在大型组织中可能非常动态,因此除了任何已安排的漏洞扫描之外,还建议进行持续监控(可能使用Shodan Monitor)。

Shodan有一些缺点:

  • IP范围必须众所周知,大型组织通常拥有多个网络块,记住本地站点IP以及任何其他可能未知的可能性(有人建立本地、未知的宽带线路并将其连接到网络)非常重要。有时在Shodan中搜索公司名称或证书详细信息(如序列号)可以揭示额外的IP地址。
  • Shodan只会告诉你从它观察到开放的端口报告回来的服务上存在的漏洞。因此,例如,如果在端口443和80上,有IIS 6运行多个Web应用程序,Shodan将报告易受攻击的IIS版本,但不会报告可能在这些端口上运行的Web应用程序的任何信息。它也无法报告反向代理后面的任何内容的漏洞状态。

电子邮件

来自组织的电子邮件可以揭示有用的信息,正文和签名块对于理解一些内部策略很有用,头信息可以揭示内部服务器名称和IP地址。关于电子邮件路由的信息在它到达收件人的过程中被添加到头信息中,每次新信息都被添加到头信息的顶部。如果内部服务器名称似乎遵循某种结构,例如’ml1.lon.int.companyx.com’——我们可以推测:

  • 服务器名称’ml1’表示邮件服务器,因此域控制器可能是DC1
  • ’lon’可能表示地理结构
  • ‘int’可能表示这是基础设施的内部部分,但也是我们枚举的另一个子域名
  • ‘companyx.com’可能是我们枚举中未考虑的另一个域名

了解命名约定可以让你进行有根据的猜测来定位服务,这对于攻击者在任何成功入侵时非常有用。

DNS

除了DNS配置错误(如允许外部区域传输)之外,组织的DNS记录可以揭示大量有用信息。有多种工具如DNSRecon可以协助这一点,https://dnsdumpster.com/footprinting-reconnaissance/ 对此有深入探讨,并强调这是一个迭代过程,一次搜索找到的结果可以反馈到下一次搜索中。

总结

我简要介绍了一些可以做的简单事情,以初步了解暴露的内容。理解边界风险应该是构建组织安全策略的主要组成部分。监控设备、定期打补丁、与网络隔离(你对DMZ有多自信?)并在可能的情况下移除。侦察应该是定期的,你越早识别意外发布到互联网上的服务,它被利用的可能性就越小。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计