【vulnhub】DC-2

前言

玩一下DC-2。

渗透过程

信息搜集

扫描同网段主机

arp-scan -l

猜测靶机应该是58,访问一下,发现可以,也证明开启了80端口。

扫描靶机开放端口

nmap -sV -p- 192.168.43.58

80端口http,7744端口ssh。

探测采用的服务信息

通过Wapplyzer插件,可以探测到以下信息:

或者whatweb:

whatweb -v 192.168.43.58:80

扫描后台目录

最重要的点莫过于采用wordpress作为CMS,这将是我们切入的着眼点。

扫描wordpress用wpscan,扫描joomla用joomscan。

漏洞利用

flag1

先简单看一下网站上有什么。直接发现flag1:

注意这句话:你的字典可能不好使了,所以"you need to be cewl",这是在提示我们使用kali自带的cewl工具。

flag2

wpscan扫描一下网站:

好像也没什么东西,wpscan枚举用户:

发现有三个用户,admin,jerry和tom。

结合flag1的提示,我们需要用cewl生成字典,并用wpscan爆破用户密码。

cewl可以通过深度爬取站点内容,生成可能的密码字典,具体用法如下:

cewl -u http://dc-2/ -w /home/kali/wp-list.txt

-u指定url,-w表示将结果保存到文件中。

然后用wpscan爆破:

wpscan --url http://dc-2/ -U admin -P /home/kali/wp-list.txt

--url指定url,-U指定用户(必须大写,小写指代user-agent),-P指定密码字典。

admin什么都没有,但是爆出了tom和jerry的密码:

登录jerry的账户,在pages中找到flag2:

flag3

flag2说如果不能渗透wordpress然后拿快照的话,还有别的方式。还记得我们最开始扫描出的端口吗,除了80端口以外,还有ssh的774端口,那我们就从此着手。

猜测靶机上的用户就有tom和jerry,同时猜测密码就是之前爆出来的。不过我们在这里还是选择先用hydra爆一下:

-s用于指定端口,如果不指定的话,会默认连接22端口,因为这次端口发生了改变,所以一定要手动指定。(注:hydra使用-s指定端口,而ssh直接远程连接使用-p指定端口)

可以看到tom的password确实是刚才爆出来的那个。成功登录之后发现了flag3,然而:

发现tom用rbash登录的,连cat命令都没有,各种编程语言命令比如python什么的全都没有。

rbash中的r代表restricted,就是受限的bash,所以需要借助系统内部的软件实现绕过,好在还有vi,那我们就用vi来绕过。

在vi中,输入冒号进入末行模式,写入:

set shell=/bin/bash

回车保存,然后再次输入冒号进入末行模式,输入:

shell

我们就可以使用/bin/bash了。

这样解除了不能cd的限制,但是cat什么的还是没有,是因为环境变量中命令太少了:

PATH中只有tom的个人命令(望文生义),所以需要修改环境变量,把所有的bin和sbin都加进去:

在/usr/local/下面还有的。现在可以用cat了:

flag4

在/home下面有两个文件夹,一个叫tom,一个叫jerry,在tom中发现了flag3,在jerry中发现了flag4,打开:

flag5

flag3里提到了su,提示我们变更用户,flag4中的git也让我很在意,好端端用git干嘛,猜测是git提权。而且我们在允许访问的范围内找不到flag5,只能猜测是在需要root权限才能访问的位置。

切换到jerry用户试试:

su - jerry

密码是jerry的密码,登录成功。

试一试sudo -l:

惊了,居然有个不需要密码即可执行的git命令,那我们可以用git提权。

执行完config后,在页面里输入:!#/bin/bash,即可完成提权。

总结

  1. 信息搜集,发现wordpress
  2. wpscan扫描网站,枚举用户
  3. cewl生成字典,爆破用户密码
  4. ssh猜测密码远程连接,或hydra爆破密码
  5. 连接成功后绕过rbash,获取shell
  6. git提权获取root权限
posted @ 2022-10-10 22:25  Cr4zysong11  阅读(64)  评论(0)    收藏  举报