近日一次有针对性的攻击使台湾的几个组织感染了一种新的勒索软件,我们将其命名为ColdLock。由于勒索软件是针对数据库和电子邮件服务器进行加密,因此这种攻击具有较强破坏性。
我们收集的信息表明,该攻击于5月初开始袭击多个组织机构。对恶意软件的分析表明,ColdLock与两个先前已知的勒索软件系列特别是Lockergoga,Freezing和EDA2勒索软件之间存在相似之处。还没有迹象表明这种攻击袭击了目标组织之外的任何其他组织。
1. 样本分析
我们目前还不知道此威胁是如何进入潜在受害者网络的。但是,我们认为,攻击者以某种方式获得了对目标组织的Active Directory服务器的访问权限。至此,他们能够设置组策略,该组策略导致下载勒索软件文件并在受影响的域内的计算机上运行。
payload以.NET可执行文件(.DLL文件)的形式存在,该文件已使用ConfuserEx 包装器进行了包装/保护 。
https://yck1509.github.io/ConfuserEx/
它使用PowerShell对.NET可执行文件的反射加载来运行上述.DLL文件:
图1. .DLL文件的反射加载
它还包含两项检查,以验证其是否正在运行。首先,它检查勒索文件所使用的%System Root%\ ProgramData \ readme.tmp的存在 。此检查可防止系统受到相同威胁的再次感染:
图2.勒索文件检查
它会检查系统时钟。它只会在一天的下午12:10或之后运行;如果时间更早,它将休眠15秒钟,直到超过上述时间为止。
图3.代码中的定时炸弹
2. 加密分析
在加密任何文件之前,勒索软件还执行某些准备程序。首先,如果服务正在运行,它将终止系统上的多个服务,以防止违反文件访问权限。这些服务是:
- mariadb
- msexchangeis
- mssql
- mysql
- oracleservice
这些是各种数据库以及Exchange邮件服务器使用的服务名称,它还将终止 Outlook 进程。
图4.服务终止
它还会检查系统上运行的Windows版本。如果运行的是Windows 10,它将执行多个Windows 10特定的例程。Windows Defender已禁用,并且无法将反馈/恶意软件样本发送给Microsoft,推送通知也被禁用。
攻击我国台湾地区多个组织机构" src="https://img.4hou.com/uploads/ueditor/php/upload/image/20200508/1588904018184611.png" width="983" height="282">
图5.禁用Windows Defender
实际的加密例程有点不寻常,它将避免加密以下目录:
- %System Root%\Program Files
- %System Root%\Program Files (x86)
- %System Root%\ProgramData
- %System Root%\Users\all users
- %System Root%\Users\default
- {malware directory}
- {drive letter}:\System Volume Information
- {drive letter}:$Recycle.bin
但是,以下目录仍将被加密:
- %System Root%\ProgramData\Microsoft\Windows\Start Menu
- %System Root%\Program Files\Microsoft\Exchange Server
- %System Root%\Program Files (x86)\Microsoft\Exchange Server
- (Program Files, Program Files (x86), and ProgramData) 目录包含以下任何字符串都会被加密:
- sql
- mariadb
- oracle
其他目录中的文件是否被加密取决于三个条件,即:
- 目标目录上的文件数少于100
- 目录的最后写入时间比2018年1月1日晚。
- 目录名称不应包含以下任何字符串:
- git
- appdata
- cache
- image
- lib
- log
- logs
- microsoft
- reference
- res
- resource
- script
- setup
- skin
- temp
- theme
- third_party
- thirdparty
如果满足上述所有条件,它将加密给定目录中的所有文件,但扩展名为以下文件的文件不会被加密:
- .avi
- .dll
- .gif
- .iso
- .m2ts
- .mkv
- .mov
- .mp3
- .msi
- .ocx
- .tmp
- .wmv
在其他情况下它将仅加密具有以下扩展名的文件:
- .7z
- .aspx
- .bak
- .cpp
- .csv
- .doc
- .docx
- .gz
- .hwp
- .java
- .jpg
- .jsp
- .lnk
- .odt
- .one
- .php
- .ppt
- .pptx
- .pst
- .rar
- .sh
- .sql
- .txt
- .xls
- .xlsx
- .xml
- .zip
图6.白名单/黑名单代码
加密过程在CBC模式下使用AES函数。它使用salt和密钥生成所需的密钥和初始化向量(IV);前者嵌入在代码中,而后者则使用随机生成的32字节长字符串的SHA-256哈希值动态生成。然后,使用硬编码的公共RSA密钥对此进行加密,然后将其嵌入勒索记录中,加密的文件具有 .locked 扩展名。
图7. AES加密代码
图8.密钥生成
勒索文件存储在系统的各个位置,即:
- %Desktop%\How To Unlock Files.Txt
- %System Root%\ProgramData\readme.tmp
- %User Startup%\How To Unlock Files.Txt
- {Encrypted Drive}:\How To Unlock Files.Txt
该说明的内容与其他勒索软件说明类似:
图9.勒索文件
然后,勒索软件会为所有用户更改系统背景,包含一条读取文本文件的指令,通过更改几个注册表设置来实现此操作。
图10.修改后的系统背景
3. 关联分析
乍一看,这种威胁似乎与Lockergoga有关,因为它们共享加密文件(.locked)的相同扩展名。但是,其他勒索软件系列也使用此扩展名。存在与Freeze勒索软件系列更合理的链接,它具有在网络(受损的AD服务器)中传播的类似方法,反射注入方法和内部模块体系结构。
该代码还与开源EDA2勒索软件具有相似之处。
4. IOCs