查看: 1734|回复: 6
收起左侧

[原创分析] 警惕,黑客通过伪装游戏作弊器 dll注入器等的GitHub开源项目传播多种恶意软件

[复制链接]
wwwab
发表于 2024-4-5 19:10:37 | 显示全部楼层 |阅读模式
本帖最后由 wwwab 于 2024-4-13 13:07 编辑

一、背景

近期发现有人称在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的内容,如下图所示:




我们继续调试运行下去,程序产生了以下可疑字符串:
  1. 当\u0011 == "DcoAUBmho367yTRLca4PWGOTDapCDF7i"时,bytes数组内容为"68747470733A2F2F6970696E666F2E696F",其对应的字符串为"https://ipinfo.io"
  2. 当\u0011 == "YarWFP+EY1k="时,bytes数组内容为"636F756E747279",其对应字符串为"country"
  3. 当\u0011 == "WQ9RJjRWvr4="时,byte数组内容为"5255",其对应字符串为"RU"
  4. 当\u0011 == "DcoAUBmho37SbvQx8t9W89i0JeQvhJ9wMSeXNO2uJoA="时,bytes数组内容为"68747470733A2F2F72656E7472792E636F2F6E396471722F726177",其对应字符串为"https://rentry.co/n9dqr/raw"
  5. 当\u0011 == "iluO4PO7Pv8="时,bytes数组内容为"2E736C6E",其对应字符串为".sln"
  6. 当\u0011 == "OIT6ITVzsw8="时,bytes数组内容为"636D64",其对应字符串为"cmd"
  7. 当\u0011 == "NlI2H/2+8sE="时,bytes数组内容为"2F432022",其对应字符串为'/C "'
  8. 当\u0011 == "DcoAUBmho36mBDorlHHmdCf3Z2mGuxd4lraH5pQj6ak="时,bytes数组内容为"68747470733A2F2F7777772E372D7A69702E6F72672F377A722E657865",其对应字符串为"https://www.7-zip.org/7zr.exe"
  9. 当\u0011 == "DcoAUBmho37SbvQx8t9W83/Ge3q60WKUmGrtUiDPNuREEna+M2RGUQ=="时,bytes数组内容为"68747470733A2F2F72656E7472792E636F2F4D75636B436F6D70616E794D4D432F726177",其对应字符串为"https://rentry.co/MuckCompanyMMC/raw"
  10. 当\u0011 == "dw3Hoq0iR7Q=",bytes数组内容为"2E377A",其对应字符串为".7z"
  11. 当\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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 9经验 +100 魅力 +1 人气 +24 收起 理由
QVM360 + 100 + 1 版区有你更精彩: )
yy688go + 3 版区有你更精彩: )
莫求 + 3
DisaPDB + 3
莒县小哥 + 3 版区有你更精彩: )

查看全部评分

,就一个.
发表于 2024-4-5 22:04:48 | 显示全部楼层
本帖最后由 ,就一个. 于 2024-4-6 04:41 编辑

DI
BitDefender这个压缩包解压清空

第二个压缩包双击 Microsoft.exe 后 kill5个衍生物

C:\Users\Public\Pictures\Service.exe

C:\Users\Public\Downloads\Service.exe

C:\Users\ZT\AppData\Local\Temp\lae16\aitstatic.exe

C:\Users\ZT\AppData\Local\Temp\lae16\ComSvcConfig.exe

C:\Users\ZT\AppData\Local\Temp\lae16\MicrosoftCertificateServices.exe

S1
BitDefender这个压缩包解压3x  剩余双击 WinSAT.exe 杀2个衍生物



第二个压缩包双击 Microsoft.exe 后 kill1个衍生物

\Device\HarddiskVolume3\Users\Public\Pictures\Service.exe




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
wwwab
 楼主| 发表于 2024-4-6 18:54:51 | 显示全部楼层
已完稿,开放阅读权限
tdsskiller
发表于 2024-4-6 22:29:01 | 显示全部楼层
DisaPDB
发表于 2024-4-6 22:34:25 | 显示全部楼层
本帖最后由 DisaPDB 于 2024-4-7 06:56 编辑

好!
是我的错觉还是真的删了一点

scottxzt
发表于 2024-4-6 23:12:34 | 显示全部楼层
学习!
偶偶偶114514
发表于 2024-4-7 01:23:21 | 显示全部楼层
学习
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-30 18:55 , Processed in 0.186259 second(s), 19 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表