导语:研究人员发现一款处于开发过程中的C#勒索软件,可以在运行时编译,直接加载到内存中,绕过安全防护软件的检测。
研究人员发现一款正在开发中的勒索软件,该软件有一个特点就是可以在运行时自编译。与常规的分发式执行勒索功能的文件相比,该可执行文件中运行时会编译一个嵌入的加密后的C#程序,然后直接加载到内存中。
这是MalwareHunterTeam的研究人员发现的,勒索软件中含有一个加密字符串是嵌入到释放器中的,如图:
加密字符串
然后该字符串会用包含在内的解密密钥进行解密。
加密字符串的函数
然后整个勒索软件的源码就被解密了,解密的源码随后被发送到另一个负责编译的函数。编译的函数使用CSharpCodeProvider类,并直接将其加载到内存中。
编译源代码
使用该方法的目的可能是为了防止被安全软件检测到,因此将恶意行为隐藏在加密字符串中。
对于勒索软件自身,除了将解密密钥等保存到桌面外,总的来说还是全功能的。
当执行时,勒索软件会在受害者主机上加密文件,并用模板[email protected]_[hex]将文件重命名。比如,11.jpg被加密重命名后就变成了[email protected]_31312E6A7067。
加密的文件夹
在每个扫描的文件夹中,会创建一个叫做“HOW DECRIPT FILES.hta”勒索注释,提供支付指示。
勒索注释
因为勒索软件还在开发中,而且有一个我们之前没有见过的特点就是使用一种无文件技术——在运行时编译然后直接加载到内存中,可以绕过安全软件的检测。对安全防护者来说,这也是一个启示,要思考如何应对各种新出现的攻击和绕过技术,更好地保护我们的终端设备。