【安全通告】“私人订制”勒索软件,带你揭秘Paradise源代码
2021-07-08
一. 事件概述
近日,尊龙凯时科技CERT监测到Paradise勒索软件的源代码遭到泄露,由于目前尚且无法破解经过Paradise加密的数据,若此源代码在互联网上大范围传播,可能引起较大风波。
Paradise勒索软件源代码于6月12日在暗网某俄罗斯黑客论坛上被公开,成为继2020年Dharma之后第二个源代码遭到泄露的主流勒索软件。
二. Paradise的前世今生
1、Paradise最早被发现于2017年9月,采用勒索软件即服务(Ransomware-as-a-Service)模式进行分发,早期主要通过钓鱼邮件中的链接和附件进行传播,目标主要针对个人终端用户和小型企业,勒索信息界面如下:
2、2019年10月使用Salsa20和RSA-1024加密算法的版本(加密后缀: .paradise、.2ksys19、.p3rf0rm4、.FC)被安全厂商Emsisoft解密,并发布了解密工具:
https://www.emsisoft.com/ransomware-decryption-tools/download/paradise
3、随后Paradise运营人员发布了新版本,但2020年1月Bitdefender再次发布了针对性的解密工具:
https://labs.bitdefender.com/wp-content/uploads/downloads/paradise-ransomware-decryptor/
新版本勒索信息界面如下:
4、2020年后Paradise的活动明显减少,最后发现的样本活动时间是今年(2021)1月份,怀疑该项目可能已被废弃。
某恶意软件平台上,关于该病毒提交的统计:
2017-2020年间发布的版本统计:
Paradise:初始版本,存在加密漏洞,可被解密
Paradise .NET:一个安全的.net版本,改用RSA加密
Paradise B29:某“团队”的变种版本,只加密文件的结尾
三. 源代码分析与验证
3.1 生成器:DP_Builder
本次泄露的是Paradise勒索病毒生成器代码,使用该程序可以生成“Paradise勒索全家桶”,包括勒索程序,解密程序和私钥获取程序。
DP_Builder编译运行之后界面如下:
1:输出RSA加密向量,可以使用Generate按钮随机生成
2:加密文件后缀名(原始状态是俄文,此处进行了翻译)
3:勒索软件服务器地址,用于收集信息
4:AdminKey,与加密无关,用于区别生成器使用者的身份
填入以上字段后会将Site和AdminKey保存在Server.info文件中。下次运行Builder程序将读取该文件内容进行自动填充。
存在Server.info文件时,Builder程序界面:
1,2处为两个Email字段的文本输入窗口(推测一个email用于显示给受害者,一个用于web认证),3输入联系方式,用于License和加密文件后缀。
使用Create build功能,会依次编译生成勒索程序,解密程序和私钥获取程序。
勒索程序,解密程序和私钥获取程序,这三部分的代码保存在DP_Builder的资源文件中。每次生成时会随机生成1024bit的RSA密钥,并将私钥内置到勒索程序中,具备一定加密安全性。
生成的三个程序可以通过.Net反编译工具获取源码:
3.2 加密器:DP_Main
DP_Main.cs为勒索主程序。涉及到的功能和标准的勒索软件功能一致,主要包括:加密磁盘文件,拷贝自身到临时目录,修改注册表实现开机自启,删除磁盘卷影备份。
3.2.1 使用RSA对文件进行加密
DP_Builder程序将RSA公钥,iv值等变量硬编码在程序中。
程序启动次数统计,并尝试以管理员权限运行。
勒索程序运行时会检查是否存在之前生成的密钥文件,如果存在则直接进行加密。
如果是首次运行会创建一个新的RSA密钥对,用于加密文件操作;并且使用程序内置的RSA公钥,对新生成用于加密的RSA私钥进行加密保存。
主要代码如下,从中会发现只有首次运行时才会进行修改注册表和删除磁盘卷影备份的操作。
在SavePrivateKey函数中,对用于加密的私钥进行加密。由于解密文件需要该私钥,但是该私钥被MasterRSA公钥加密,而MasterRSA私钥又掌握在攻击者手中,从而实现勒索的目的。
3.2.2 拷贝自身并开机自启
将自身拷贝到%APPDATA%/DP/DP_Main.exe,并修改注册表实现开机自启。
3.2.3 删除磁盘卷影备份
使用CMD命令参数删除磁盘卷影备份
3.2.4 回传加密信息
之后获取磁盘信息,开始对本地文件进行加密。并且加密完成后会上传加密信息,再显示勒索文件,勒索文件的路径为%APPDATA%/DP/welldone.dp。
3.2.5 加密细节
如果被加密文件大于64KB则只加密文件尾部,否则加密全部文件数据。
勒索程序会优先对数据库目录进行加密:
并且会跳过系统和浏览器相关目录。
另外勒索程序中存在GetNetwork函数,执行了new view,new user命令,但是该函数并未被使用,推测可能用于加密网络共享文件。
注:在对密钥进行加密时,原代码使用字符串拼接的方法,会导致密钥解密错误,在分析时,将相关代码进行了修改。
3.2.6 加密效果
加密完成后释放以下文件:
在C:\Users\xxx\Documents或者C:\Program Files (x86)\DP目录释放DecryptionInfo.auth文件,保存加密文件时的RSA密钥信息。下图开头部分是被加密的私钥,私钥部分经过RSA加密,红框部分为明文公钥。
在%APPDATA%\DP拷贝程序自身,后缀名为dp的文件分别用来记录程序是否成功以管理员权限运行和是否全盘加密完成。
在与勒索程序相同路径创建id.dp文件,保存信息,该信息可能用于标识攻击者身份。
在每个文件夹中都会创建#DECRYPT MY FILES#.html文件,该文件默认为空,需要攻击者自行写入内容。
3.3 密钥解密器:DP_Keygen
该程序通过MasterRSA私钥对用于加密的RSA私钥解密,界面如下:程序运行时要保证ExtraKey.dp(由DP_Builder生成)文件与程序在相同目录下。
1:被加密的私钥数据,一般保存在感染主机的C:\Program Files (x86)\DP\DecryptionInfo.auth文件中。
2:显示解密后的RSA私钥数据(经过base64编码)
3:也可以输入受害者ID(该值可以在受害者机器中的id.dp或者被加密的文件名中获取),在线查询被加密的私钥信息,然后在本地解密显示,相关代码如下:
DP_Keygen启动后会在本地加载ExtraKey.dp文件,该文件保存MasterRSA的私钥信息。如果本地不存在,会尝试通过服务器获取。
3.4 解密器:DP_Decrypter
输入解密后的RSA私钥,点击“Check sytax of key”;确认私钥可用后,可以选择解密全盘文件,还是解密单个文件。
但是在代码中发现有趣的一点,此解密工具对“全盘解密”加了一个限制。要求密钥的第4个字符为‘t’,检测存在这个字符才可以开启全盘验证开关,解密时会将这个字符删掉。
即:受害者只有在收到攻击者提供的解密后的密钥和解密程序DP_Decrypter.exe之后,才能解密文件:
四. 勒索软件防范建议
加强企业员工安全意识培训,不轻易打开陌生邮件或运行来历不明的程序;
尽量排除危险端口对外开放,利用IPS、防火墙等设备对危险端口进行防护(445、139、3389等);
开启Windows系统防火墙,通过ACL等方式,对RDP及SMB服务访问进行加固;
通过Windows组策略配置账户锁定策略,对短时间内连续登陆失败的账户进行锁定;
加强主机账户口令复杂度及修改周期管理,并尽量排除出现通用或规律口令的情况;
修改系统管理员默认用户名,排除使用admin、administrator、test等常见用户名;
安装具备自保护的防病毒软件,防止被黑客退出或结束进程,并及时更新病毒库;
及时更新操作系统及其他应用的高危漏洞安全补丁;
定时对重要业务数据进行备份,防止数据破坏或丢失。
声明
本安全公告仅用来描述可能存在的安全问题,尊龙凯时科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,尊龙凯时科技以及安全公告作者不为此承担任何责任。
尊龙凯时科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经尊龙凯时科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。