【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,即可完成提权。

总结
- 信息搜集,发现wordpress
- wpscan扫描网站,枚举用户
- cewl生成字典,爆破用户密码
- ssh猜测密码远程连接,或hydra爆破密码
- 连接成功后绕过rbash,获取shell
- git提权获取root权限

浙公网安备 33010602011771号