Vulnhub_DC2 记录
- Vulnhub_DC2 记录
- 经验 & 总结
- 步骤流水
经验 & 总结
- 字典是要不断扩充,即使针对目标做了个性化字典,也要考虑之前已经拥有的字典。
- 要敢于尝试,说不定哪一步就会有收获。(瞎猫碰到死耗子,这个靶机需要多次尝试切换用户,但是感觉我这回都是盲目的切换用户,并没有搜集用户信息。)
- 这个靶机是晚上赶时间做的,很多地方都没有过脑子,只是跟着提示一步一步向前走,并没有深入思考。
步骤流水
主机探测:
我也不知道哪来这么多主机,一个一个试试看,因为是一个系列的,所以知道可以http访问80端口。
用浏览器访问109,发现地址栏变成了http://dc-2
,浏览器提示正在查找名叫dc-2的主机,因此需要手动修改hosts
文件,将靶机地址和主机名关联起来。
修改hosts文件之后就可以看到网页了(网页正文看不懂,应该是Lorem Ipsum)
上边有一个明晃晃的Flag字样,点开可以看到第一个提示
大概意思是:常用的字典列表不好使了,需要使用cewl一下;密码越多越好,但是你不可能得到所有的密码;登录来看看下一个提示。
cewl
没接触过,搜了一下是一个字典生成工具,能爬取指定页面生成密码字典。
先把这个web页面放在一边,扫描一下端口看看有么有什么信息
快速扫描之后发现只有80端口开放
有些不甘心,但是也就多出来一个ssh端口
很明显只能从Web页面下手
浏览一下页面,正文是填充的文字,最后提示网站架构是WordPress,使用WordPress扫描器扫描仪一下,看看有什么信息(后来发现我这个wpscan是有问题的)
wpscan --url http://dc-2
扫描结果很长,但是没有特别劲爆的信息
探测到版本是4.7.10,使用的是twentyseventeen 1.2主题,没有扫描到存在漏洞的插件。
网页源码也没有什么有价值的信息。
dirb使用默认字典进行目录扫描,得到登录页面(默认的登录页面)
那么根据提示走,需要登录,而目前不知道用户名和密码,但是提示使用cewl制作字典
cewl -w ./wordlist.txt http://dc-2
利用msf中的auxiliary/scanner/http/wordpress_login_enum
,探测存在的用户,两个绿字之后一路飙红
把这个字典作为密码文件添加,可以同时探测是否可以用来登录,至此得到一个可以登录的用户
这个地方是出现问题了,这里探测到的用户名不全,导致后面做不下去。
可以看到网上别人的walkthrough中能探测到两个可用账户,但是我这边msf只探测到一个,而且还是莫名其妙探测到这个账户,因为我生成的wordlist.txt中根本就没有jerry
这个单词。
但是密码确实是出现在wordlist中,也就是说还是要扩充自己的字典,而不是直接使用生成的。
另外我的wpscan没有办法测试用户名和密码,具体原因没排查。
使用jerry用户登录后在Pages页面中找到第二个提示。
大概意思是:如果你没有办法从wordpress突入,那么需要找到另外一个入口点
既然提到了另一个入口,有可能就是改了端口的ssh,使用tom的帐号和密码可以成功登录
执行id
命令报错,前面有一个-rbash
的提示,尝试更换bash,同样报错
应该是使用了定制的shell,试试看ls(盲目尝试,没想到竟然能用)
usr目录下给出了几个二进制程序
使用vi查看flag3.txt文件
看看其他的文件:
.bash_login
export PATH=/home/tom/usr/bin
.bash_history
ls
cd ../..
exit
ls
cd usr
ls
cd usr
ls -l usr
ls -l usr/bin
exit
.bash_logout
export PATH=/home/tom/usr/bin
.bash_profile
export PATH=/home/tom/usr/bin
.bashrc
export PATH=/home/tom/usr/bin
.profile
export PATH=/home/tom/usr/bin
既然可以使用vi,那么尝试从vi切换到bash
:set shell=/bin/bash
,:shell
切换到jerry目录,看到flag4.txt
大概意思是,你已经很努力了,但是这个不是最终的flag,继续使用git从这出去
既然提到了git,那么在GTFOBins里搜搜看
但是git并没有
目前已经拿到了一个看起来比之前正常一些的shell了,尝试翻翻常用目录,看看有没有收获
在/usr/bin
路径下找到git和sudo
尝试使用sudo+git突破未果
尝试切换到jerry用户,竟然可以(这个地方纯属歪打正着,但是这种挑战不就是要尝试嘛 )
而且jerry用户的环境变量是正确的,可以执行sudo命令
通过GTFOBins的方法,得到root权限shell
按照一般的剧本,最终的flag因该在root目录下