Vulnhub_DC3 记录
经验 & 总结
-
漏洞平时还要多积累,临时搜索的时候也要多方面搜集信息,msf中虽然有针对Joomla3.7的一个RCE工具,但是有一些限制;这次这个就是单纯的用sqlmap获得后台密码。
-
这种框架还是要多研究多积累,通过模板写脚本代码的操作自己没有见过,或者说根本就不知道Joomla有这种功能。
-
这个靶机会因为自动更新导致web服务挂掉,在网上搜索的时候也发现有其他人部署的服务器出现过这样的问题,作为排错的积累记录一下。
-
内核提权漏洞风险还是有些大,测试的时候第一个漏洞只接把靶机搞崩了,以后还是把内核漏洞提权作为最后的手段吧。
-
sqlmap
可以使用-C
参数来指定dump操作获取的字段。 -
除了
hashcat
之外,john
也很好用,能自动识别hash类型。 -
hashid
在识别hash字符串的时候用单引号‘
,双引号中会把$
认定为表示参数的符号。或者直接通过管道符传送
步骤流水
通过netdiscover
工具探测靶机地址为:192.168.1.104
使用nmap进行端口扫描,近得到开放80端口
访问web页面
使用whatweb
扫描网站,提示网站框架为Joomla
使用dirb
工具利用默认的字典扫描网站,得到路径信息
使用Joomla扫描工具JoomScan进行扫描,探测到joomla版本为3.7.0
对于3.7版本,使用searchsploit
工具检索
msf中查找到的攻击模块,msf中有几个rce模块,所以先选择试是看msf的模块
msf模块挨个试过去,不是版本不符合,就是无法利用,令人在意的是unix/webapp/joomla_comfields_sqli_rce
,这个模块是针对CVE-2017-8917的利用,该漏洞是joomla3.7的一个SQL注入漏洞,影响版本仅有 3.7.0。
通过搜索,利用POC可以验证漏洞存在(这里开始IP换了,因为靶机自动更新,访问不了,只好重新导入一个)
http://192.168.1.101/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1)
尝试利用sqlmap进行攻击
获取数据库名
获得joomladb表名
使用-D joomladb -T "#__users" -C id,username,password --dump
参数dump users表中的id、username、password字段
虽然可以读取数据库信息,但是无法通过sqlmap写shell
利用john
碰撞密码
使用得到的密码,登录后台管理页面
利用模板管理功能添加一个php页面,部署回连脚本
访问http://192.168.1.101/templates/beez3/html/shell.php
,得到回连shell
查看开放端口,确实没有ssh
又一次崩溃,查看虚拟机窗口,怀疑是自动更新的问题,再次导入虚拟机,修改为host-only模式
先考虑内核提权漏洞,查看是否可以使用gcc
查看内核版本
在searchsploit中搜索,得到一些结果,挑几个看起来符合条件的提权脚本测试一下
第一个失败了
而且直接把靶机干死了
使用Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation
成了