Vulnhub靶场渗透测试系列DC-2(wpscan使用和git提权)
靶机地址:https://www.five86.com/dc-2.html
下载靶机将其导入到VMware,然后设置网络模式为NAT模式,开启虚拟机
首先在kali机使用nmap扫描发现主机来获取靶机IP地址,如果扫不到的话需要对靶机进行一些网络设置,参考文章https://blog.csdn.net/qq_45722813/article/details/121324686
使用命令nmap -Pn 192.168.172.1/24
,主机发现的扫描工具很多,我使用的nmap,我这里扫出来如下:
命令nmap -sV -Pn -p- -A 192.168.172.141
扫描靶机操作系统,开放端口和对应服务等
发现靶机开启80端口对应Apache的http服务,还有个7744端口的ssh服务
然后在kali打开浏览器地址栏输入http://192.168.172.141
访问网页
访问失败,因为本地对其域名不能进行解析,所以要修改hosts文件,命令vim /etc/hosts
编辑hosts文件,将标记出来的这行加进去,IP是你靶机的IP地址,保存退出
再次访问靶机网页,可以打开,并发现了flag1
flag1提示我们可能需要使用cewl来爬取关键字(如用户名和密码)
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。
命令 cewl -h 查看cewl的用法。
根据提示使用cewl来爬取密码。
现在我们使用命令cewl http://dc-2/ -w pass.txt
来获取网站的可用密码,成功获取密码
现在密码有了,还需要用户名,我们从网页和源码中可以发现该网页是一个WordPress网站,所以使用wpscan来枚举网站可用用户名,命令wpscan --url http://dc-2 -e u
,发现3个用户名admin,jerry和tom
然后将三个用户名写入一个文件dc-2user.list中
使用wpscan结合cewl产生的字典文件进行爆破
找到两个对应的用户名和密码
jerry: adipiscing
tom: parturient
现在用户名和密码都有了,然后使用工具进行目录爆破,找到网站登录页面
现在在浏览器地址栏输入http://dc-2/wp-admin/
进入登录页面
使用刚才爆破到的用户名和密码进行登录先使用jerry和adipiscing登录
点击page图标,发现flag2
打开flag2可看到内容
这里flag2提示我们换一个入口,我们最开始扫描服务时发现还有一个7744端口,或许就是突破口,我们使用用户jerry和密码adipiscing
,命令ssh jerry@192.168.172.141 -p 7744
,发现不行
换一个用户,试试命令ssh tom@192.168.172.141 -p 7744
使用用户tom和密码parturient
进行连接成功
使用命令ls
查看目录和文件,发现flag3.txt,使用命令cat flag3.txt
查看文件内容,但是这个是一个rbash,即受限制的shell,只能使用一部分的命令操作
然后我们使用命令echo /home/tom/usr/bin/*
查看tom可使用的命令有哪些,发现可以使用vi命令
使用vi编辑器查看文件内容,可以看到
flag3内容的提示我们应该使用jerry用户来登录,所以我们需要绕过受限制的shell,使用命令BASH_CMDS[a]=/bin/sh; a
,然后输入/bin/bash
就绕过了受限制的shell
学习如何绕过受限制的shell可以参考这篇文章:https://www.freebuf.com/articles/system/188989.html
然后添加环境变量,命令export PATH=$PATH:/bin/
,并且现在可以直接查看flag3了
然后命令su jerry
切换到jerry用户,输入密码adipiscing
即可登录
然后使用ls
查看文件和目录发现不行,跳转到/home目录下,ls查看文件和目录,发现了jerry目录,再进入到jerry目录下,ls发现flag4.txt文件
使用命令cat flag4.txt
查看flag4.txt文件内容
根据flag4的提示这不是最后一个flag,并提示git,使用命令sudo -l
查看命令的权限和可执行情况
git需要使用root用户权限执行,所以通过git缓冲区漏洞提权,使用git -h
查看
使用这个几个命令试
sudo git -p --help
sudo git -p config
sudo git --help config
sudo git -p --help config
sudo git help config
出现可以输入内容时输入!/bin/bash
即可提权,我这里使用sudo git help config成功的
直接在该页面输入!/bin/bash
回车即可
回车即可看到提权成功
我一层一层地找flag,但是没找到然后使用命令cd
跳到根目录下发现了final-flag.txt
使用命令cat final-flag.txt
查看文件内容
到此5个flag全部找完
参考文章:
http://cn-sec.com/archives/115733.html
http://cn-sec.com/archives/204532.html