银狐样本分析

银狐病毒

概述

msi在安装过程中执行恶意脚本,在C盘释放载荷ee.exe,ee.exe解密执行shellcode,shellcode通过多种手段执行反调试操作,添加Windows Defender的排除路径,解密字符串获取url后建立连接下载文件并解密,获得多个url,继续下载文件释放到指定路径下,文件包括具有数据签名的白文件,恶意dll,ffff.pol,ffff,lop。Shellcode加载白文件,白文件运行过程中加载恶意dll,恶意dll加载ffff.pol到内存中,ffff.pol是缺少MZ头的pe文件,添加后跳转到入口点执行,ffff.pol解密ffff.lop文件得到dll文件和ip地址等,执行ffff.lop文件的导出函数Edge与c2建立通信获取指令执行窃密、提权、设置自启动等操作。
根据域名,释放文件路径,远控模块判断是银狐病毒。

在这里插入图片描述

MSI文件

Msi文件中被注入恶意脚本,在安装过程中将三个文件的内容合并成一个二进制文件C:\ee.exe并执行。
在这里插入图片描述

ee.exe

ee.exe入口点被修改为跳转指令,text段存在shellcode。将shellcode复制到申请到的内存空间后跳转执行。
在这里插入图片描述

shellcode

通过xor解密shellcode,解密后数据如下图所示。
在这里插入图片描述
利用LoadLibraryA和GetProcAddress动态获取其他函数。
在这里插入图片描述
调用CreateToolhelp32Snapshot(),Process32First()和Process32Next()函数遍历进程,判断是否存在MsiExec.exe进程。
在这里插入图片描述
调用GetCurrentProcessId()函数获取当前进程ee.exe的pid,遍历进程,通过进程id判断是否是当前进程,是当前进程则获取当前进程的父进程pid。
在这里插入图片描述
遍历进程获取ee.exe父进程的父进程pid。
在这里插入图片描述
在这里插入图片描述
再次遍历进程获取ee.exe父进程的进程名。再次遍历进程获取ee.exe父进程的的父进程进程名如果是explore.exe结束进程。
获取计算机名称,创建互斥体。
在这里插入图片描述
解密出配置文件路径C:\xxxx.ini。
在这里插入图片描述
利用GetTickCount64函数和rdtsc反调试。
在这里插入图片描述
在这里插入图片描述
调用CreateToolhelp32Snapshot(),Process32First()和Process32Next()函数遍历进程,判断是否存在360tray.exe,360sd.exe,360safe.exe进程。如果存在结束进程。
在这里插入图片描述
调用CreateToolhelp32Snapshot(),Process32First()和Process32Next()函数遍历进程,判断是否存在msmpeng.exe,mpcopyaccelerator.exe,securityhealthsystray.exe进程,这些是windows defender相关进程。通过这个shellexecuteA调用,会启动 PowerShell 并执行指定的命令,完成对Windows Defender的排除路径的设置。排除的路径包括’C:\ProgramData’和’C:\Users\Public’。参数-Force表示强制执行,即使有警告或确认提示也会被忽略。
在这里插入图片描述
由硬编码的字符串解密出url:Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/c.dat。在这里插入图片描述

调用InternetOpen,InternetOpenUrlA,InternetReadFile读取数据到申请的内存中。
在这里插入图片描述
从读取的内容中解密出以下url。 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
随机生成字符串后,从硬编码的字符串中解密出释放路径。之后与随机生成的字符串拼接,调用CreateDirectoryA函数创建目录。在这里插入图片描述
生成随机字符串与上述路径拼接后与.exe拼接。之后又拼接出三个路径如下图所示,文件名由上文中https通信读取的数据解密得到。在这里插入图片描述
调用InternetOpen,InternetOpenUrlA,InternetReadFile从Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_120.jpg读取数据到申请的内存中异或解密得到pe文件。在这里插入图片描述
写入到下图所示文件中。在这里插入图片描述
从Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_121.jpg中下载的数据解密后是dll文件,写入到释放路径下的CiscoSparkLauncher.dll文件中。在这里插入图片描述
可执行程序是具有有效签名的白文件,运行时加载恶意dll。在这里插入图片描述
从Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_122.jpg中下载的数据解密后是不具有mz标识的不完整pe文件,写入到释放路径下的ffff.pol文件中。在这里插入图片描述
从Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_123.jpg中下载的数据解密后写入到释放路径下的ffff.lop文件中。在这里插入图片描述
设置释放文件所在的路径为当前路径。在这里插入图片描述
调用ShellExecuteEx执行释放的白文件。在这里插入图片描述

CiscoSparkLauncher.dll

获取计算机名称,创建互斥体
在这里插入图片描述
解密出shellcode后执行。在这里插入图片描述
利用LoadLibraryA和GetProcAddress动态获取其他函数。加载ffff.pol文件到内存中,修补mz头后跳转到入口点执行。

ffff.pol

调用OpenMutexA、CreateMutexA函数确保进程唯一运行。在这里插入图片描述

创建线程,获取命令行参数作为线程函数的参数。
调用IsUserAnAdmin函数判断当前用户是否具有管理员权限。如果具有管理员权限则设置UAC不弹出任何提示框,以管理员权限自动运行程序。在这里插入图片描述

创建线程不断遍历进程,判断是否存在360tray.exe,360safe.exe,360sd.exe进程,并且请求目标窗口关闭自身。在这里插入图片描述

读取ffff.lop文件到内存中,从起始位置偏移2A0处解密出pe文件,大小5a000。在这里插入图片描述

从起始位置偏移180处得到IP地址。在这里插入图片描述

从起始位置偏移4dd48处得到IP地址。在这里插入图片描述

从起始位置偏移190处得到端口7000。
从起始位置偏移1a0处得到uiekjxw.net。
从起始位置偏移4e1a4处得到iuearx.net。
从起始位置偏移1b0处得到端口7063。
在内存中展开修复后获取导出函数Edge地址跳转执行。在这里插入图片描述

ffff.lop

删除指定文件,并把指定文件设置为HIDDEN|SYSTEM。在这里插入图片描述

创建线程,枚举窗口,如果窗口标题栏上显示的文本信息是以下字符串则调用ShellExecuteA函数重新运行程序,并退出当前进程。在这里插入图片描述

遍历进程如果存在rundll322.exe,rundll3222.exe,rundll32222.exe则强制终止执行。在这里插入图片描述

创建线程,遍历进程如果360tray.exe不存在并且C:\xxxx.ini不存在,执行命令创建一个名为xxxx.ini的空文本文件,位于C:\目录下。在这里插入图片描述

备份样本作为服务启动。在这里插入图片描述

获取新的C2地址。在这里插入图片描述

与C2建立连接后,获取操作系统信息,操作系统位数,cpu信息,当前登录的qq号信息,查询是否存在反病毒产品,有则返回软件名称,磁盘剩余空间等系统信息,发送上线包。在这里插入图片描述

开启3389端口。在这里插入图片描述

上传数据经过以下加密函数。在这里插入图片描述

在这里插入图片描述

单独开启线程进行通信相关操作,连接建立后会在循环中监听信息。在这里插入图片描述

响应函数如下图所示。在这里插入图片描述

Recv接收后解密函数。
在这里插入图片描述

C2指令

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

yara

rule silverfox_msi
{
strings:
$msi_data0001 = “WshShell.Run “cmd.exe /c copy /b C:\ww.txt+C:\ProgramData\1+C:\bb.txt C:\ee.exe”,0,True”
m s i d a t a 0002 = " W s h S h e l l . R u n c ¨ m d . e x e / c c m d . e x e / c C : e e . e x e , ¨ 0 , F a l s e " c o n d i t i o n : a l l o f ( msi_data0002 = "WshShell.Run \"cmd.exe /c cmd.exe /c C:\\ee.exe\",0,False" condition: all of ( msidata0002="WshShell.Runc¨md.exe/ccmd.exe/cC:ee.exe¨0False"condition:allof(msi_data*)
}
rule silverfox_exe
{
strings:
$xor_decode ={ 49 FF CF 49 FF C7 E8 2E 8E 00 00 EB 00 F1 4C D7 35 E3 E0 08 C7 18 62 87 DB F8 47 41 30 00 44 30 24 08 44 02 24 08 E2 F6 }
condition:
$xor_decode
}
rule silverfox_xml
{
strings:
$str_mutex =“{A30BD1B1-CB43-4604-86F5-56594AEE26A3}”
$str_uac_reg = “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”
$str_uac = “ConsentPromptBehaviorAdmin”
$str_360_1 = “360tray.exe”
$str_360_2 =“360safe.exe”
$str_360_3 =“360sd.exe”
s t r 3 6 0 4 = " Q 360 S a f e M o n C l a s s " c o n d i t i o n : a l l o f ( str_360_4 ="Q360SafeMonClass" condition: all of ( str3604="Q360SafeMonClass"condition:allof(str_)
}
rule silverfox_rat
{
strings:
//43.139.21.74
$hex_ip ={34 33 2E 31 33 39 2E 32 31 2E 37 34 }
//uiekjxw.net
h e x h o s t n a m e = 7569656 B 6 A 78772 E 6 E 6574 c o n d i t i o n : a l l o f ( hex_hostname ={75 69 65 6B 6A 78 77 2E 6E 65 74 } condition: all of ( hexhostname=7569656B6A78772E6E6574condition:allof(hex_
)
}

snort

在这里插入图片描述
在这里插入图片描述

IOC

ad372f749c79d0e4fbb1a4f0ce8b499e
f72eb87712e06a2d4ad2b9d605cb820d
07caac743541436f6a19ea53e5c67a44
06e16647fd5dbcc967be66240e33fc7b
77f5941e94bbc74b7cd544cf84551325
06e16647fd5dbcc967be66240e33fc7b
Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/c.dat
Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_120.jpg
Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_121.jpg
Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_122.jpg
Hxxps://oss3333.oss-cn-shanghai.aliyuncs.com/DMR_123.jpg
uiekjxw.net
43.139.21.174:7000
15.197.148.33:7063
3.33.130.190:7063

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/578301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从递归角度串联二叉树-图论-动态规划

一、深度理解二叉树的前中后序遍历 二叉树遍历框架如下: void traverse(TreeNode* root) {if (root nullptr) {return;}// 前序位置traverse(root->left);// 中序位置traverse(root->right);// 后序位置 }先不管所谓前中后序,单看 traverse 函数…

Linux系统安全与应用【二】

目录 1.开关机安全控制 1.2 实例:GRUB 菜单设置密码 2.终端登录安全控制 2.1 限制root只在安全终端登录 ​3.弱口令检测 3.1 Joth the Ripper,JR​编辑 4.网络端口扫描 4.1 nmap命令 1.开关机安全控制 1.1 GRUB限制 限制更改GRUB引导参数 通常情况下在系统…

【源码】WBF多语言交易所/申购+自发币平台币+币币+杠杆+合约/附带安装教程/带VUE工程源码

【源码介绍】 WBF多语言交易所/申购自发币平台币币币杠杆合约/附带安装教程/带VUE工程源码 【源码说明】 带VUE工程源码最新申购,自发币平台币,币币,法币,杠杆,合约多语言交易所,附带pc和手机VUE&#x…

本地认证的密码去哪了?怎么保证安全的?

1. windows登录的明文密码,存储过程是怎么样的?密文存在哪个文件下?该文件是否可以打开,并且查看到密文? 系统将输入的明文密码通过hash算法转为哈希值,且输入的值会在内存中立即删除无法查看。 然后将密文存放在C:…

基础SQL DQL语句

基础查询 select * from 表名; 查询所有字段 create table emp(id int comment 编号,workno varchar(10) comment 工号,name varchar(10) comment 姓名,gender char(1) comment 性别,age tinyint unsigned comment 年龄,idcard char(18) comment 身份证号,worka…

贪吃蛇大作战【纯c语言】

如果有看到不懂的地方或者对c语言某些知识忘了的话,可以找我之前的文章哦!!! 个人主页:小八哥向前冲~-CSDN博客 所属专栏:c语言_小八哥向前冲~的博客-CSDN博客 贪吃蛇游戏演示: 贪吃蛇游戏动画演…

ArcGIS Pro 和 Python — 分析全球主要城市中心的土地覆盖变化

第一步——设置工作环境 1–0. 地理数据库 在下载任何数据之前,我将创建几个地理数据库,在其中保存和存储所有数据以及我将创建的后续图层。将为我要分析的五个城市中的每一个创建一个地理数据库,并将其命名为: “Phoenix.gdb” “Singapore.gdb” “Berlin.gdb” “B…

抖音小店无货源怎么做?新手五步运营法,简单又实用!

大家好,我是电商糖果 很多朋友开抖店之前,对电商没有一点基础。 这个时候就会出现一种非常尴尬的情况,就是店铺开好之后,不知道怎么运营。 糖果做电商有7年时间了,做抖音小店也有四年多了。 现在也开了多家小店&am…

16 - grace数据处理 - 补充 - 读GRACE数据并进行低阶项替换

16 - grace数据处理 - 补充 - 读GRACE数据并进行低阶项替换 *0* 引言*1* 主程序分享0 引言 关于Grace模型数据的介绍可以参考文章00,数据由3家机构发布,这里做一个关于数据读取的补充,源码来自这里,直接运行slepian_delta中的程序会出现😊意想不到😊的错误,下面分享的…

Kubernetes - CentOS7搭建k8s_v1.18集群高可用(kubeadm/二进制包部署方式)实测配置验证手册

Kubernetes - CentOS7搭建k8s集群高可用(kubeadm/二进制包部署方式)实测配置验证手册 前言概述: 一、Kubernetes—k8s是什么 Kubernetes 这个名字源于希腊语,意为“舵手“或”飞行员"。 Kubernetes,简称K8s&#…

无人机+巡飞弹:“柳叶刀”巡飞弹技术详解

“柳叶刀”巡飞弹技术是一种结合了无人机和巡飞弹的先进武器系统,由俄罗斯ZalaAero公司研制,首次公开亮相是在2019年的俄罗斯军队装备展上。该系统以其高度的灵活性和精确打击能力,在现代战场上扮演着重要角色。 系统组成:柳叶刀巡…

网络基础(day3)

【 理论重点】 网络是什么&#xff1f; &#xff08;网络是载体&#xff0c;目的是传输互联网中的数据&#xff0c;数据是终端产生<手机、电脑、服务器等>。&#xff09; 如何组件网络&#xff08;良性网络架构&#xff09;&#xff1f;有网络架构思维&#xff0c;得按层…

uniapp小程序订阅通知

服务 开通订阅服务 const tmplIds ref([tsdasdadasdfgdrtwexQHdEsjZV])//换成自己的 function confirm(){uni.requestSubscribeMessage({tmplIds: tmplIds.value,success: (res) > {// console.log(res)let auth_notice res[tmplIds.value[0]] accept ? 1 : 2 //1是接…

Alibaba Cloud Linux 3.2104 LTS 64位安装mysql 8.0报错

问题描述 Alibaba Cloud Linux 3.2104 LTS 64位安装mysql 8.0提示 Error&#xff1a; GPG check FAILED 问题原因 官方 MySQL 存储库的 GPG 密钥已过期&#xff0c;无法安装或更新 MySQL 包 mysql官网也提交了该bug&#xff1a; https://bugs.mysql.com/bug.php?id106188 …

matlab批量读取csv文件

matlab如何批量读取csv文件 在Matlab中&#xff0c;有多种方法可以批量读取CSV文件。下面是几种常用的实现方法&#xff1a; 方法一&#xff1a;使用dir函数获取文件列表 folder 文件夹路径; files dir(fullfile(folder, *.csv)); numFiles length(files);for i 1:numFi…

每日两题 / 78. 子集 17. 电话号码的字母组合(LeetCode热题100)

78. 子集 - 力扣&#xff08;LeetCode&#xff09; 通过二进制数的方式&#xff0c;若第k位为1&#xff0c;表示最终的集合中存在nums[k] 只要遍历所有可能的二进制数即可 class Solution { public:vector<vector<int>> subsets(vector<int>& nums) {…

BGP EVPN-Type2、3、5路由

文章目录 概述1、Type2 路由——MAC/IP 路由2、Type3 路由——Inclusive Multicast 路由3、Type5 路由——IP 前缀路由 概述 EVPN&#xff08;Ethernet Virtual Private Network&#xff09;是一种用于二层网络互联的 VPN 技术。 EVPN 技术采用类似于 BGP/MPLS IP VPN 的机制&…

【LeetCode:2095. 删除链表的中间节点 + 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

安装crossover游戏提示容量不足怎么办 如何把游戏放到外置硬盘里 Mac电脑清理磁盘空间不足

CrossOver作为一款允许用户在非原生操作系统上运行游戏和应用程序的软件&#xff0c;为不同平台的用户提供了极大的便利。然而&#xff0c;随着游戏文件大小的不断增加&#xff0c;内置硬盘的容量往往无法满足安装需求。幸运的是&#xff0c;通过一些简单的步骤&#xff0c;我们…

表---商场 nine

CREATE TABLE gao25 (id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,shopId int(11) NOT NULL COMMENT 店铺ID,goodsId int(11) NOT NULL COMMENT 商品ID,attrId int(11) NOT NULL COMMENT 属性名称,attrVal text NOT NULL COMMENT 属性值,createTime datetime NOT NULL …