Locky勒索病毒工作原理深度解析:被加密文件如何恢复?
本文详细剖析了曾经肆虐全球的Locky勒索软件的工作原理。我们将深入探讨其感染前的环境检查、与C&C服务器的通信机制、目标文件扫描策略、核心的AES+RSA混合加密流程,以及其如何通过删除卷影副本来阻碍系统恢复。
一. 初始化与通信
当Locky首次在受害者主机执行时,其行为具有明确的逻辑和步骤:
-
环境规避
首先,它会检查操作系统的语言设置。如果检测到系统语言为俄语,程序将终止执行,从而避免感染特定地区的用户。
-
生成受害者ID
若非俄语环境,Locky会获取Windows安装卷的GUID(全局唯一标识符),计算其MD5哈希值,并取前16个字符作为受害者的唯一ID。
-
C&C服务器通信
程序会连接到其硬编码或动态生成的命令与控制(C&C)服务器,并发送该ID。
-
获取公钥
C&C服务器在接收到ID后,会返回一个专为此受害者生成的RSA公钥。这个公钥是整个加密体系的关键一环,用于后续加密对称密钥。
同时,Locky会创建一个 Windows 注册表密钥,用于存储配置信息。该注册表密钥位于HKCU\Software[随机名称]。
二. 文件扫描与目标锁定
Locky会全面扫描计算机上的所有可访问存储,包括:
- 本地硬盘驱动器 (C:, D:)
- 可移动驱动器 (U盘, 移动硬盘)
- 已映射的网络驱动器 (Z:)
- 未映射但可访问的网络共享 (\server\share)
其目标文件类型极为广泛,涵盖了从日常办公文档、图片、音视频到数据库文件、虚拟机磁盘和代码源文件的几乎所有有价值的数据。以下是部分目标扩展名:
.doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf, .jpg, .png, .raw, .zip, .rar, .sql, .mdf, .vmdk, .java, .cpp,.mid, .wma, .flv, .mkv, .mov, .avi, .asf, .mpeg, .vob, .mpg, .wmv, .fla, .swf, .wav, .qcow2, .vdi, .vmdk, .vmx, .gpg, .aes, .ARC, .PAQ, .tar.bz2, .tbk, .bak, .tar, .tgz, .rar, .zip, .djv, .djvu, .svg, .bmp, .png, .gif, .raw, .cgm, .jpeg, .jpg, .tif, .tiff, .NEF, .psd, .cmd, .bat, .class, .jar, .java, .asp, .brd, .sch, .dch, .dip, .vbs, .asm, .pas, .cpp, .php, .ldf, .mdf, .ibd, .MYI, .MYD, .frm, .odb, .dbf, .mdb, .SQLITEDB, .SQLITE3, .asc, .lay6, .lay, .ms11 (Security copy), .sldm, .sldx, .ppsm, .ppsx, .ppam, .docb, .mml, .sxm, .otg, .odg, .uop, .potx, .potm, .pptx, .pptm, .std, .sxd, .pot, .pps, .sti, .sxi, .otp, .odp, .wks, .xltx, .xltm, .xlsb, .slk, .xlw, .xlt, .xlm, .xlc, .dif, .stc, .sxc, .ots, .ods, .hwp, .dotm, .dotx, .docm, .DOT, .max, .xml, .txt, .CSV, .uot, .RTF, .pdf,.stw, .sxw, .ott, .odt, .pem, .csr, .crt, .key, wallet.dat
三. 核心加密流程:AES + RSA 混合加密
Locky采用了成熟的混合加密方案,以确保加密的高效性和密钥的安全性:
-
生成对称密钥
对于每一个待加密的文件,Locky都会在内存中生成一个临时的、唯一的AES-128对称密钥。
-
文件加密
使用这个AES密钥对文件内容进行加密。AES加密速度快,适合处理大文件。
-
对称密钥加密
将刚刚用于加密文件的AES密钥,使用从C&C服务器获取的RSA公钥进行加密。
-
数据写入
最后,将RSA加密后的AES密钥和AES加密后的文件内容一并写入新文件。
这个流程意味着,没有对应的RSA私钥(该私钥只存放在攻击者的服务器上),就无法解密AES密钥,进而无法恢复任何文件。
四. 文件重命名与版本迭代
加密完成后,文件会被重命名。Locky的命名规则和扩展名经历了多次演变,许多版本以神话人物命名。
扩展名 文件格式示例
.locky A65091F1B14A911F0DD0E81ED3029F08.locky
.zepto 024BCD33-41D1-ACD3-3EEA-84083E322DFA.zepto
.odin 11111111--1111--1111--FC8BB0BA--5FE9D9C2B69A.odin
.thor 024BCD33-41D1-ACD3-3EEA-84083E322DFA.thor
.osiris 11111111--1111--1111--FC8BB0BA--5FE9D9C2B69A.osiris
.ykcol E87091F1-D24A-922B-00F6B112-72BB7EA6EADF.asasin
.shit 11111111--1111--1111--FC8BB0BA--5FE9D9C2B69A.shit
.aesir 016CCB88-61B1-ACB8-8FFA-86088F811BFA.aesir
.zzzzz 016CCB88-61B1-ACB8-8FFA-86088F811BFA.zzzzz
.loptr 11111111--1111--1111--FC8BB0BA--5FE9D9C2B69A.loptr
.lukitus E87091F1-D24A-922B-00F6B112-72BB7EA6EADF.lukitus.
五. 阻碍恢复与勒索通知
为彻底切断用户的恢复路径,Locky会执行以下命令,尝试删除系统中的所有卷影副本(Shadow Copies):
vssadmin.exe Delete Shadows /All /Quiet
最后,它会在桌面创建勒索信文件 (_HELP_instructions.html) 和更改Windows壁纸 (_HELP_instructions.bmp),内容包含受害者ID、赎金支付教程以及指向Tor网络的解密网站链接。
勒索信示例

赎金信示例文本:

总结与防御策略
Locky勒索软件是一个设计精密的恶意程序,其混合加密机制理论上无法被破解。了解其工作原理有助于我们制定更有效的防御策略:
- 数据备份 (3-2-1原则):至少3个副本,2种不同介质,1个异地存放。这是对抗勒索软件最根本的手段。
- 权限最小化原则:不要使用管理员账户进行日常操作。限制网络共享的写入权限。
- 邮件安全网关:绝大多数勒索软件通过钓鱼邮件传播,过滤恶意附件和链接至关重要。
- 安全软件与补丁:保持操作系统和应用软件(尤其是Office、Adobe)的更新,开启反病毒软件的行为监控功能。
- 禁用VSSAdmin:对于普通用户,可以通过组策略限制vssadmin.exe的执行,增加一层保护。