DC-6
环境搭建
过程和DC-1的环境搭建一样:https://yschen20.github.io/2026/02/19/DC-1/#%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA
渗透测试
先 nmap 扫靶机 IP
1 | |

然后扫靶机的端口服务
1 | |
俩端口,一个 22 的 SSH,一个 80 的 Web 服务,80 的 Web 服务会重定向到http://wordy/

先看 80 端口的,浏览器打开会发现找不到服务器

因为 DNS 解析失败,要在hosts文件中配置一下
1 | |

然后就可以成功访问了

先 dirsearch 扫一下目录
1 | |

很明显是 WordPress 系统,和之前的 DC-2 的一样,其实这里在设置好 DNS 解析后可以再用 nmap 扫一下端口信息
1 | |
可以看到是 WordPress 5.1.1

像之前一样尝试使用 wpscan 枚举用户
1 | |
找到五个用户

将用户名保存到文件中

然后试试用 cewl 生成密码字典
1 | |

最后用 wpscan 爆破密码
1 | |
但是没有成功找到

那只能用更大的字典了,直接用 kali 自带的rockyou.txt,但是这个字典很大,比较耗时
1 | |
跑那么久才跑这点

在官网找到了解决方法:https://vulnhub.com/entry/dc-6,315/
可以利用这个命令简化字典

1 | |

再重新跑
1 | |
只需要跑一万多个就行了

最终跑出了mark用户的密码
1 | |

去登录
1 | |

找到安装了 Activity monitor 这个插件

搜一下可以找到存在 ”WordPress 远程命令执行漏洞 (CVE-2018-15877)“

文章:https://www.cnblogs.com/cuerz/p/15576711.html
就是插件中的 Tools 中输入 IP 的地方可以进行命令注入,点击 Lookup 就可以查看命令执行结果

不过这个输入框有字数限制,可以在前端改一下

也可以去抓包,这里直接抓包方便点

先监听端口
1 | |

然后执行反弹shell的命令
1 | |

成功反弹shell

生成交互式shell
1 | |

最后就是提权了,先看看有没有 SUID 提权
1 | |
不过好像没什么有用的

去看看用户目录
1 | |
有四个用户

先看看mark的吧,在mark用户目录下有个stuff目录,里面有一个things-to-do.txt文件,看名字就知道是个提示文件
1 | |

看一下文件内容
1 | |
给了一个graham的密码

这个靶机还有个22的SSH端口,尝试去登录这个用户
1 | |
成功登录

看了一下这个用户目录下也没什么东西

不过发现这个用户有免密执行 sudo 命令
1 | |
可以以 jens 用户的身份免密执行/home/jens/backups.sh脚本

看一下这个backups.sh文件的内容和权限
1 | |

这个脚本的作用就是把/var/www/html打包成backups.tar.gz,脚本由 jens 拥有,所属组是 devs,jens 和 devs 组用户都是可读可写可执行,其他用户可读可执行,不可写
看一下 devs 组有哪些用户
1 | |
当前的 graham 用户也在里面

说明现在可以对这个脚本进行编辑修改,在其中加入/bin/bash,就可以切换为 jens 用户
1 | |

然后就可以切换为 jens 用户
1 | |

然后发现这个用户也可以用 sudo 命令,以 root 身份免密执行/usr/bin/nmap

可以构造一个启动新进程的脚本,然后利用 nmap 的 --script 参数让其执行指定的脚本,此时是以 root 身份启动的新进程,就可以成功提权了
1 | |

最后去 root 目录下读flag
1 | |
但是神奇的是我输入的命令没有显示出来

总结
靶机学习的知识点:
- 设置 hosts 文件
- 用 wpscan 枚举用户,爆破密码
- CVE-2018-15877:Activity monitor插件中存在命令注入漏洞,获取shell
- 信息搜集获取 graham 用户的密码,登录为 graham 用户
- 利用可以以 jens 用户的身份免密执行
/home/jens/backups.sh脚本,切换为 jens 用户 - jens 用户也可以免密以 root 身份运行
/usr/bin/nmap,借助--script运行指定恶意脚本提权为 root