赢得PHDays 9僵局:True0xA3团队的编年史

这是Vitaliy Malkin从“ Informzashita”撰写的两篇绝对出色的文章的英语摘要,其团队True0xA3在2019年5月的Positive Hack Days 9中赢得了享有盛名的黑帽比赛The Standoff。

Vitaliy在Habr上发表了三篇详细的文章,其中两篇专门介绍了True0xA3团队在比赛之前和期间使用的确保该团队获胜者头衔的策略。 我觉得这两篇文章唯一缺少的是英文摘要,以便广大读者可以阅读。 因此,下面是Vitaliy Malkin的两篇文章的摘要,以及为阐明他的观点而发布的图像。 Vitaliy同意我进行翻译和发布。

第一部分准备战斗


原始文章在这里

一,初步目标


该团队由16名经过严格检验的测试人员和4名实习生组成,配备了6台服务器和我们自己的CUDA工作站,并愿意走远路。

在对峙开始前8天开始了积极的准备工作。 这是我们第三次赢得“对峙”胜利,因此我们当中有些人经验丰富,足以知道需要做什么。 从一开始,我们就为团队讨论了以下优先事项:

  1. 团队成员之间的顺利协调
  2. 低挂水果的集合
  3. 利用我们的非典型漏洞,例如自动化过程控制系统(APCS),分布式控制系统(DCS),IoT,GSM
  4. 提前设置我们自己的基础架构和设备
  5. 制定一些持久性和强化策略

协调:


这是僵持状态下所有新手的弱点:任务没有得到有效分配。 几个人正在完成同一任务; 目前尚不清楚哪些任务已经完成; 任务的结果不会转发给团队的适当成员,等等。 团队越大,团队成员之间的协调效果就越差。 最重要的是,至少必须有一个从基础架构的角度了解整个情况的人,并且可以将多个漏洞整合到一个集中的攻击媒介中。

今年,我们使用了协作平台Discord。 它类似于IRC聊天,但具有其他功能,例如文件上传和语音通话。 对于Standoff地图中的每个目标,我们创建了一个单独的通道,在该通道中将收集所有数据。 这样,分配给任务的新团队成员可以轻松地查看已为此任务收集的每条信息,部署结果等。 所有信息通道每分钟限制为1条消息,以防止泛滥。 Standoff中的每个对象都有自己专用的聊天空间。

团队的每个成员都有明确的工作范围。 为了提高协调性,指派了一个人对所有任务做出最终决定。 这阻止了我们在比赛中进行长时间的讨论和分歧。

收集低挂的水果


我认为游戏中最重要的因素是管理多个项目和正确确定目标优先级的能力。 在去年的游戏中,我们能够接管办公室并留在那儿仅仅是因为我们使用了众所周知的漏洞。 今年,我们决定提前列出此类漏洞并整理我们的知识:

ms17-010; ms08-67; SMBCRY LibSSH RCE; HP DATA保护器; 惠普iLo; ipmi 思科智能安装 Java RMI JDWP; JBOSS; drupalgeddon2; 网络逻辑 伤心欲绝 轰击 ibm Websphere iis-webdav; 服务 vnc; ftp-anon; NFS smb-null; 雄猫

然后,我们创建了两个服务(检查程序和穿透程序),这些服务可以自动测试漏洞以及部署可公开利用的漏洞和metasploits。 这些服务利用了nmap的结果来加快我们的工作。

利用我们的非典型漏洞


我们在分析自动化过程控制系统(APCS)的漏洞方面经验不足。 在僵持状态大约发生8天之前,我们开始深入探讨该主题。 物联网和GSM的情况更糟。 在以往的僵持之外,我们从未有过使用这些系统的经验。

因此,在准备阶段,我们选择了2个人来研究自动化过程控制系统(APCS),并选择了2个人来研究GSM和IoT。 一个星期内的第一个团队创建了SCADA系统渗透测试的典型方法列表,并详细研究了僵持状态下上一年基础架构的视频。 他们还下载了大约200GB的各种HMI,驱动程序以及与控制器相关的其他软件。 物联网团队准备了一些硬件,并阅读了有关GSM的所有可用文章。 我们希望这样就够了(扰流板警报:那不是!)

建立我们自己的基础设施和设备


由于我们的团队非常庞大,因此我们决定需要更多设备。 这是我们随身携带的:

  • CUDA服务器
  • 备用笔记本电脑
  • 无线路由器
  • 切换开关
  • 各种网络电缆
  • WiFi阿尔法
  • 橡皮鸭

去年,我们了解了在两次握手被黑客入侵期间使用CUDA服务器的重要性。 重要的是要注意,今年和往年一样,所有红色小组成员都在NAT后面,因此我们不能使用DMZ的反向连接。 但是,我们假定除自动过程控制系统(APCS)之外的所有主机都将具有Internet连接。 考虑到这一点,我们决定启动3种可从Internet获得的服务器侦听器。 为了使数据透视更容易,我们使用了自己的OpenVPN服务器,并且已启用了客户端到客户端的功能。 不幸的是,无法自动创建渠道,因此28个团队中有12个小时仅一名团队成员致力于渠道管理。

制定一些持久性和强化策略


我们以前在对峙方面的经验已经告诉我们,仅凭这一点还不足以取代服务器。 防止其他团队也站稳脚跟同样重要。 因此,我们在RAT(远程管理工具)上花费了大量时间,使用了新的签名和脚本来加固Windows系统。 我们使用了标准RAT,但稍微改变了混淆方法。 规则提出了更大的困难。 总体而言,我们开发了以下脚本列表:

  • 关闭SMB(服务器消息块)和RPC(远程过程调用)端口
  • 将RDP(远程桌面协议)移动到非标准端口
  • 关闭可逆加密,来宾帐户和安全基线的其他典型问题

对于Linux系统,我们开发了一个特殊的初始化脚本,该脚本关闭了所有端口,将SSH移至非标准端口,并创建了用于团队访问SSH的公共密钥。

二。 简报


在对峙前5天的5月17日,组织者为红队提供了情况介绍。 他们提供了许多影响我们准备工作的信息。 他们发布了网络地图,这使我们可以将网络划分为多个区域,并将每个区域的职责分配给团队成员。 组织者提供的最重要信息是,只能从网络的一个网段访问APCS,并且该网段不受保护。 此外,公开了将为APCS和有担保的办公室授予最高分。 他们还说,他们将奖励红色团队互相击倒网络的能力。

我们将其解释为以下含义:“谁抓住了bigbrogroup,谁就有可能赢得这场比赛。” 这是因为我们的先前经验告诉我们,无论组织者如何惩罚服务丢失,如果蓝色团队无法及时修复漏洞,它们都会杀死易受攻击的服务器。 这是因为他们各自的公司比完全担心游戏中的某些失分更担心来自完全被黑客入侵的系统的宣传。 我们很快就会看到,我们的猜测是正确的。

因此,我们决定将团队分为四个部分:

I. Bigbrogroup 。 我们决定将这项任务放在所有其他任务的首位,因此我们将经验最丰富的测试员归为该小组。 这个小型团队由5人组成,其主要目标是接管领域并阻止其他团队进入APCS。

二。 无线网络 。 该团队负责观看Wifi,跟踪新的WAP,捕获握手并对其进行暴力破解。 他们还负责GSP,但主要目的是防止其他团队接管Wifi

三, 未受保护的网络 。 该团队花了前4个小时测试所有不受保护的网络并分析漏洞。 我们了解到,在最初的4小时内,受保护的部分不会发生任何令人感兴趣的事情,至少没有蓝队无法击退的事情,因此我们决定在最初的几个小时里花费一些时间来保护不受保护的网络,从而可以进行更改。 事实证明,这是一个好方法。

IV。 扫描仪组 。 蓝色团队事先告诉我们,网络拓扑结构将不断变化,因此我们派了2个人来扫描网络并检测变化。 由于我们拥有多个具有多个设置的网络,因此该过程的自动化非常困难。 例如,在第一个小时中,我们的nmap在T3模式下工作,但是到中午它才在T1模式下工作。

另一个重要的载体是组织者在简报中提供的软件和技术清单。 我们为每种技术创建了一个能力小组,可以快速评估典型漏洞。 对于某些服务,我们发现了已知的漏洞,但找不到任何已发布的漏洞利用。 例如,Redis开发后RCE就是一个案例。 我们非常确定,该漏洞会出现在Standoff基础结构中,因此我们决定编写自己的1天漏洞利用程序。 当然,我们无法编写整个漏洞利用程序,但是总体而言,我们收集了5个准备好部署的未发布漏洞利用程序。

不幸的是,我们无法研究所有技术,但事实并非如此。 由于我们检查了优先级最高的那些,因此已足够。 我们还准备了APCS控制器的列表,我们也对其进行了详细研究。

在准备阶段,我们收集了一些用于秘密连接到APCS网络的工具。 例如,我们使用覆盆子准备了菠萝的廉价版本。 它可以连接到生产网络的以太网,并通过GSM连接到控制服务。 然后,我们可以远程配置以太网连接,然后通过内置的wifi模块进行广播。 不幸的是,在比赛期间,组织者明确表示将禁止与APCS的物理连接,因此我们最终无法使用该模块。

我们发现了很多有关银行,离岸账户和反欺诈工作的信息。 但是,我们还发现银行没有太多钱,因此我们决定不花时间为该物品做准备,而只是在游戏中耳边玩。

总而言之,我们在准备阶段做了很多工作。 我想指出的是,除了获得对峙竞赛优胜者的明显好处外,我们还获得了不那么明显但同样重要的好处,例如

  • 我们从每天的工作细节中休息了一段时间,尝试了我们长期希望做的事情
  • 这是我们的第一次经历,整个渗透测试团队都在完成一项任务,因此团队建设的效果非常明显
  • 我们在准备游戏时可以收集到的很多信息,可以用于现实生活中的渗透测试项目,我们提高了能力水平,并创建了新的易于使用的工具

回顾过去,我意识到我们在对峙中的胜利很可能是在比赛开始之前很早就在准备阶段获得的。 现在,在对峙期间实际发生的情况将在本系列的第二部分中进行描述

第二部分 赢得对峙。 分享生活黑​​客


原始文章在这里

来自InformZachita公司红色团队负责人,True0xA3团队的负责人Vitaliy Malkin。 True0xA3赢得了俄罗斯最负盛名的白帽比赛之一-2019年PHDays的对峙。

第一天


9:45 MSK

一天从接收MassScan的结果开始。 我们首先列出了打开了445个端口的所有主机,并且恰好在上午10点,我们部署了用于metasploit MS17-010的检查器。 根据我们的计划,我们的主要目标是捕获域bigbrogroup的域控制器,因此我们团队中只有2个人专门负责这一工作。 在下面,您将看到每个组的初始分配。

图片

如您所见,我们试图渗透到游戏中的每个办公室,而我们只有20个人的事实产生了很大的变化。

10:15

来自Team1的一组团队成员中的一个在域名bigbrogroup.phd中找到一个容易受到MS17-010攻击的主机。 我们非常着急地部署了该漏洞利用程序。 几年前,我们遇到了这样的情况,我们能够将meterpreter(带有远程执行代码的网络钓鱼攻击)外壳指向一个重要目标,但在10秒内将其踢出了外壳。 今年我们更加准备。 我们接管主机,关闭SMB端口,并将RDP更改为端口50002。我们非常注意域的持久性过程,因此我们创建了一些本地管理帐户并部署了自己的远程管理工具(RAT) 。 之后,我们继续下一个任务

10:25

我们继续查看从主机收集的信息的结果。 除了访问内部网络和连接到域控制器之外,我们还找到域管理员的令牌。 在我们对此不太兴奋之前,我们先检查令牌是否仍然有效。 然后我们很高兴。 第一个域已经下降。 总花费时间为27分52秒

从开始时间起半小时,我们访问了玩家门户网站,以了解上交标志和接收积分的规则。 我们看到标准列表:域管理员登录名,本地管理员,交换管理员和其他一些管理员。 从域中,我们下载ntds.dit,同时准备好CUDA工作站。 然后我们发现域中是可逆加密,因此现在我们可以获得所需的所有密码。 为了了解我们需要哪些密码,我们组成了一个由2人组成的团队,他们开始分析AD及其组的结构。 5分钟后,他们提交了结果。 我们交出旗帜并等待。 现在是时候获得我们的第一滴鲜血了,至少可以提高团队的士气。 但是什么都没有。 我们花了一个小时的时间来尝试了解检查器的工作方式:

  • 它是自动化的
  • 它的格式非常不灵活
  • 如果您将标志转到支票上,并且在几秒钟内未收到响应,则您的格式与检查程序的格式不匹配

最后,我们找出正确的格式,并在上午11点左右得到First Blood。 ew!

11:15

团队1被分为两个子团队。 小组1继续加强域:他们获得krbtgt,强化基准,更改目录服务的密码。 僵持组织者在简报中告诉我们,该域中的第一个可以根据需要进行游戏。 因此,我们更改了管理员密码,以便即使有人进来并设法将我们踢出局,他们也将无法获得登录信息以将其标志变成积分。

第2小组继续调查域结构并找到另一个标志。 他们在CFO的桌面上找到财务报告。 不幸的是,它已压缩并受密码保护。 因此,我们打开CUDA工作站。 我们将邮政编码转换为哈希,然后将其发送给hashcat。

团队2继续通过RCE(远程代码执行)找到有趣的服务,并开始研究它们。 其中之一是对基于Nagios构建的cf-media域的监视服务。 另一个是一家航运公司的日程管理器,该公司以一些我们从未见过的奇怪技术为基础。 还有一些有趣的服务,例如DOC到DPF转换器。

那时,第1团队的第二个子团队已经开始在银行工作,并在MongoDB中找到了一个有趣的数据库,其中包含我们团队和其他团队的名称及其余额。 我们将团队的余额更改为5000万并继续前进。

下午2点

运气已经离开了我们。 首先,我们在受保护网段中拥有RCE的两项服务不可用。 蓝队只是将其关闭。 当然,我们向组织者抱怨违反规则,但没有效果。 在僵局中,没有要保护的业务流程! 第二,我们找不到客户列表。 我们怀疑它隐藏在1C深度的某个位置,但是我们没有数据库,也没有配置文件。 死胡同。

我们正在尝试在远程服务器和自动化过程控制系统(APCS)之间建立VPN通道。 由于某些奇怪的原因,我们不在bigbrogroup的域控制器上执行此操作,并且接口之间的连接断开。 现在,域控制器不可访问。 负责访问域的团队部分几乎心脏病发作。 团队成员之间的压力越来越大,指责开始了。

然后我们意识到域控制器是可访问的,但VPN连接不稳定。 我们在步骤中仔细回溯,通过RDP关闭了VPN,瞧,域控制器可以再次访问了。 团队集体呼气。 最后,我们从另一台服务器设置了VPN。 域控制器受到了骚扰和纵容。 所有参赛队伍仍然获得0分,这令人放心。

16:50

组织者最终发布了一个矿工。 使用psexec,我们可以在我们控制的所有端点上进行设置。 这带来了一些稳定的收入流。

第2小组仍在研究Nagios漏洞。 他们具有带有漏洞的版本
<= 5.5.6 CVE-2018-15710 CVE-2018-15708。 可以利用公共漏洞,但是需要反向连接才能下载Web外壳。 由于我们位于NAT的后面,因此我们必须重写漏洞利用程序并将其分为两部分。 第一部分强制Nagios通过Internet连接到我们的远程服务器,第二部分位于服务器本身,为Nagios提供网络外壳。 这使我们可以通过代理访问cf-media域。 但是连接不稳定且难以使用,因此我们决定将漏洞利用卖给BugBounty美元,同时尝试提高对root的访问权限。

18:07

这是组织者承诺的“惊喜”。 他们宣布BigBroGroup刚刚购买了CF-media。 我们并不感到惊讶。 在调查bigbrogroup域时,我们注意到bigbrogroup与cf-media域之间的信任关系。

在宣布收购CF-media时,我们仍然没有连接到他们的网络。 但是在宣布之后,访问权限出现了。 这避免了我们旋转车轮以尝试从Nagios旋转。 Bigbrogroup的凭据可在cf-media域上使用,但用户没有特权。 尚未发现容易利用的漏洞,但是我们对某些事情会出现感到乐观。

18:30

突然,我们从bigbrogroup领域开始了。 由谁来 怎么了 看来TSARKA团队是元凶! 他们正在更改管理员密码,但我们在储备金中还有其他4个管理员帐户。 我们再次更改域管理员密码,重置所有密码。 但是几分钟后,我们又被踢出去了! 在那个确切的时间,我们找到了cf-media域的向量。 在他们的一台服务器上,用户名和密码与我们先前在bigbrogroup域上找到的用户名和密码匹配。 呵呵,密码重用! 没有您,我们会怎么办? 现在我们只需要一个哈希即可。 我们使用hashkiller并获得密码P @ ssw0rd。 继续前进。

19:00

争夺对bidbrogroup的控制权的斗争正成为一个严重的问题。 TSARKA将密码两次更改为krbtgt,我们丢失了所有管理员帐户...接下来怎么办? 死胡同?

19:30

我们终于在cf-media上获得了域管理员权限,并开始上交我们的标志。 尽管事实上这应该是安全域,但我们看到了可逆加密。 因此,现在我们有了登录名和密码,并继续进行与bigbrogroup相同的步骤。 我们创建了其他管理员,加强了立足点,强化了基准,更改了密码,创建了VPN连接。 我们找到第二份财务报告,也作为受保护的邮编。 我们会与负责第一份报告的团队核实。 他们设法使之残酷,但组织者不会接受。 原来,它需要作为受保护的7zip上交! 因此,我们甚至不必蛮力! 3个小时的工作一无所获。

我们将两个报告都作为受保护的7zip文件上交。 到目前为止,我们的总余额为1百万点,而TSARKA则有125,000点,他们开始从bigbrogroup领域交出旗帜。 我们意识到我们必须阻止他们上交旗帜,但是如何做呢?

19:30

我们找到了解决方案! 我们仍然具有本地管理员的凭据。 我们登录,接过票,然后简单地关闭域控制器。 控制器下电。 我们关闭除RDP之外的所有服务器端口,并更改所有本地管理员的密码。 现在我们在我们的小空间中,而他们在他们的空间中。 如果只有VPN连接可以保持稳定! 团队集体呼气。

同时,我们在cf-media域中的所有端点上设置了矿工。 TSARKA在总量上领先于我们,但我们并不落后,而且我们拥有更大的能力。

晚上


在这里,您可以看到我们在团队中进行的夜间更改。

图片

一些团队成员不得不去过夜。 到午夜时分,我们只有9个人。 生产力下降到接近零。 每小时我们起床都要用水泼水,到户外去呼吸一些空气,以摆脱困倦。

现在,最后,我们要进入自动化过程控制系统(APCS)

02.00

最近几个小时令人非常沮丧。 我们发现了几个向量,但它们已经关闭。 我们无法确定他们是从一开始就关闭还是TSARKA已经在这里。 慢慢研究APCS,我们发现了一个易受攻击的NetBus控制器。 我们使用的metasploit模块并不完全了解其工作原理。 突然,城市的灯光熄灭了。 组织者宣布,如果我们可以重新打开灯,他们将计入其中。 那时,我们的VPN断开了。 管理VPN的服务器已由TSARKA接管! 好像我们在大声讨论APCS一样,他们设法接手了。

03.30

甚至我们当中最敬业的人也开始点头。 只有7个仍在工作。 突然,没有任何解释,VPN重新启动。 我们很快用城市的灯光重复了这一技巧,并且看到余额增加了200,000点!

小组的一部分仍在寻找其他向量,而另一部分正在研究APCS。 在那里,我们发现了另外两个漏洞。 我们能够利用其中之一。 但是利用的结果可能是微控制器固件的重写。 我们与组织者讨论此事,并决定我们将等待团队其他成员在早上重新加入我们,然后集体决定要做什么。

05:30

我们的VPN每小时大约工作10分钟,然后再次断开连接。 在这段时间内,我们努力工作。 但是生产率几乎为零。 最终,我们决定每个人睡一个小时。 扰流板警报-坏主意!

仍有5个人在APCS上工作。

清晨


早上,我们突然意识到自己领先其他团队近一百万点。 TSARKA能够上交APCS的两个标志,以及电信提供商和bigbrogroup的几个标志。 此外,他们有矿工在工作,并且他们必须有一些尚未上交的加密货币。 我们估计他们的加密货币最少要多200-300,000点。 这令人不安。 我们感觉他们可能还会有一些标志,他们将策略性地推迟到最后几个小时。 但是我们的团队又回来了。 主舞台上的早上声音检查有点烦人,但确实使睡眠消失了。

我们仍在努力闯入APCS,但希望却在消退。 第一和第二支球队与其余球队之间的积分差异是巨大的。 我们担心组织者可能决定再抛出一些“意外”来动摇一切。

在与主场的TSARKA举行了新闻发布会之后,我们决定将我们的策略从“获得更多标志”更改为“防止TSARKA交出更多标志”。

在我们的一台服务器上,我们启动Cain&Abel并将所有流量重定向到我们的服务器。 我们从哈萨克斯坦找到了一些VPN,并将其杀死。 然后,我们决定杀死所有地方的所有流量,因此我们在VPN通道上创建了本地防火墙,以丢弃APCS网络内的所有流量。 这就是保护APCS的方式! 组织者现在抱怨他们失去了与APCS的联系。 我们开放其IP地址的访问权限(这不是保护APCS的方式)。

12:47

我们担心组织者试图改变现状是正确的。 毫无疑问,每个域都有一个包含4个登录名的数据转储。 我们动员了整个团队。

目标:
小组1 :立即接管所有受保护的网段。
团队2 :使用Outlook Web Access将所有密码更改为登录名。

一些感觉很活跃的蓝色团队只是关闭了VPN。 其他人则比较棘手,将系统语言更改为中文。 从技术上讲,该服务仍然有效! 但是,当然,在实践中,它是不可用的(组织者,请注意!)。 通过VPN,我们能够连接到3个网络。 在其中一个中,我们只持续了1分钟才被踢出。

图片

12:52

我们找到了一个健康的服务器,该服务器具有MS17-010漏洞(应该是受保护的网段?)。 我们迅速利用它,没有遇到任何阻力。 我们获取域admin的哈希,并通过Pth访问域控制器。 猜猜我们在那里能找到什么? 可逆加密!

保护该部分的人没有完成作业。 我们收集所有标志,除了与1C有关的部分。 如果再在那里花30到40分钟,我们很有可能得到它,但是我们决定只关闭健康的域控制器。 谁需要竞争?

13:20

我们上交旗帜。 现在,我们有2,900,000分,还有一些出色的错误赏金。 TSARKA有100万多一点。 他们上交了加密货币,又获得了200,000。 现在,我们非常确定他们将无法追赶,这几乎是不可能的。

13:55

人们上来祝贺我们。 我们仍然担心组织者会感到有些意外,但是看来我们真的被宣布为获胜者!

这是True0xA3 28小时的纪事。 当然,我省了很多。 例如,舞台上的新闻发布会,Wifi和GSM的酷刑,与记者的互动……但我希望我能捕捉到最有趣的时刻。

这是对我们团队而言最有意义的经历之一,我希望我能够使您至少对僵局的气氛有一点了解,并吸引您也尝试参加!

接下来,我将发布本系列的最后一部分,在那里我将分析我们的错误以及以后纠正错误的方法。 因为学习别人的错误是最好的学习方式,对吗?

Source: https://habr.com/ru/post/zh-CN462205/


All Articles