Jump ESP, jump!: The RastaLabs体验
引言
11月20日,我开始思考接下来一个月要做什么。我已经辞去了上一份工作,新工作要等到1月才开始。对某些人来说整月玩PS4可能很有趣,但我知道自己很快就会感到无聊。
尽管我有些有限的红队经验,但一直想再次体验获取域管理员权限的兴奋感。我最早在2010年左右通过哈希传递首次获得域管理员权限,但那已经是很久以前的事了,技术发展日新月异。
在浏览某个Slack频道的聊天记录时,我注意到有些聊天室在称赞RastaLabs。看了实验描述后,我感觉"就是它了,这正是我需要的"。能有多难呢?我有一整个月的时间,肯定能在圣诞节前完成。天哪,我大错特错了。
实验的初始费用是90英镑,包含第一个月,之后每月20英镑。我感觉像是在从Rastamouse和Hackthebox那里偷钱…怎么会这么便宜?有时候便宜意味着质量低,但这次不是。
我的经验
关于我的背景,我已经通过了OSCP、OSCE、SLAE和PSP认证,这些在实验中帮了我很多。我还有一些有限的红队经验。在AV绕过方面我有超过平均水平的经验,并且已经接触过Covenant和PowerShell Empire等后期利用框架。至于漏洞利用,我知道缓冲区溢出和格式化字符串攻击的原理,但在绕过ASLR和NX方面缺乏实践。我在Windows 10上使用Mimikatz的经验基本为零。我2012年用过Mimikatz,但之后可能就没再用过。我虽然知道如何做X和Y,了解有用的工具和热门技术,但缺乏近期实践经验。最后,在黑客攻击速度方面我通常是最慢的,但我总是用毅力来弥补速度的不足。
RastaLabs倒计时开始…
我支付了初始费用,拿到VPN连接包,连接到实验环境,然后在…4天后拿到了第一个flag。总共有17个flag。这是我第一次开始担心。我做了所有让自己走错路的事情,比如假设错误的实验网络地址、扫描太少的机器、通过OSINT找到错误线索、尝试利用已打补丁的Web服务(大多数OSCP持证者都会这么做)等。我还不断与使用的工具作斗争,因为永远不知道是工具有问题,还是我用错了方法,或者这根本不是获取flag的正确方式。我相信有运气和经验的人可能2-3小时就能完成这个阶段,但嘿,我是来获取经验的。
在实验过程中,每当我在同一个问题上卡住超过30-40小时且感到沮丧时,我就会在官方RastaLabs支持频道https://mm.netsecfocus.com/上联系Rastamouse。我通常会说"嗨,我试了X、Y和Z但没成功",他会回复"嗯,再努力试试Y"。这种信息通常就是我需要的,2-3小时后我就能重回正轨。他的帮助总是恰到好处,从不会多到破坏乐趣。Rastamouse的可用性和专业性都是10/10。许多市值数十亿美元的大公司都未能提供足够好的支持,而这个人总是随时提供帮助。太棒了。我强烈建议加入Mattermost频道——看到不是你一个人被问题困住会很有帮助。但请在没有更加努力尝试之前不要私信他或频道。
实验中最可爱的一点是你可以期待真实场景,有"RastaLabs员工"在电脑前工作、阅读邮件、浏览网页等。我相信这不算剧透:在某个时间点,你必须交付能绕过机器上MS Defender AV的恶意软件。是的,机器上有真正工作的Defender,虽然有点过时,但它可能很快捕获你的默认payload。正如我之前提到的,幸运的是我有最近的AV绕过经验,所以这部分对我来说并不新鲜。我强烈建议设置自己的Win10并更新最新Defender,先在那里测试你的payload。如果在那里有效,在实验中也有效。这部分尤其令人沮丧,因为从实验得到的唯一反馈是什么都没发生,而且无法调试。先本地测试你的解决方案。
PowerShell Empire对我来说是个优秀的解决方案,唯一缺少的功能是端口转发。但你可以投放其他工具来有效完成这项工作。
小提示:即使你成功交付了payload并且有可用的C&C,也不意味着你的AV绕过任务结束了。Defender很可能会阻止你的后期利用代码。要绕过这个,请阅读Rastamouse所有关于AMSI绕过的博客文章。这很重要。
横向移动
当你最终获得第一个shell时…
一个全新的世界开始了。从现在开始,你将花费大量时间在密码破解、横向移动、持久化和理解Windows AD工作原理上。
过去我玩过很多CTF,时常会有"虽然这个挑战有趣,但不现实"的感觉。在RastaLabs中从未发生过这种情况。所有挑战和解决方案都是100%真实的,正如RastaLabs的"诗学"所述:
“…这是千真万确的。所有任务都不涉及任何CVE漏洞利用。这个实验需要不同的思维方式。你需要考虑错误配置、可破解的密码、权限滥用和类似问题。但我相信这个实验仍然比90%的组织更难攻破。唯一的帮助是没有蓝队成员来清除我们的shell。”
关于实验架构:当通过VPN连接到实验时,你基本上处于可以标记为"互联网"的网络中,目标网络在防火墙后面,就像真正的企业网络应该的那样。
有一些工作站——只有Win10,和一些服务器如文件服务器、Exchange、域控、SQL服务器等。大多数服务器是Windows Server 2016,还有一台Linux服务器。两个站点适当分离并有防火墙保护。
随着时间推移,我获得越来越多flag,开始感受到力量。然后过山车般的体验开始了。我一无是处,什么都不知道。拿到flag时,我是神。一小时后,我又一无是处。
例如,我花了大量时间尝试获取工作站的GUI访问权限。最后我成功了,却发现这并没有带来任何收获。由于未知原因,我尝试的所有框架都没有可用的VNC,所以我设置了自己的VNC,这很痛苦。
12月18日,我终于获得了域管理员权限。所以我"完成实验"在一个月内的估计并不算太离谱。只不过我离完成还很远,因为我还缺少五个flag。你可能会问"你已经有DA了,找到剩下的五个能有多难?“剧透警告,很难。或者更准确地说,不难,只是具有挑战性且耗时。这也是Mattermost RastaLabs频道的联系对我帮助很大的时候。像"flag X在机器Y上"这样的提示帮助我保持动力,同时没有破坏乐趣。没有这样的提示,我就不会写这篇文章,而是会卡在多个flag上。
关于漏洞利用
还有那个臭名昭著的挑战"ROP the night away”。这与其他16个完全不同。我相信这张图片说明了一切:
如果你不熟悉GDB,嗯,你会很艰难。如果你没有像我一样有很多绕过NX(即ROP)的实践经验,这个挑战会让你很艰难。OSCP和OSCE考试中的二进制漏洞利用挑战远没有这个复杂。如果你有OSEE,你会没问题。对于这个挑战,我使用了GDB-Peda和Python pwntools——如果你不熟悉它们,可以了解一下。对我来说,解决这个挑战花了大约40小时。有经验的CTF人员可能4小时或更短就能解决。
结论
我不建议完全新手*参加这个实验。如果你每天只有有限时间,我也不建议做这个实验,尤其是在家用电脑上操作。如果我为这个实验在云端设置专用服务器,可能能节省数小时甚至数天时间。问题是实验室工作站每天重启,这意味着我总是丢失shell。“持久化万岁”,你可能会说,但如果工作站重启时你的C&C下线,你就完蛋了。“计划任务万岁”,你可能会说,但除非你严格规定何时启动电脑,否则你最终会设置一堆计划任务,只为了在启动电脑时恢复shell。日复一日,我每天第一小时都在回到前一天的进度。直到实验结束我才弄清楚为什么有些计划任务不工作…
我真的很想知道我连接实验花了多少时间。可能总共200-250小时,我相信这超过了我花在OSCP和OSCE上的时间总和。但这完全值得。我学到了这么多有用的东西,现在真的感受到了力量。
但考虑到一个月实验的价格是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时他持续提供支持。