网站首页 > 技术文章 正文
新型窃密软件伪装成一款图形编辑软件,运行后持续窃取用户信息,并发送给攻击者服务器。
恶意文件分析
1.恶意文件描述
近期,深信服深盾终端实验室在运营工作中捕获到一款功能复杂的新型信息窃取软件,该病毒由 C++ 语言编写,套用了开源软件 ZLMediaKit 的部分代码并在其基础上开发恶意模块。该程序的释放的文件包含具有数字签名的正常的库文件,以及没有数字签名但伪装成正常系统文件的 exe 程序。
该软件疑似为 Gitee 上的一个私人的名称为 Aps 的项目,其所释放的自行开发或二次开发的文件中,仍然存在部分调试信息。攻击者在开发时采用强链接的方式,将库函数的代码尽可能多的链接到程序中,增加程序的兼容性。
2.恶意文件分析
一、程序运行流程
进程启动后,会正常显示安装程序结束后的界面。同时,进程会执行 cmd 命令,结束系统安全服务。
同时,程序开始释放大量的文件,路径分别为:C:\Users\Sangfor\AppData\Roaming\Microsoft\Network、C:\Windows\SysWOW64\security。其中包含众多有数字签名正常文件,以及用于进行恶意行为的 NetworkService.exe 、SearchIndexerService.exe 。
plugin 目录下为病毒要加载的重要 DLL 文件。
DreamApslop.dll 主要功能为搜集主机信息、反调试以及向攻击者服务器发送窃取到的主机信息。
libssl-3.dll 、 libcrypto-3.dll 为通信过程中对数据加密时所需要调用的导出函数的库文件。
mk_api.dll 为开源软件 ZLMediaKit 所提供的导出函数库文件,攻击者基于此开源库再开发,增加了恶意代码模块。
使用释放的NetworkService.exe 启动进程。
二、释放的程序的运行流程
创建互斥量,防止进程重复运行。
使用不同的命令行再次启动,第二个参数为当前进程的窗口句柄,用于接收窗口消息,后续将用此接收消息并循环运行:
如果 Network 目录下不存在 para.ini 文件,则创建一个该名称的配置文件。
拼接字符串,调用开源软件的导出函数,并第一次发送网络请求给攻击者服务器,此处的 mk_http_requester_call为攻击者自行编写。
在此函数执行过程中,将会创建诸多线程,大多数线程为进程的辅助线程或 TPPworker,其中一个特殊的线程会调 CreateProcess 函数,再次运行一个 NetworkService.exe,参数与本进程相同但传入的CreationFlags 中含有 Suspend 属性。也就意味着,每次调用该函数都会向攻击者发送搜集的信息。
随后向服务器发送一个网络请求,并将接收到的数据存储到同目录下的 index.ini 文件下。
查找 plugin 目录下的文件,并将查找到的文件路径存储在结构体中。
加载 plugin 目录下所有的 DLL 文件,并尝试调用每一个DLL 文件的导出函数 Plugin_Create,并调用目标 DLL 的其它导出函数。
该导出函数会尝试加载四个 DLL 文件,分别为:plugin\\libcrypto-3.dll、plugin\\sqlite3.dll、plugin\\mk_api.dll、plugin\\libssl-3.dll。
随后获取磁盘序列号,加密并将数据转为 base64 后,发送给目标服务器。
服务器返回的数据解码后得到:
同时还搜集如下信息:
1. 通过 "cmd.exe /c ipconfig /all" 搜集所有的网卡信息。
2. 通过 "Process32Next"、"GetNativeSystemInfo" 获取当前系统运行的所有进程。
3. 通过 "cmd.exe /c whoami" 获取当前登录的用户名称。
4. 通过 "cmd.exe /c netsh wlan show profiles" 获取无线网卡配置信息。
向服务器发送的数据包如下:
- 上一篇: 30秒帮你找回wifi密码
- 下一篇: 精心总结--关于mysql数据库常见的优化手段、步骤
猜你喜欢
- 2024-11-26 Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 2024-11-26 一文搞懂MySQL行锁、表锁、间隙锁详解
- 2024-11-26 电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 2024-11-26 代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 2024-11-26 CMD命令提示符能干嘛?这些功能你都知道吗?
- 2024-11-26 性能测试之慢sql分析
- 2024-11-26 论渗透信息收集的重要性
- 2024-11-26 如何查看电脑连接过的所有WiFi密码
- 2024-11-26 详解mysql数据库性能优化实验--从两个sql来体会子查询的优化效果
- 2024-11-26 win10怎么查看已存储wifi密码
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 522℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 491℃MySQL service启动脚本浅析(r12笔记第59天)
- 470℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 468℃启用MySQL查询缓存(mysql8.0查询缓存)
- 448℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 428℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 425℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)