AhnLab 安全紧急响应中心 (ASEC) 的分析团队持续监控分发到易受攻击的数据库服务器的恶意软件。MySQL服务器是主要的数据库服务器之一,提供在企业或用户环境中管理大量数据的功能。通常,在Windows环境中,主要安装MS-SQL作为数据库服务,而在Linux环境中,则使用MySQL和PostgreSQL等数据库服务。然而,尽管不像 MS-SQL 服务器那样频繁,但也有 MySQL 服务器安装在 Windows 上的情况,因为 MySQL 等 DBMS 服务也支持 Windows 环境。因此,针对 Windows 环境中运行的 MySQL 服务器的攻击不断被发现。
根据我们的 AhnLab 智能防御 (ASD) 日志中的信息,大多数针对易受攻击的 MySQL 服务器的恶意软件菌株似乎都是 Gh0st RAT 的变体。值得注意的是,除了这些 Gh0st RAT 变体之外,各种其他类型的恶意软件也可能被利用。例如,之前的 ASEC 博客文章报道了涉及使用 AsyncRAT 的事件。
ASEC 分析团队最近发现 Ddostf DDoS 僵尸程序被安装在易受攻击的 MySQL 服务器上。Ddostf 是一种 DDoS 机器人,能够对特定目标进行分布式拒绝服务 (DDoS) 攻击,于 2016 年左右首次被发现。据了解,它是在中国开发的,以支持 Windows 和 Linux 环境而闻名。
图 1. 通过 MySQL 服务安装 Ddostf DDoS 机器人
1.针对MySQL服务器的攻击
威胁行为者将通过扫描识别潜在的攻击目标。在可公开访问的系统中,扫描器会搜索使用 3306/TCP 端口的系统,该端口由 MySQL 服务器使用。之后,威胁行为者可以对系统使用暴力或字典攻击。如果系统对其帐户凭据管理不善,威胁行为者就可以访问管理员帐户凭据。当然,如果系统运行的是存在漏洞的未修补版本,威胁者可以利用这些漏洞来执行命令,而无需上述过程。
通常,MS-SQL 环境中提供了多种执行操作系统命令的方法。最知名的命令是xp_cmdshell,还有其他各种方法,例如OLE存储过程、MS-SQL代理作业、扩展存储过程和CLR存储过程。能够使用操作系统命令(例如CMD或PowerShell)执行用户的命令意味着可以获得对系统的控制。
与 MS-SQL 不同,MySQL 不支持直接操作系统命令,例如 xp_cmdshell。但是,它可以使用称为用户定义函数 (UDF) 的功能来最终允许威胁参与者执行命令。
图2. Metasploit的UDF攻击特征
2.UDF (用户定义函数)DLL
UDF 是 DLL 中所需功能的实现,威胁行为者将包含恶意命令的 DLL 作为 UDF 库上传到受感染的系统。然后他们将此 DLL 加载到 MySQL 服务器中。随后,他们可以通过执行定义的命令向受感染的系统传递恶意命令。
这个过程类似于MS-SQL服务器的CLR SqlShell。 [3]与可以安装在 Web 服务器上的 WebShell 一样,SqlShell 是一种恶意软件菌株,安装在 MS-SQL 服务器上后支持各种功能,例如执行来自威胁行为者的命令并执行各种恶意行为。
MS-SQL 服务器支持一种称为 CLR 存储过程的方法,该方法允许使用扩展功能,而 SqlShell 是使用此方法创建的 DLL。CLR 存储过程是威胁行为者可用来在 MS-SQL 服务器中与 xp_cmdshell 命令一起执行恶意命令的主要方法之一。威胁行为者主要使用 SqlShell 作为安装终极恶意软件的手段,例如 CoinMiners 或勒索软件。
检查实际目标系统的感染日志表明,除了 Ddostf 之外,受感染系统上还安装了恶意 UDF DLL(如下所示)。当然,早在威胁行为者决定使用它们安装 Ddostf DDoS 机器人之前,这些 UDF DLL 就已被用于各种攻击。因此,威胁行为者在攻击管理不善的 MySQL 服务器的过程中利用 UDF 恶意软件作为工具。
图 3. 显示使用 Ddostf 安装 UDF DLL 的日志
此 UDF 恶意软件支持从作为参数传递的 URL 下载文件或执行威胁参与者提供的命令的功能。据推测,威胁行为者利用 UDF DLL 提供的 downloader() 函数从外部源下载 Ddostf,然后使用 cmdshelv() 函数执行下载的 Ddostf。此外,除了命令执行之外,cmdshelv()函数还支持将执行结果输出为“cmd.tmp”文件,然后将读取并执行该文件的命令结果传输到C&C服务器。
图 4. UDF 库支持的功能
3、Ddostf DDoS Bot分析
Ddostf有可以针对Linux环境的ELF格式和可以在Windows环境下运行的PE格式。在这里,我们将介绍针对 Windows 环境的攻击中使用的 PE 格式。Ddostf 的一个主要特征是在其二进制文件中包含“ddos.tf”字符串,如下所示。
图 5. 二进制文件中包含的 ddos.tf 字符串
当执行 Ddostf 时,它首先将自身复制到 %SystemRoot% 目录中的随机名称下,然后将自身注册为服务。
图 6. Ddostf DDoS Bot 注册为服务
然后,它解密加密的C&C服务器URL字符串“C8AF3371ACB79AA6119CB33C80C40AE544F319”,以获取并连接到实际的C&C服务器URL。此外,恶意软件创建者还在实际代码例程中间插入了无意义的 printf() 函数以阻碍分析。初始连接后,它会从受感染的系统收集基本信息并将其发送到 C&C 服务器。
图 7. C&C 服务器连接例程
表 1. 发送到 C&C 服务器的系统信息
图8.传输到C&C服务器的系统信息
此外,在系统信息的初始传输过程中,还会发送值0x0000000B作为签名。然而,在C&C服务器命令中,当发送系统当前状态信息(例如网络速度、CPU使用率)时,使用值0x0000000A。
图 9. 传输系统状态信息的例程
表 2. 发送到 C&C 服务器的状态信息
当受感染系统的信息传输到C&C服务器时,C&C服务器以0x000000C4的大小进行响应。该响应不仅包含命令,还包含数据。例如,在特定的 DDoS 攻击方法或下载命令的情况下,它包括下载 URL。
表 3. 从 C&C 服务器接收的命令结构
虽然支持的命令只有 6 个,但 DDoS 攻击内部包含多种方法,包括 SYN Flood、UDP Flood、HTTP GET/POST Flood 攻击等。
图 10. 攻击中使用的各种用户代理字符串
表 4. 支持的命令列表
尽管 Ddostf 支持的大多数命令与典型 DDoS 机器人的命令类似,但 Ddostf 的一个显着特征是它能够连接到从 C&C 服务器新接收到的地址并在一定时间内执行命令。如下所示,新的C&C服务器上只能执行DDoS命令。这意味着 Ddostf 威胁参与者可以感染众多系统,然后将 DDoS 攻击作为服务出售。
图 11. 仅支持的 DDoS 攻击命令
4.结论
针对数据库服务器(MS-SQL、MySQL 服务器)的典型攻击包括针对帐户凭据管理不善的系统的暴力攻击和字典攻击。尽管这些方法似乎构成了大多数攻击,但也可能存在针对具有未修补漏洞的系统的漏洞攻击。
因此,管理员应该为自己的帐户使用难以猜测的密码,并定期更改密码,以保护数据库服务器免受暴力攻击和字典攻击。他们还应该应用最新的补丁来防止漏洞攻击。管理员还应该使用安全程序(例如针对外部可访问数据库服务器的防火墙)来限制来自外部威胁行为者的访问。如果不提前采取上述措施,可能会发生威胁行为者和恶意软件的持续感染。
文件检测
– Trojan/Win32.Nitol.R215641 (2017.12.18.00)
– Downloader/Win32.Agent.R24480 (2012.05.08.03)
行为检测
– 恶意软件/MDP.Behavior.M29
– 恶意软件/MDP.Behavior.M1091
– 持久性/MDP.Event.M29
– 恶意软件/MDP.Manipulate.M491
– 恶意软件/MDP.AutoRun.M1038
IOC
MD5
– 6e7e26a6e237f84b51bc61aa7dff5680:Ddostf(11188.exe)
– fe550baf5205d4b2503ad0d48014fccf:UDF DLL(amd.dll)
C&C URL
– 136.243.103[.]119:6681