Conti源码分析,天融信勒索解密工具已就位!
病毒分析
(上滑即可查看更多)
Conti勒索病毒v3版本的参数调用如下:
静态免杀
在32位系统中使用FS寄存器获取到PEB地址后,通过遍历内核结构体的链表并比较哈希值获取kernel32.dll的基地址。遍历kernel32.dll等系统模块的导出表名字并计算MurmurHash2A 哈希,通过查询嵌入在二进制PE中的MurmurHash2A哈希值寻找LoadLibraryA等必需的库函数地址。MurmurHash2A算法,这是一种众所周知的极快的非加密散列,适用于基于散列的查找,其项目开源地址为
https://github.com/abrandoned/murmur2/blob/master/MurmurHash2.c
反调试反HOOK
反HOOK的函数工作原理:通过GetModuleFileNameW 函数获取模块的路径,该路径将用于CreateFile函数创建句柄,然后使用CreateFileMapping和MapViewOfFile函数将系统库再次映射到另一个内存部分,这样断点就不会起作用。通过遍历导出表来获取函数的地址,判断获取到的地址的OPCODE反汇编是否为jmp汇编指令,如果被HOOK最终通过CopyMemory函数修复被HOOK的函数地址。
混淆
字符串混淆
使用OBFA()和OBFW()函数进行宏替换字符串混淆。“OBFA”用于 ASCII 字符串,“OBFW”用于 UNICODE 字符串。函数中使用扩展欧几里得算法Extended Euclidean,每次都使用变化的数值生成混淆后的字符串。
指令混淆
Morphcode是宏替换混淆指令函数,混淆原理是使用MetaRandom2<0,0x7FFFFF - 1>::value随机出一个数值,然后添加分别判断它能否被2、3、4、5模整除的运算,依此添加大量无用汇编指令。功能函数
TAILQ队列处理
TAILQ队列是FreeBSD内核中的一种队列数据结构,主要用于处理队列,在一些著名的开源库中(如DPDK,libevent)有广泛的应用。线程池
在threadpool命名空间中定义了Cteate、Start、PutTask、PutFinalTask、IsActive线程操作函数。在线程池的Start函数中创建名为ThreadPoolHandler的线程函数,ThreadPoolHandler线程函数主要进行网络和文件的加密。线程数量在完全加密模式下和处理器数量相同,其他模式下是处理器数量的两倍。删除卷影副本DeleteShadowCopies函数调用wbem的流程:一、初始化COM二、设置一般的COM安全等级三、获取最初的WMI的locator四、通过IWbemLocator::ConnectServer方法连接WMI五、设置代理上的安全等级六、利用IWbemServices指针发出WMI请求七、获取请求的返回数据
核心加密算法
在遍历文件的函数中使用核心加密函数cryptor::Encrypt函数开始加密文件。在locker::GenKey方法中使用RSA公钥加密随机产生的ChaCha20算法(Salsa20加密算法的一种变体)的32字节key和8字节iv。
文件分类加密,具体针对不同的文件加密方法如下表。其中1M=1048576字节。
加密性能
在测试系统中,程序运行3分钟完成全盘加密。加密过程中有约5万个文件因为权限问题无法打开。网络共享文件加密
如果运行模式为-net或-all都会进行网络共享文件加密。在线程函数中会调用HostHandler函数来获取网络共享下其他主机的信息,如下为通过NetShareEnum函数枚举到网络共享文件夹后进行处理加密路径的代码。加密共享文件目录下的多数文件时同样会因权限问题不能进行加密,但是/User/Public/目录下的公共音视频文件基本都可以被加密。
重启系统安全模式加密
在zscaler公司的报告披露中,Conti还会以安全模式重启系统并加密文件,其基本步骤如下:一、执行命令cmd.exe /c net user <admin> /active:yes以确保该帐户已启用。然后,Conti 将尝试通过执行命令cmd.exe /c net user<admin> “”将此帐户的密码更改为空字符串。将相应的注册表值设置为在系统重新启动时以安全模式自动以管理员身份登录:
修改
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon下的注册表值设置为以下值:
AutoAdminLogon= 1DefaultUserName= <username>DefaultDomainName= <computer_name or domain_name>DefaultPassword= <password>二、Conti然后执行命令 bcedit.exe /set {current}safeboot network并通过调用 Windows API 函数ExitWindowsEx()强制系统重新启动。这将在启用网络的安全模式下启动Windows,因此Conti仍可加密网络共享上的文件。
三、Conti 在安全模式下完成文件加密后,执行命令bcedit.exe/deletevalue {current} safeboot并重新启动系统。
天融信解密工具
防护建议:
1、及时修复系统及应用漏洞,降低被Conti勒索病毒通过漏洞入侵的风险。
2、加强访问控制,关闭不必要的端口,禁用不必要的连接,降低资产风险暴露面。
3、更改系统及应用使用的默认密码,配置高强度密码认证,并定期更新密码,防止弱口令攻击。
4、可安装天融信安全产品加强防护,天融信EDR、自适应、过滤网关产品可有效防御该勒索病毒。
天融信产品防御配置
天融信EDR系统
1、通过微隔离策略加强访问控制,降低横向感染风险;
2、创建周期扫描任务,定时对主机进行全面清理,消除安全隐患;
3、开启病毒实时监测功能,可有效预防和查杀该勒索病毒;
4、开启系统加固功能,可有效拦截该勒索病毒对系统进行破坏和篡改。
天融信自适应安全防御系统
1、通过微隔离策略加强访问控制,降低横向感染风险;
2、通过风险发现功能扫描系统是否存在相关漏洞和弱口令,降低风险、减少资产暴露;
3、开启病毒实时监测功能,可有效预防和查杀该勒索病毒。
天融信下一代防火墙系统
1、通过访问控制策略关闭不必要的端口和服务,降低内网资产暴露风险;
2、开启入侵检测防御功能,防御口令类攻击手段,降低被入侵风险;
3、通过访问控制策略限制内网中探测类数据包,降低内网资产暴露和横向感染风险。
天融信过滤网关
1、升级到最新病毒特征库;
2、开启HTTP、POP3、SMTP、FTP、IMAP等协议的病毒扫描检测;
3、配置病毒检测处置策略;
4、开启日志记录和报警功能。
产品获取方式:
勒索病毒若无密钥,中招不可解密,其后果不可估量,严重威胁着政府企事业单位等各类组织机构的业务安全,稍有不慎还会扰乱社会秩序造成重大损失。作为国内网络安全的领军企业,天融信始终坚持自主创新,凭借多年技术积累和沉淀,凝结专业的安全产品、方案以及服务,为客户业务平稳运行保驾护航。
相关阅读
1、TeamTNT变种挖矿木马再活跃!天融信“云+边+端”精准防御
2、美国安局专用木马曝光,天融信边界+终端立体响应构筑防御壁垒