基本配置
从VulnHub下载靶机DC2,其基本信息如下:
攻击机使用Kali2020.3
信息收集
首先,由于DC2使用了NAT接入了虚拟局域网,那么第一件事就是扫描局域网得到其IP地址。Kali攻击机的IP地址如下:
nmap扫描192.168.187.0/24网段:
发现dc2IP地址为192.168.187.134。发现80端口打开,先访问看看,发现解析了域名但是无法访问,暂时搁置。
进行进一步的扫描:
发现Did not follow redirect to http://dc-2,那么就去手动配置/etc/hosts文件:
再次访问,得到flag1
使用Wappalyzer插件得到网站基本信息:
信息收集基本告一段落
密码爆破
根据flag1的提示,下一步似乎需要对网站的用户进行密码爆破,那么首先需要找到网站的登陆界面在哪里,使用dirb扫描http://dc-2
随便点一个带admin的链接,就会重定向到登陆界面http://dc-2/wp-login.php。
根据flag1的提示,下一步就使用cewl工具制作密码字典并写进dc2pass.txt备用:
做好了密码字典后,接下来就需要获得想要爆破的用户名。由于网站使用WordPress,可以使用wpscan工具进行扫描,使用-e u选项枚举用户:
找到三个用户admin、jerry和tom,把这三个用户存在文件dc2users.txt里等会爆破。
接下来用wpscan进行爆破:
wpscan -P dc2pass.txt -U dc2users.txt --url http://dc-2
得到了jerry和tom的密码:
分别尝试登陆以获取有用的信息,从jerry登录可以在pages页面看到flag2:
进入靶机
从80端口进入的尝试似乎到此为止了,那么接下来根据flag2的提示,或许可以从其他方向进行突破。回想起之前在进一步扫描时发现DC2还开放了7744端口来响应ssh连接,考虑到jerry和tom两个用户似乎安全意识不高,那么接下来先尝试用网站的密码进行ssh登录吧。
经过尝试,发现tom用户可以直接登录:
横向渗透
首先先看看当前目录在哪以及当前目录下的内容:
发现了flag3.txt,cat一下发现了问题:
说明现在的shell应该是有限制的,那再试试vi能不能打开,结果vi能够使用,拿到了flag3:
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:
提权
现在剩下最后一个flag没有得到,按照之前DC1的经验,这个flag应该在/root目录下,那么现在需要做的就是提权。
flag4提到了git,说不定可以从这里进行提权。
先查看jerry可以免密码以root权限执行哪些指令:
正好有一个git,那么提权多半是从这里下手了。
查阅资料,得知git中有个-p选项是通过分页显示的方式显示git的帮助信息,实现这种分页的方式是通过more指令完成的,而more指令具有执行命令的功能。只需在末尾输入![想执行的命令]即可执行该条命令。
那么下面就利用这一点进行提权:
sudo git -p #首先进入显示界面
!/bin/bash #在显示界面最后输入指令
获得了root权限!
接下来来到/root目录下,得到最终的flag:
总结
通过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
请登录后发表评论
注册