解锁秘密:我的生化危机CTF冒险第二部分 - 隐写术与加密破解实战

本文详细记录了Biohazard CTF挑战的完整解题过程,涵盖FTP服务器渗透、GPG文件解密、图像隐写分析、AES加密破解和权限提升等技术要点,展示了真实网络安全攻防场景。

解锁秘密:我的生化危机CTF冒险第二部分

任务3:警卫室

3.1 Barry提到的隐藏目录在哪里

在继续之前,我们先回顾第一部分的内容。我们需要使用头盔标志解锁/studyRoom/的门!

通过解密四个徽章,我们获得了FTP登录凭证。现在登录FTP服务器查看内容。

登录FTP服务器并列出文件后,可以看到多个文件。我注意到一个名为helmet_key的文件,这正是我们解锁书房入口所需的内容。

除了helmet_key,还有其他文件如.jpg.txt。为确保不遗漏任何内容,使用以下命令将所有文件下载到系统:

1
mget *

成功下载文件后,尝试查看helmet_key,发现显示二进制内容。这意味着文件实际上已加密,在.txt文件末尾添加了.gpg扩展名。

检查文件类型显示,这是一个GPG对称加密文件,使用了AES-256密码。

什么是AES?

AES(高级加密标准)是一种用于保护数字数据的现代加密方法。它是对称密码,意味着加密和解密使用相同的密钥。AES通过将信息分成128位块并使用复杂的数学运算进行加扰。根据密钥长度(128、192或256位),此过程会重复多轮。这使得输出在没有密钥的情况下看起来完全随机且不可读。因为它快速且安全,AES广泛用于Wi-Fi、银行、VPN和文件加密。

现在需要打开helmet_key文件,但在哪里输入密钥?这就是.gpg发挥作用的地方。

GPG(GNU Privacy Guard)是一个开源加密工具。可以通过输入gpg后跟文件名来解密.gpg文件,但会提示输入密码短语。

首先尝试留空密码短语字段,但这不起作用。

另一种方法是使用John the Ripper破解密码短语。第一步使用以下命令将.gpg文件转换为哈希:

1
gpg2john helmet_key.txt.gpg > gpg.hash

然后使用John the Ripper暴力破解哈希:

1
john --wordlist=/usr/share/wordlists/rockyou.txt gpg.hash

但等待很长时间后仍未获得密钥。

检查其他文件,发现一个名为important.txt的文本文件。该文件提到头盔密钥存在,但没有关于如何解密的线索。不过它提到了Barry提到的路径:/hidden_closet/

访问该位置发现此门也需要头盔密钥。

3.2 加密文件的密码

我们需要解密头盔密钥。实际上我们还没有完成对其他文件的探索。

有三个.jpg图像。打开所有三个图像,但里面没有任何内容。不过存在某种模式。

检查文件类型:

1
2
file 001-key.jpg
001-key.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 400x320, components 3

这只是常规图像。

1
2
file 002-key.jpg  
002-key.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, comment: "5fYmVfZGVzdHJveV9", progressive, precision 8, 100x80, components 3

在002-key.jpg的注释中发现了一个字符串:"5fYmVfZGVzdHJveV9",看起来可能是Base64编码。放入CyberChef检查属性后,发现实际上是Base85编码。

1
2
file 003-key.jpg
003-key.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, comment: "Compressed by jpeg-recompress", progressive, precision 8, 100x80, components 3

注释部分不是加密字符串,显示:"Compressed by jpeg-recompress"。这可能意味着文件中有隐藏内容,可能压缩在文件内。

尝试像zip文件一样解压缩:

1
unzip 003-key.jpg

在里面找到了一个名为key-003.txt的文件。

隐写术方法

我们正在处理隐写术 - 将数据隐藏在图像中的实践。有多种类型,可以使用不同工具来揭示隐藏信息。

使用steghide

1
steghide --info 001-key.jpg

此命令帮助分析图像以检查是否包含任何隐藏消息或文件,而无需实际提取。

按y后,它会要求输入密码短语 - 只需按Enter!

运行此命令后,显示001-key.jpg中嵌入了名为key-001.txt的文件。

要提取嵌入的文本文件:

1
steghide --extract -sf 001-key.jpg

当要求输入密码短语时,只需按Enter,文件将被提取!

现在我们有了第一个密钥!

使用stegseek

如果创建者嵌入了密码短语,则需要找到它,因为这是提取隐藏数据或文件的唯一方法。

在这种情况下,可以使用stegseek使用单词列表暴力破解密码短语:

1
stegseek cat.jpg -wl /usr/share/wordlists/rockyou.txt

它检测到密码短语是"silver"。我们嵌入的原始文件secret.txt被提取为cat.jpg.out

使用exiftool

此工具帮助收集有关图像的更多信息。可以提取注释和其他元数据。

1
exiftool 002-key.jpg

使用binwalk

1
binwalk -e 003-key.jpg

运行此命令后,显示图像中存在zip文件,包括内部文本文件的名称。

提取.jpg后,出现了一个名为_003-key.jpg.extracted的新目录。里面是key-003.txt

现在我们成功获得了密钥:

  • 001-key -> cGxhbnQ0Ml9jYW
  • 002-key -> 5fYmVfZGVzdHJveV9
  • 003-key -> 3aXRoX3Zqb2x0

现在需要将所有字符串组合成一个:

1
cGxhbnQ0Ml9jYW5fYmVfZGVzdHJveV93aXRoX3Zqb2x0

最后,将组合的字符串放入CyberChef,并应用"Magic"配方。这将为您提供.gpg文件的密码短语。

现在我们有了加密文件的密码。

3.3 头盔密钥标志是什么

现在使用密码短语解密helmet_key.txt.gpg

成功解密helmet_key

捕获标志:头盔密钥!

任务4:重新访问

4.1 SSH登录用户名是什么

我们获得了头盔密钥,现在让我们解锁那些门!

前往书房入口并输入头盔密钥。

我们成功从书房入口进入书房!

里面有一个标记为"EXAMINE"的超链接。单击它会下载一个名为doom.tar.gz的压缩文件。下一步是解压缩并查看内部内容。

检查文件类型:

1
doom.tar.gz: gzip compressed data, last modified: Fri Sep 20 07:04:11 2019, from Unix, original size modulo 2^32 10240

文件具有.tar.gz扩展名。这是一种归档格式,类似于.zip文件,但在Linux中更常用。

使用此命令解压缩.gz文件:

1
gunzip doom.tar.gz

运行命令后,.gz部分消失,我们剩下doom.tar。现在需要对.tar扩展名使用另一个命令来查看归档内部内容。

1
tar -xf doom.tar

从归档中,我们提取了一个名为eagle_medal.txt的文本文件。

运行cat查看内部内容:

我们获得了ssh用户名!

4.2 SSH登录密码是什么

我们的下一个目的地是/hidden_closet/,让我们前往那里并输入头盔密钥。

我们进入壁橱,穿过壁橱入口进入壁橱房间。

里面你会看到两个超链接"READ"和"EXAMINE"。

首先单击"READ"查看显示内容。

从第一个超链接,我们得到另一个文本。我认为这是一个维吉尼亚密码,所以让我们将其放入Enigmator中查看使用了哪个密码。

这是一个维吉尼亚密码,但我们没有密钥。这次作为快捷方式,让我们转到dcode网站,粘贴密码,查看输出显示什么。

左侧显示结果 - 它包含用户名和密码。这不是SSH密码,所以让我们记下来。

接下来,让我们转到壁橱房间中另一个名为"EXAMINE"的超链接。

我们获得了ssh密码!

4.3 STARS bravo团队领导是谁

他们已经在壁橱房间中提到了STARS的Bravo团队领导是谁。阅读文本时,您可以清楚地理解。

任务5:地下实验室

5.1 你在哪里找到了Chris

还记得我们之前获得的SSH凭证吗?让我们使用它们登录。

登录并列出当前目录后,我们注意到出现了一些隐藏文件。

这里有一个名为.jailcell的目录。让我们进入。

在这里,我们在监狱牢房中找到了Chris!

5.2 叛徒是谁

当您查看我们之前找到的chris.txt文件时,它会揭示叛徒是谁。只需阅读对话。

5.3 叛徒的登录密码

我们已经获得了年度密码。这不是SSH密码,我们解密它并从隐藏壁橱获得了用户名和密码。

5.4 终极形态的名称

当我们导航到/home目录时,可以看到那里有三个用户。

hunter中,我们之前通过FTP连接访问它以获取头盔密钥。

第二个用户umbrella_guest尚未完全探索。我们已经找到了带有Chris的.jailcell,所以现在让我们访问weasker并查看内部内容。

在这里,我们找到了一个名为weasker_note.txt的文件。让我们检查内部内容。

当您阅读此对话时,它会提到哪个终极形态!

5.5 root标志

我检查了当前用户是否可以升级到root,但不可能。

我的下一步是寻找任何SUID二进制文件,因为它们可能导致root访问。

测试了每个二进制文件,但都没有工作。不过,我注意到了一个名为pkexec的可疑二进制文件。

我找到了一个漏洞,但这主要是试错,因为我不知道它是否适用于此机器。如果已修补,它将无法工作。

还有另一个问题:漏洞需要使用编译器编译,因为它用C编码。不幸的是,目标机器上没有可用的编译器,因此在那里上传漏洞毫无意义。

我们可以安装编译器吗?不,不可能。普通用户没有root权限无法安装软件。那么,我们该怎么办?

还记得我们从解密壁橱房间中的文本获得的凭证吗?用户名是weasker。我们已经看到此用户存在于目标机器上。

让我们尝试切换到用户weasker

我们成功切换到用户weasker。现在,检查root访问权限。

显示weasker可以成为root!让我们简单地切换到root用户。

让我们导航到root目录。

在这里,我们可以看到一个名为root.txt的文件。让我们查看该文件。

我们获得了root标志!

“Root flag captured Biohazard pwned!!!!!!!!!!!!”

感谢您的阅读!保持好奇心,保持道德!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计