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

本文深入探讨网络安全中的边界侦察技术,涵盖子域名枚举、版本分析、搜索引擎侦察、Shodan监控、邮件头分析和DNS记录挖掘等实用方法,帮助组织全面了解自身攻击面并建立有效的安全防护策略。

掌握你的边界/攻击面

组织使用各种产品和方法来尝试实现"安全",包括设备日志监控、渗透测试服务、端点保护工具、漏洞扫描器等。但就像你丢失东西时那句令人沮丧的话"它就在你最后找的地方"一样,安全漏洞往往出现在你最不安全的环节——通常是你完全不知道的地方。

在这篇文章中,我想谈谈我认为被稍微忽视的一个方面——可能是因为任务的规模——即人们真正理解他们的边界/攻击面。

像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以及其他可能未知的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 设计