# 前言

还是接着补充这个系列的第二篇,只能说这个系列确实经典,但是也很简单,我原称之为 vulnhub 中的 dvwa,武术界的马保国

# 环境搭建

地址:DC: 2 ~ VulnHub

攻击机:kali

使用 VMware 搭建环境(这个参考这个系列的上一篇即可 DC-1 - Vulnhub | Clown の Blog = (xcu.icu),环境搭建都一样,这里我还是将网络模式改为了 nat)

# 打靶流程

这里插一句,本来我一直写攻击流程,但是实验环境还是太理想,这里就改一下

还是使用 nmap 来进行主机发现

image-20231017220114347

然后进行端口扫描

image-20231017220220949

这里发现了两个端口存活,这里使用 - sV 参数来进行对应的协议的发现

image-20231017220416035

这里可以看到 80 端口是一个 Apache 的 httpd 服务,7744 端口是一个 OpenSSH 的服务,版本是 6.7p1,这里用的不是一个很常规的端口,所以这里需要留意一下。说不定后面用得上。

这里访问目标的 80 端口发现这里会跳转到 dc-2 这个页面

image-20231018172100101

很显然这里是被重定向了,可以使用 burp 来验证一下

image-20231018172409165

这里可以看到对 192.168.246.145 这个 ip 发起了一个 get 请求,响应码是 301 证明了我们的猜想

解决方式也很简单,修改一下我们的 host 文件即可

vim /etc/hosts

image-20231018174212162

修改成上图这个样子即可,这里再去访问就可以了

image-20231018175402754

这里先用 whatweb 来做一个 cms 识别

image-20231019114719303

WordPress 的 cms 版本是 4.7.10,这里

这里前面几个页面讲的一些奇怪的东西我只能说理解不了,但是这里有一个 flag 页面

image-20231018175949276

很显然这是作者给的一个提示

Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl.
More passwords is always better, but sometimes you just can’t win them all.
Log in as one to see the next flag.
If you can’t find it, log in as another.

我的英语水平额,,,,不提也罢,不过不是可以查嘛,就直译就可以:

你平常的字典或许没有作用,因此作为替代,可能你需要 cewl

cewl 是一个 ruby 应用,爬行指定 url 的指定深度。也可以跟一个外部链接,结果会返回一个单词列表,这个列表可以扔到 John the ripper 工具里进行密码破解。cewl 还有一个相关的命令行工具应用 FAB,它使用相同的元数据提取技术从已下载的列表中创建作者 / 创建者列表。

密码越多越好,但有时你就是无法赢得所有的密码。

以一个人的身份登录以查看下一个标志。

如果找不到,请以另一个用户登录。

在这里贴一个网上找到的 Cewl 使用指南 Kali Linux 字典生成工具 Cewl 使用全指南 - FreeBuf 网络安全行业门户,很显然这里需要用这个工具来生成一个字典,然后用这个字典来登录某个用户

image-20231019112714826

这样使用就比较麻烦,使用 - w 参数,或者直接将结果重定向到一个字典

image-20231019113343127

现在根据提示拿到了一个字典,但是根据提示来说很显然我们需要一个登录的地方来使用我们的字典,这里其实我的第一反应是有两个地方可能会用的上这个字典的,一个是前面收集到的端口 ssh,还有一个就是 web 服务的管理页面,这里就需要进行目录爆破来收集一下信息

image-20231019114215398

这里就可以看到有一个 login.php 的页面,这里还看到了有两个特殊的也值得关注一下,一个是 /wp-includes/、一个是 /wp-admin/install.php。第一个是因为这里的 include,这里就可以存在文件包含之类的问题。另一个是 install 这个文件,这个安装文件正常情况下,安装完成后删除是比较合理的

image-20231019123833958

image-20231019123901418

可惜的是这两个地方我没有找到可以利用的地方,但是这里在 readme 文件,有或者是这个 install 路由都可以很确定这是一个 WordPress 的 cms,可以使用 WPScan 做一些扫描

wpscan --url http://dc-2 --enumerate p#扫描插件

image-20231019124525019

wpscan --url http://dc-2/ --enumerate u#猜解后台用户名

image-20231019124821610

可以看到这里是有三个用户的 admin、jerry、tom。这下用户名密码都有了分别尝试用三个用户登录,到这里实际上就理解了前面的提示中所说的 “如果找不到,请以另一个用户登录”。这里还是使用 WPScan 来做

image-20231019125559575

这里可以看到 jerry 和 tom 是能够正常登录的,这里登录看一下

image-20231019125806314

image-20231019125955297

在 jerry 用户的 page 中发现了第二个提示

If you can't exploit WordPress and take a shortcut, there is another way.
Hope you found another entry point.

,,,直接上翻译

image-20231019130106601

另一个入口,很显然是中上面我已经提到的那个奇怪的 ssh 端口,这里尝试用这两个账号去连接 ssh

image-20231019130924306

尝试后发现 tom 是可以直接用上面的账号登录的,这里可以看到当前的 home 目录下面似乎又是一个提示

image-20231019131057637

当我想要打开的时候我发现这里被 rbash 限制了,也就是限制型 bash;是平时所谓的 restricted shell 的一种,也是最常见的 restricted shell(rbash、ksh、rsh 等),这里先查看有哪些命令是可用的

compgen -c

image-20231019134416127

这里可以看到有 less、scp、vi 这些都是有机会实现 rbash 逃逸的

image-20231019135542816

这种利用打开文件后可以在下面运行命令的特点显然是不能成功的,因为这里的斜线会被检测出来

image-20231019135800217

内容还是能够正常读取的

Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes

这个内容似乎没有什么很明显的提示,还是要研究一下 rbash 逃逸,最后经过尝试这个 vi 是可以成功的

直接输入 vi 命令,然后交互处执行下面的命令设置环境变量

image-20231019140117117

然后再交互执行 shell 即可

image-20231019140222806

这样就成功了

image-20231019140308538

但是发现这里虽然 cd 可以使用了,但是 id 和 whoami 等命令还是不能使用

image-20231019152447062

这里看了一下环境变量,发现当前的 PATH 只有当前用户的 /usr/bin

image-20231019152829967

显然就只能使用者几个命令,这里修改环境变量

export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

image-20231019153015995

修改后再次查看

image-20231019153045423

这时就可以使用 /bin 和 /usr/bin 下的命令了

image-20231019153248145

当前用户只是一个普通的权限,现在该思考的就应该是怎么提权

image-20231019153502635

在 home 目录中发现这台靶机还有一个 jerry 用户,前面使用 WPScan 扫描出来了两个用户就有他的密码,这里尝试 su 到 jerry 用户下

image-20231019153830253

这里就直接到 jerry 这个用户下了,很显然开始不能直接使用 ssh 连接是因为做了一些限制

image-20231019153907148

Good to see that you've made it this far - but you're not home yet. 

You still need to get the final flag (the only flag that really counts!!!).  

No hints here - you're on your own now.  :-)

Go on - git outta here!!!!

还是上翻译

image-20231019154149166

这里不是最终的目的,我们还需要拿到 root 权限,这里说没有提示,那么还是按照之前的提权思路,先查看可以使用 root 权限无密码的命令

image-20231019154349548

这里看到 git 这个命令是可以直接使用 root 权限的,上面最后一句还是提到了 git outta here,这样看来实际上还是有提示的::🐱,这里也是去网上翻阅了一下 git 提权方法,实际上和前面的 vi 提权有些像的

sudo git -p help

image-20231019154907416

这里如果一只不成功实际上有一个小坑:

终端如果太大,显示信息就会在一个页面全部显示出来,这时会直接结束;所以需要把终端调小一点,让其在一页显示不出来,这时才可以输入接下来的命令