Veeam 技术支持团队的网络探索

今年冬天,或者更确切地说,在天主教圣诞节和新年之间的一天,Veeam 技术支持工程师忙于执行不寻常的任务:他们正在寻找一群名为“Veeamonymous”的黑客。

Veeam 技术支持团队的网络探索

他讲述了这些人如何在工作中提出并在现实中执行真正的任务,以及“接近战斗”的任务 基里尔·斯特茨科, 升级工程师.

- 你为什么要开始这个?

- 就像人们一度想出 Linux 的方式一样 - 只是为了好玩,为了自己的乐趣。

我们想要运动,同时我们想做一些有用的、有趣的事情。 另外,有必要让工程师们从日常工作中得到一些情绪上的缓解。

- 谁建议这个的? 这是谁的主意?

— 这个想法是我们的​​经理 Katya Egorova 提出的,然后这个概念和所有进一步的想法都是通过共同努力诞生的。 最初我们想到举办一场黑客马拉松。 但在概念的发展过程中,这个想法变成了一种探索;毕竟,技术支持工程师是与编程不同类型的活动。

因此,我们打电话给朋友、同志、熟人,不同的人帮助我们提出了这个概念——T2 的一个人(第二条支持线是 编辑。),一个T3的人,几个来自SWAT小组的人(针对特别紧急情况的快速反应小组 - 编辑。)。 我们大家聚在一起,坐下来,尝试为我们的探索提出任务。

——得知这一切是非常意外的,因为据我所知,任务机制通常是由专业编剧制定的,也就是说,你不仅处理了这么复杂的事情,而且还与你的工作相关,到您的专业活动领域。

— 是的,我们想让它不仅仅是娱乐,而是“提高”工程师的技术技能。 我们部门的任务之一就是知识交流和培训,但这样的探索是一个绝佳的机会,可以让人们现场“接触”一些新技术。

— 你是怎么想出任务的?

— 我们进行了一次头脑风暴会议。 我们知道我们必须做一些技术测试,这样它们会很有趣,同时会带来新知识。
例如,我们认为人们应该尝试嗅探流量、使用十六进制编辑器、为 Linux 做一些事情、一些与我们的产品(Veeam Backup & Replication 等)相关的稍微深入的事情。

这个概念也是一个重要的组成部分。 我们决定以黑客、匿名访问和保密氛围为主题。 Guy Fawkes 面具被做成了一个符号,名字自然而然就来了——Veeamonymous。

“一开始就有这个词”

为了激发人们的兴趣,我们决定在活动前组织一场以任务为主题的公关活动:我们在办公室周围张贴了带有公告的海报。 几天后,他们偷偷地用喷雾罐给他们涂了油漆,并开始“鸭子”,他们说一些攻击者毁了海报,他们还附上了一张有证据的照片……。

——所以是你自己做的,也就是主办方团队做的?!

— 是的,星期五,大约 9 点钟,当所有人都已经离开时,我们去从气球上画了一个绿色的字母“V”。)许多参与探索的人从来没有猜到是谁干的——人们向我们走来并问谁毁了海报? 有人非常重视这个问题,并对这个话题进行了全面的调查。

为了这个任务,我们还编写了音频文件,“撕掉”声音:例如,当工程师登录我们的[生产 CRM] 系统时,有一个应答机器人会说出各种短语、数字……我们在这里从他录制的那些词中,组成了或多或少有意义的短语,嗯,也许有点歪——例如,我们在音频文件中得到“没有朋友可以帮助你”。

例如,我们用二进制代码表示IP地址,并且再次使用这些数字[由机器人发音],我们添加了各种可怕的声音。 我们自己拍摄了这段视频:视频中,有一个戴着黑色兜帽、戴着盖伊·福克斯面具的男人,但实际上不是一个人,而是三个人,因为他身后站着两个人,手里拿着一个由一条毯子:)。

- 好吧,坦白说,你很困惑。

- 是的,我们着火了。 总的来说,我们首先提出了我们的技术规范,然后就据称发生的事情的主题撰写了一个文学和有趣的大纲。 根据场景,参与者正在追捕一群名为“Veeamonymous”的黑客。 这个想法还在于,我们可以说,“打破第四堵墙”,也就是说,我们将事件转化为现实——例如,我们用喷雾罐作画。

我们部门的一位以英语为母语的人帮助我们对文本进行文学处理。

- 等等,为什么是母语人士? 你也是用英语做的吗?

— 是的,我们是为圣彼得堡和布加勒斯特办事处做的,所以一切都是英语。

对于第一次体验,我们试图让一切正常运行,因此脚本是线性的并且非常简单。 我们添加了更多环境:秘密文本、代码、图片。

Veeam 技术支持团队的网络探索

我们还使用了模因:有一堆关于调查、不明飞行物、一些流行的恐怖故事等主题的图片——一些团队因此而分心,试图在那里找到一些隐藏的信息,应用他们的隐写术和其他知识……但是,当然,事实并非如此。

关于荆棘

然而,在准备过程中,我们也遇到了意想不到的挑战。

我们与他们进行了很多斗争,并解决了各种意想不到的问题,在任务开始前大约一周,我们认为一切都失去了。

也许值得介绍一下该任务的技术基础。

一切都是在我们内部 ESXi 实验室完成的。 我们有6个团队,这意味着我们必须分配6个资源池。 因此,我们为每个团队部署了一个单独的池,其中包含必要的虚拟机(相同的 IP)。 但由于所有这些都位于同一网络上的服务器上,因此 VLAN 的当前配置不允许我们隔离不同池中的计算机。 例如,在测试运行期间,我们遇到了这样的情况:一个池中的一台计算机连接到另一个池中的一台计算机。

— 你是如何纠正这种情况的?

— 起初我们思考了很长时间,测试了各种权限选项、机器的独立 vLAN。 因此,他们这样做了 - 每个团队只能看到 Veeam Backup 服务器,所有进一步的工作都通过该服务器进行,​​但看不到隐藏的子池,其中包含:

  • 几台 Windows 机器
  • Windows核心服务器
  • Linux机器
  • 配对VTL(虚拟磁带库)

所有池都在 vDS 交换机上分配了一组单独的端口及其自己的专用 VLAN。 这种双重隔离正是彻底消除网络交互的可能性所需要的。

关于勇敢者

——有人可以参加这个任务吗? 团队是如何组建的?

——这是我们第一次举办这样的活动,而且我们实验室的能力仅限于6个团队。

首先,正如我已经说过的,我们开展了一场公关活动:利用海报和邮件,我们宣布将进行一项任务。 我们甚至找到了一些线索——海报上的短语以二进制代码加密。 通过这种方式,我们引起了人们的兴趣,人们之间、与朋友之间、与朋友之间已经达成协议并进行合作。 结果,响应的人比我们的池子还要多,所以我们必须进行选择:我们提出一个简单的测试任务并将其发送给每个响应的人。 这是一个必须尽快解决的逻辑问题。

一个团队最多允许 5 人。 不需要队长,我们的想法是合作、相互沟通。 有人擅长Linux,有人擅长磁带(备份到磁带),每个人看到任务后,都可以将精力投入到整体解决方案中。 大家互相交流,找到了解决办法。

Veeam 技术支持团队的网络探索

——这个活动是从什么时候开始的? 你有过某种“X 小时”吗?

——是的,我们有一个严格指定的日子,我们选择它是为了减少部门的工作量。 当然,提前通知了队长,邀请某某队伍参加任务,当天需要给他们一些缓解。 看起来应该是年底了,28 月 5 日,星期五。 我们预计需要大约 XNUMX 个小时,但所有团队都完成得更快。

— 根据真实案例,每个人是否都是平等的,每个人都有相同的任务吗?

— 嗯,是的,每个编译者都从个人经历中汲取了一些故事。 我们知道这在现实中可能发生,人们“感觉”它、观察它并弄清楚它会很有趣。 他们还采取了一些更具体的措施 - 例如,从损坏的磁带中恢复数据。 有些有提示,但大多数团队都是自己做的。

或者有必要使用快速脚本的魔力 - 例如,我们有一个故事,一些“逻辑炸弹”将多卷存档“撕”到树上的随机文件夹中,因此有必要收集数据。 您可以手动执行此操作 - 逐个查找并复制[文件],也可以使用掩码编写脚本。

总的来说,我们试图坚持这样的观点:一个问题可以通过不同的方式解决。 例如,如果你更有经验一点或者想要感到困惑,那么你可以更快地解决它,但是有一种直接的方法可以正面解决它 - 但同时你会花更多的时间在问题上。 也就是说,几乎每个任务都有多种解决方案,团队会选择哪些路径很有趣。 因此,非线性恰恰在于解决方案的选择。

顺便说一下,Linux 问题是最困难的——只有一个团队独立解决了它,没有任何提示。

— 你能接受提示吗? 就像在真正的任务中一样?

— 是的,是可以接受的,因为我们明白人都是不同的,缺乏一些知识的人也可以进入同一个团队,所以为了不耽误通过,不失去竞争兴趣,我们决定会提示。 为此,组织者派一名人员对每个团队进行观察。 好吧,我们确保没有人作弊。

Veeam 技术支持团队的网络探索

关于星星

— 获奖者有奖品吗?

— 是的,我们试图为所有参与者和获奖者提供最令人愉快的奖品:获奖者收到带有 Veeam 徽标和以十六进制代码加密的短语(黑色)的设计师运动衫。 所有参与者都收到了盖伊福克斯面具和带有徽标和相同代码的品牌包。

——也就是说,一切都像在真正的任务中一样!

“嗯,我们想做一件很酷的、成熟的事情,我认为我们成功了。”

- 这是真实的! 参与这个任务的人最后的反应是什么? 你实现你的目标了吗?

- 是的,很多人后来都说他们清楚地看到了自己的弱点,想要改进。 有人不再害怕某些技术 - 例如,从磁带中转储块并试图从那里抓取一些东西......有人意识到他需要改进 Linux,等等。 我们试图给出相当广泛的任务,但又不是完全琐碎的任务。

Veeam 技术支持团队的网络探索
获胜队

“谁想要,就一定能实现!”

——准备任务的人需要付出很大的努力吗?

- 事实上是的。 但这很可能是因为我们没有准备此类任务、此类基础设施的经验。 (让我们保留一点,这不是我们真正的基础设施 - 它只是应该执行一些游戏功能。)

这对我们来说是一次非常有趣的经历。 起初我很怀疑,因为这个想法对我来说太酷了,我认为它很难实现。 但我们开始做,我们开始耕耘,一切都开始着火,最后我们成功了。 甚至几乎没有重叠。

我们总共花了3个月。 大多数情况下,我们提出了一个概念并讨论了我们可以实现的内容。 在这个过程中,自然地,有些事情发生了变化,因为我们意识到我们没有技术能力来做某事。 我们一路上不得不重做一些东西,但以这样的方式,整个轮廓、历史和逻辑没有被打破。 我们不仅尝试列出技术任务清单,还尝试使其融入故事,使其连贯且合乎逻辑。 主要工作在上个月进行,即 X 天之前的 3-4 周。

——那么,除了主要活动之外,您还安排了准备时间吗?

— 是的,我们与我们的主要工作同时进行了这项工作。

- 你被要求再做一次吗?

- 是的,我们有很多要求重复。

- 你呢?

- 我们有新的想法、新的概念,我们希望吸引更多的人并随着时间的推移而延长它 - 无论是选择过程还是游戏过程本身。 总的来说,我们受到“Cicada”项目的启发,你可以谷歌它 - 这是一个非常酷的 IT 主题,来自世界各地的人们团结在那里,他们在 Reddit 上、在论坛上发起话题,他们使用代码翻译、解决谜语,等等。

——这个想法很棒,只是尊重这个想法和实施,因为它真的很有价值。 我衷心祝愿您不要失去这种灵感,并且您所有的新项目也都取得成功。 谢谢你!

Veeam 技术支持团队的网络探索

— 是的,你能看一个你绝对不会重复使用的任务的例子吗?

“我怀疑我们不会重复使用其中任何一个。” 因此,我可以告诉你整个任务的进展情况。

奖励曲目一开始,玩家拥有虚拟机的名称和来自 vCenter 的凭据。 登录后,他们看到这台机器,但它没有启动。 这里需要猜测.vmx文件有问题。 下载后,他们会看到第二步所需的提示。 本质上,它表示 Veeam Backup & Replication 使用的数据库是加密的。
删除提示后,下载回 .vmx 文件并成功打开计算机,他们看到其中一个磁盘实际上包含一个 Base64 加密的数据库。 因此,任务是解密它并获得功能齐全的 Veeam 服务器。

关于发生这一切的虚拟机的一些信息。 我们记得,根据剧情,任务的主角是一个相当黑暗的人,并且正在做一些显然不太合法的事情。 因此,他的工作计算机应该具有完全像黑客一样的外观,这是我们必须创建的,尽管它是 Windows。 我们做的第一件事就是添加了很多道具,比如重大黑客攻击、DDoS 攻击等信息。 然后他们安装了所有典型的软件,并将各种转储、带有哈希值的文件等放置在各处。 一切都像电影里一样。 除此之外,还有名为 Close-case*** 和 Open-case*** 的文件夹
为了进一步前进,玩家需要从备份文件中恢复提示。

这里必须要说的是,一开始玩家会获得相当多的信息,他们在任务过程中收到了大部分数据(如IP、登录名和密码),在备份或散布在机器上的文件中寻找线索。 最初,备份文件位于 Linux 存储库上,但服务器上的文件夹本身使用标志挂载 NOEXEC,因此负责文件恢复的代理无法启动。

通过修复存储库,参与者可以访问所有内容并最终可以恢复任何信息。 仍有待了解它是哪一个。 为此,他们只需要研究存储在这台机器上的文件,确定其中哪些文件“损坏”以及到底需要恢复哪些文件。

此时,场景从一般 IT 知识转移到 Veeam 特定功能。

在这个特定的示例中(当您知道文件名,但不知道在哪里查找它时),您需要使用企业管理器中的搜索功能,等等。 结果,在恢复整个逻辑链后,玩家有另一个登录名/密码和nmap输出。 这会将他们通过 RDP 带到 Windows Core 服务器(这样生活看起来就不那么甜蜜了)。

该服务器的主要特点:在一个简单的脚本和几个字典的帮助下,形成了一个绝对无意义的文件夹和文件结构。 当您登录时,您会收到一条欢迎消息,例如“这里爆炸了一颗逻辑炸弹,因此您必须拼凑线索以采取进一步的措施。”

以下线索被分成多卷存档(40-50 份)并随机分布在这些文件夹中。 我们的想法是,玩家应该在编写简单的 PowerShell 脚本方面展现自己的才能,以便使用众所周知的掩码将多卷存档放在一起并获取所需的数据。 (但结果就像那个笑话一样——一些科目的身体发育异常。)

档案中包含一张盒式磁带的照片(刻有“最后的晚餐 - 最美好的时刻”),这暗示了所连接磁带库的使用,其中包含一盘具有相似名称的磁带。 只有一个问题——它根本无法操作,甚至没有被编录。 这可能是任务中最核心部分开始的地方。 我们删除了磁带中的标头,因此要从中恢复数据,您只需转储“原始”块并在十六进制编辑器中查看它们以查找文件开始标记。
我们找到标记,查看偏移量,将块乘以其大小,添加偏移量,然后使用内部工具尝试从特定块恢复文件。 如果一切都正确完成并且数学一致,那么玩家手中将拥有一个 .wav 文件。

其中,除其他外,还使用语音生成器来指定二进制代码,并将其扩展为另一个 IP。

事实证明,这是一个新的 Windows 服务器,一切都暗示需要使用 Wireshark,但它并不存在。 主要技巧是,这台机器上安装了两个系统 - 只有第二个系统的磁盘通过设备管理器离线断开,并且逻辑链导致需要重新启动。 然后事实证明,默认情况下应该启动一个安装了 Wireshark 的完全不同的系统。 一直以来我们都在使用辅助操作系统。

这里不需要做任何特殊的事情,只需在单个界面上启用捕获即可。 对转储进行相对仔细的检查后发现,辅助机器定期发送一个明显的左手数据包,其中包含一个 YouTube 视频的链接,其中要求玩家拨打某个号码。 第一个来电者将听到对第一名的祝贺,其余人将收到人力资源部的邀请(笑话))。

顺便说一句,我们是开放的 职位空缺 面向技术支持工程师和实习生。 欢迎加入我们!

来源: habr.com

添加评论