在线域环境 CTF 实验室 RastaLab 体验记录
2012-04-12 01:00:00 Author: www.4hou.com(查看原文) 阅读量:151 收藏

RastaLab是一个身临其境的 Windows 活动目录环境,被设计用来作为学习和磨练渗透测试技能的一种手段。 要完成实验室里的题目需要很多技能,包括:

· 横向运动

· Exp开发

· 创造性思维

· 耐心和毅力!

· OSINT&网络钓鱼

· 本地权限提升

· 持久化技术

· 活动目录枚举及漏洞利用

该实验室的目标是拿到域管理员并找到所有的flag。

引言

11月20日这一天,我刚刚开始思考下个月该做些什么。 我已经辞去了以前的工作,新的工作要到一月份才开始。 整个月都玩 PS4对某些人来说可能听起来很有趣,但我知道我很快就会厌倦。

尽管我有一些有限的红队经验,我总是觉得我想再次体验得到域管理权限的兴奋感受。 我在2010年使用 pass-the-hash 技术获得了我的第一个域管理员权限,但那是很久以前的事了,事情变化的很快。

在翻看 Slack 聊天室的一些积压的聊天内容时,我注意到有些聊天室在赞美 RastaLab。 看着实验室的描述,我觉得“就是这个,这正是我需要的。” 这有什么难的,我还有整整一个月的时间,我肯定会在圣诞节前完成的。但是, 伙计,我错了……

image.png

实验室的一次性启动费用是90英镑,包括第一个月的费用,然后每增加一个月的费用是20英镑。 我感觉自己像是在从 Rastamouse 和 Hackthebox 那里偷钱... ... 怎么会这么便宜? 有时便宜意味着质量低,但RastaLab不是这种情况。

image.png

我的经验分享

根据我之前的经验,我已经学过 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”的网络中,你的目标网络位于防火墙之后,正如一个合适的公司网络应该具备的那样。

 image.png

实验室里面有很多工作站——只有 Win10,还有一些服务器,如文件服务器、交换服务器、 DC 服务器、 SQL 服务器等等。 大多数服务器是 Windows Server 2016,还有一个 Linux 服务器。 这两个站点是完全通过防火墙隔离的。

随着时间的推移,我拿到了越来越多的 flag,我开始感受到权力的力量。 然后过山车式的体验开始了。 我一无是处,我什么都不知道。 拿到 flag,我就是上帝。 一个小时后,我变得毫无用处。

image.png

例如,我花了大量的时间试图通过 GUI 访问工作站。 最后,我成功地做到了这一点,却发现自己没有任何成就感。 由于未知的原因,我尝试的所有 VNC 框架都没有一个能正常工作,所以我建立了自己的框架,这很痛苦。

12月18日,我终于获得了域管理员权限。 所以我估计在一个月内完成实验室的工作并不遥远。 只是我还远远没有完成,因为我还得找到另外五个我丢失的 flag。 你可能会问“你已经有 DA 了,找到剩下的5个能有多难? ” 。剧透一下,这很难。 或者更准确地说,不难,只是具有挑战性,并且耗费时间。 这个阶段也是我在 Mattermost RastaLabs 频道获得帮助最多的时候。 像“x flag在 y 机器上”这样的提示帮助我保持着积极性,但并没有破坏乐趣。 如果没有这样的提示,我就不会写这篇文章,而是会被多个 flag 困住。

关于漏洞利用

还有一个臭名昭著的挑战,“ROP 了一晚上” 这次和其他16个挑战完全不同。 我相信这张图片可以解释一切:

image.png

如果你不是很熟悉 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 从来不是一个选择。

image.png

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

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

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

或者看看别人是怎么写 RastaLab的。 

image.png

本文翻译自:https://jumpespjump.blogspot.com/2020/01/the-rastalabs-experience.html如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/1BLq
如有侵权请联系:admin#unsafe.sh