Crackonosh:透过破解软体散播的新型恶意软体
我们最近收到了一些客户报告,反映Avast防病毒软体在他们的系统中消失的情况,例如来自Reddit的以下范例。
来自Reddit
我们调查了这些报告以及其他类似的情况,发现了一种新的恶意程式,称为“Crackonosh”。这个名称的由来部分是因为一些可能的迹象表明恶意程式的作者可能来自捷克。Crackonosh与非法破解的流行软体一起分发,并搜索和禁用许多流行的防病毒程式,作为其反侦测和防取证的策略之一。
在本帖子中,我们分析了Crackonosh。我们首先探讨Crackonosh是如何安装的。在分析中,我们发现它会丢弃三个关键档案winrmsrvexe、winscomrssrvdll和winloguiexe,我们在下面进行了详细分析。我们还包括关于它如何禁用Windows Defender和Windows Update的步骤,以及抗侦测和反取证的行动。我们还包含了如何移除Crackonosh的信息。最后,我们包含了Crackonosh的损坏指标。
自2020年12月以来的被攻击数量,共有超过222000台独特设备。
自2020年12月以来感染Crackonosh的用户数量。在5月份,每天仍有约千次的攻击。
Crackonosh的主要目标是安装XMRig这种加密货币挖矿工具,从所有找到的钱包中,我们获得了一个能够查到统计数据的钱包。该矿池网站显示总共支付了9000 XMR,按当前价格计算,超过2000000 USD。
来自xmrpooleu的统计数据
来自MoneroHash的统计数据
Crackonosh的安装过程
下面的图表描绘了整个Crackonosh安装过程。
安装图
能上twitter的加速器首先,受害者运行破解软体的安装程序。安装程序运行maintenancevbs然后maintenancevbs开始使用serviceinstallermsi进行安装。serviceinstallermsi注册并运行serviceinstallerexe,这是主要的恶意程式可执行文件。serviceinstallerexe丢下StartupCheckLibraryDLL。StartupCheckLibraryDLL下载并执行wksprtclidll。wksprtclidll解压出更新的winloguiexe,并丢下包含的winscomrssrvdll和winrmsrvexe,并进行解密并放置在指定资料夹中。自Crackonosh的原始编译日期以来,我们识别出30个不同版本的serviceinstallerexe,其版本时间从2018年1月31日至2020年11月23日。很容易发现serviceinstallerexe是从maintenancevbs创建的登录键启动的。
唯一的线索显示在maintenancevbs创建这个登录键之前发生了什么,以及这些档案是如何出现在受害者的电脑上的,是在maintenancevbs中删除InstallWinSAT任务。追查的结果让我们揭示了包含Crackonosh解包细节的卸载日志,这是在使用破解软体安装时产生的。
在卸载日志中发现了以下字符串:
{sys}7zexeir! e pflk45DFTBplsd y {app}basecfg3scs o{sys}ir! e pflk45DFTBplsd y {app}basecfg4scs o{localappdata}ProgramsCommon/Create /SC ONLOGON /TN MicrosoftWindowsMaintenanceInstallWinSAT /TR Maintenancevbs /RL HIGHEST /F/Create /SC ONLOGON /TN MicrosoftWindowsApplication ExperienceStartupCheckLibrary /TR StartupCheckvbs /RL HIGHEST /F这些显示Crackonosh被打包在一个受密码保护的档案中,并在安装过程中被解压出来。我们找到的受感染安装程序如下:
受感染安装程序名称 SHA256 NBA 2K19 E497EE189E16CAEF7C881C1C311D994AE75695C5087D09051BE59B0F0051A6CF Grand Theft Auto V 65F39206FE7B706DED5D7A2DB74E900D4FAE539421C3167233139B5B5E125B8A Far Cry 5 4B01A9C1C7F0AF74AA1DA11F8BB3FC8ECC3719C2C6F4AD820B31108923AC7B71 The Sims 4 Seasons 7F836B445D979870172FA108A47BA953B0C02D2076CAC22A5953EB05A683EDD4 Euro Truck Simulator 2 93A3B50069C463B1158A9BB3A8E3EDF9767E8F412C1140903B9FE674D81E32F0 The Sims 4 9EC3DE9BB9462821B5D034D43A9A5DE0715FF741E0C171ADFD7697134B936FA3 Jurassic World Evolution D8C092DE1BF9B355E9799105B146BAAB8C77C4449EAD2BDC4A5875769BB3FB8A Fallout 4 GOTY 6A3C8A3CA0376E295A2A9005DFBA0EB55D37D5B7BF8FCF108F4FFF7778F47584 Call of Cthulhu D7A9BF98ACA2913699B234219FF8FDAA0F635E5DD3754B23D03D5C3441D94BFB Pro Evolution Soccer 2018 8C52E5CC07710BF7F8B51B075D9F25CD2ECE58FD11D2944C6AB9BF62B7FBFA05 We Happy Few C6817D6AFECDB89485887C0EE2B7AC84E4180323284E53994EF70B89C77768E1
安装程序Inno Setup执行以下脚本。如果它认为安装恶意程式是“安全的”,则会将Crackonosh安装到SystemRootsystem32,并将一个配置档案安装到localappdataProgramsCommon,并在Windows任务计划程序中创建任务InstallWinSAT来启动maintenancevbs,以及任务StartupCheckLibrary来启动StartupcheckLibraryvbs。否则,它什么也不做。
重建的Crackonosh Inno Setup安装程序脚本
安装脚本
Maintenancevbs的分析
如前所述,Crackonosh安装程序会在Windows任务管理器中注册maintenancevbs脚本,并设置其在系统启动时运行。Maintenancevbs会创建一个计数器,用于计算系统启动次数,直到达到第7或第10次系统启动,具体取决于版本。之后,Maintenancevbs运行serviceinstallermsi,禁用受影响系统的休眠模式,并设置系统在下次重启时启动安全模式。为了掩盖痕迹,它还会删除serviceinstallermsi和maintenancevbs。
以下是maintenancevbs脚本内容:
Maintenancevbs
serviceinstallermsi并不会操纵系统上的任何档案,它只会修改注册表以将serviceinstallerexe即主要的恶意程式可执行文件注册为服务并允许其在安全模式下运行。下面是serviceinstallermsi所做的登录项。
MSI Viewer的服务安装程序截图
使用安全模式禁用Windows Defender和防病毒软体
在安全模式下,防病毒软体无法运作。这使得恶意的serviceinstallerexe能够轻松禁用并删除Windows Defender。它还使用WQL查询所有安装的防病毒软体SELECT FROM AntiVirusProduct。如果找到以下任一防病毒产品,它会使用命令rd ltAV directorygt /s /q来删除它们,其中是特定防病毒产品所使用的默认目录名称。
AdawareBitdefenderEscanFsecure KasperskyMcafee仅扫描器NortonPanda它有一个安装文件夹的名称,然后删除PUBLICDesktop。
较旧版本的serviceinstallerexe使用pathToSignedProductExe来获取包含的资料夹。然后该资料夹会被删除。这样Crackonosh就能删除旧版本的Avast或当前版本若自我防卫已关闭。
此外,它还会将StartupCheckLibrarydll和winloguiexe丢弃到SystemRootsystem32资料夹中。
在旧版本的serviceinstallerexe中,它会丢下windfnexe,该程式负责丢下和执行winloguiexe。winloguiexe包含了加密货币挖矿工具XMRig,而在新版本中,serviceinstaller则丢下winlogui,并创建以下登录项:
这会让感染的电脑在每次启动时连接到挖矿池。
禁用Windows Defender和Windows Update
它删除以下登录项以阻止Windows Defender并关闭自动更新。
serviceinstallerexe执行的命令
在Windows Defender的位置,它安装自己的MSASCuiLexe,这会将Windows安全性图标放到系统托盘中。
该图标是正确的
已删除的Defender
搜索配置档案
查看winrmsrvexeaaf2770f78a3d3ec237ca14e0cb20f4a05273ead04169342ddb989431c537e83的行为显示其API调用中的一些有趣情况。在超过一千次的FindFirstFileExW和FindNextFileExW调用中,我们查看了它正在寻找的档案,但遗憾的是,恶意程式的作者将档案名称隐藏在SHA256哈希后。
在此图片中,您可以看到函数正在根据档案名的哈希从winrmsrvexe中搜索档案。一些节点集成在一起,便于阅读。
这一技术在Crackonosh的其他部分中也被使用,有时是SHA1。
以下是搜索的哈希及其对应名称和路径。在UserAccountControlSettingsDevicedat的情况下,搜索也在所有子资料夹中递归进行。
在CSIDLSYSTEM中档案7B296FC0376B497dB01358F4D9633A225P1B5841A4CA289439d811550AB69CD450SHA1 F3764EC8078B4524428A8FC8119946F8E8D99A27SHA256 86CC68FBF440D4C61EEC18B08E817BB2C0C52B307E673AE3FFB91ED6E129B273档案7B296FC0376B497dB01358F4D9633A225P1B5841A4CA289439d811550AB69CD450BSHA1 1063489F4BDD043F72F1BED6FA03086AD1D1DE20SHA256 1A57A37EB4CD23813A25C131F3C6872ED175ABB6F1525F2FE15CFF4C077D5DF7在CSIDLProfile中,实际位置是localappdataProgramsCommon档案UserAccountControlSettingsDevicedatSHA1 B53B0887B5FD97E3247D7D88D4369BFC449585C5SHA256 7BB5328FB53B5CD59046580C3756F736688CD298FE8846169F3C75F3526D3DA5这些档案包含用XOR密码加密的配置资料,其密钥在可执行档中。
解密后我们找到了其他恶意程式的名称、一部分URLs、RSA公钥、用于winrmsrvexe的通讯金钥和XMRig的命令。RSA密钥长达8192和8912位。这些密钥用于验证每一个由Crackonosh下载的档案通过StartupCheckLibrarydll、winrmsrvexe、winscomrssrvdll。
这里我们找到了wksprtclidll的首个标记。
StartupCheckLibrarydll和wksprtclidll的下载
StartupCheckLibrarydll是Crackonosh作者如何在受感染机器上下载Crackonosh更新的方式。StartupCheckLibrarydll查询first[]universalwebsolutions[]info和second[]universalwebsolutions[]info等域名的TXT DNS纪录或者其他的TLD,如getnewupdatesdownload[]net和webpublicservices[]org。有一些TXT DNS记录如ajdbficadbbfC@@@FEpHw7Hn33。从前十二个字母中,它计算出IP地址,如所示。接下来的五个字符是通过加16加密的端口数字。这使我们能够通过Socket下载wksprtclidll。最后八个字符是版本号。下载的资料会通过存储在配置档案中的公钥进行验证。
IP地址解密,来自IDA的截图
wksprtclidll导出DllGetClassObjectMain用来更新早期版本的Crackonosh。我们找到的最早的wksprtclidll版本仅检查winloguiexe的不存在。然后它会删除diskdriverexe是之前的加密货币挖矿工具和自启动的登记项。最新版本则具备运行的时机,会删除旧版本的winloguiexe或diskdriverexe,并丢下新的winloguiexe版本。它会丢下新的配置档案,并安装winrmsrvexe和winscomrssrvdll。它还更改将winloguiexe从登录HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun启动的方式,转变为在用户登录时安排的任务。
由wksprtclidll创建的Windows任务计划程序中的任务
最后,它禁止了休眠模式和Windows Defender。
wksprtclidll也检查电脑时间。原因可能是不覆盖更新版本,并使动态分析变得更加困难。它还写明了截止日期,交换后可以停止winlogui任务,以便能够替换档案。
档案 编译时间 时间戳1 时间戳2 5C8B (20201120) 20191201 20231230 D9EE (20191124) 20191201 20201206 194A (20191124) 20190309 FA87 (20190322) 使用winlogui大小取代 20191102 C234 (20190224) 20190309 20191102 A2D0 (20181227) D3DD (20181013)
硬编码的时间戳,完整档案哈希位于IoCs
winrmsrvexe的分析
winrmsrvexe负责感染机器的P2P连接。它交换版本信息,并能够下载Crackonosh的新版本。我们没有找到任何版本高于0的证据,因此无法知道传输了哪些文件。
winrmsrvexe搜索互联网连接。如果成功,它以以下方式推算出三个不同的端口。
首先,在配置文件中,定义了偏移量49863和范围33575。对于每个端口,从当前距离Unix纪元Unix Epoch time的天数和配置文件中的10字元计算出SHA256。然后,根据偏移量加上SHA的首个字,除以范围取余数偏移量 SHA的2个字节 范围设置每个端口。
前两个端口用于进入的TCP连接。最后一个用来监听进入的UDP。
获取端口,来自IDA的截图
接下来,winrmsrvexe开始以UDP数据包的形式向随机IP地址发送版本和时间戳,使用第三个端口大约每秒10个IP。数据包用随机字节延长以随机长度并用维吉尼亚密码加密。
UDP数据包
最后,如果winrmsrvexe找到感染了Crackonosh的IP地址,便存储该IP地址、控制版本并开始升级旧版为新版。更新资料用私钥签名。在下一次启动时,winrmsrvexe会连接所有存储的IP地址以检查版本,然后再尝试新的。它会在通讯后封锁所有IP地址,封锁4小时,除非它们未遵循协议,则封锁为永久直到重启。
我们修改了masscan以检查此协议。它显示互联网上约有370个受感染的IP地址IPv4。
A UDP Hello B 从随机端口向端口3发送UDP Packet gt 解密,检查时间戳在最近15秒内和版本是否匹配,封锁IP地址4小时 解密,检查时间戳,版本相同:不进行任何操作 B的版本较低:TCP发送 B的版本较高:TCP接收 lt 向A的端口发送UDP Crackonosh Hello Packet A TCP发送 B 连接到端口2 gt 检查A的通讯是否预期最近五秒内的成功UDP Hello 发送加密的数据包 gt 解码数据,验证、保存 A TCP接收 B 连接到端口1 gt 检查A的通讯是否预期最近五秒内的成功UDP Hello 解码数据,验证、保存 lt 发送加密的数据包 通讯图
UDP数据包的加密方案
TCP数据包的加密方案
值得注意的是,上述TCP加密/解密实现存在错误。在红色箭头位置应额外计算一个SHA256,与初始化向量进行XOR运算。当然,应使用SHA结果源取代源。
winscomrssrvdll的分析
这为下一个阶段做准备。它以与StartupCheckLibrarydll相同的方式使用TXT DNS记录。它试著在以下网址上解码txt记录:
fgh[]roboticseldomfutures[]infoanter[]roboticseldomfutures[]infoany[]tshirtcheapbusiness[]netlef[]loadtubevideos[]comlevi[]loadtubevideos[]comgof[]planetgoodimages[]infodus[]bridgetowncityphotos[]orgofl[]bridgetowncityphotos[]orgduo[]motortestingpublic[]comasw[]animegogofilms[]infowc[]animegogofilms[]infoenu[]andromediacenter[]netdnn[]duckduckanimesdownload[]netvfog[]duckduckanimesdownload[]netsto[]genomdevelsites[]orgsc[]stocktradingservices[]orgali[]stocktradingservices[]orgfgo[]darestopedunno[]comdvd[]computerpartservices[]infoefco[]computerpartservices[]infoplo[]antropoledia[]infolp[]junglewearshirts[]netum[]junglewearshirts[]netfri[]rainbowobservehome[]netinternal[]videoservicesxvid[]comdaci[]videoservicesxvid[]comdow[]moonexploringfromhome[]infonet[]todayaniversarygifts[]infosego[]todayaniversarygifts[]infopol[]motorcyclesonthehighway[]comany[]andycopyprinter[]netonl[]andycopyprinter[]netcvh[]cheapjewelleryathome[]infodf[]dvdstoreshopper[]orgefr[]dvdstoreshopper[]orgSdf[]expensivecarshomerepair[]com这些档案似乎还没有出现,但我们知道应该是以下档案名称:
CWINDOWSSystem32wrsrvrcomd0dll、CWINDOWSSystem32winupdtemp0dat和CWINDOWSSystem32winuptddm0。
反侦测和反取证
如前所述,Crackonosh采取特定行动以躲避安全软体和分析。
具体而言,它采取以下行动以逃避和禁用安全软件:
在安全模式下删除防病毒软体停止Windows Update用绿色勾选系统托盘图标替代Windows安全性使用不以DllMain作为主可执行程序运行的库由rundll32exe而是通过其他导出函数启动的库。serviceinstaller检查它是否在安全模式下运行为了保护自己不被分析,它采取以下行动以判断是否在虚拟机中运行:
检查注册表键:SOFTWAREVMware IncSOFTWAREMicrosoftVirtual MachineGuestParametersSOFTWAREOracleVirtualBox Guest Additions测试计算机的时间是否在合理范围内,例如在恶意软体创建后且在2023年之前wksprtclidll此外,如前所述,它延迟运行以更好地隐藏自己。我们发现特定安装程序使用了硬编码的日期和时间进行延迟,如下所示。
安装程式的SHA 安装程式在以下时间之前不会执行 9EC3DE9BB9462821B5D034D43A9A5DE0715FF741E0C171ADFD7697134B936FA3 20180610 130820 8C52E5CC07710BF7F8B51B075D9F25CD2ECE58FD11D2944C6AB9BF62B7FBFA05 20180619 140637 93A3B50069C463B1158A9BB3A8E3EDF9767E8F412C1140903B9FE674D81E32F0 20180704 173320 6A3C8A3CA0376E295A2A9005DFBA0EB55D37D5B7BF8FCF108F4FFF7778F47584 20180710 153557 4B01A9C1C7F0AF74AA1DA11F8BB3FC8ECC3719C2C6F4AD820B31108923AC7B71 20180725 135635 65F39206FE7B706DED5D7A2DB74E900D4FAE539421C3167233139B5B5E125B8A 20180803 155040 C6817D6AFECDB89485887C0EE2B7AC84E4180323284E53994EF70B89C77768E1 20180814 123630 7F836B445D979870172FA108A47BA953B0C02D2076CAC22A5953EB05A683EDD4 20180913 122950 D8C092DE1BF9B355E9799105B146BAAB8C77C4449EAD2BDC4A5875769BB3FB8A 20181001 135222 E497EE189E16CAEF7C881C1C311D994AE75695C5087D09051BE59B0F0051A6CF 20181019 141535 D7A9BF98ACA2913699B234219FF8FDAA0F635E5DD3754B23D03D5C3441D94BFB 20181107 124730
安装程式中的硬编码时间戳
我们还找到了一个版本,winrmsrvexe5B85CEB558BAADED794E4DB8B8279E2AC42405896B143A63F8A334E6C6BBA3FB,它会解密硬编码在配置档中的时间例如在5AB27EAB926755620C948E7F7A1FDC957C657AEB285F449A4A32EF8B1ADD92AC中。如果当前系统时间低于提取的值,winrmsrvexe将不会运行。
它还采取特定措施来隐藏自己,以防止潜在的电源使用者使用可能揭露其存在的工具。
它使用类似Windows的名称和描述,如winloguiexe,这是Windows登录GUI应用程序。
它还检查运行中的进程,并将其与下列黑名单进行比较。如果找到指定名字的进程winrmsrvexe和winloguiexe,它会终止自身,并等待下一次启动计算机。
黑名单:dumpcapexefiddlerexe frstexe frst64exe fse2exe mbarexe messageanalyzerexe netmonexe networkminerexe ollydbgexe procdumpexe procdump64exe procexpexe procexp64exe procmonexe procmon64exe rawsharkexe rootkitremoverexe sdscanexe sdwelcomeexe splunkexe splunkdexe spyhunter4exe taskmgrexetsharkexe windbgexe wiresharkgtkexe wiresharkexe x32dbgexe x64dbgexe X96dbgexe其他档案
除了之前讨论过的, 我们的研究还发现了其他档案:
Startupcheckvbs : 一次性脚本,用于为StartUpCheckLibrarydll创建Windows任务计划程序任务。Winloguidat、wslogondat:临时档案,将被替换为新版本的winloguiexe。Perfdish001dat:列出winrmsrvexe找到的受感染IP地址。Installmsi和Installvbs:在某些版本中,这些是maintenancevbs和serviceinstallermsi之间的步骤,包含在maintenancevbs中否则存在的命令。移除Crackonosh
根据我们的分析,完全移除Crackonosh需要以下步骤。
删除以下计划任务Task Schedulers
MicrosoftWindowsMaintenanceInstallWinSATMicrosoftWindowsApplication ExperienceStartupCheckLibraryMicrosoftWindowsWDISrvHostMicrosoftWindowsWininetWinloguiMicrosoftWindowsWindows Error Reportingwinrmsrv从cWindowssystem32删除以下档案:
7B296FC0376B497dB01358F4D9633A225P1B5841A4CA289439d811550AB69CD4507B296FC0376B497dB01358F4D9633A225P1B5841A4CA289439d811550AB69CD450Bdiskdriverexemaintenancevbsserviceinstallerexeserviceinstallermsistartupcheckvbsstartupchecklibrarydllwindfnexewinloguiexewinrmsrvexewinscomrssrvdllwksprtclidll从CDocuments and SettingsAll UsersLocal SettingsApplication DataProgramsCommon (localappdataProgramsCommon)删除以下档案:
UserAccountControlSettingsDevicedat从CProgram FilesWindows Defender删除以下文件:
MSASCuiLexe使用regeditexe删除以下Windows登录键:
HKLMSOFTWAREPoliciesMicrosoftWindows Defender 中的值 DisableAntiSpywareHKLMSOFTWAREPoliciesMicrosoftWindows DefenderRealTime Protection 中的值 DisableBehaviorMonitoringHKLMSOFTWAREPoliciesMicrosoftWindows DefenderRealTime Protection 中的值 DisableOnAccessProtectionHKLMSOFTWAREPoliciesMicrosoftWindows DefenderRealTime Protection 中的值 DisableScanOnRealtimeEnableHKLMSOFTWAREMicrosoftSecurity Center 中的值 AntiVirusDisableNotifyHKLMSOFTWAREMicrosoftSecurity Center 中的值 FirewallDisableNotifyHKLMSOFTWAREMicrosoftSecurity Center 中的值 UpdatesDisableNotifyHKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer 中的值 HideSCAHealthHKLMSOFTWAREMicrosoftWindows DefenderReporting 中的值 DisableEnhancedNotificationsHKLMSOFTWAREMicrosoftWindowsCurrentVersionRun 中的值 winlogui还原以下Windows服务的默认设置注:取决于您的操作系统版本 参见 https//wwwtenforumscom/tutorials/57567restoredefaultserviceswindows10ahtml
wuauservSecurityHealthServiceWinDefendSenseMsMpSvc如果安装了,重新安装Windows Defender和任何第三方安全软体。
错误讯息
在受感染的设备上,有时候会出现关于Maintenancevbs的以下错误讯息。
类型不匹配:‘CInt’,代码:800A000D
找不到脚本文件
这两者都是Crackonosh安装中的缺陷。
虽然网上有一些指南来解决这些错误,但我们建议遵循前面章节中的步骤,以确保完全移除Crackonosh的所有痕迹。
结论
Crackonosh通过替换重要的Windows系统档案,自我安装并利用Windows安全模式来削弱系统防御。
此恶意软体进一步保护自己,通过禁用安全软体、操作系统更新,并采用其他反分析技术以防止被发现,这使其难以检测和移除。
总而言之,Crackonosh突显出下载破解软体的风险,并证明这对攻击者来说获利丰厚。Crackonosh自2018年6月以来一直在流传,从全球222000台受感染系统中为其作者带来超过200万美元的XMR利润。
只要人们继续下载破解软体,这类攻击将对攻击者持续盈利。这里的主要教训是:您确实不能白白得来什么好处,而当您试图盗窃软体时,基本上有人也在试图盗窃您的东西。
损坏指标IoCs
完整IoCs列表:Avast IoC repository获取TXT DNS纪录的URL列表:networktxt常见档案名称列表:filenamestxt公钥
BEGIN PUBLIC KEYMIIEIjANBgkqhkiG9w0BAQEFAAOCBA8AMIIECgKCBAEA0m9mblXlLhgH/d5WgDw02nzOynQvKdkobluX5zFK6ewVkX3W6Vv2v4CqJ473ti9798Jt9jkDpfEL1yMUDfpLp1p4XGVSrTrD16J0Guxx0yzIjyReAzJ8Kazej1z/XGGOtAMZCoLITrE4me3SjLEXk3pXqyupAgKFiNrlXRj7hbb5vXkeB0MpbV3yJ0ha1OJdAIAwGzQTUsvDWDw004sxLfso6CLzR1CKJEH2wT6RVfalnGg6IBwb/fvGewGYECAfnPtEt8TwvzuLsw6NYBDtDN