一例MFC文件夹病毒的分析

2024-04-22 21:12

本文主要是介绍一例MFC文件夹病毒的分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

这是一个MFC写的文件夹病毒,通过感染USB设备传播,感染后,会向c2(fecure.info:443)请求指令来执行。

样本的基本信息

Verified:    Unsigned
Link date:    19:52 2007/7/5
MachineType:    32-bit
MD5:    4B463901E5858ADA9FED28FC5134A039
SHA1:    9F10D1E42AC628B1794DDA08EB6C9B7D7B5DBD55
SHA256:    2C2D947D62D352E8FC0AB8A9D69B8DCA0AEE73716CC02806BD79B473CDBB7B7B

这是一个MFC程序,不太好分析,首先先找到程序的入口

用ResHacker看一下它的资源,其中有一个对话框 ,title为MyPCMD,暂且将这个窗口命名为MyPCMD

在样本的.rdata节中找到了CMyPCMDApp和CMyPCMDDlg中的方法。
其中CMyPCMDApp类中用户自定义的函数有

~CMyPCMDApp_409A10
GetMessageMap_4093FA
InitInstance_4096C6

CMyPCMDDlg类中用户自定义的方法有

~CMyPCMDDlg_40A050
GetMessageMap_409C56
OnInitDialog_409C66

病毒的恶意操作肯定在这几个函数中,依次分析这些函数发现CMyPCMDApp::InitInstance_4096C6和CMyPCMDDlg::OnInitDialog_409C66这两个函数比较可疑。

CMyPCMDApp::InitInstance_4096C6

在注册表中创建开机启动项

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"winmcs"="c:\programdata\winmcs.exe"

将病毒自身拷贝为c:\programdata\winmcs.exe

打开与病毒文件同名的目录

若当前文件名不是c:\programdata\winmcs.exe,启动c:\programdata\winmcs.exe,然后退出。

创建互斥量Hello_ss,若存在同名的互斥量,退出。若不存在同名互斥量,创建一个窗口类CMyPCMDDialog,调用这个对话框的DoModal()方法。

CMyPCMDDlg::OnInitDialog_409C66

在这个函数中将对话框的标题设置空,隐藏窗口,创建又删除文件%temp%\Ie5TempFile.Dat,莫明其妙。之后创建了一个线程来执行恶意操作。


在这个线程中构造了一个非常复杂的类。然后连接fecure.info:443来获取指令,根据指令来执行不同的操作
根据字符串大致可以推断具有以下功能,这部分有点复杂,啃不动。

FileSend send file to romot, peer  
FileRecv recv file to romot, peer  
FileRun recv file to romot, peer and run 
sendfile Send file to the romote
getfile Get the romote file
cmdshell Get the remote cmdshell
mycmd Run the remote cmd
exec Run the remote exec

遍历D-X盘符,寻找U盘来感染。

判断U盘的方式有两种,一是调用GetDriveTypeA,二是通过DeviceIoControl来查询存储设备的属性来判断是否为USB设备(code为IOCTL_STORAGE_QUERY_PROPERTY 0x2D1400u)。

感染U盘的方式简单粗暴,直接将根目录下的原文件夹隐藏,将自身复制为目录名+169个空格+'.exe',感染后的症状如下图所示,由于exe文件名太长了,资源管理器显示不全,用户一般看不到后缀名,会误点击造成感染系统。

IOC

hash 
4B463901E5858ADA9FED28FC5134A039文件
c:\programdata\winmcs.exe
%temp%\Ie5TempFile.DatX:\目录名+169个空格+'.exe'互斥量 Hello_ss网络
fecure.info:443

总结

这个样本是分析的第一个MFC病毒,又重新把MFC学习了一篇,对于C++中的类的逆向有点费劲。

参考资料

  • 逆向MFC程序_mfc逆向-CSDN博客

  • VS2010/MFC编程入门教程之目录和总结-软件开发-鸡啄米 (jizhuomi.com)

  • [翻译]浅析MFC逆向(Basic MFC Reversing)-外文翻译-看雪-安全社区|安全招聘|kanxue.com

  • [原创]STORAGE_DEVICE_DESCRIPTOR 方式获取硬盘序列号-编程技术-看雪-安全社区|安全招聘|kanxue.com

这篇关于一例MFC文件夹病毒的分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/926876

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实