下周计算机病毒预报 (2021年7月26日至2021年8月1日)

2021-07-23482

Trojan/MSIL.locky

警惕程度 ★★★

影响平台: Windows 2000/7/8/10/ 95 /98/Me/NT/Server 2003/Server 2008/Vista/XP

病毒执行体描述

近日,发现了一个勒索语言为中文的勒索软件。该勒索软件采用.net语言编写,模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。其最早出现于2020年9月,试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。

该中文勒索软件使用.net语言编写。其运行后,首先通过获取进程名称判断恶意代码是否执行,若已执行则弹出“应用执行中,请勿重复执行,首次执行需耗时20分钟初始化”窗口,并退出程序。

判断“%USERNAME%\Documents\Driver”目录下是否存在b.print文件且文件内容为“6688123”,若存在则表示用户文件已交纳赎金后解密,无需再加密,则退出程序,否则重复加密。所以该文件可作为该勒索软件的免疫文件。

使用IE浏览器打开hxxps://lihi1.cc/4kdW2(失陷主机、钓鱼网站),判断是否可以连接网络。

若连接网络成功则将自身复制到“%USERNAME%\Documents\WindowsShell”目录下,并将文件属性设置为隐藏。

打开CMD命令行,将其窗口隐藏,运行“%USERNAME%\Documents\WindowsShell”下的复制过来的样本并将自身程序退出。

将“%USERNAME%\Documents\WindowsShell”目录下的自身添加到注册表实现开机自启动。

对该勒索软件分析发现其试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。通过对传入的参数不同进行相应的不同加密方式,如下所示:

在本次所分析的样本中采用的加密策略为XOR加密,所以通过该方式加密的文件可以进行解密。XOR加密密钥如下表所示:

XOR加密具体加密方式为采用指定长度的字符XOR指定文件前100byte字符。

获取用户主机上磁盘信息,如下图所示:

进入加密函数中LockTXTFiles加密函数进行加密。如下图所示:

试图模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。具体格式为:<原文件名>+.locky。如下图所示:

在分析的过程中发现该勒索软件的非对称加密RSA和对称加密AES尚未完成,推测其为测试样本。如下所示非对称加密RSA函数内容为空。

针对指定后缀名的文件进行加密,指定的后缀名如下表所示:

在运行的过程中会衍生多个文件并将文件进行隐藏,具体衍生文件路径与文件名及其功能如下表所示:

判断“HttpAgilityPack.dll”是否在“%USERNAME%\Documents\WindowsShell”目录下存在,若不存在则创建HttpAgilityPack.dll。读取HttpAgilityPack.dll中是否存在“ot”,“main”字符串,不存在则写入“ot 0 main”字符串。由于HttpAgilityPack.dll在该勒索软件中并未被调用,其功能未知。

勒索软件包含的比特币钱包地址如下所示:

从五个比特币钱包地址中随机获取一个钱包地址与“\u0005”进行异或加密,将其保存在“%USERNAME%\Documents\Driver\a.print”文件中,待解密时读取该文件。

勒索软件加密完成后在桌面弹出一个勒索窗口,提示受害者文件已被加密,缴纳赎金。勒索窗口如下图所示:

当勒索窗口上的倒计时结束时,其会读取衍生文件“%USERNAME%\Documents\Driver\aaa.print”获取当前加密倍数将其提高两倍并弹出窗口提示受害者“由于您长时间未付款,价格提升为两倍,Sorry”。如下图所示:

在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件针对“%USERNAME%\Documents\Driver\a.print”中内容进行解密获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作。

该勒索软件解密方式与加密方式类似,具有三种解密方式。根据所加密方式的不同所采用的解密方式不同。解密方式如下表所示:

在本次所分析的样本中采用的解密策略是XOR解密方式,所以解密所采用的解密密钥与加密密钥一样。解密密钥如下表所示:

具体解密方式为采用指定长度的字符XOR指定文件前100byte字符。

在分析的过程中发现RSA解密和AES解密功能未完善,如下所示RSA解密方式函数,读取K.log文件获取密钥并未后续解密操作。


预防和清除:

不要点击不明网站;打开不明邮件附件;定时经常更新杀毒软件病毒数据库,最好打开杀毒软件的病毒数据库自动更新功能。关闭电脑共享功能,关闭允许远程连接电脑的功能。安装最新的系统补丁。


Diavol

警惕程度 ★★★

影响平台: Windows 2000/7/8/10/ 95 /98/Me/NT/Server 2003/Server 2008/Vista/XP

病毒执行体描述

作为一个相当独特的加密过程的一部分,Diavol使用用户模式异步过程调用(apc)而不使用对称加密算法。通常,勒索软件作者的目标是在最短的时间内完成加密操作。非对称加密算法并不是最明显的选择,因为它们比对称算法慢得多。

在执行时,Diavol首先检查命令行参数:

-p:文件的路径,该路径包含要首先扫描文件的路径列表。

-log:日志文件路径。

-m: mode: net或local。

net 只加密网络共享。

local 只加密本地驱动器,忽略网络共享。

-h:文件路径,其中包含要枚举的共享的特定主机(名称和ip)。

-s: 发送初始注册消息的IP地址。重写硬编码地址。

执行以下命令行参数:

-p "C:\b.txt" -m local -log "C:\programdata\log.txt"

日志文件列出了经过加密的文件。

虽然Diavol没有打包,也没有任何反编译技巧,但它确实使用了一种有趣的反分析技术来混淆其代码。它的主要例程保存在位图图像中,位图图像存储在PE资源部分。在调用每个例程之前,它将位图中的字节复制到具有执行权限的全局缓冲区。

每个例程使用的导入也存储在“OFFSET”下的资源部分中,其名称与位图相同。

Diavol有14个不同的例程存储为位图。它们的命名顺序如下

GENBOTID例程创建受感染计算机的唯一标识符。它由以下部分组成:

<NetBIOS_computer_name> + <username> + “_W” + <OS major version in hex> + <OS minor version in hex> + <OS build number in hex> + “.” + <random_GUID_bytes in hex>

SHAPELISTS例程从PE’s .data节复制硬编码的配置。配置从STATIC_DATA字符串开始,包含许多unicode字符串:

 —Base64编码的RSA公钥。

 —初始注册的服务器地址。

 —初始注册时的组ID。

 —不包含的文件扩展名、文件名和路径列表。

 —要终止的进程名列表。

 —要停止的服务名称列表。

 —列举文件的路径列表。

 —要删除的文件名列表。

 —赎金提示(反向)。

REGISTER有效负载使用WinINet API向服务器发送请求并返回响应状态代码。Diavol向C&C服务器发出一个POST请求到hxxp://<server_address>/BnpOnspQwtjCA/register URL,并带有以下头文件:

User-Agent: "Agent"

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

请求的正文是:

cid=<unique_victim_id>&group=<group_id_from_config>ip_local1=111.111.111.111&ip_local2=222.222.222.222&ip_external=2.16.7.12

如果服务器返回状态成功,勒索软件将尝试从C&C服务器获取更新的配置。因为没有提供“-s”命令行参数,而且配置的地址是127.0.0.1(本地主机),所以勒索软件没有注册自己或检索配置更新

FROMNET例程也使用WinINet API向服务器发送一个请求,并从响应返回数据。为了获取更新的配置并覆盖硬编码的值,勒索软件使用与之前相同的头发送HTTP get请求到:

hxxp://173[.]232[.]146[.]118/Bnyar8RsK04ug/<unique_victim_id>/qqq123/<object_name>

支持以下对象:

- /key - base64编码的RSA公钥。

- /services -要停止的服务列表。

- /priority -第一次扫描文件路径列表。

- /ignore -要排除的文件扩展名、文件名和路径列表。

- /ext -要包括的文件扩展名列表。

- /wipe -如果在列举文件系统时发现要删除的文件名列表。

- /landing-勒索软件说明。

检测到173.232.146.118的网络流量,发现HTTP Cookie报头中包含字符串diavol_session。

为了使其在目标机器上的效果最大化,并对尽可能多的文件进行加密,勒索软件会终止能够锁定对有价值文件(如数据库、办公应用程序、财务会计软件、web服务器和虚拟机)访问权的正在运行的进程。

SERVPROC使用服务控制管理器(SCM) API终止服务。此API需要管理员权限,这表明攻击者知道这一需求并预先采取了适当的步骤。

尝试停止以下服务:

sqlservr.exe, sqlmangr.exe, RAgui.exe, QBCFMonitorService.exe, supervise.exe, fdhost.exe, Culture.exe, RTVscan.exe, Defwatch.exe, wxServerView.exe, sqlbrowser.exe, winword.exe, GDscan.exe, QBW32.exe, QBDBMgr.exe, qbupdate.exe,axlbridge.exe, 360se.exe, 360doctor.exe, QBIDPService.exe, wxServer.exe, httpd.exe, fdlauncher.exe, MsDtSrvr.exe, tomcat6.exe, java.exe, wdswfsafe.exe.

此外,恶意软件开发人员不会检查API调用是否成功。

KILLPR使用CreateToolhelp32Snapshot、Process32First和Process32Next api枚举系统中运行的进程。

该示例试图终止以下进程列表:

DefWatch, ccEvtMgr, ccSetMgr, SavRoam, dbsrv12, sqlservr, sqlagent, Intuit.QuickBooks.FCS, dbeng8, sqladhlp, QBIDPService, Culserver, RTVscan, vmware-usbarbitator64, vmware-converter, VMAuthdService, VMnetDHCP, VMUSBArbService, VMwareHostd, sqlbrowser, SQLADHLP, sqlwriter, msmdsrv,tomcat6, QBCFMonitorServicechrome.exe, outlook.exe, chrome.exe.

RSAINIT用标准的WinCrypt API初始化用于加密的RSA公钥。

ENMDSKS使用GetLogicalDriveStrings API获取系统中的所有本地驱动器,并检查以确保它们不在排除列表中。如果mode命令行参数(" -m ")设置为" net ",则跳过此例程。

不包含的文件扩展名、文件名和路径的默认列表为:

*.exe, *.sys, *.dll, *.lock64, *readme_for_decrypt.txt, *locker.txt, *unlocker.txt, %WINDIR%\, %PROGRAMFILES%\, %PROGRAMW6432%\, %TEMP%\

SMBFAST和SMB例程枚举可用的网络共享供访问。

FINDFILES遍历给定路径中的文件和目录。这个例程被调用多次:

-取决于“-p”命令行或硬编码配置。

-根据ENMDSKS结果。

-根据SMBFAST结果。

-根据SMB结果。

第一,例程检查给定的文件或文件夹是否不在排除列表中。然后,程序确定是否可以完成所有的活动。如果它询问当前线程上的一个APC,该APC将获取该项的路径作为一个参数。

VSSMOD根据操作系统版本(Windows Server 2003或Vista及其更新版本)和体系结构(32或64位),在当前工作目录下删除并执行wscpy.exe。删除影子副本快照是通过IVssBackupComponents COM对象调用DeleteSnapshots方法来执行的。

被删除的二进制文件也以明文形式保存在“TEXT”下的资源部分中。这些二进制文件包含一个PDB参考源文件,用于编译恶意二进制文件:

D:\Projects\Repository\LockCry.divided\WipeShadowCopies64\RelNoCRT\WipeShadowCopies64.pdb

D:\Projects\Repository\LockCry.divided\WipeShadowCopies64\x64\RelNoCRT\WipeShadowCopies64.pdb

D:\Development\Master\onion\locker.divided\WipeShadowCopies64\RelNoCRT_Win2003\WipeShadowStorageWin2003_32.pdb

D:\Development\Master\onion\locker.divided\WipeShadowCopies64\x64\RelNoCRT_Win2003\WipeShadowStorageWin2003_64.pdb

如前所述,FINDFILES将使用文件或目录路径对APC对象进行排队。要执行APC,主函数在其最后步骤中调用slepex API,将线程设置为可警戒状态。

APC例程检查参数是否为directory,并创建" README_FOR_DECRYPT.txt "勒索提示,而不管目录中的文件是否被加密。如果参数是一个文件,则会调用ENCDEFILE例程。

与大多数其他勒索软件不同,Diavol不使用任何对称加密,而只使用RSA加密文件。

ENCDEFILE检查文件大小。如果小于2,000,000字节,则只有前11700个字节将被加密。如果文件大小等于或大于2,000,000字节,则只对前1,170,000字节进行加密。

每个11700字节的块被拆分为十个117字节的块,每个块使用CryptEncrypt API进行加密。117个明文字节变成128个密文字节。因此,在加密之后,11700个字节变成了12800个字节。Diavol将覆盖该文件,并在块的原始偏移量处写入11700个加密字节,并将剩余的1100个字节追加到文件的末尾。

最后,ENCDEFILE调用MoveFile API并附加一个“。Lock64 "扩展到文件名。

一旦所有的apc被退出队列并完成,线程会在调用sleeppex之后返回。

在进程终止之前,CHNGDESK会被调用。

首先,它捕获桌面窗口并将背景颜色设置为黑色。然后写着“你所有的文件都被加密了!”更多信息请参阅“README-FOR-DECRYPT.txt”与DrawText API位图图像,并将其保存为“encr.bmp”在公共图片文件夹。最后,它使用带有SPI_SETDESKWALLPAPER标志的SystemParametersInfoAPI将桌面墙纸更改为新图像。


预防和清除:

不要点击不明网站;打开不明邮件附件;定时经常更新杀毒软件病毒数据库,最好打开杀毒软件的病毒数据库自动更新功能。关闭电脑共享功能,关闭允许远程连接电脑的功能。安装最新的系统补丁。


钓鱼网站提示:

 1、假冒亚马逊类钓鱼网:

https://www-drv.com/site/tkqcyrr0mdjbxcscn6agiq/page/

危害:骗取用户邮箱账号及密码信息。

 2、假冒PDF类钓鱼网:

http://www.capelini.com.br/adobeCom/inc/

危害:骗取用户账号及密码信息。

 3、假冒Paypal类钓鱼网:

http://www.skblibrary.org.in/cottonlibrary/a

危害:骗取用户账号及密码信息。

 4、假冒腾讯游戏类钓鱼网站: 

http://www.dnf233.com/

危害:骗取用户信用卡号及密码信息。

 5、假冒Gmail类钓鱼网站

http://www.ilona.com/wcmilona/wp-includes/SimplePie/Data/

危害:骗取用户邮箱账号及密码信息。


请勿打开类似上述网站,保持计算机的网络防火墙打开。

以上信息由上海市网络与信息安全应急管理事务中心提供