*本文原创作者:si1ence,本文属FreeBuf原创奖励计划,未经许可禁止转载
0x0 背景
最近发现一个伪装成Office Update的勒索软件差一点手抖就双击点击运行了,上网一查发现还是个新的样本叫VIBOROT,就简单的看了一下相关介绍与功能。
Viro僵尸网络与任何已知的勒索软件系列无关。在我们分析了一个类似locky勒索软件变种的7天后,Viro僵尸网络首次在2018年9月17日被观察到,将Viro僵尸网络下载到计算机后,它将检查是否存在注册表项(计算机GUID和产品密钥),以确定系统是否应加密。该病毒具有勒索软件和僵尸网络功能影响了较多美国互联网用户, 一旦Viro僵尸网络感染机器,它也会成为垃圾邮件僵尸网络的一部分,该僵尸网络将勒索软件分发给更多的受害者。
0x1 程序主体
伪装成Office Updater整体的功能分部大致如下,主要功能包括勒索的加密与解密、僵尸网络、获取主机信息、键盘记录、进程创建、恶意文件下载等功能。
0x2 勒索模块
加密算法主要使用了AES+RSA加密算法,采用256位的密钥、128位的分组大小同时使用了CBC模式(密码分组链接Cipher-block chaining),之后再使用RSA算法进行非对称加密。
调用函数RNGCryptoServiceProvider 生成随机的32位的密码
读取RindaelManaged的向量和经过RSA加密后的密文长度,转化成32 位无符号的整数值。同时调用 CryptoStream、FileStream函数生成文件数据流与加密数据流,最后生成经过AES与RSA加密后的.enc的文件。
加密完成之后同时在跟目录下面生成readme.txt文件
源语言为法语,经过翻译之后如下图
使用递归函数对目录进行循环的加密
主要加密的文件类型如下
0x3 命令执行
本地的命令执行有三种实现方式依次为Cmd、Powershell、CSharp(C#)
新建了一个Process进程设置为隐藏属性,将命令保存在stringReader里通过方法StandardInput.WriteLine进行执行
将返回结果传回C2服务器
0x4 键盘记录
使用windows钩子(Hook)抓取键盘消息
新建一个WebClient将本地抓取到的键盘记录上传到C2服务器上(https://viro.mleydier.fr)
0x5 进程操作
依次调用系统函数CreateProcess、VirtualAlloc、WriteVirualMemory分配虚拟内存,,然后在该块内存中写入代码可以执行代码
依次调用系统函数NtGetContextThread、NtWriteVirtualMemory、NtSetContextThread、NtResumeThread实现进程注入。
0x6 总结
病毒主要通过钓鱼邮件进行传播,对于陌生邮件的附件或者来路不明的文件一定要警惕。
*本文原创作者:si1ence,本文属FreeBuf原创奖励计划,未经许可禁止转载