一例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

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3