一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:FunBox 4(10.0.2.29)
目标:获取靶机root权限和flag
靶机下载地址:https://download.vulnhub.com/funbox/Funbox4.ova
二、信息收集
使用nmap主机发现靶机ip:10.0.2.29
使用nmap端口扫描发现靶机开放端口:22、80、110、143
打开网站发现是一个apache2的默认页面,查看源码没有发现什么隐藏信息,使用dirsearch工具、dirb工具和dirbuster工具进行目录爆破也没有爆破出什么路径
发现22端口ssh是openssh 7.2p2
,查找openssh的历史漏洞
发现存在用户名枚举漏洞CVE-2016-6210和CVE-2018-15473,将漏洞exp下载下来,使用字典枚举靶机ssh用户
python cve-2018-15473-1.py --port 22 --userList ../../user.txt 10.0.2.29
存在报错解决方法:下载2.4.1版本的paramiko库
pip3 install paramiko==2.4.1
额,发现不存在漏洞
兜兜转转还是找不到突破口,看了一眼wp,无语,靶机区分大小写,需要查看大写的ROBOTS.TXT
,目录扫描字典没有,所以每爆破出来
访问upload/
发现是404,将ROBOTS.TXT拉到最下面,还有一条信息
直接访问Forbidden,没有权限
使用dirsearch工具进行目录爆破,发现文件上传页面
三、漏洞利用
上传webshell成功,刚开始上传webshell一直提示上传失败,后面重启一下不知道怎么好了,webshell可以在php-reverse-shell | pentestmonkey下载
访问http://10.0.2.29//igmseklhgmrjmtherij2145236/upload/shell.php
反弹shell
使用python获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
四、提权
查看当前目录,发现一个根目录有一个txt文件:hint.txt
查看该文件提示rockyou.txt
说文件不适用,发现是一些加密的数据,分别用Brainfuck、base64、base32
加密算法加密
分别解密为:
- The next hint is located in:
- No hints here !
- Search for todos.
提示查看todo文件,可以先看一下home文件,有一个用户home文件夹可读,访问找到一个.todo
隐藏文件
查看该文件,第7条提示在我的密码中添加感叹号
根据提示使用python脚本将rockyou.txt
字典密码每一个后面添加!
#python脚本
file=open(r'rockyou.txt',encoding='ISO-8859-1')
dataMat=file.read().split('\n')
f = open(r'rockyou_.txt', 'w',encoding='ISO-8859-1')
for line in dataMat:
f.write(line + '!\n')
f.close()
使用hydra对靶机的ssh进行暴力破解,破解成功,得到密码:thebest!
hydra -l thomas -P rockyou_.txt 10.0.2.29 ssh
登录ssh,查看当前目录,发现存在pspy64
工具,可以使用该工具查看靶机进程
awk 'BEGIN {system("./pspy64")}'
没有发现什么有用的进程
查看系统内核版本,发现是4.4.0-187
可以使用脏牛漏洞进行提权
查看是否有特权文件,发现没有,但查看具有root权限的文件发现具有/usr/lib/policykit-1/polkit-agent-helper-1
可以使用CVE-2011-1485
exp进行提权
由于靶机没有gcc环境,直接上传编译好的exp,使用网站的漏洞进行上传
运行,报错,缺少包,怀疑可能是编译环境和执行环境的问题
为了提权,把之前干过的靶机重新下载下来,使用那里面的环境编译exp,上传到靶机,执行
执行成功,但提权失败,发现并没有用户写入/etc/passwd
查看网上的wp,可以使用CVE-2017-16995
的exp进行提权,编译上传,但执行失败权限被拒绝
放弃了