基于 Windows 的 CTF 竞赛/挑战?

信息安全 视窗 开发 虚拟化 职业教育
2021-08-16 14:32:20

我已经在 CTF 中搞砸了一段时间,而且我也专业地进行渗透测试,我注意到明显缺乏使用 Windows 环境的 CTF 比赛。

这与我专业测试的大多数环境形成鲜明对比(这并不是说在环境中没有大量使用 *nix),只是它(恕我直言)更有益于追求 AD 基础设施和客户而不是而不是一次利用一个unix盒子。

虽然 Windows 环境存在大量 RE/Binary 挑战,但我还没有看到使用 Windows 网络而不是 *nix 变体的良好 CTF 运行。我可能完全错了,或者只是在玩蹩脚的挑战,但我怀疑许可问题起了很大的作用。

我觉得这很重要,因为当毕业生和其他热衷于进入信息安全的人开始时,我经常建议玩 CTF 并做其他挑战/虚拟环境。我无法推荐的是有助于利用 Windows 环境的资源。Web 应用程序存在很多,例如pen-tester 实验室已经预先配置好 VM 用于 Web 应用程序测试,我觉得这很好。我认为如果 Windows 上的特定攻击场景也存在类似的东西,那就太棒了。

我要的是以下内容:

  • 是否有任何 CTF 比赛将模拟 Windows 网络作为挑战的一部分(不仅仅是通常的 RE 二进制挑战)?

  • 是否有任何预配置的可下载 Windows VM(例如 AD 服务器和 2x 客户端 PC 加入域,但最好使用不同的配置,例如 kerberos)?

  • 除了许可问题之外,是否有任何技术原因导致运行 Windows CTF 不实用?我可以想象将一台 Windows 机器作为虚拟机器运行很简单,如果有人玩的是一个混蛋并决定尝试丢弃这台机器,那么它可以很简单地进行快照和恢复。

2个回答

作为活跃的 CTF 团队的一员,组织了一些比赛,我想我可以说几句话,从内部来看它是怎样的。

首先,许可问题实际上是主要问题。但是根据您的问题:

是否有任何 CTF 比赛将模拟 Windows 网络作为挑战的一部分(不仅仅是通常的 RE 二进制挑战)?

我不知道您所说的“模拟 Windows 网络”究竟是什么意思,但我想您的意思是某种 vpn 网络或其他类型的虚拟化网络,您需要在其中找到一些易受攻击的主机并利用它们。这个想法很好,我认为这里的主要限制是 Windows 产品的付费许可证。事实上,很难为比赛找到任何赞助商(我们通常只与举办 CTF 的会议的组织者合作)并通过这种请求获得资金。考虑到我们不仅需要投入时间,还需要投入私人资金来应对挑战,免费 Linux 系统和付费 Windows 系统之间的选择并不难。更何况我从来没有听说过“两天” Windows 许可证,它们将是 CTF 游戏的最佳解决方案。不同比赛之间共享的单一许可证也不是完美的解决方案。由于此类比赛的目的和玩家的性质,我们需要考虑我们的许可证密钥将被盗的情况。为了防止这种情况发生,我们需要使用一些 MAC,编写策略并强化系统本身,以免玩家过多地攻击我们。在我个人看来,在 Linux 上比在 Windows 系统上更容易做到这一点。总而言之,由于我提到的原因,设置这样的环境是无利可图的,即使从参赛者的角度来看玩它会很酷。由于此类比赛的目的和玩家的性质,我们需要考虑我们的许可证密钥将被盗的情况。为了防止这种情况发生,我们需要使用一些 MAC,编写策略并强化系统本身,以免玩家过多地攻击我们。在我个人看来,在 Linux 上比在 Windows 系统上更容易做到这一点。总而言之,由于我提到的原因,设置这样的环境是无利可图的,即使从参赛者的角度来看玩它会很酷。由于此类比赛的目的和玩家的性质,我们需要考虑我们的许可证密钥将被盗的情况。为了防止这种情况发生,我们需要使用一些 MAC,编写策略并强化系统本身,以免玩家过多地攻击我们。在我个人看来,在 Linux 上比在 Windows 系统上更容易做到这一点。总而言之,由于我提到的原因,设置这样的环境是无利可图的,即使从参赛者的角度来看玩它会很酷。在我个人看来,在 Linux 上比在 Windows 系统上更容易做到这一点。总而言之,由于我提到的原因,设置这样的环境是无利可图的,即使从参赛者的角度来看玩它会很酷。在我个人看来,在 Linux 上比在 Windows 系统上更容易做到这一点。总而言之,由于我提到的原因,设置这样的环境是无利可图的,即使从参赛者的角度来看玩它会很酷。

是否有任何预配置的可下载 Windows VM(例如 AD 服务器和 2x 客户端 PC 加入域,但最好使用不同的配置,例如 kerberos)?

不,因为许可的原因。我不知道这是否可能。我们可以存储需要应用的配置本身或创建放置错误的软件 - 但在 CTF 比赛中毫无意义。如果您知道在哪里寻找错误,那么破解会容易得多。更重要的是,您需要用户在他的机器上拥有系统的精确副本,这是不可取的。比赛应该主要测试技能 - 而不是拥有的资源(软件和硬件)。

除了许可问题之外,是否有任何技术原因导致运行 Windows CTF 不实用?我可以想象将一台 Windows 机器作为虚拟机器运行很简单,如果有人玩的是一个混蛋并决定尝试丢弃这台机器,那么它可以很简单地进行快照和恢复。

合并第一个和第二个答案......如果遇到在线挑战 - 从技术上讲,我们需要确保主机的安全性,这对我来说看起来比开放系统更难。对于重负载挑战,我们需要为在负载均衡器后面运行的所有机器提供多个许可证。在离线挑战的情况下——我们会要求用户拥有完全相同的系统或软件,这是不好的——我们会优先考虑资源而不是玩家的技能。

到目前为止,我为 Windows 开发找到的最佳环境必须是 OSCP 实验室(如果你通过了,你最终会获得资格!)。它是一个大型网络,混合了 Windows 和其他操作系统,尽管它主要是 Windows。

据我所知,不存在任何东西,但由于您之前提到的许可问题,人们没有提供它们。这适用于下载和运行 CTF 挑战的人/组。