DC-2
环境搭建
过程和DC-1的环境搭建一样:https://yschen20.github.io/2026/02/19/DC-1/#%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA
渗透测试
flag1
先 nmap 扫出靶机的 IP 地址
1 | |
可以去找 dc-2 来找到哪个是靶机的 IP

然后扫这个 IP 的端口和服务
1 | |
-p-:扫描所有的端口
80 端口服务是 WordPress 4.7.10

如果浏览器输入 IP 自动变成
http://dc-2/,但是不能访问,就是域名解析失败,修改一下hosts文件即可,添加一个 IP 域名指向
1192.168.1.17 dc-2
Linux:
/etc/hostsLinux的要用管理员身份
Windows:
C:\Windows\System32\drivers\etc\hostsWindows的修改一下属性中的只读不要勾选
浏览器访问可以找到flag1

1 | |
flag2
翻译一下flag1的提示

大概是要登录账号的,暴力破解密码,并且说通常的字典没用,要用cewl
既然是要登录账号,那就要去找登录界面,用 dirsearch 扫一下目录
1 | |

可以找到/wp-login.php能登录

然后去搜一下 WordPress 4.7.10 漏洞,可以找到 CVE-2017-5487 用户枚举漏洞比较符合

因为存在的用户登录失败和不存在的用户登录失败的报错是不同的


可以使用 kali 自带的 wpscan 来进行枚举用户
1 | |


1 | |
可以找到admin、jerry、tom三个用户

然后就是爆破密码了,之前flag1提到要用 cewl,网上搜一搜:https://www.freebuf.com/articles/network/190128.html
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。
使用 cewl 来生成字典
1 | |

然后可以用 wpscan 来爆破密码

1 | |
爆出了俩

1 | |
然后登录jerry账号可以找到flag2,tom账号里没有


1 | |
flag3
翻译一下

也就是说不能通过 WrodPress 来getshell,要寻找其他方法,之前扫端口的时候还有扫到一个 7744 端口有 ssh 服务

尝试去登录 ssh,用之前爆出的俩账号试试,大概率是tom,因为jerry用过了,tom还没用
先是jerry / adipiscing,不出意料登录失败
1 | |

然后是tom / parturient,可以成功登录
1 | |

发现当前tom的用户目录下就有flag3.txt,不过尝试几个命令都无法读,搜一下发现这是因为正处于受限的rbash环境中

多尝试几次后发现用vi或者less可以读
1 | |

1 | |
flag4
翻译一下

可能还有个jerry用户
因为是处于rbash环境里,要想办法逃逸出来
查看可以使用的命令,先找到当前系统的环境变量 PATH 在哪
1 | |

然后查看可以使用哪些命令
1 | |
只有less、ls、scp、vi

文章:https://xz.aliyun.com/news/7237

因为rbash环境原因,$PATH 是只读的,无法添加扩展

可以利用BASH_CMDS来对变量赋值,这不是执行命令,所以不受限制,然后再输入a就可以触发一个新的进程,不再受rbash的限制了
1 | |

然后将更多的系统目录添加到环境变量中,就可以正常执行命令了
1 | |

然后就可以去读flag4.txt了

在rbash受限环境中也可以用
vi或者less读,不过还是要逃逸出来,便于后续的操作
1 | |
flag5
最后也就是要进行提权,去/root目录下找flag了,这里提示是要用git

但是tom用户没权限执行sudo
1 | |

要切换成jerry用户
1 | |

这时可以看一下当前用户被允许用 sudo 执行的命令
1 | |
没问题,确实是要用git提权,NOPASSWD表示不用密码就可以执行命令

然后再输入命令
1 | |
当执行
git help或git log时,git 会自动调用系统默认的分页程序(通常是less)来显示帮助内容,该分页程序继承 git 进程的权限

再输入(直接输入就好)
在
less分页界面中,输入!后跟命令,会执行一条 shell 指令,由于当前进程具有 root 权限,执行!/bin/sh将直接产生一个 root 权限的 shell
1 | |

回车后提权成功

去读flag

1 | |
总结
吐槽一下,刚开始用的 VulnHub 来搭环境的,但是突然给我报错了,最后换成 VMware 来搭,接着是在找靶机的 IP,原本想着是和 DC-1 一样找 VirtualBox 就行了,但是一直没找到,我还以为是靶机搭的有问题,然后去网上搜,还真搜到了关于 VulnHub 靶机分配不到 IP 的问题,然后就是跟着做,但是感觉不一样,怪怪的,因为我发现我的那个配置是没问题的,搞来搞去搞了将近俩小时,最后差点要放弃不想打这个靶机的时候,突然发现 nmap 扫到了dc-2的字样,我也是服了,然后去翻前面的命令,发现我第一次刚开始就扫到了这个靶机的 IP,但是我眼瞎没看到,白白浪费了俩小时

这个靶机学到的知识点:
- nmap中的
-p-可以扫描全部端口 - 使用 kali 自带的 wpscan 工具打 CVE-2017-5487,还有后面的爆破密码
- 使用 cewl 来生成密码字典
- 利用
BASH_CMDS进行rbash逃逸 - 用户切换(低权限用户切换为具有 sudo 权限用户)
- 最后就是利用 sudo 权限配置问题,可以通过git来提权(本质是分页器命令注入)
最重要的还是信息搜集,如果没有每个flag的提示后续的攻击方向,不会做的那么顺

