从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
本文是根据 Group-IB 专家几年前进行的一次非常成功的渗透测试编写的:发生了一个可以改编为宝莱坞电影的故事。 现在,读者的反应可能是:“哦,另一篇公关文章,又在描述这些,它们有多好,别忘了买一个渗透测试。” 嗯,一方面,确实如此。 然而,这篇文章的出现还有很多其他原因。 我想展示渗透测试人员到底在做什么,这项工作有多么有趣和重要,项目中可能会出现什么有趣的情况,最重要的是,用真实的例子展示现场材料。

为了恢复世界谦虚的平衡,一段时间后我们将写一篇进展不顺利的渗透测试。 我们将展示公司中设计良好的流程如何能够防范各种攻击,甚至是准备充分的攻击,仅仅因为这些流程存在并且实际有效。

对于本文中的客户来说,一切都总体上非常好,根据我们的感觉,至少比俄罗斯联邦 95% 的市场要好,但有一些小细微差别,形成了一长串事件,首先导致了一份很长的工作报告,然后是这篇文章。

那么,让我们储备爆米花,欢迎来到侦探故事吧。 单词 - 帕维尔·苏普鲁纽克现任IB集团“审计与咨询”部技术经理。

第 1 部分. 波奇金医生

2018年有一个客户——一家高科技IT公司,它本身为许多客户提供服务。 想要得到以下问题的答案:是否可以在没有任何初始知识和访问权限的情况下通过 Internet 获得 Active Directory 域管理员权限? 我对任何社会工程学都不感兴趣(哦,但是徒劳的),他们无意故意干扰工作,但他们可能会意外 - 例如,重新加载工作异常的服务器。 另一个目标是识别尽可能多的针对外周的其他攻击媒介。 该公司定期进行此类测试,现在新测试的截止日期已经到来。 这些条件几乎是典型的、充分的、可以理解的。 让我们开始吧。

有一个客户的名称 - 让它成为“公司”,以及主要网站 www.company.ru。 当然,客户的称呼有所不同,但在本文中,一切都将是客观的。
我进行网络侦察 - 找出客户注册的地址和域,绘制网络图,以及如何将服务分发到这些地址。 我得到的结果是:超过 4000 个实时 IP 地址。 我查看了这些网络中的域:幸运的是,绝大多数都是针对客户的客户的网络,我们对它们并不正式感兴趣。 客户也这么认为。

仍然有一个具有 256 个地址的网络,此时已经了解了按 IP 地址划分的域和子域的分布,有有关扫描端口的信息,这意味着您可以查看感兴趣的服务。 与此同时,各种扫描仪都会在可用的 IP 地址上并分别在网站上启动。

有很多服务。 通常,这对于渗透者来说是一种喜悦,也是对快速胜利的期待,因为服务越多,攻击范围就越大,找到神器也就越容易。 快速浏览一下这些网站,大多数都是全球大公司的知名产品的网页界面,从表面上看,它们不受欢迎。 他们要求输入用户名和密码,摇出用于输入第二个因素的字段,要求 TLS 客户端证书,或将其发送到 Microsoft ADFS。 有些根本无法通过互联网访问。 对于某些人来说,您显然需要拥有一个支付三份薪水的特殊付费客户,或者知道要输入的确切 URL。 让我们跳过另一个逐渐沮丧的一周,尝试“突破”已知漏洞的软件版本,搜索网络路径中的隐藏内容和来自 LinkedIn 等第三方服务的泄露帐户,并尝试使用它们猜测密码。就像挖掘自写网站的漏洞一样——顺便说一句,根据统计,这是当今最有希望的外部攻击媒介。 我会立即记下随后开火的电影枪。

因此,我们找到了两个从数百个服务中脱颖而出的网站。 这些网站有一个共同点:如果您不按域进行细致的网络侦察,而是正面寻找开放端口或使用已知 IP 范围定位漏洞扫描器,那么这些网站将逃脱扫描,并且根本不会被扫描。无需知道 DNS 名称即可可见。 也许它们至少在早些时候被错过了,而且我们的自动工具没有发现它们有任何问题,即使它们被直接发送到资源。

顺便说一句,关于以前推出的扫描仪的一般发现。 让我提醒您:对于某些人来说,“渗透测试”相当于“自动扫描”。 但这个项目的扫描仪什么也没说。 嗯,最大程度是中等漏洞(严重程度为 3 中的 5):某些服务上存在错误的 TLS 证书或过时的加密算法,以及大多数网站上的点击劫持。 但这不会帮助您实现目标。 也许扫描仪在这里会更有用,但让我提醒您:客户自己可以购买此类程序并用它们进行测试,并且从令人沮丧的结果来看,他已经检查过。

让我们回到“异常”站点。 第一个类似于非标准地址的本地 Wiki,但在本文中将其设为 wiki.company[.]ru。 她还立即要求输入登录名和密码,但通过浏览器中的 NTLM 进行。 对于用户来说,这看起来就像一个要求输入用户名和密码的禁欲窗口。 这是不好的做法。

一个小笔记。 由于多种原因,外围网站中的 NTLM 很糟糕。 第一个原因是 Active Directory 域名被泄露。 在我们的示例中,它也被证明是company.ru,就像“外部”DNS 名称一样。 了解这一点后,您可以仔细准备一些恶意内容,使其仅在组织的域计算机上执行,而不是在某些沙箱中执行。 其次,身份验证通过 NTLM 直接通过域控制器(令人惊讶,对吧?),具有“内部”网络策略的所有功能,包括阻止帐户超过密码输入尝试的次数。 如果攻击者发现登录信息,他会尝试输入密码。 如果您配置为阻止帐户输入不正确的密码,它将起作用并且帐户将被阻止。 第三,不可能在这种认证中添加第二个因素。 如果有读者还知道怎么做,请告诉我,这真的很有趣。 第四,容易受到哈希传递攻击。 ADFS 的发明,除其他外,就是为了防止这一切。

Microsoft 产品有一个不好的特性:即使您没有专门发布这样的 NTLM,至少 OWA 和 Lync 中也会默认安装它。

顺便说一下,本文作者曾经用同样的方法,不小心在短短一小时内封锁了一家大型银行约1000个员工的账户,当时脸色有些苍白。 银行的IT服务也很苍白,但一切都圆满结束,我们甚至被称赞是第一个发现这个问题并迅速果断解决的。

第二个网站的地址“显然是某种姓氏.company.ru”。 通过谷歌找到的,第10页是这样的。 该设计来自 XNUMX 年代初中期,一位受人尊敬的人正在主页上查看它,如下所示:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
这里我拍了一张《狗的心》的剧照,但相信我,它有点相似,甚至颜色设计也是相似的色调。 让网站被称为 preobrazhensky.company.ru.

这是泌尿科医生的个人网站。 我想知道泌尿科医生的网站在一家高科技公司的子域上做什么。 快速深入 Google 后发现,这位医生是我们客户法人实体之一的联合创始人,甚至贡献了约 1000 卢布的授权资本。 该网站可能是很多年前创建的,并且使用客户的服务器资源作为托管。 该网站早已失去了相关性,但由于某种原因,它长期运行。

就漏洞而言,网站本身是安全的。 展望未来,我会说这是一组静态信息 - 简单的 html 页面,其中插入了肾脏和膀胱形式的插图。 “破坏”这样的网站是没有用的。

但下面的网络服务器更有趣。 从HTTP Server头来看,它有IIS 6.0,这意味着它使用Windows 2003作为操作系统。 扫描仪之前已发现,与同一 Web 服务器上的其他虚拟主机不同,这个特定的泌尿科医生网站响应 PROPFIND 命令,这意味着它正在运行 WebDAV。 顺便说一句,扫描仪返回的信息带有“信息”标记(用扫描仪报告的语言来说,这是最低的危险) - 通常会简单地跳过这些事情。 结合起来,这产生了一个有趣的效果,直到对 Google 进行另一次挖掘后才被揭示:与 Shadow Brokers 集相关的罕见缓冲区溢出漏洞,即 CVE-2017-7269,该漏洞已经有现成的漏洞利用。 换句话说,如果您使用 Windows 2003 并且 WebDAV 在 IIS 上运行,则会出现问题。 尽管 2003 年在生产环境中运行 Windows 2018 本身就是一个问题。

该漏洞最终出现在 Metasploit 中,并立即使用向受控服务发送 DNS 请求的负载进行测试 - Burp Collaborator 传统上用于捕获 DNS 请求。 令我惊讶的是,它第一次就成功了:收到了 DNS 剔除。 接下来,尝试通过端口 80 创建反向连接(即从服务器到攻击者的网络连接,可以访问受害者主机上的 cmd.exe),但随后发生了惨败。 连接没有成功,在第三次尝试使用该网站后,所有有趣的图片都永远消失了。

通常,后面会跟一封类似“顾客,醒醒,我们把所有东西都扔掉了”的信。 但我们被告知该站点与业务流程无关,并且像整个服务器一样毫无理由地在那里工作,并且我们可以随意使用此资源。
大约一天后,该网站突然开始自行运行。 在 IIS 6.0 上从 WebDAV 构建了一个工作台后,我发现默认设置是每 30 小时重新启动 IIS 工作进程。 也就是说,当控制退出 shellcode 时,IIS 工作进程结束,然后它会自行重新启动几次,然后休眠 30 小时。

由于第一次反向连接到 tcp 失败,我将此问题归因于端口关闭。 也就是说,他假设存在某种防火墙,不允许传出连接通过外部。 我开始运行 shellcode,搜索许多 tcp 和 udp 端口​​,但没有效果。 通过 Metasploit 的 http(s) 进行反向连接加载不起作用 - meterpreter/reverse_http(s)。 突然,与同一端口 80 的连接建立,但立即断开。 我将此归因于仍然虚构的 IPS 的行为,它不喜欢 meterpreter 流量。 鉴于与端口 80 的纯 tcp 连接未通过,但 http 连接却通过,我得出结论,系统中以某种方式配置了 http 代理。

我什至尝试通过 DNS 进行 meterpreter(谢谢 d00kie 感谢您的努力,挽救了许多项目),回想起最初的成功,但它甚至在展台上都不起作用 - shellcode 对于这个漏洞来说太大了。

事实上,它看起来像这样:3 分钟内尝试 4-5 次攻击,然后等待 30 小时。 如此连续三周。 我什至设置了提醒,以免浪费时间。 此外,测试环境和生产环境的行为也存在差异:该漏洞有两种类似的利用方式,一种来自 Metasploit,另一种来自互联网,由 Shadow Brokers 版本转换而来。 所以,只有Metasploit进行了实战测试,只有第二个进行了台架测试,这使得调试更加困难,很伤脑筋。

最后,通过 http 从给定服务器下载 exe 文件并在目标系统上启动它的 shellcode 被证明是有效的。 shellcode 足够小,可以容纳,但至少它可以工作。 由于服务器根本不喜欢 TCP 流量,并且检查了 http(s) 是否存在 meterpreter,因此我决定最快的方法是通过此 shellcode 下载包含 DNS-meterpreter 的 exe 文件。

这里又出现了一个问题:当下载一个exe文件时,正如尝试所示,无论是哪一个,下载都会被中断。 同样,我的服务器和泌尿科医生之间的某些安全设备不喜欢内部带有 exe 的 http 流量。 “快速”的解决方案似乎是更改 shellcode,以便它可以动态混淆 http 流量,从而传输抽象的二进制数据而不是 exe。 最终攻击成功,通过瘦DNS通道收到控制权:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
我立即意识到我拥有最基本的 IIS 工作流权限,这让我什么都不做。 这是 Metasploit 控制台上的样子:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
所有渗透测试方法都强烈建议您在获得访问权限时需要增加权限。 我通常不会在本地执行此操作,因为第一次访问被简单地视为网络入口点,并且危害同一网络上的另一台计算机通常比在现有主机上升级权限更容易、更快。 但这里的情况并非如此,因为 DNS 通道非常狭窄,并且不允许流量清理。

假设这台 Windows 2003 服务器还没有针对著名的 MS17-010 漏洞进行修复,我通过 meterpreter DNS 隧道将流量传输到端口 445/TCP 到本地主机(是的,这也是可能的),并尝试通过以下方式运行之前下载的 exe该漏洞。 攻击有效,我收到了第二个连接,但具有系统权限。

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切

有趣的是,他们仍然试图保护服务器免受 MS17-010 的侵害 - 它在外部接口上禁用了易受攻击的网络服务。 这确实可以防止通过网络的攻击,但是来自本地主机内部的攻击起作用了,因为您不能快速关闭本地主机上的 SMB。

接下来,新的有趣细节被揭晓:

  1. 拥有 SYSTEM 权限,您可以轻松地通过 TCP 建立反向连接。 显然,禁用直接 TCP 对于受限的 IIS 用户来说是一个严格的问题。 剧透:IIS 用户流量以某种方式双向封装在本地 ISA 代理中。 具体如何操作,我没有重现。
  2. 我位于某个“DMZ”(这不是 Active Directory 域,而是工作组) - 这听起来很合乎逻辑。 但我没有得到预期的私有(“灰色”)IP 地址,而是一个完全“白色”的 IP 地址,与我之前攻击的 IP 地址完全相同。 这意味着该公司在 IPv4 寻址领域已经很老了,以至于它有能力根据该方案维护 128 个“白色”地址的 DMZ 区域,而无需 NAT,如 2005 年思科手册中所述。

由于服务器很旧,Mimikatz 保证直接从内存工作:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
我获取了本地管理员密码,通过 TCP 传输 RDP 流量并登录到舒适的桌面。 由于我可以对服务器做任何我想做的事情,所以我删除了防病毒软件,发现只能通过 TCP 端口 80 和 443 从 Internet 访问该服务器,并且 443 并不繁忙。 我在 443 上设置了 OpenVPN 服务器,为我的 VPN 流量添加 NAT 功能,并通过我的 OpenVPN 以无限制的形式直接访问 DMZ 网络。 值得注意的是,具有一些非禁用 IPS 功能的 ISA 通过端口扫描阻止了我的流量,为此必须用更简单且更兼容的 RRAS 来替换它。 因此,渗透测试人员有时仍然需要管理各种事情。

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
细心的读者会问:“第二个站点怎么样?一个带有 NTLM 身份验证的 wiki,关于它的文章已经写了很多了?” 稍后会详细介绍这一点。

第 2 部分. 仍然没有加密? 那么我们已经来找你了

这样,就可以访问DMZ网段了。 您需要去域管理员那里。 首先想到的是自动检查 DMZ 段内服务的安全性,特别是因为现在有更多服务可供研究。 渗透测试期间的典型情况:外部边界比内部服务受到更好的保护,并且当在大型基础设施内部获得任何访问权限时,仅因为该域开始被访问,就更容易获得域中的扩展权限。其次,在拥有数千台主机的基础设施中,总会存在一些关键问题。

我通过 OpenVPN 隧道通过 DMZ 为扫描仪充电,然后等待。 我打开报告——同样没什么严重的,显然有人在我之前经历过同样的方法。 下一步是检查 DMZ 网络内的主机如何通信。 为此,首先启动常用的 Wireshark 并侦听广播请求,主要是 ARP。 整天收集ARP数据包。 事实证明,该段使用了多个网关。 这稍后会派上用场。 通过结合 ARP 请求响应数据和端口扫描数据,除了那些以前已知的服务(例如 Web 和邮件)之外,我还找到了本地网络内部用户流量的出口点。

由于目前我无法访问其他系统,也没有用于企业服务的单个帐户,因此决定使用 ARP 欺骗从流量中至少找出一些帐户。

Cain&Abel 在泌尿科医生的服务器上启动。 考虑到已识别的流量,选择最有可能进行中间人攻击的对,然后通过短期启动 5-10 分钟来接收一些网络流量,并使用定时器重新启动服务器以防结冰。 正如笑话中所说,有两条消息:

  1. 好的:大量凭据被捕获,并且整个攻击有效。
  2. 缺点:所有凭证均来自客户自己的客户。 在提供支持服务时,客户专家会连接到并不总是配置流量加密的客户的服务。

结果,我获得了很多在项目背景下无用的凭据,但作为攻击危险的演示绝对有趣。 大公司的边界路由器具有 telnet、将所有数据的调试 http 端口转发到内部 CRM、从本地网络上的 Windows XP 直接访问 RDP 以及其他蒙昧行为。 结果是这样的 根据 MITRE 矩阵进行供应链妥协.

我还发现了一个有趣的机会来收集交通信件,就像这样。 这是一封现成的信件的示例,该信件从我们的客户发送到其客户的 SMTP 端口,同样没有加密。 某个安德烈要求他的同名者重新发送该文档,该文档被上传到云盘,并在一封回复信中包含登录名、密码和链接:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
这是对所有服务进行加密的另一个提醒。 不知道谁以及何时会专门读取和使用您的数据 - 提供商、另一家公司的系统管理员或这样的渗透测试人员。 我对许多人可以简单地拦截未加密流量的事实保持沉默。

尽管取得了明显的成功,但这并没有让我们更接近目标。 当然,有可能坐很长时间并找出有价值的信息,但事实上它不会出现在那里,而且就网络的完整性而言,攻击本身风险很大。

在再次深入研究服务后,我想到了一个有趣的想法。 有一个名为 Responder 的实用程序(很容易找到该名称的使用示例),它通过“毒害”广播请求,通过各种协议(例如 SMB、HTTP、LDAP 等)激发连接。 以不同的方式,然后要求每个连接的人进行身份验证并进行设置,以便通过 NTLM 并以对受害者透明的模式进行身份验证。 大多数情况下,攻击者以这种方式收集 NetNTLMv2 握手信息,并使用字典从中快速恢复用户域密码。 在这里,我想要类似的东西,但用户坐在“墙后”,或者更确切地说,他们被防火墙隔开,并通过 Blue Coat 代理集群访问 WEB。

还记得吗,我指定了 Active Directory 域名与“外部”域一致,即 company.ru? 因此,Windows,更准确地说是 Internet Explorer(以及 Edge 和 Chrome),如果用户认为该站点位于某个“Intranet 区域”,则允许用户通过 NTLM 在 HTTP 中透明地进行身份验证。 “内联网”的标志之一是访问“灰色”IP 地址或短 DNS 名称(即不带点)。 由于他们拥有一台具有“白色”IP 和 DNS 名称 preobrazhensky.company.ru 的服务器,并且域计算机通常通过 DHCP 接收 Active Directory 域后缀以简化名称输入,因此他们只需在地址栏中写入 URL 普列奥布拉任斯基,以便他们找到通往受感染泌尿科医师服务器的正确路径,不要忘记这现在被称为“内联网”。 也就是说,同时在用户不知情的情况下向我提供用户的 NTLM 握手。 剩下的就是迫使客户端浏览器考虑联系该服务器的迫切需要。

精彩的 Intercepter-NG 实用程序来救援(感谢 截距)。 它允许您即时更改流量,并且在 Windows 2003 上运行良好。它甚至具有仅修改流量中的 JavaScript 文件的单独功能。 计划进行一种大规模的跨站点脚本编写。

用户通过 Blue Coat 代理访问全球 WEB,定期缓存静态内容。 通过拦截流量,很明显他们正在全天候工作,无休止地请求频繁使用的静态,以加快高峰时段内容的显示速度。 此外,BlueCoat还有一个特定的User-Agent,它可以清楚地将其与真实用户区分开来。

Javascript 已准备好,使用 Intercepter-NG,在晚上用 Blue Coat 的 JS 文件执行每个响应一个小时。 该脚本执行了以下操作:

  • 通过User-Agent确定当前浏览器。 如果是 Internet Explorer、Edge 或 Chrome,它仍然可以工作。
  • 我一直等到页面的 DOM 形成。
  • 使用表单的 src 属性将不可见图像插入到 DOM 中 普列奥布拉任斯基:8080/NNNNNNN.png,其中 NNN 是任意数字,因此 BlueCoat 不会缓存它。
  • 设置一个全局标志变量以指示注入已完成,无需再插入图像。

浏览器尝试加载此图像;在受感染服务器的端口 8080 上,一条 TCP 隧道正在等待它到达我的笔记本电脑,其中正在运行相同的响应程序,要求浏览器通过 NTLM 登录。

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
从 Responder 日志来看,人们早上来上班,打开工作站,然后在不知不觉中集体开始访问泌尿科医师的服务器,同时还不忘记“耗尽”NTLM 握手。 一整天的握手如雨点般落下,显然为恢复密码的明显成功的攻击积累了材料。 响应程序日志如下所示:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切用户大规模秘密访问泌尿科医生服务器

你可能已经注意到,整个故事是建立在“一切都很好,但随后有一个无赖,然后是克服,然后一切都成功”的原则之上的。 所以,这里有一个无赖。 在五十种独特的握手方式中,没有一种被透露。 这考虑到了这样一个事实:即使在处理器已失效的笔记本电脑上,这些 NTLMv2 握手也会以每秒数亿次尝试的速度进行处理。

我必须用密码变异技术、一张显卡、一本更厚的字典武装自己,然后等待。 很长一段时间后,多个密码形式为“Q11111111....1111111q”的账户被曝光,这表明所有用户曾经被迫想出一个很长的不同大小写的密码,这也是应该的变得复杂。 但你骗不了经验丰富的用户,这就是他让自己更容易记住的方法。 总共约有 5 个帐户遭到泄露,其中只有一个帐户拥有对服务的任何有价值的权利。

第 3 部分:Roskomnadzor 的反击

这样,我们就收到了第一个域帐户。 如果您在阅读了很长一段时间后还没有睡着,您可能会记得我提到过一项不需要第二个身份验证因素的服务:它是一个具有 NTLM 身份验证的 wiki。 当然,首先要做的就是进入那里。 深入挖掘内部知识库很快就带来了成果:

  • 该公司拥有一个 WiFi 网络,使用可访问本地网络的域帐户进行身份验证。 根据当前的数据集,这已经是一个有效的攻击媒介,但您需要亲自前往办公室并位于客户办公室范围内的某个位置。
  • 我发现了一项指令,根据该指令,如果用户位于本地网络内并且自信地记住了他的域登录名和密码,则允许...独立注册“第二因素”身份验证设备。 在这种情况下,“内部”和“外部”由用户对该服务的端口的可访问性决定。 该端口无法从 Internet 访问,但可以通过 DMZ 访问。

当然,“第二个因素”立即以我手机上的应用程序的形式添加到受感染的帐户中。 有一个程序可以通过“批准”/“不批准”按钮大声向手机发送推送请求,也可以在屏幕上默默地显示 OTP 代码以供进一步独立输入。 此外,说明书认为第一种方法是唯一正确的方法,但与 OTP 方法不同,它不起作用。

随着“第二个因素”被打破,我能够在 Citrix Netscaler Gateway 中访问 Outlook Web Access 邮件和远程访问。 Outlook中的邮件中出现了惊喜:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
在这张罕见的照片中,您可以看到 Roskomnadzor 如何帮助渗透测试人员

这是著名的“粉丝”封锁 Telegram 后的头几个月,当时拥有数千个地址的整个网络无情地无法访问。 很明显为什么推送没有立即起作用,为什么我的“受害者”没有发出警报,因为他们在开放时间开始使用她的帐户。

任何熟悉Citrix Netscaler的人都会想象它通常以这样的方式实现:只能向用户传达一个图片界面,尽量不给他提供启动第三方应用程序和传输数据的工具,百般限制操作通过标准控制外壳。 我的“受害者”,由于他的职业,只得到了1C:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
稍微绕了一下1C接口,我发现那里有外部处理模块。 它们可以从界面加载,并且将根据权限和设置在客户端或服务器上执行。

我要求我的 1C 程序员朋友创建一个可以接受字符串并执行它的处理。 在1C语言中,启动一个进程看起来像这样(摘自互联网)。 您是否同意 1C 语言的语法以其自发性令俄语人士惊叹不已?

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切

处理执行得很完美;结果证明它是渗透测试人员所说的“外壳”——Internet Explorer 是通过它启动的。

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
早些时候,在邮件中发现了一个允许您订购前往该地区通行证的系统的地址。 我订购了一张通行证,以防我不得不使用 WiFi 攻击媒介。

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
网上有传言说客户办公室还有美味的免费餐饮,但我还是更喜欢远程发起攻击,这样比较平静。

AppLocker在运行Citrix的应用程序服务器上被激活,但被绕过。 同一个 Meterpreter 是通过 DNS 加载和启动的,因为 http(s) 版本不想连接,而且当时我不知道内部代理地址。 顺便说一句,从这一刻起,外部渗透测试基本上完全变成了内部渗透测试。

第 4 部分:用户的管理员权限不好,好吗?

当获得域用户会话的控制权时,渗透测试人员的第一个任务是收集有关域中权限的所有信息。 有一个 BloodHound 实用程序,可自动允许您通过 LDAP 协议从域控制器下载有关用户、计算机、安全组的信息,并通过 SMB 下载有关哪个用户最近登录、何处以及谁是本地管理员的信息。

夺取域管理员权限的典型技术看起来被简化为单调操作的循环:

  • 根据已捕获的域帐户,我们转到具有本地管理员权限的域计算机。
  • 我们启动 Mimikatz 并获取最近登录该系统的域帐户的缓存密码、Kerberos 票证和 NTLM 哈希值。 或者我们删除 lsass.exe 进程的内存映像,并在我们这边执行相同的操作。 这适用于低于 2012R2/Windows 8.1 且默认设置的 Windows。
  • 我们确定受感染的帐户在何处拥有本地管理员权限。 我们重复第一点。 在某个阶段,我们获得整个域的管理员权限。

“周期结束”,正如 1C 程序员会在这里写的那样。

因此,我们的用户原来只是一台装有 Windows 7 的主机上的本地管理员,该主机的名称中包含“VDI”或“虚拟桌面基础设施”一词,即个人虚拟机。 大概,VDI服务的设计者的意思是,由于VDI是用户的个人操作系统,即使用户随意改变软件环境,主机仍然可以“重装”。 我还认为总的来说这个想法不错,我去了这个个人VDI主机并在那里安了一个窝:

  • 我在那里安装了一个 OpenVPN 客户端,它通过互联网建立了一条通往我的服务器的隧道。 客户端必须被迫通过相同的 Blue Coat 域身份验证,但 OpenVPN 做到了,正如他们所说,“开箱即用”。
  • 在 VDI 上安装 OpenSSH。 好吧,说真的,没有 SSH 的 Windows 7 是什么?

这就是现场的样子。 让我提醒您,这一切都必须通过 Citrix 和 1C 来完成:

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
促进对相邻计算机的访问的一种技术是检查本地管理员密码是否匹配。 幸运的是:默认本地管理员(突然被称为管理员)的 NTLM 哈希值通过对邻近 VDI 主机(其中有数百台)的哈希传递攻击而被获取。 当然,攻击立刻就击中了他们。

这就是 VDI 管理员两次搬起石头砸自己脚的地方:

  • 第一次是当 VDI 计算机没有纳入 LAPS 时,基本上保留了大规模部署到 VDI 的映像中的相同本地管理员密码。
  • 默认管理员是唯一容易受到哈希传递攻击的本地帐户。 即使使用相同的密码,也可以通过使用复杂的随机密码创建第二个本地管理员帐户并阻止默认帐户来避免大规模泄露。

为什么 Windows 上有 SSH 服务? 很简单:现在OpenSSH服务器不仅提供了一个方便的交互式命令shell而不干扰用户的工作,而且还提供了VDI上的socks5代理。 通过这个袜子,我通过 SMB 连接并从所有这数百台 VDI 计算机收集缓存帐户,然后在 BloodHound 图表中查找使用它们的域管理员的路径。 由于有数百台主机可供我使用,我很快就找到了这种方法。 已获得域管理员权限。

这是来自互联网的图片,显示了类似的搜索。 连接显示管理员所在位置以及登录位置。

从前的渗透测试,或如何在泌尿科医生和 Roskomnadzor 的帮助下打破一切
顺便说一下,请记住项目一开始的条件——“不要使用社会工程学”。 因此,我建议考虑一下,如果仍然可以使用平庸的网络钓鱼,那么所有具有特效的宝莱坞将会被切断多少。 但就我个人而言,做这一切对我来说非常有趣。 我希望您喜欢阅读本文。 当然,并不是每个项目看起来都那么引人入胜,但整个工作非常具有挑战性,不允许它停滞不前。

可能有人会有疑问:如何保护自己? 即使这篇文章也描述了许多技术,其中许多技术甚至 Windows 管理员都不知道。 不过,我建议从陈腐的原则和信息安全措施的角度来看待它们:

  • 不要使用过时的软件(还记得一开始的Windows 2003吗?)
  • 不要打开不必要的系统(为什么会有泌尿科医生的网站?)
  • 自己检查用户密码的强度(否则士兵......渗透测试人员会这样做)
  • 不同帐户没有相同的密码(VDI 妥协)
  • 和其他

当然,这很难实现,但在下一篇文章中我们将通过实践证明这是完全可能的。

来源: habr.com

添加评论