长亭百川云 - 文章详情

【PC样本分析】警惕,黑客通过伪装游戏作弊器 dll注入器等的GitHub开源项目传播多种恶意软件

吾爱破解论坛

46

2024-07-13

作者坛账号:ahov

一、背景

近期发现有人称在GitHub上下载了一个工程文件打开,不幸中招恶意软件,如下图所示:

(一)文件信息

下载后可发现,该项目的sln工程文件,实为一个PE可执行文件,如下图所示:

VirusTotal中的历史文件名称,如下图所示:

该PE文件使用了无效数字签名,如下图所示:

该文件使用.NET编写,如下图所示:

(二)恶意GitHub organization信息

该仓库隶属于一个名为Hayrowi的GitHub organization,截至发帖前仍然存在并有效,该organization下部分仓库,如下图所示:

我们随意点开几个仓库,均发现了相关恶意软件,如下图所示:

其中,Releases中也包含相关的恶意软件,如下图所示:

此外,这些仓库都包含一个名为Star的workflows,Github actions执行后会修改LOG文件中的最后更新时间,如下图所示:

(比较有趣的是,黑客填写的本地git邮箱是ischhfd83#rambler.ru)

其README.md均较为逼真,如下图所示:

二、样本分析

(一)第一层.NET文件

将样本使用dnspy反编译后,第一眼映入眼帘的是样本伪装成sln文件有多么“良苦用心”,如下图所示:

随后映入眼帘的便是UHJvZ3JhbUFB下的 "DownloadAll()" "DownloadRU()" "GetCountry()" 等函数名,如下图所示:

我们还可以看到,其有一个namespace,名为Costura,进入后可以看到其下QXNzZW1ibHlMb2FkZXJB类和QXNzZW1ibHlMb2FkZXJB类之下的静态构造函数.cctor()中有大量调用0xb11a1()模块进行疑似加解密的操作,如下图所示:

于是我们进入0xb11a1()中查看,可以看到0xb11a1()是一个解密函数,其首先将转化为Base64编码的二进制数据解码得到一个字节数组,随后使用MD5CryptoServiceProvider()计算指定密钥,随后使用TripleDES算法进行解密操作,最后返回的结果为Encoding.UTF8.GetString(bytes),如下图所示:

我们在第14行返回结果处添加断点,随后调试程序,即可获取bytes数组内每个Hex的内容,如下图所示:

我们继续调试运行下去,程序产生了以下可疑字符串:

[Asm] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

当\u0011 == "DcoAUBmho367yTRLca4PWGOTDapCDF7i"``时,bytes数组内容为``"68747470733A2F2F6970696E666F2E696F"``,其对应的字符串为``"<a href="``https://ipinfo.io``">https://ipinfo.io</a>"

当\u0011 == "YarWFP+EY1k="``时,bytes数组内容为``"636F756E747279"``,其对应字符串为``"country"

当\u0011 == "WQ9RJjRWvr4="``时,``byte``数组内容为``"5255"``,其对应字符串为``"RU"

当\u0011 == "DcoAUBmho37SbvQx8t9W89i0JeQvhJ9wMSeXNO2uJoA="``时,bytes数组内容为``"68747470733A2F2F72656E7472792E636F2F6E396471722F726177"``,其对应字符串为``"<a href="``https://rentry.co/n9dqr/raw``">https://rentry.co/n9dqr/raw</a>"

当\u0011 == "iluO4PO7Pv8="``时,bytes数组内容为``"2E736C6E"``,其对应字符串为``".sln"

当\u0011 == "OIT6ITVzsw8="``时,bytes数组内容为``"636D64"``,其对应字符串为``"cmd"

当\u0011 == "NlI2H/2+8sE="``时,bytes数组内容为``"2F432022"``,其对应字符串为``'/C "'

当\u0011 == "DcoAUBmho36mBDorlHHmdCf3Z2mGuxd4lraH5pQj6ak="``时,bytes数组内容为``"68747470733A2F2F7777772E372D7A69702E6F72672F377A722E657865"``,其对应字符串为``"<a href="``https://www.7-zip.``org``/7zr.exe``">https://www.7-zip.org/7zr.exe</a>"

当\u0011 == "DcoAUBmho37SbvQx8t9W83/Ge3q60WKUmGrtUiDPNuREEna+M2RGUQ=="``时,bytes数组内容为``"68747470733A2F2F72656E7472792E636F2F4D75636B436F6D70616E794D4D432F726177"``,其对应字符串为``"<a href="``https://rentry.co/MuckCompanyMMC/raw``">https://rentry.co/MuckCompanyMMC/raw</a>"

当\u0011 == "dw3Hoq0iR7Q="``,bytes数组内容为``"2E377A"``,其对应字符串为``".7z"

当\u0011 == "kPTQfX8JImAM/GQNAChwT71mgweZc58JQ5/KYY2TfQY="``,bytes数组内容为``"22202D706852335E26623225413921674B2A364C71503774244E7057"``,其对应字符串为``'" -phR3^&b2%A9!gK*6LqP7t$NpW'

我们可以看到,以上字符串中,除下载7zr.exe外,访问了2个URL

我们手动访问第一个URL,如下图所示:

这是一个下载地址,下载该文件后我们发现这是一个真实的sln白文件,如下图所示:

我们手动访问第二个URL,如下图所示:

这是一个下载地址,下载该文件后我们发现这是一个加密的7-Zip压缩包(VisualStudioEN.7z),里面有一个PE可执行文件VisualStudio.exe,如下图所示:

结合以上字符串,我们可以判断,该程序的主要目的是下载7-Zip组件解压加密压缩包VisualStudioEN.7z(解压密码为"hR3^&b2%A9!gK*6LqP7t$NpW")

通过以上字符串,基本上可以判断该程序的行为:
第一步,访问ipinfo.io,判断国家
第二步,下载一个真实的sln白文件,然后通过cmd来打开它
第三步,下载内含第二阶段恶意载荷的加密压缩包VisualStudioEN.7z,通过下载的7-Zip组件来解压加密压缩包VisualStudioEN.7z(解压密码为"hR3^&b2%A9!gK*6LqP7t$NpW")

(二)第二层.NET文件

通过加密压缩包VisualStudioEN.7z解压得到的第二阶段恶意载荷VisualStudio.exe仍然使用.NET编写,如下图所示:

第二层.NET文件引用的Costura namespace与第一层.NET文件结构非常相似,但是上方程序主函数不同,如下图所示:

一、Service.exe模块

其首先创建一个"C:\Users\Public\Videos\b.bat"文件,用于绕过UAC并执行稍后将要释放的恶意Payload "C:\Users\Public\Videos\Service.exe";然后创建一个"C:\Users\Public\Videos\b.vbs"文件,用于启动刚才创建的b.bat文件,如下图所示:

随后,base64解密出Service.exe,如下图所示:

之后无窗口静默启动刚才上面释放的b.vbs,(然后b.vbs会启动b.bat,b.bat会尝试绕过系统UAC并启动Payload Service.exe),如下图所示:

Service.exe的作用是为稍后将要释放的"C:\ProgramData\MicrosoftTool\current\Microsoft.exe"文件通过命令行添加计划任务,其会在%temp%下释放一个临时的v2.bat,待添加完成后会对v2.bat进行删除。

行为如下图所示:

行为链如下图所示:

删除临时的v2.bat,如下图所示:

添加的计划任务,如下图所示:

二、BitDefender.7z

随后,其下载7-Zip组件(至ProgramData下)与https://rentry.co/MuckMKV/raw下的加密压缩包进行解压(解压密码为"SaToshi780189.!"),如下图所示:

我们手动访问URL,如下图所示:

下载之后得到BitDefender.7z,如下图所示:

将其解压后可得到4个PE可执行文件,如下图所示:

其中,使用.NET编写的文件均使用了Cronos-Crypter代码混淆器,如下图所示:

其会注入RegAsm.exe,然后进程自退出,如下图所示:

通信协议疑似为AsyncRAT,如下图所示:

C2为40.66.42.41:9471,如下图所示:

此外,通过C2地址与端口,还发现了一份相同C2相同配置的疑似AsyncRAT样本,是一个PowerShell脚本文件,有兴趣的可以研究一下(https://tria.ge/240401-nslb6adc7s, SHA256: f23e4b5e2ed8fd275c1cb96d55becb6e357c6fd92c354127046957412202a9d121c2f385b804d5f441f7c4e3c921e15d9af89e72b9bfb845443deb54c2a25ff7):

而WinSAT.exe为NSIS自解压程序包,内含一个app-32.7z压缩包,将其解压后可以发现其内部是一个Electron应用,如下图所示:

恶意软件制作者通过修改Electron依赖app.asar内的index.js、config_obf.js与package.json从而实现恶意行为,如下图所示:

三、Microsoft.7z

在上述逻辑执行完成后,程序会睡眠一段时间,然后其会执行下一个逻辑:下载7-Zip组件(至ProgramData下)与https://rentry.co/MuckSoft/raw下的加密压缩包进行解压(解压密码为"somaliMUSTAFA681!!..."),如下图所示:

我们手动访问URL,如下图所示:

下载之后得到Microsoft.7z,如下图所示:

将Microsoft.7z解压后可以发现其内部是一个Electron应用,如下图所示:

运行Microsoft.exe后可以发现同样也会释放先前的Service.exe,并且具备与先前的Service.exe十分接近的恶意行为,如下图所示:

恶意软件制作者通过修改Electron依赖app.asar内的main.bundle.js从而实现恶意行为,如下图所示:

三、总结

我们通过线索捕获到了该恶意软件的一整条攻击链,如下图所示:

我们发现,该恶意软件攻击链通过采用两个.NET恶意下载者下载最终载荷,最终载荷中包含了两个恶意的Electron模块,而在最终载荷中看似毫不相关单独释放的Service.exe模块,却与其中的一个恶意Electron模块产生了联系,此外还有一个注入RegAsm.exe且通信协议疑似为AsyncRAT的恶意模块。由此可见,该恶意软件行为链条完整,并且传播多种不同类型的恶意软件。

四、loc

(一)恶意GitHub organization

https://github.com/Hayrowi

(二)C2

40.66.42.41:9471

(三)样本文件Hash

文件名称:DLL Injector Resou.nls.scr
SHA256:1ed90c2a319e37c10a4646c8ae087d691ab13cbf2d39066080a96c685ab9c6c1

文件名称:VisualStudio.exe
SHA256:ced23104253e55e011dd15862eec275352406b0541672bb9bdace10af2bf6a52

文件名称:Service.exe
SHA256:7f67bcf190c26e663aa465b4cadfc41816c3d6c95c18515d3ef75b9aa86e7209

文件名称:aitstatic.exe
SHA256:630c70be4bf71082167abe3e0da283ce25b95a26e5c9b185ca3ec0a95d0ca3a5

文件名称:ComSvcConfig.exe
SHA256:dad9345512882c703297c4e3608eab4de31463264b1121b9f57d3b116b8c9177

文件名称:WinSAT.exe
SHA256:bffa0f9b42c64683b0cfc2d236614482474604aa61a44dbc07a5598755161502

文件名称:WinSAT.exe => $PLUGINSDIR\app-32.7z => resources\app\app.asar
SHA256:6a239058ca4150aeeb4477b0ff221f285879c7122023ea4983b567153c8ab644

文件名称:WinSAT.exe => $PLUGINSDIR\app-32.7z => resources\app\app.asar => config_obf.js
SHA256:4d018f58579616bec46f3d2fa03f8a41b1b5e68e4ccd01081cc3d96f01c5438c

文件名称:WinSAT.exe => $PLUGINSDIR\app-32.7z => resources\app\app.asar => index.js
SHA256:39dcb2ed9b874c3c49ac12b42801f0b02058dde3073fdfec3e9c1d687b4a5cc7

文件名称:MicrosoftCertificateServices.exe
SHA256:004d814eff2c57efadf1977f2b72957a8477a45413b2cf0fbe4424069f5469ca

文件名称:MicrosoftCertificateServices.exe
SHA256:ae0f5057a493097e2393df0fd713ddb02d04b3e2e6139c80655da1e59ad1917b

文件名称:Microsoft.7z => current\app.asar
SHA256:e5772f1c30fa84b138e670422e566d3a1f18aad74c257a19fad1f95811a1451a

文件名称:Microsoft.7z => current\app.asar => main.bundle.js
SHA256:039cb756025abfa0802cf5891d4b7d63a974160f52b3bdcb7f95f690de76294e

-官方论坛

www.52pojie.cn

👆👆👆

公众号设置“星标”,不会错过新的消息通知

开放注册、精华文章和周边活动等公告

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2