搭建环境
靶场下载地址:链接:https://pan.baidu.com/s/1uil0Imx0qAfFjxgK4INwhQ
提取码:1234
虚拟机环境下载地址:链接:https://pan.baidu.com/s/1yCqLQKW37TASQqCuZtoLEQ
提取码:1234
基本环境准备好之后,部署DC2靶场,打开VMware之后,点击文件 -> 打开 -> 选择下载好的DC2中的DC-2.ova,输入虚拟机名称和选择存储路径,点击导入,一般会弹出导入失败的对话框,不用理,直接点击重试。导入完成之后,配置网络,这里得注意,DC2所处的网段跟kali所处的网段得互通,双击网络适配器,这里我选择的是桥接模式,kali和DC2都是桥接模式。
配置好之后,打开kali和DC2
信息收集
kali打开终端,由于kali和DC1都是桥接模式,所以属于同一网站段,使用arp-scan -l,查看网段所有的主机。得到DC2的IP地址。(172.163.1.46)
使用nmap对DC2开放的端口进行扫描,nmap -A -p- 172.163.1.46
-A:选定用于使用进攻性方式扫描
-p :扫描指定的端口
可以发现开放了80端口,网页服务器但是可以看出做了域名解析,所以需要在本地即kali的配置文件/etc/hosts文件写入172.163.1.46 dc-2即可完成本地域名解析。
浏览器输入域名,进入网站,可以看出网站是由WordPress内容管理系统搭建的。还开放了7744端口,可以知道使用协议是ssh,所以可以远程连接。
漏洞分析
查看flag1中的内容,cewl是一个网页关键字抓取工具(抓取网页上的关键字,作为密码字典),WordPress有一个kali自带扫描工具wpscan可以爆破网站的用户名(WPScan是专门检查WordPress网站漏洞的工具,它可以全面检查wp网站的漏洞,),所以想到了用关键字作为密码继续进行爆破。
在根目录下创建dc文件夹:mkdir /dc/dc2 cd /dc/dc2(目录随便,我是为了方便,新建了DC目录)
漏洞利用
wpscan --url dc-2 -e u可以查看网站用户,得出结果有三个用户admin,jerry,tom,将这三个用户保存在us.txt文件中,在dc2中vim dc2_us.txt,将得到的用户名写入dc2_us,txt中。
cewl dc-2 -w pds.txt将网站首页下的关键词生成密码字典pds.txt.
wpscan --url dc-2 -U us.txt -P pds.txt爆破口令。
爆破出两个口令。WordPrss默认后台路径为wp-admin。在url栏输入dc-2/wp-admin。登陆jerry/adipiscing。直接发现flag2.
根据提示不能从WordPrss上面找到捷径,这是时想到了还有7744端口,因为它是ssh协议所以直接尝试ssh连接。由于端口号不是22,所以需要用-p 7744指定端口号。ssh tom@172.163.1.46 -p 7744
除了ls,其他命令都不能使用,虽然发现了flag3.txt,但是读取不了,受到rbash环境的限制,需要绕过rbash限制(https://blog.csdn.net/weixin_43705814/article/details/111879362)。执行以下命令进行绕过
BASH_CMDS[a]=/bin/sh;a 注:把/bin/bash给a变量
export PATH=$PATH:/bin/ 注:将/bin作为PATH环境变量导出
export PATH=$PATH:/usr/bin 著:将/usr/bin作为PATH环境变量导出
成功拿到flag3.txt
根据flag3的提示需要su jerry/adipiscing。进去之后在tom目录下,cd /jerry切换到jerry目录下,直接在jerry根目录下拿到flag4.
提权
git提权,根据提示需要拿到root权限执行命令sudo -l发现git不需要命令具有root权限执行。于是强制进入git交互模式。输入命令sudo git help config。在里面直接输入!/bin/bash按回车。id查看当前用户为root,切换到/root,拿到final-flag.txt。