【THM】Mr Robot CTF练习
【THM】Mr Robot CTF练习
基于电视剧《黑客军团》,你能得到这个靶机的根权限吗?
你能得到这台黑客军团风格靶机的根权限吗?这是一个适用于初学者/中级用户的虚拟机。机器上有 3 个隐藏的钥匙,你能找到它们吗?
感谢 Leon Johnson 创造了这台靶机。本机器在创建者的明确许可下在此处使用 ❤️
钥匙1是什么?
第一步
端口扫描
nmap -Pn -sV -T4 10.10.50.183
可以发现目标开放了3个端口:22/tcp ssh服务、80/tcp http服务、443/tcp ssl加密协议服务
第二步
访问网站
我们先进入网站看看界面
你好,朋友。如果你来了,你来是有原因的,你可能还无法解释,但你的一部分已经厌倦了这个世界。。
一个决定你在哪里工作、见谁以及如何清空和填补你令人沮丧的银行账户的世界。即使是你用来阅读这篇文章的互联网连接也在让你付出代价,慢慢地蚕食你的存在。有些事情你想说。很快我会给你一个声音。今天,你的教育开始了。
我们可以你在这假的命令行可以输入一些命令,我们一一尝试:
prepare:循环播放黑客军团的预告片
fsociety:放一段电视剧场景后循环回到命令行
inform:展示一些通知图片
question:展示一些谜题
wakeup:放一段梦醒的视频后黑屏
join:mr.robot会邀请你加入他
应该是在还原电视剧中的场景,我们接着深入。
第三步
信息收集
我们先看看网页的源码里面会不会藏了什么东西:
没啥有用的。
再优先查看robots.txt来看看这个网站会不会有什么见不得人的文件,发现了这个页面:
发现fsocity.dic文件和第一个钥匙,立刻跳转查看第一个钥匙:
钥匙2是什么?
第一步
利用上一题给出的线索
访问fsocity.dic文件,页面自动下载了.dic文件:
使用命令查看文件内容:
cat fsocity.dic
可以猜测这个字典文件记录了fsocity组织里面成员的相关信息。(我没看过《黑客军团》)
第二步
继续信息收集
使用gobuster工具扫描网站目录:
gobuster dir -u http://10.10.50.183 -w Filenames_or_Directories_All.txt
我们可以看见扫描出了很多目录和文件,去掉状态码为4开头的,我们一个个尝试
/js Forbidden
/images Forbidden
/css Forbidden
/index.php 主页面,没啥看的
/admin 页面像抽了风一样一直在刷新,我们查看下页面源码跟主页面一模一样,
/license.txt
/favicon.ico 应该是图标一类的东西
/login 跳转到了wp-login.php
/image
/feed 自动下载了前端文件,我们可以查看其内容:
/blog Forbidden
/readme
/video Forbidden
/rss 又一个前端文件:
/Image 同/image
/audio Forbidden
/0
/sitemap
/intro 视频文件
/dashboard 跳转后到/login.php
/atom 前端文件:
/sitemap.xml.gz 空文件
/IMAGE 同/image
第三步
利用已有信息走出下一步
我们发现了一个登录页面以及博客,并且登录页面用了经典的WordPress博客框架。
我们进入/wp-login.php的登录页面,随便输个用户密码试试:
报错:无效的用户名。只要是有效的用户名应该就不会报错,我们可以通过这个报错信息来爆破出正确的用户名。
通过攻击机火狐浏览器的代理插件连通Burp Suite,开始抓包:
第四步
爆破用户名
使用Burp Suite的Intruder爆破模块,设置用户名为注入点,payload就选择之前找到的fsociety.dic,开始爆破:
爆破结束后,我们根据响应报文的长度的不同,从而找到了正确的用户名:
尝试登录,密码错误:
第五步
爆破密码
故技重施,我们再重复上一步的步骤,不过这一次的注入点是密码:
发生了一件很尴尬的事,这个攻击机的Brup Suite不知道是不是社区版还是什么原因,爆破的速度非常非常慢:
这样的话就不得不换一个工具了,另一个常见的密码爆破工具就是大名鼎鼎的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专业版就方便了...)很快我们爆破出了密码:
(这里靶场过期了忘了续期所以靶场重开了,下文的靶场IP地址将会发生改变......)
成功登录,后台的管理页面可以利用的东西有很多,让我们快速寻找!
第六步
更改后台php文件配合反弹shell
后台这里有搭建博客界面的脚本以及一些php文件,我们可以任选其一文件更改为反弹shell的php文件,这样在我们访问这个php文件时我们就可以接收到反弹shell
利用反弹shell地址:php-reverse-shell/php-reverse-shell.php at master · pentestmonkey/php-reverse-shell (github.com)
将404.php更改为反弹shell的php:
开始监听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文件即可。
成功得到SHELL,使用以下命令使初始shell稳定化:
python -c "import pty; pty.spawn('/bin/bash')"
启用python交互式
第七步
寻找文件
一顿操作猛如虎,最终发现第二个钥匙只允许robot用户读取:
但password.raw-md5却是任何人都可以读的,于是我们读取该文件:
这是robot的用户名和密码的MD5值,我们立刻解密看看!
换个网站......
解出了密码是abcdefghijklmnopqrstuvwxyz
登录试试:
成功了,立刻读取文件,得到第二个钥匙!
钥匙3是什么?
第一步
继续深入
最后的钥匙必定在root文件夹里面了,我们先看看robot有什么权限:
看不了,那就换一个方式,输入命令
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 位的程序:
我们在GTFOBins寻找有没有能够获得root权限的程序
找到了:
有了root权限,立刻查看root文件夹
终于得到了第三个钥匙!!!
完
补充
看了别人的WP发现/license.txt目录下如果查看源码会发现隐藏的账号密码所以我看了下......
信息收集需要仔细......