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

X:\目录名+169个空格+'.exe'

互斥量 Hello_ss

网络
fecure.info:443

总结

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

参考资料

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 03:44:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 03:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 03:44:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 03:44:01       20 阅读

热门阅读

  1. 00_Linux

    00_Linux

    2024-04-26 03:44:01      11 阅读
  2. 0053__Linux----tr命令详细使用方法

    2024-04-26 03:44:01       8 阅读
  3. Linux下文件内容更新了文件夹时间戳却没变?

    2024-04-26 03:44:01       12 阅读
  4. Spring中事务的几种失效场景

    2024-04-26 03:44:01       12 阅读
  5. 如何看待AIGC技术?【模板】

    2024-04-26 03:44:01       12 阅读