导语:Radware威胁研究中心新发现了一个僵尸网络DemonBot,它利用Hadoop YARN未经身份验证的远程命令执行漏洞感染Hadoop集群,用来发动DDoS攻击。
您是否正在使用Hadoop进行数据分析?如果是的话,有必要知道新的僵尸程序正在针对Hadoop集群,利用云基础架构强大的服务器发动DDoS攻击。Hadoop是一个开源分布式处理框架,用于管理在集群系统中运行的大数据应用程序。
Radware威胁研究中心正在监控和跟踪一个恶意agent,它利用Hadoop YARN未经身份验证的远程命令执行漏洞感染Hadoop集群,标识为DemonBot。
DemonBot仅通过中央服务器进行传播,并且不会暴露像基于Mirai的bot所呈现的类似蠕虫的行为。目前,Radware正在跟踪70多个活跃的漏洞利用服务器,这些服务器正在积极传播DemonBot,并且正在以每天超过100万次漏洞攻击的速度利用服务器。请注意,虽然我们目前没有找到任何证据表明DemonBot正在积极瞄准物联网设备,但Demonbot不只局限于x86 Hadoop服务器,并与大多数已知的物联网设备兼容,遵循Mirai构建原则。
这不是云基础架构服务器第一次被针对。本月早些时候,安全研究员Ankit Anubhav发现一名黑客利用了与Sora僵尸网络变种中相同Hadoop Yarn漏洞。 Hadoop集群通常是非常强大且稳定的平台,与物联网设备相比,可以单独占据更大量的DDoS流。DemonBot支持的DDoS攻击向量是UDP和TCP洪泛。
一、Hadoop YARN 漏洞利用
Radware Research一直在跟踪利用Hadoop YARN未经身份验证的远程命令执行漏洞的恶意行为者,该漏洞的PoC在今年3月首次发布(here)。YARN是一个资源协商器,是Enterprise Hadoop的先决条件,提供集群资源管理,允许多个数据处理引擎处理存储在单个平台中的数据。YARN公开了一个REST API,允许远程应用程序向集群提交新的应用程序。该漏洞利用需要两个步骤:
我们的网络记录了/ws/v1/cluster/apps/new-application的重复尝试,从9月25日开始到10月19号,每天都有超过100万次尝试。
而在本周,发出请求的唯一IP从几台服务器增长到了70多台服务器。
离线服务器的老漏洞引用了知名的Mirai变种Owari,黑客用来保护其命令和控制数据库的密码:
然而,最近我们发现Owari被一个新bot取代:
这个新的'bash'二进制文件已于10月21日添加到服务器中。同一台服务器还托管了我们期望从多平台IoT恶意软件中获得的典型shell脚本:
虽然僵尸网络带有Yet-Another-Mirai-Botnet的所有典型指标,但仔细观察二进制文件就会发现不同之处。
二、DemonBot v1 – © Self-Rep-NeTiS
逆向'bash'二进制文件显示了一些不熟悉的函数名和一个非典型字符串,它为僵尸网络代码提供了唯一的指纹:
通过pastebin档案搜索,很快就发现了一个唯一匹配的文件,该文件于9月29日被一个名为Self-Rep-NeTiS的攻击者粘贴。paste包含僵尸网络的完整源代码,被称为“DemonBot”。通过档案的进一步搜索发现了命令和控制服务器DemonCNC的源代码以及多平台bot的Python build脚本。
DemonBot.c和DemonCNC.c都有相同的签名:
三、DemonCNC
DemonBot命令和控制服务是一个独立的C程序,在中央命令和控制服务器上运行,它提供两种服务:
· Bot命令和控制监听器服务 – 允许bot从C2注册和监听新命令
· 远程访问CLI,允许僵尸网络管理员和潜在的“客户”控制僵尸网络的活动
启动C2服务需要3个参数:bot侦听器端口,线程数和远程访问CLI的端口。
远程用户的凭证以“用户名 密码”格式存储在纯文本文件“login.txt”中,每个凭证使用一行。
在使用telnet连接到远程访问CLI(演示中设置的端口为8025)后,僵尸网络向我们询问用户名和密码。如果提供的凭证与login.txt文件中的某一行匹配,则授予用户访问bit控制界面的权限。
HELP命令揭示的僵尸网络命令,将在下面关于DemonBot的部分中讨论。
四、DemonBot
DemonBot是在受感染的服务器上运行的程序,它连接到命令和控制服务器并侦听新命令。
当一个新的DemonBot启动时,它连接到C2服务器(使用IP和端口进行硬编码)。如果没有为C2服务器指定端口,则使用默认端口6982。C2连接是纯文本TCP。
成功连接后,DemonBot将以下列格式将有关受感染设备的信息发送到C2服务器:
1.Bot_ip
受DemonBot感染的设备或服务器的公共IP地址:
2.Port
22或23,取决于设备/服务器上的python或perl以及telnetd:
3.Build
“Python设备”,“Perl设备”,“Telnet设备”或“未知”,具体取决于设备服务器上Python或Perl解释器:
4.Arch
该体系结构在构建时确定,并且取决于受感染平台上的二进制文件。Arch支持的值为:x86_64 | x86_32 | Arm4 | Arm5 | Arm6 | Arm7 | Mips | Mipsel | Sh4(SuperH)| Ppc(PowerPC)| spc(Sparc)| M68k |Arc。
5.OS
基于程序包安装程序配置文件对运行bot的主机OS进行识别。Value值是“基于Debian的设备”,“基于REHL的设备”或“未知的操作系统”。
6.恶意载荷
Bot支持以下命令:
如果在逗号分隔列表中的参数中传递了多个IP,则会为每个IP开启单独的攻击进程。
<spoofit>参数用作网络掩码。如果将spoofit设置为32,则不会掩盖bot的源IP。如果将spoofit设置为小于32的数字,则每个<pollinterval>数据包在bot_ip/<spoofit>网络中生成随机IP:
STD UDP攻击使用的固定有效载荷:
IOC
· 8805830c7d28707123f96cf458c1aa41 wget
· 1bd637c0444328563c995d6497e2d5be tftp
· a89f377fcb66b88166987ae1ab82ca61 sshd
· 8b0b5a6ee30def363712e32b0878a7cb sh
· 86741291adc03a7d6ff3413617db73f5 pftp
· 3e6d58bd8f10a6320185743d6d010c4f openssh
· fc4a4608009cc24a757824ff56fd8b91 ntpd
· d80d081c40be94937a164c791b660b1f ftp
· b878de32a9142c19f1fface9a8d588fb cron
· 46a255e78d6bd3e97456b98aa4ea0228 bash
· 53f6451a939f9f744ab689168cc1e21a apache2
· 41edaeb0b52c5c7c835c4196d5fd7123 [cpu]