Loading
0

服务器的神秘来客:XTBL敲诈者木马技术分析

图13 产生两组密钥
密钥块大小为184字节,前32字节存放RC4加密后的随机数密钥,该密钥用于之后加密文档。为了加强随机数的随机性,程序以系统时间作种生成随机数作为循环次数,每次异或地址0x4326F0的值与系统时间后求其SHA-1值,并将最终所得随机数经RC4加密得到密钥。

图14 产生RC4加密的随机数密钥
密钥块第33字节起存放系统序列号,用作服务器的唯一标识符。之后的128字节存放RSA加密后的随机数密钥,而RSA公钥的SHA-1值则存放在最末端的20字节中。

图15 密钥块生成过程

图16 密钥块分布图
密钥块产生之后,程序会将密钥块中部分内容以及其他系统信息以POST的方式发送至黑客的服务器上。每个字段的标识及参数值如下表所示。

表1 发送的数据
除了在加密文件之前发送数据,在加密完成后也会再次向黑客服务器发送数据,两者用函数最后一个参数作区别,当最后一个参数为0时表示即将进行加密,为1时表示加密完成,参数不同带来的结果是POST数据的目的地址不同。

图17 两次发送数据
之后程序开始进行加密,由两个线程完成加密工作,其中一个线程枚举网络资源并对获取的共享文件进行加密,另一个线程加密本地文件。

图18 枚举网络资源并加密
加密本地文件的线程中,通过枚举磁盘中的文件并判断文件后缀来确定需要加密的文件路径,完成文件路径的确认后,程序开启四个子线程进行加密。由于父线程负责传递文件路径给子线程以及开启子线程进行加密,如果只创建一个子线程进行加密,当子线程由于某些原因无法返回时,父线程将无法继续执行下去,这会导致父线程无法传递下一个文件路径并且无法再创建新的子线程。而开启四个子线程进行加密时,只需保证其中一个线程正常返回即可继续下一轮加密。

图19 开启四个线程进行加密
加密的第一步是判断文件大小。当文件大小大于0x180000字节时,直接对文件内容进行加密,并将文件重命名;当文件大小小于等于0x180000字节时,则创建新文件并加密旧文件内容后写入新文件,之后删除旧文件。

图20 根据文件大小选择加密方案
之后程序使用之前生成的随机数初始化AES密钥,加密文件内容。加密完成后需要在文件尾部写入信息,以供黑客解密文件时使用。
对于大小小于等于0x180000字节的文件,按照如下图所示的方法在文件尾部写入信息。

图21 文件大小小于0x180000字节时写入文件头的数据
对于文件大小大于0x180000字节的文件,按照如下图所示的方法在文件尾部写入数据。

图22 文件大小小于0x180000字节时写入文件头的数据
至此,加密完成。被加密的文件类型包括exe,dll,doc,docx,pdf,xls,xlsx,ppt,zip,rar,bz2,7z,dbf,1cd,jpg。
0x4 总结
“XTBL”敲诈者对服务器的危害巨大,而造成文档被加密的根源在于服务器遭到入侵,而造成服务器被入侵的可能为登陆密码弱口令,漏洞没及时修补等原因,这些都是服务器主的疏忽造成的。因此对于服务器主而言,提升安全意识特别重要,设置强度高的登陆密码以及及时修补漏洞非常有必要。

分页阅读: 1 2
【声明】:8090安全小组门户(https://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。