VulnHub DC2入侵实战 – 作者:FFFcaptain328

基本配置

从VulnHub下载靶机DC2,其基本信息如下:

1604034404_5f9b9f645e098e2e444c5.png!small

攻击机使用Kali2020.3

信息收集

首先,由于DC2使用了NAT接入了虚拟局域网,那么第一件事就是扫描局域网得到其IP地址。Kali攻击机的IP地址如下:

1604034410_5f9b9f6aa5df85d886d41.png!small

nmap扫描192.168.187.0/24网段:

1604034415_5f9b9f6f4698b4a260de9.png!small

发现dc2IP地址为192.168.187.134。发现80端口打开,先访问看看,发现解析了域名但是无法访问,暂时搁置。1604034451_5f9b9f930571abbc6b993.png!small

进行进一步的扫描:

1604034419_5f9b9f73a7126e92d2bad.png!small

发现Did not follow redirect to http://dc-2,那么就去手动配置/etc/hosts文件:

1604034458_5f9b9f9a3ebcc0a50346e.png!small

再次访问,得到flag1

1604034464_5f9b9fa005e86c4cd0f0b.png!small

使用Wappalyzer插件得到网站基本信息:

1604034467_5f9b9fa3a1a87ecb6e9a5.png!small

信息收集基本告一段落

密码爆破

根据flag1的提示,下一步似乎需要对网站的用户进行密码爆破,那么首先需要找到网站的登陆界面在哪里,使用dirb扫描http://dc-2

1604034473_5f9b9fa96af14a0944a8d.png!small

随便点一个带admin的链接,就会重定向到登陆界面http://dc-2/wp-login.php

根据flag1的提示,下一步就使用cewl工具制作密码字典并写进dc2pass.txt备用:

1604034480_5f9b9fb0ab39d64e68f90.png!small

做好了密码字典后,接下来就需要获得想要爆破的用户名。由于网站使用WordPress,可以使用wpscan工具进行扫描,使用-e u选项枚举用户:

1604034551_5f9b9ff7b3966932614a2.png!small

找到三个用户admin、jerry和tom,把这三个用户存在文件dc2users.txt里等会爆破。

1604034558_5f9b9ffe1b296fc8a80ad.png!small

接下来用wpscan进行爆破:

wpscan -P dc2pass.txt  -U dc2users.txt --url http://dc-2

得到了jerry和tom的密码:

1604034566_5f9ba0068257524554f5d.png!small

分别尝试登陆以获取有用的信息,从jerry登录可以在pages页面看到flag2:

1604034572_5f9ba00cc5f17a94eeefc.png!small

进入靶机

从80端口进入的尝试似乎到此为止了,那么接下来根据flag2的提示,或许可以从其他方向进行突破。回想起之前在进一步扫描时发现DC2还开放了7744端口来响应ssh连接,考虑到jerry和tom两个用户似乎安全意识不高,那么接下来先尝试用网站的密码进行ssh登录吧。

经过尝试,发现tom用户可以直接登录:

1604034579_5f9ba01309a52a3db4606.png!small

横向渗透

首先先看看当前目录在哪以及当前目录下的内容:

1604034617_5f9ba0390bcbee1c4d7eb.png!small

发现了flag3.txt,cat一下发现了问题:

1604034611_5f9ba0336b6ef2db43984.png!small

说明现在的shell应该是有限制的,那再试试vi能不能打开,结果vi能够使用,拿到了flag3:

1604034623_5f9ba03fdf88f5805d9f8.png!small

flag3说tom需要su一下,应该是在说可以切换账户,但是这个连cat都执行不了的shell可以执行su命令吗,试了一下果然不行。

现在所处的环境应该是一个受限制的bash(rbash),下一步就要得到一个正常的bash。

由于可以使用vi,那么直接使用vi绕过rbash:

vi
:set shell=/bin/bash #设置/bin/bash作为shell
:shell #启动shell
# 此时已经进入了一个正常的bash中了
export PATH=$PATH:/bin #导入环境变量

进行完上述操作,就完成了绕开rbash的工作,下面根据flag3的提示切换成用户jerry:

su jerry

输入密码的时候尝试之前得到的jerry的密码即可登录。然后来到jerry的目录下得到flag4:1604034629_5f9ba04527cc149aafc39.png!small

提权

现在剩下最后一个flag没有得到,按照之前DC1的经验,这个flag应该在/root目录下,那么现在需要做的就是提权。

flag4提到了git,说不定可以从这里进行提权。

先查看jerry可以免密码以root权限执行哪些指令:

1604034638_5f9ba04e5a5c635e64511.png!small

正好有一个git,那么提权多半是从这里下手了。

查阅资料,得知git中有个-p选项是通过分页显示的方式显示git的帮助信息,实现这种分页的方式是通过more指令完成的,而more指令具有执行命令的功能。只需在末尾输入![想执行的命令]即可执行该条命令。

那么下面就利用这一点进行提权:

sudo git -p #首先进入显示界面
!/bin/bash #在显示界面最后输入指令

1604034663_5f9ba0672f401a0143153.png!small

获得了root权限!

接下来来到/root目录下,得到最终的flag:

1604034668_5f9ba06c4fe779f9cc6f5.png!small

总结

通过DC-2靶机的入侵实践,我又学习到了一些新的知识:

  • /etc/hosts文件的作用

  • WordPress专用的扫描工具wpscan的使用

  • cewl密码字典生成工具的使用

  • 使用vi绕过rbash

  • 使用git(本质上是more)进行提权

需要进一步学习的知识:

  • Linux系统知识有点欠缺

  • 对vi等常用工具了解很浅,需要进一步学习

  • 对于Linux shell的理解不深,过程中查了很多资料,急需加深理解

来源:freebuf.com 2020-10-30 13:13:26 by: FFFcaptain328

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论