Vulnhub_DC2 记录

Vulnhub_DC2 记录

image-20200308112453736

经验 & 总结

  1. 字典是要不断扩充,即使针对目标做了个性化字典,也要考虑之前已经拥有的字典。
  2. 要敢于尝试,说不定哪一步就会有收获。(瞎猫碰到死耗子,这个靶机需要多次尝试切换用户,但是感觉我这回都是盲目的切换用户,并没有搜集用户信息。)
  3. 这个靶机是晚上赶时间做的,很多地方都没有过脑子,只是跟着提示一步一步向前走,并没有深入思考。

步骤流水

主机探测:

image-20200307212111815

我也不知道哪来这么多主机,一个一个试试看,因为是一个系列的,所以知道可以http访问80端口。

用浏览器访问109,发现地址栏变成了http://dc-2,浏览器提示正在查找名叫dc-2的主机,因此需要手动修改hosts文件,将靶机地址和主机名关联起来。

image-20200307212425060

修改hosts文件之后就可以看到网页了(网页正文看不懂,应该是Lorem Ipsum)

image-20200307212555461

上边有一个明晃晃的Flag字样,点开可以看到第一个提示

image-20200307212643925

大概意思是:常用的字典列表不好使了,需要使用cewl一下;密码越多越好,但是你不可能得到所有的密码;登录来看看下一个提示。

cewl没接触过,搜了一下是一个字典生成工具,能爬取指定页面生成密码字典。

先把这个web页面放在一边,扫描一下端口看看有么有什么信息

快速扫描之后发现只有80端口开放

image-20200307213040627

有些不甘心,但是也就多出来一个ssh端口

image-20200307213154227

很明显只能从Web页面下手

浏览一下页面,正文是填充的文字,最后提示网站架构是WordPress,使用WordPress扫描器扫描仪一下,看看有什么信息(后来发现我这个wpscan是有问题的)

wpscan --url http://dc-2

扫描结果很长,但是没有特别劲爆的信息

image-20200307214135962

探测到版本是4.7.10,使用的是twentyseventeen 1.2主题,没有扫描到存在漏洞的插件。

网页源码也没有什么有价值的信息。

dirb使用默认字典进行目录扫描,得到登录页面(默认的登录页面)

那么根据提示走,需要登录,而目前不知道用户名和密码,但是提示使用cewl制作字典

cewl -w ./wordlist.txt http://dc-2

image-20200307220529129

利用msf中的auxiliary/scanner/http/wordpress_login_enum,探测存在的用户,两个绿字之后一路飙红

image-20200307220807762

把这个字典作为密码文件添加,可以同时探测是否可以用来登录,至此得到一个可以登录的用户

image-20200307221439319

这个地方是出现问题了,这里探测到的用户名不全,导致后面做不下去。

dc2-8

可以看到网上别人的walkthrough中能探测到两个可用账户,但是我这边msf只探测到一个,而且还是莫名其妙探测到这个账户,因为我生成的wordlist.txt中根本就没有jerry这个单词。

image-20200307231219404

但是密码确实是出现在wordlist中,也就是说还是要扩充自己的字典,而不是直接使用生成的。

image-20200307231841757

另外我的wpscan没有办法测试用户名和密码,具体原因没排查。

使用jerry用户登录后在Pages页面中找到第二个提示。

image-20200307221712244

大概意思是:如果你没有办法从wordpress突入,那么需要找到另外一个入口点

既然提到了另一个入口,有可能就是改了端口的ssh,使用tom的帐号和密码可以成功登录

image-20200308010520758

执行id命令报错,前面有一个-rbash的提示,尝试更换bash,同样报错

image-20200308010630396

应该是使用了定制的shell,试试看ls(盲目尝试,没想到竟然能用)

image-20200308010729341

usr目录下给出了几个二进制程序

image-20200308010816824

使用vi查看flag3.txt文件

image-20200308010914279

看看其他的文件:

.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

image-20200308011902651

切换到jerry目录,看到flag4.txt

image-20200308011958614

大概意思是,你已经很努力了,但是这个不是最终的flag,继续使用git从这出去

既然提到了git,那么在GTFOBins里搜搜看

image-20200308012324422

但是git并没有

image-20200308012441307

目前已经拿到了一个看起来比之前正常一些的shell了,尝试翻翻常用目录,看看有没有收获

/usr/bin路径下找到git和sudo

image-20200308013132313

image-20200308013149378

尝试使用sudo+git突破未果

image-20200308013316891

尝试切换到jerry用户,竟然可以(这个地方纯属歪打正着,但是这种挑战不就是要尝试嘛

image-20200308014753198

而且jerry用户的环境变量是正确的,可以执行sudo命令

image-20200308014824327

通过GTFOBins的方法,得到root权限shell

image-20200308014926515

按照一般的剧本,最终的flag因该在root目录下

image-20200308015016823

image-20200308015049574

posted @ 2020-03-08 11:30  掉到鱼缸里的猫  阅读(436)  评论(0编辑  收藏  举报