深入RastaLabs:实战渗透测试与红队技术探索

本文详细记录了作者在RastaLabs实验室中的实战经验,涵盖AV绕过、横向移动、权限提升和ROP利用等技术,通过真实场景模拟提升红队技能。

Jump ESP, jump!: The RastaLabs experience

引言

11月20日,我开始思考接下来一个月要做什么。我已经辞去了上一份工作,新工作要到一月份才开始。对某些人来说,整天玩PS4可能很有趣,但我知道我很快就会感到无聊。

尽管我有一些有限的红队经验,但我一直想再次体验获取域管理员(Domain Admin)权限的兴奋感。我在2010年左右第一次通过传递哈希(pass-the-hash)获得了DA权限,但那已经是很久以前的事了,技术变化很快。

在阅读众多Slack聊天室的历史记录时,我注意到某些聊天室在称赞RastaLabs。看了实验室的描述后,我觉得“就是它了,这正是我需要的”。能有多难呢?我有一个月的时间,肯定能在圣诞节前完成。天哪,我大错特错。

启动实验室的一次性费用是90英镑,包括第一个月,之后每个月额外收费20英镑。我觉得我像是在从Rastamouse和Hackthebox那里偷钱……怎么会这么便宜?有时便宜意味着低质量,但这次不是。

我的经验

关于我之前的经验,我已经通过了OSCP、OSCE、SLAE(Securitytube Linux汇编专家)和PSP(Powershell for Pentesters),这些在实验室中都对我帮助很大。我还有一些有限的红队经验。我在AV绕过方面有超出平均水平的经验,并且已经接触过Covenant和Powershell Empire等新的后期利用框架。至于编写漏洞利用代码,我知道缓冲区溢出或格式化字符串攻击的工作原理,但在绕过ASLR和NX方面缺乏实践。我在Windows 10上使用Mimikatz的经验基本为零。我在2012年用过Mimikatz,但可能之后再也没用过。我还有很多关于如何做X和Y的知识,了解有用的工具和热门技术,但缺乏最近的使用经验。最后,在黑客攻击速度方面,我通常是最后一名,但我总是用毅力来弥补速度的不足。

RastaLabs倒计时3,2,1……

于是我支付了初始入场费,拿到了VPN连接包,连接到实验室,并在……4天后拿到了我的第一个flag。总共有17个flag。这是我第一次开始担心。我尽一切努力让自己走错路,做了很多愚蠢的事情,比如假设了错误的实验室网络地址、扫描了太少的机器、通过OSINT找到了错误的面包屑、试图利用一个已修补的Web服务(就像大多数OSCP考生会做的那样)等等。我还不断挣扎于使用的工具,因为我从来不知道它们是本身有bug,还是我用错了,或者这根本不是获取flag的方法。我相信有运气和经验的人可能在2-3小时内完成这个阶段,但嘿,我是来获取经验的。

在实验室期间,每当我被同一个问题卡住超过30-40小时, frustration(挫败感)高涨时,我就会在RastaLabs官方支持频道https://mm.netsecfocus.com/上ping Rastamouse。我通常这样接近他:“嗨,我试了X、Y和Z,但没成功”,然后他回复“嗯,再试试Y”。这种信息通常就是我需要的,2-3小时后我又回到正轨。他的帮助总是足够,但从不至于破坏乐趣。Rastamouse的可用性和专业性都是10/10。数十亿美元的大公司都未能提供足够好的支持,而这个人总是随时提供帮助。太神奇了。我强烈建议加入Mattermost频道——它会帮助你看到你并不是唯一一个被问题卡住的人。但请在你没有尝试更努力之前,不要直接私信他或频道。

实验室中真正可爱的一点是,你可以期待真实世界的场景,有“RastaLabs员工”在他们的电脑上工作、阅读电子邮件、浏览网页等。我相信在这里透露一点不算剧透:在某个时间点,你必须交付能够绕过机器上MS Defender AV的恶意软件。是的,机器上有一个真正工作的Defender,虽然有点过时,但它可能会很快捕获你的默认payload。正如我之前提到的,幸运的是我最近有AV绕过的经验,所以这部分对我来说并不新鲜。我强烈建议设置你自己的Win10,并安装最新的Defender更新,首先在上面测试你的payload。如果在那里工作,它在实验室也会工作。这部分尤其令人沮丧,因为你从实验室得到的唯一反馈是什么都没有发生,而且无法调试它。首先在本地测试你的解决方案。

Powershell Empire对我来说是一个极好的解决方案,它唯一缺少的功能是端口转发(Port Forwarding)。但你可以投放其他工具来高效地完成这项工作。

一点帮助:即使你成功交付了payload并且有一个工作的C&C,也不意味着你的AV绕过任务结束了。Defender很可能会阻止你的后期利用代码。要绕过这一点,请阅读Rastamouse所有关于AMSI绕过的博客文章。这很重要。

横向移动

当你最终拿到第一个shell时……

一个全新的世界开始了。从现在开始,你将花费大量时间在密码破解、横向移动、持久化和弄清楚Windows AD如何工作上。

过去,我玩过很多CTF,时不时会有“是的,尽管这个挑战很有趣,但它不现实”的感觉。在RastaLabs期间,这种情况从未发生。所有的挑战和解决方案都是100%真实的,正如RastaLabs的“Ars poetica”所述:

…这太真实了。没有一个任务涉及任何CVE的利用。你需要为这个实验室换一种思维方式。你需要考虑错误配置、可破解的密码、权限滥用和类似的问题。但我相信这个实验室仍然比90%的组织更难攻破。唯一的帮助是没有蓝队人员杀死我们的shell。

关于实验室的架构:当通过VPN连接到实验室时,你基本上发现自己在一个可以标记为“互联网”的网络中,你的目标网络在防火墙后面,就像一个合适的公司网络应该的那样。

有一堆工作站——只有Win10,还有一些服务器,如文件服务器、Exchange、DC、SQL服务器等。大多数服务器是Windows Server 2016,还有一台Linux服务器。两个站点被充分分离并有防火墙保护。

随着时间的推移,我拿到了越来越多的flag,开始感受到力量。然后过山车般的体验开始了。我一无是处,我什么都不知道。拿到flag时,我是神。一小时后,我一无是处。

例如,我花了大量时间试图获得工作站的GUI访问权限。最后,我成功做到了,却发现我并没有因此取得任何成就。由于未知的原因,我尝试的所有框架都没有可用的VNC,所以我设置了自己的VNC,这很痛苦。

12月18日,我终于获得了域管理员权限。所以我对“在一个月内完成实验室”的估计并不算太离谱。只不过我离完成还远着呢,因为我还有五个flag没找到。你可能会问“你已经有了DA,找到剩下的五个能有多难?”。剧透警告,很难。或者更准确地说,不难,只是具有挑战性且耗时。这也是Mattermost RastaLabs频道上的连接对我帮助很大的时候。像“flag X在机器Y上”这样的提示帮助我保持动力, yet it did not spoil the fun。没有这样的提示,我就不会写这篇文章,而是会被多个flag卡住。

关于漏洞利用

还有那个臭名昭著的挑战,“ROP the night away。”这与其他16个完全不同。我相信这张图片说明了一切:

如果你不熟悉GDB,嗯,你会很难受。如果你没有很多绕过NX的实践经验——也就是ROP——像我一样,你会在这个挑战上遇到困难。OSCP和OSCE考试中的二进制漏洞利用挑战远没有这个复杂。如果你有OSEE,你会没事的。对于这个挑战,我使用了GDB-Peda和Python pwntools——如果你不熟悉它们,可以查看一下。对我来说,解决这个挑战花了大约40个小时。有经验的CTF人可能在4小时或更短时间内解决它。

结论

我不会建议完全的新手*参加这个实验室。如果你每天只有有限的时间,我也不建议做这个实验室,尤其是如果你在家用电脑上工作的话。如果我为这个实验室在云端设置一个专用服务器,我可能会节省几个小时甚至几天的时间。问题是实验室的工作站每天都会重启,这意味着我总是失去我的shell。“持久性FTW”,你可能会说,但如果你的C&C在工作站重启时宕机,你就完蛋了。“计划任务FTW”,你可能会说,但除非你有一个严格的时间表来规定你何时启动电脑,否则你最终会有一堆计划任务,只为了在你启动电脑时取回shell。日复一日,我花了第一个小时回到前一天的位置。直到实验室结束时,我才弄清楚为什么我的一些计划任务没有工作……

我真的很想知道我花了多少时间连接到实验室。可能总共 around 200–250小时,我相信这比我花在OSCP和OSE上的时间加起来还多。但这完全值得。我现在真的感受到了力量,因为我学到了很多有用的东西。

但如果你考虑到一个月实验室的价格是20英镑,这仍然是一个非常便宜的练习技能的选择。

  • 如果你从初学者开始,花6个月时间完成实验室完全没问题。那仍然只是190英镑的实验室访问费用,在这段时间里你会获得很多经验。你可能很难达到有一个工作shell的阶段,但这没关系。你可以在Google上找到所有信息,你只需要时间、耐心和到达那里的意愿。

无论如何,不以“获取所有flag”为目标仍然是一个选择。即使只拿到前两个flag,你也会在“获得立足点”方面获得重要经验。但对我来说,不拿到所有flag从来不是一个选项。

如果你仍然不相信,看看这些其他博客文章:

https://jmpesp.me/a-rastalabs-story/

https://www.gerrenmurphy.com/rastalabs-review/

或者看看其他人对RastaLabs的评价。

脚注

如果你开始实验室,请,拜托,遵守规则,不要破坏他人的乐趣。不要到处留下你的工具,不要保持共享驱动器打开,不要到处留下FLAG。让机器保持原样。如果你必须上传文件,把它放在别人不容易找到的文件夹里。这是真实世界红队行动中必要的心态。不要忘记,每当你自己或别人拿到新flag时,在聊天中丢一个派对鹦鹉。别忘了:

OSCP在这里没有力量。哭 harder!

我可能会保持对实验室的订阅,尝试新事物,新的后期利用框架。我想感谢@_rastamouse提供这次伟大的体验,@superkojiman提供ROP挑战。Hackthebox以出色的正常运行时间托管实验室。

至于@gentilkiwi和@harmj0y,这两个人可能比所有其他人加起来都更推动了红队技术的发展。来自@gallopsled的pwntools也非常有帮助。我将永远感激财务部的Bradley,每当我失去shell时,他总是提供持续支持。

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