vulnhub-DC2
flag1:
首先先看ip:ifconfig
nmap扫描网段,找到靶机:
对靶机就行扫描:
直接访问ip发现无法访问,查了下需要添加域名解析打开/etc/hosts文件,添加192.168.201.153 dc-2:/etc/init.d/networking restart
重启服务
再次访问发现可以访问了:
并且可以直接找到flag1:
flag2:
它提示说需要用到cewl工具:
- cewl是一个密码字典生成工具。它是一个用ruby编写的应用程序,可以抓取指定的URL,到指定的深度,然后返回单词列表。这个单词列表可以作为密码字典,用于密码破解
cewl dc-2 -w pwds.txt
将网站首页下的关键词生成密码字典,并在当前目录创建并保存pwds.txt文件wpscan --url dc-2 -e u
可以查看网站用户,我们将得到的结果保存到user.txtwpscan --url http://dc-2/ -U user.txt -P pwds.txt
如图爆破出账号密码:
用disearch工具进行扫描,可以扫到它的后台登入界面:
用Jerry账号登入:
而后我们可以查找到flag2:
flag3:
rbash逃逸
它提醒除了爆破,我们还有另外一种方法可以用,这时联想到前面端口扫描得到的7744端口可以用ssh进行远程链接,之前没有用到tom账号,于是这次用tom去链接:
ls看一下目录内容,发现有flag3.txt文件,可是由于rbash限制了权限,不能用cat命令。
用以下命令绕过:
BASH_CMDS[a]=/bin/sh;a
注:把/bin/bash给a变量`export PATH=$PATH:/bin/
注:将/bin 作为PATH环境变量导出export PATH=$PATH:/usr/bin
注:将/usr/bin作为PATH环境变量导出
linux的环境变量理解
意思是在使用命令时,会扩展了rbash能够运行的命令的范围,因为你现在可以在/bin/和/usr/bin目录中找到并执行更多的命令。
而Linux的PATH环境变量是一个由冒号分隔的目录列表,这些目录将被Shell用于查找可执行命令。当您在终端输入一个命令时,Shell会在这些目录中搜索可执行文件来执行该命令。
至于为什么要创建环境变量,是因为当前的环境变量为/home/tom/usr/bin,所以shell被限制了,而此方法就是通过创建一个新的环境变量,然后重新添加新的变量值,即可绕过
这时在使用cat命令就可以读取flag3.txt文件
这里还可以通过vi命令读取:
flag4:
根据提示,我们要切换Jerry账户,并且可以在Jerry的文件下找到flag4文件:
thefinalflag:
git提权
- 原理:git存在缓冲区溢出漏洞,在使用
sudo git -p help
时,即可提权(暂时不知道原理,只知道可能是这个漏洞,懂了在来补)
根据提示用git提权,在这之前假如没有提示,我们可以通过sudo -l
来查看哪些命令具有root权限:
- sudo -l命令用于列出当前用户可执行与无法执行的指令。这个命令将显示用户可以以root权限运行的命令列表。实际上,这个命令是查看/etc/sudoers文件中配置的,该文件记录了哪些用户可以运行哪些命令。
输入!/bin/bash回车即可发现已经提权root权限: