【THM】Mr Robot CTF练习

【THM】Mr Robot CTF练习

基于电视剧《黑客军团》,你能得到这个靶机的根权限吗?

img

你能得到这台黑客军团风格靶机的根权限吗?这是一个适用于初学者/中级用户的虚拟机。机器上有 3 个隐藏的钥匙,你能找到它们吗?

感谢 Leon Johnson 创造了这台靶机。本机器在创建者的明确许可下在此处使用 ❤️

image-20240717172531106

钥匙1是什么?

第一步

端口扫描

nmap -Pn -sV -T4 10.10.50.183

image-20240717172904350

可以发现目标开放了3个端口:22/tcp ssh服务、80/tcp http服务、443/tcp ssl加密协议服务

第二步

访问网站

我们先进入网站看看界面

image-20240717175050186

你好,朋友。如果你来了,你来是有原因的,你可能还无法解释,但你的一部分已经厌倦了这个世界。。
一个决定你在哪里工作、见谁以及如何清空和填补你令人沮丧的银行账户的世界。即使是你用来阅读这篇文章的互联网连接也在让你付出代价,慢慢地蚕食你的存在。有些事情你想说。很快我会给你一个声音。今天,你的教育开始了。

我们可以你在这假的命令行可以输入一些命令,我们一一尝试:

prepare:循环播放黑客军团的预告片

image-20240717175347055

fsociety:放一段电视剧场景后循环回到命令行

image-20240717175555917

inform:展示一些通知图片

image-20240717175649919

question:展示一些谜题

image-20240717175730245

wakeup:放一段梦醒的视频后黑屏

join:mr.robot会邀请你加入他

image-20240717175936326

应该是在还原电视剧中的场景,我们接着深入。

第三步

信息收集

我们先看看网页的源码里面会不会藏了什么东西:

image-20240717180204253

没啥有用的。

再优先查看robots.txt来看看这个网站会不会有什么见不得人的文件,发现了这个页面:

image-20240717180252995

发现fsocity.dic文件和第一个钥匙,立刻跳转查看第一个钥匙:

image-20240717180352216

image-20240717180430176

钥匙2是什么?

第一步

利用上一题给出的线索

访问fsocity.dic文件,页面自动下载了.dic文件:

image-20240717180630882

使用命令查看文件内容:

cat fsocity.dic

image-20240717180834100

可以猜测这个字典文件记录了fsocity组织里面成员的相关信息。(我没看过《黑客军团》)

第二步

继续信息收集

使用gobuster工具扫描网站目录:

gobuster dir -u http://10.10.50.183 -w Filenames_or_Directories_All.txt

image-20240717185917617

我们可以看见扫描出了很多目录和文件,去掉状态码为4开头的,我们一个个尝试

/js Forbidden

/images Forbidden

/css Forbidden

/index.php 主页面,没啥看的

/admin 页面像抽了风一样一直在刷新,我们查看下页面源码跟主页面一模一样,

/license.txt image-20240717185936844

/favicon.ico 应该是图标一类的东西

image-20240717190119767

/login 跳转到了wp-login.phpimage-20240717190203688

/image

image-20240717190252261

/feed 自动下载了前端文件,我们可以查看其内容:

image-20240717190436718

/blog Forbidden

/readme

image-20240717190531021

/video Forbidden

/rss 又一个前端文件:

image-20240717190708861

/Image 同/image

/audio Forbidden

/0

image-20240717190910343

/sitemap

image-20240717190939921

/intro 视频文件

/dashboard 跳转后到/login.php

/atom 前端文件:

image-20240717191148423

/sitemap.xml.gz 空文件

/IMAGE 同/image

第三步

利用已有信息走出下一步

我们发现了一个登录页面以及博客,并且登录页面用了经典的WordPress博客框架。

我们进入/wp-login.php的登录页面,随便输个用户密码试试:

image-20240717191722656

报错:无效的用户名。只要是有效的用户名应该就不会报错,我们可以通过这个报错信息来爆破出正确的用户名。

通过攻击机火狐浏览器的代理插件连通Burp Suite,开始抓包:

image-20240717191926030

image-20240717192105533

第四步

爆破用户名

使用Burp Suite的Intruder爆破模块,设置用户名为注入点,payload就选择之前找到的fsociety.dic,开始爆破:

image-20240717192527425

image-20240717192507504

image-20240717192449733

爆破结束后,我们根据响应报文的长度的不同,从而找到了正确的用户名:

image-20240717192715953

尝试登录,密码错误:

image-20240717192840153

第五步

爆破密码

故技重施,我们再重复上一步的步骤,不过这一次的注入点是密码:

image-20240717193245732

发生了一件很尴尬的事,这个攻击机的Brup Suite不知道是不是社区版还是什么原因,爆破的速度非常非常慢:

image-20240717193619795

这样的话就不得不换一个工具了,另一个常见的密码爆破工具就是大名鼎鼎的hydra

个人不是很会用hydra,这里给出一篇使用hydra的文章:Hydra(爆破密码)使用方法 - GoodGad - 博客园 (cnblogs.com)

以后会了我会做出更多的补充.

最后我的目光移向了WPscan工具,这可是专门攻击WordPress框架的工具啊!(以后专门写一篇)

于是我们使用以下命令:

wpscan --url http://10.10.50.183/wp-login.php --usernames Elliot --passwords fsocity.dic

悲报,这个字典实在是非常的长,已经跑了将近20分钟了还是没有跑出正确密码,不知道该怎么做,只好看大佬的WP了:【THM】Mr Robot CTF-练习 - Hekeatsll - 博客园 (cnblogs.com)

这样我们就得做减法了,使用以下命令对字典内容进行排序并去除重复:

sort fsocity.dic | uniq > fsocity_sorted.dic

sort 内容排序

uniq 去除重复内容

可以发现字典内容从80000多缩短至11451(如果有Burp Suite专业版就方便了...)很快我们爆破出了密码:

image-20240717201326896

(这里靶场过期了忘了续期所以靶场重开了,下文的靶场IP地址将会发生改变......)

image-20240717202613797

成功登录,后台的管理页面可以利用的东西有很多,让我们快速寻找!

第六步

更改后台php文件配合反弹shell

后台这里有搭建博客界面的脚本以及一些php文件,我们可以任选其一文件更改为反弹shell的php文件,这样在我们访问这个php文件时我们就可以接收到反弹shell

image-20240717203012498

利用反弹shell地址:php-reverse-shell/php-reverse-shell.php at master · pentestmonkey/php-reverse-shell (github.com)

将404.php更改为反弹shell的php:

image-20240717203352178

开始监听1234端口(按文件里的配置来监听),然后访问404.php就好了。

(悲报,我找不到404.php在哪,其他的也找不到!!!再次查看大佬博客明白了)

WordPress站点的大多数主题位于 /wp-content/ 目录下,主题相关内容则位于 /wp-content/themes/ 目录下;根据我们之前所修改的php文件所对应的主题名称,可知404.php文件位置在 http://10.10.124.195/wp-content/themes/twentyfifteen/404.php ,打开浏览器访问 404.php文件即可。

image-20240717203719219

成功得到SHELL,使用以下命令使初始shell稳定化:

python -c "import pty; pty.spawn('/bin/bash')"

启用python交互式

第七步

寻找文件

一顿操作猛如虎,最终发现第二个钥匙只允许robot用户读取:image-20240717204029277

但password.raw-md5却是任何人都可以读的,于是我们读取该文件:

image-20240717204208628

这是robot的用户名和密码的MD5值,我们立刻解密看看!

image-20240717204307679

换个网站......

image-20240717204340499

解出了密码是abcdefghijklmnopqrstuvwxyz

登录试试:

image-20240717204429639

成功了,立刻读取文件,得到第二个钥匙!

image-20240717204507130

image-20240717204626933

钥匙3是什么?

第一步

继续深入

最后的钥匙必定在root文件夹里面了,我们先看看robot有什么权限:

image-20240717204911903

看不了,那就换一个方式,输入命令

find / -type f -perm -04000 -ls 2>/dev/null

find /find是一个用于搜索文件和目录的命令。/表示从根目录开始搜索,即搜索整个文件系统。

-type f:这指定了文件类型。-type f表示只搜索普通文件(不包括目录、链接等其他类型的文件)。

-perm -04000:这指定了文件权限。-04000表示查找设置了SUID(Set User ID)权限位的文件。SUID是一种特殊的权限,它允许用户以文件所有者的权限执行文件,而不是以用户自己的权限。

-ls:这个选项告诉find命令在找到文件后列出文件的详细信息,类似于ls -l的输出格式。

2>/dev/null:这个部分用于将标准错误(stderr)重定向到/dev/null,即忽略所有错误信息。这样可以避免在搜索过程中由于权限不足或其他问题而产生的错误信息干扰输出结果。

列出目标机中设置了 SUID 位的程序:

image-20240717205341822

我们在GTFOBins寻找有没有能够获得root权限的程序

找到了:

image-20240717205545797

image-20240717205804177

有了root权限,立刻查看root文件夹

image-20240717205906226

终于得到了第三个钥匙!!!

补充

看了别人的WP发现/license.txt目录下如果查看源码会发现隐藏的账号密码所以我看了下......

image-20240717210319573

image-20240717210402737

信息收集需要仔细......

posted @ 2024-07-17 21:07  Super_Snow_Sword  阅读(26)  评论(0编辑  收藏  举报