Infection Monkey是一款由以色列安全公司GuardiCore在2016黑帽大会上发布的数据中心安全检测工具,其主要用于数据中心边界及内部服务器安全性的自动化检测。该工具在架构上,则分为Monkey(扫描及漏洞利用端)以及C&C服务器(相当于reporter,但仅仅只是用于收集monkey探测的信息)。
工具特性
1.多种传播攻击技术:
默认口令攻击
常用exp攻击
2.多种exp利用途径:
SSH
SMB
RDP
WMI
Shellshock
3.C&C服务器端有着专门的可视化数据中心UI界面。
运行平台
C&C服务器在Ubuntu 14.04、15.04和16.04能完美运行。
Monkey在Windows XP、8.1和10上测试过,Linux版本已经在Ubuntu 14.04和15.10上测试过。
安装指导
大家如果需要这款工具的话,可以下载相应的debian包,根据我们的博客上的指南进行安装。另外,设置C&C服务器的方法请看这里。如果你想要自行编译二进制文件,可以根据指南利用源去进行build。
初始配置
无论你是直接下载或者编译源代码,Infection Monkey都由4个可执行文件组成(多平台),另外还附加一个默认的配置文件。
Monkey配置存储在两个地方:
1.Monkey的配置文件(默认config.bin),这个配置文件必须包括C&C服务器的地址。
2.在成功连接到C&C服务器后,Monkey会从上面下载一个新的配置文件(默认config.bin)来覆盖原来的配置。我们可以通过C&C服务器那边的主控端的UI界面,来修改默认的配置文件。
在上面两种情况下,命令服务器的主机名应该改为指向c&c服务器(注意这不需要马上连接)。此外,为了提升Monkey传播攻击的成功率,你可以使用证书和常用的用户名进行预配置。
两种配置方法都使用了JSON格式来指定选项,请参阅表格来阅读更多的内容。
运行CC服务器
为了运行C&C服务器,我们需要在特定的服务器上安装我们infected Monkey的debian包,而初始的Monkey机器并不需要直连到C&C服务器。
释放Monkey
当配置完成后,咱们应该运行:
./monkey-linux-64 m0nk3y -c config.bin -s 41.50.73.31:5000
这条命令,可以在网络中多点同时运行。
命令行选项包括:
-c, –config: 指定JSON配置文件,可以用来覆盖默认的配置
-p, –parent: 设置monkey的父uuid,以便C&C服务器端更好地分类识别monkey
-t, –tunnel: ip:port, 为Monkey设置默认连接C&C服务器的隧道
-d, –depth : 设置Monkey当前的检测深度
Monkey是如何工作的
1.唤醒与C&C服务器的连接,向C&C服务器发送当前机器的基本信息,以及Monkey使用的配置:
首次尝试直接连接到C&C服务器
如果直连失败,它会尝试通过隧道进行连接(默认隧道,或者多播请求其他Monkey响应得到的隧道)
如果没有连上C&C服务器,Monkey会自行运行
2.如果当前机器上有防火墙,它会尝试添加规则来允许我们的流量通过(支持win xp和win 7+的防火墙)。
3.向其他Monkey开放隧道(如果自身能连接到C&C服务器):
检查防火墙是否允许监听套接字(如果我们没能在windows防火墙添加流量通行规则,隧道是不会创建成功的)
响应其他Monkey寻找隧道的多播请求
4.运行exp会话,会根据配置启动N个会话:
连接到C&C服务器,获取最新的配置
根据配置扫描IP段
在配置里定义SMBFinger, SSHFinger等指纹库,尝试分析各个主机的响应包,进而对它们进行指纹识别
尝试在发现的主机上,根据指纹尝试exp攻击
检索出适合目标主机的exp
各个exp都会根据指纹识别的数据,对各主机进行专项打击
如果没有找到合适的,exp就会利用失败
exp利用成功的主机,在接下来的攻击里会忽略掉
会跳过所有exp都利用失败的主机(可以在配置里禁用)
5.会在monkey使用隧道清理添加的防火墙规则后,将隧道关闭。
下载相关
下载地址可以参考官方的下载页,也可以直接去Github上下载。
*参考来源:Github,FB小编dawner编译,转载请注明来自FreeBuf(FreeBuf.COM)
本文转自d1net(转载)