RastaLab是一个身临其境的 Windows 活动目录环境,被设计用来作为学习和磨练渗透测试技能的一种手段。 要完成实验室里的题目需要很多技能,包括:
· 横向运动
· Exp开发
· 创造性思维
· 耐心和毅力!
· OSINT&网络钓鱼
· 本地权限提升
· 持久化技术
· 活动目录枚举及漏洞利用
该实验室的目标是拿到域管理员并找到所有的flag。
引言
11月20日这一天,我刚刚开始思考下个月该做些什么。 我已经辞去了以前的工作,新的工作要到一月份才开始。 整个月都玩 PS4对某些人来说可能听起来很有趣,但我知道我很快就会厌倦。
尽管我有一些有限的红队经验,我总是觉得我想再次体验得到域管理权限的兴奋感受。 我在2010年使用 pass-the-hash 技术获得了我的第一个域管理员权限,但那是很久以前的事了,事情变化的很快。
在翻看 Slack 聊天室的一些积压的聊天内容时,我注意到有些聊天室在赞美 RastaLab。 看着实验室的描述,我觉得“就是这个,这正是我需要的。” 这有什么难的,我还有整整一个月的时间,我肯定会在圣诞节前完成的。但是, 伙计,我错了……
实验室的一次性启动费用是90英镑,包括第一个月的费用,然后每增加一个月的费用是20英镑。 我感觉自己像是在从 Rastamouse 和 Hackthebox 那里偷钱... ... 怎么会这么便宜? 有时便宜意味着质量低,但RastaLab不是这种情况。
我的经验分享
根据我之前的经验,我已经学过 OSCP,OSCE,SLAE (Securitytube Linux Assembly Expert)和 PSP (Powershell for Pentesters) ,所有这些知识在实验室里帮助了我很多。 我也有一些有限的红队的经验。 我在反病毒防御方面的经验超过平均水平,而且我已经在诸如 Covenant 和 Powershell Empire 这样的新的漏洞利用框架中有过实践经验。 至于编写漏洞,我知道缓冲区溢出或格式化字符串攻击溢出是如何工作的,但是我缺乏绕过 ASLR 和 NX 的实践。 我基本上没有在 Windows 10操作系统上使用过 Mimikatz 。 我在2012年用过 Mimikatz,但可能从那以后就没用过了。 我也有很多关于如何做 x 和 y 的知识,关于有用的工具和热门技术,但我缺乏最新的经验。 最后,当涉及到拿flag速度时,我通常是最后一个,但是我总是用毅力来平衡我的速度的不足。
RastaLab 上手
所以我支付了初始的费用,拿到了 VPN 连接包,连接到了实验室,并在4天后拿到了我的第一个flag。 一共有17个flag。我第一次开始觉得有些担心。 我所做的一切都是为了让自己保持在错误的轨道上,做一些愚蠢的事情,比如假设不正确的实验室网络地址,扫描了太少的机器,通过 OSINT 找到不正确的面包屑,试图对已经打了补丁的网络服务(大多数 OSCPers 都会这么做)进行漏洞利用。 我也一直在纠结于我使用的工具,因为我从来不知道它们是错误的,还是我错误地使用了它们,或者这不是获得flag的方式。 我相信有运气和经验的人可以在2-3小时内完成这个阶段,但是,别忘了,我之前已经获得了一些经验。
During the lab, whenever I got stuck with the same problem for more than 30-40 hours and my frustration was running high, I pinged Rastamouse on the official RastaLabs support channel on
在实验室里,每当我被同一个问题困扰超过30-40个小时,我的挫败感就会越来越强烈,我就会在 RastaLab 官方在 https://mm.netsecfocus.com/ 支持的频道上与 Rastamouse 聊天。我经常这样发问,“嗨,我试了 x,y,和 z,但运气不好,没有拿到flag” ,然后他回答“是的,再努力一点”。 这类信息通常是我所需要的,2-3个小时后,我又回到了正轨。 他的帮助总是足够的,但永远不会因为太多而破坏了乐趣。 Rastamouse 的有效性和专业性为10/10。 数十亿美元的大公司无法提供足够好的支持,这个家伙总是在那里帮助别人。 太神奇了。 我强烈推荐加入最重要的频道——它将帮助你看到你不是唯一一个被问题困扰的人。 但是如果你还没有努力尝试过,请不要给 Rastamouse 或者频道发消息。
在实验室里真正可爱的是,你可以期待“RastaLabs 员工”在他们的电脑上工作、阅读电子邮件、浏览网页等现实世界的场景。 我相信这不是一个坏事儿的人,在某些时候,你必须传递恶意软件,避免被机器上的微软 Defender 杀毒软件查杀。 是的,在机器上有一个真正的工作 Defender,尽管它有点过时,但它可能很快就能捕捉到你的默认有效载荷。 正如我前面提到的,幸运的是我最近有过反病毒逃避的经验,所以这部分对我来说并不新鲜。 我强烈建议设置你自己的 Win10与最新的 Defender 更新并且首先在你的机器上测试你的有效载荷。 如果它起作用了没有被查杀,那么它也将在实验室里起作用。 这部分尤其令人沮丧,因为你从实验室得到的唯一反馈是什么也没有发生,而且没有办法调试它。 首先在本地测试你的解决方案。Powershell Empire 对我来说是一个很好的解决方案,它唯一缺少的功能就是端口转发。 但是你可以放弃其他工具来有效地完成这项工作。
一个小小的帮助: 即使你设法植入了你的有效载荷,并且你有一个可以正常工作的C&C,这并不意味着你的反病毒规避任务结束了。 这很有可能是 Defender 阻止了你的后漏洞利用代码。 为了绕过这个,请阅读所有来自 Rastamouse 的关于绕过 AMSI 的博客文章。 这很重要。
横向运动
当你最终拿到你的第一个shell时..
一个全新的世界开始了。 从现在开始,你将花费大量的时间在密码破解、横向移动、持久性以及搞清楚 Windows AD 是如何工作的事情上。
在过去,我参加过了很多 CTF比赛,时不时地,我总感觉“是的,即使这个挑战是有趣的,但它却是不现实的”。 这在 RastaLabs 实验中从未发生过。 所有的挑战和解决方案都是100% 会出现在现实的渗透测试中,正如 RastaLabs 的“Ars poetica”所说:
真的是太太太太太真实了。 没有任何任务涉及任何 CVE 的利用。 这个实验室需要一种不同的思维方式。 你需要考虑错误配置、可破解的密码、滥用特权以及类似的问题。 但是我相信这个实验室仍然比外面90% 的组织更难拥有。 唯一的帮助是没有蓝队会干掉我们的shell。
关于实验室的体系结构: 当用 VPN 连接到实验室时,你基本上发现自己处于一个可能被标记为“Internet”的网络中,你的目标网络位于防火墙之后,正如一个合适的公司网络应该具备的那样。
实验室里面有很多工作站——只有 Win10,还有一些服务器,如文件服务器、交换服务器、 DC 服务器、 SQL 服务器等等。 大多数服务器是 Windows Server 2016,还有一个 Linux 服务器。 这两个站点是完全通过防火墙隔离的。
随着时间的推移,我拿到了越来越多的 flag,我开始感受到权力的力量。 然后过山车式的体验开始了。 我一无是处,我什么都不知道。 拿到 flag,我就是上帝。 一个小时后,我变得毫无用处。
例如,我花了大量的时间试图通过 GUI 访问工作站。 最后,我成功地做到了这一点,却发现自己没有任何成就感。 由于未知的原因,我尝试的所有 VNC 框架都没有一个能正常工作,所以我建立了自己的框架,这很痛苦。
12月18日,我终于获得了域管理员权限。 所以我估计在一个月内完成实验室的工作并不遥远。 只是我还远远没有完成,因为我还得找到另外五个我丢失的 flag。 你可能会问“你已经有 DA 了,找到剩下的5个能有多难? ” 。剧透一下,这很难。 或者更准确地说,不难,只是具有挑战性,并且耗费时间。 这个阶段也是我在 Mattermost RastaLabs 频道获得帮助最多的时候。 像“x flag在 y 机器上”这样的提示帮助我保持着积极性,但并没有破坏乐趣。 如果没有这样的提示,我就不会写这篇文章,而是会被多个 flag 困住。
关于漏洞利用
还有一个臭名昭著的挑战,“ROP 了一晚上” 这次和其他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 时,你可能很难达到这个点,但是这是完全可以的。 你可以在谷歌上找到所有的信息,你只是需要时间、耐心和意愿去实现它。
无论如何,这仍然是一个不以“获得所有 flag”为目标的选择。 即使只是获得前两个 flag,你也将获得在内网中“获得一个立足点”的重要经验。 但对我来说,没有得到所有的 flag 从来不是一个选择。
如果你仍然不相信,查看其他博客文章:
https://jmpesp.me/a-rastalabs-story/
https://www.gerrenmurphy.com/rastalabs-review/
或者看看别人是怎么写 RastaLab的。
本文翻译自:https://jumpespjump.blogspot.com/2020/01/the-rastalabs-experience.html如若转载,请注明原文地址: