1. 样本概况
病毒名称为AutoUpdate.exe,运行后无窗口。采用UPX加壳,编写语言为Microsoft Visual C++ 6.0。
病毒名称:AutoUpdate.exe
所属家族:木马
MD5值:776DA18E62B346BB7B9F3F9F9C4FC158
SHA1值:D541E35CAAD8DDC641C59A550218EAF289B64D9C
CRC32:47CD188F
病毒行为:
连接到指定网络IP,接受发送数据包、修改注册表。
1.2 测试环境及工具
环境:WIN7
工具:IDA 、OD、PCHunter
2.具体行为分析
创建sock连接ws2_32.dll
连接网络 106.15.100.10:443
监听本地1075端口
修改注册表_添加启动项
2.1.1 恶意程序对用户造成的危害
可能下载某些恶意程序。
2.2 恶意代码分析
这里判断windows版本
OSVERSIONINFO结构体
typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize;//指定该数据结构的字节大小
DWORD dwMajorVersion;//操作系统的主版本号
DWORD dwMinorVersion;//操作系统的副版本号
DWORD dwBuildNumber;//操作系统的创建号
DWORD dwPlatformId;//操作系统ID号
TCHAR szCSDVersion[ 128 ];//关于操作系统的一些附加信息
} OSVERSIONINFO;
比较dwPlatformId字段 是否为 VER_PLATFORM_WIN32_WINDOWS
判断如果为 win95或98跳转
比较 dwMajorVersion字段 5:为2000以上版本
判断如果为 是否是2000以下版本 跳转.
WH_CBT(5) :安装一个挂钩处理过程,接受对CBT应用程序有用的消息 ,详情参见 CBTProc 挂钩处理过程.
第二个参数 消息对调函数地址
第三个参数
hMod:指示了一个动态链接的句柄,该动态连接库包含了参数lpfn 所指向的挂钩处理过程.若参数dwThreadId指示的线程由当前进程创建,并且相应的挂钩处理过程定义于当前进程相关的代码中,则参数hMod必须被设置为NULL(0).
第四个参数:指示了一个线程标识符,挂钩处理过程与线程相关
看看消息函数004B2ADB,里面做了什么
下面创建一个窗口
窗口属性为80 就是 WS_EX_TOOLWINDOW 一个隐藏窗口:这个属性窗口有一下特点
1. 不在任务栏显示。
2. 不显示在Alt+Tab的切换列表中。
3. 在任务管理器的窗口管理Tab中不显示。
也就是一个隐藏窗口
第二个HOOK
消息函数地址为004B28AF
这里就是添加启动项了,把自己启动名称伪装成输入法的名称。
打开SOFTWARE\Microsoft\Windows\CurrentVersion\Run键值 添加ctfmon启动项。
这是创建一个UDP服务端
具体行为如下:
该程序sock网络连接采用动态加载方式,初始化WinSock 版本为2.2
绑定套接字
创建一个TCP连接:
具体行为如下:
绑定端口
连接到指定IP
发送一个大小为1直接的数据包 内容为ASSCLL码21。
接收20个字节大小的数据
’
该样本可能为某软件的更新程序,里面有大量LoadLibrary调用非系统名称的DLL文件。但自己添加启动项,创建网络连接行为存在风险。
3.1 提取病毒的特征,利用杀毒软件查杀
特征字符串:qiwuyeuu2983 IP地址216.12.214.237:80
3.2 手工查杀步骤或是工具查杀步骤或是查杀思路等。
结束病毒进程AutoUpdate.exe
删除文件AutoUpdate.exe
删除注册表键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 下面的ctfmno项。
下对应的键值。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)