【仿云购源码】【发号网php源码】【公众号小说源码下载】spark源码解密

1.银狐样本分析

spark源码解密

银狐样本分析

       病毒概述

       msi在安装过程中执行恶意脚本,码解密该脚本在C盘释放ee.exe,码解密ee.exe解密执行shellcode,码解密shellcode通过多种手段执行反调试操作,码解密添加Windows Defender的码解密排除路径,解密字符串获取url后建立连接下载文件并解密,码解密仿云购源码获得多个url,码解密继续下载文件释放到指定路径下,码解密这些文件包括具有数据签名的码解密白文件,恶意dll,码解密ffff.pol,码解密ffff,码解密lop。码解密

       Shellcode加载白文件,码解密白文件运行过程中加载恶意dll,码解密发号网php源码恶意dll加载ffff.pol到内存中,ffff.pol是缺少MZ头的pe文件,添加后跳转到入口点执行,ffff.pol解密ffff.lop文件得到dll文件和ip地址等,执行ffff.lop文件的导出函数Edge与c2建立通信获取指令,执行窃密、提权、设置自启动等操作。

       根据释放文件路径和远控模块,判断为银狐病毒。

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

       ee.exe入口点被修改为跳转指令,text段存在shellcode,公众号小说源码下载将shellcode复制到申请到的内存空间后跳转执行。

       通过xor解密shellcode,利用LoadLibraryA和GetProcAddress动态获取其他函数,调用CreateToolhelpSnapshot(),ProcessFirst()和ProcessNext()函数遍历进程,判断是否存在MsiExec.exe进程。

       获取当前进程ee.exe的pid,遍历进程,通过进程id判断是否是当前进程,是当前进程则获取当前进程的父进程pid,再次遍历进程获取ee.exe父进程的父进程pid,再次遍历进程获取ee.exe父进程的进程名,再次遍历进程获取ee.exe父进程的的父进程进程名如果是explore.exe,则结束进程。周易风水网站源码

       获取计算机名称,创建互斥体,解密出配置文件路径C:\xxxx.ini,利用GetTickCount函数和rdtsc反调试,调用函数遍历进程,判断是否存在tray.exe,sd.exe,safe.exe进程,如果存在则结束进程。

       设置排除路径包括'C:\ProgramData'和'C:\Users\Public',参数-Force表示强制执行,即使有警告或确认提示也会被忽略。

       由硬编码的字符串解密出url,调用InternetOpen,有溯源码的燕窝InternetOpenUrlA,InternetReadFile读取数据到申请的内存中,从读取的内容中解密出多个url。

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

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

       创建线程,获取命令行参数作为线程函数的参数,调用IsUserAnAdmin函数判断当前用户是否具有管理员权限,如果具有管理员权限则设置UAC不弹出任何提示框,以管理员权限自动运行程序,创建线程不断遍历进程,判断是否存在tray.exe,safe.exe,sd.exe进程,并且请求目标窗口关闭自身,读取ffff.lop文件到内存中,从起始位置偏移2A0处解密出pe文件,大小5a,从起始位置偏移处得到IP地址,从起始位置偏移4dd处得到IP地址,从起始位置偏移处得到端口,从起始位置偏移1a0处得到 uiekjxw.net,从起始位置偏移4e1a4处得到 iuearx.net,从起始位置偏移1b0处得到端口,在内存中展开修复后获取导出函数Edge地址跳转执行,删除指定文件,并把指定文件设置为HIDDEN|SYSTEM,创建线程,枚举窗口,如果窗口标题栏上显示的文本信息是以下字符串则调用ShellExecuteA函数重新运行程序,并退出当前进程,遍历进程如果存在rundll.exe,rundll.exe,rundll.exe则强制终止执行,创建线程,遍历进程如果tray.exe不存在并且C:\xxxx.ini不存在,则执行命令创建一个名为xxxx.ini的空文本文件,位于C:\目录下,备份样本作为服务启动,获取新的C2地址,与C2建立连接后,获取操作系统信息,操作系统位数,cpu信息,当前登录的qq号信息,查询是否存在反病毒产品,有则返回软件名称,磁盘剩余空间等系统信息,发送上线包,开启端口,上传数据经过加密函数处理,单独开启线程进行通信相关操作,连接建立后会在循环中监听信息,响应函数如下图所示,包括Recv接收后解密函数,C2指令yarasnortIOC,加密函数等。

更多内容请点击【时尚】专栏