0x01 前言
该样本来源https://any.run/,本编文章主要记录分析过程,思想方法,如有错误不足,欢迎指出。0x02 基本信息
NAME
Lab03-03.exe
MD5
e2bf42217a67e46433da8b6f4507219e
SHA1
daf263702f11dc0430d30f9bf443e7885cf91fcb
系统平台
Windows
开发语言
C++
表1-1 样本信息
测试环境
WinXP Windows 7
测试工具
IDA、OD、PEID等
表1-2 测试环境及工具
1.1查壳
图1-1 Exeinfo
1.2导入表
图1-2 导入表查看器
1.3资源表
图1-3 PE细节
图1-4 资源表
1.4Procexp监控
1)释放svchost.exe
图1-5 释放文件
2)程序退出
主程序退出,留下svchost.exe进程。
图1-6 程序退出
3)进程对比
svchost.exe是微软Windows操作系统中的系统文件,微软官方对它的解释是:svchost.exe 是从DLL中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个该文件的进程。图1-7 文件对比
1.5procmon监控通过监控可以发现由主程序生成的svchost.exe在不断调用WriteFile和CreateFile等函数对一个名为practicalmalwareanalysis.log的文件进行操作:图1-8 文件操作
图1-9 键盘记录
由此可知,程序运行后释放svchost.exe,然后退出主程序,留下的svchost.exe会在同目录生成practicalmalwareanalysis.log用于记录键盘信息。0x03 样本分析
2.1 main函数
图2-1 main函数
2.2 sub_40149D函数
跟进sub_40149D函数,将BufSize和Buffer当做参数传GetSystemDirectoryA,该函数作用于检索系统目录的路径,系统目录包含系统文件,例如动态链接库和驱动程序。
图2-2 sub_40149D
该GetSystemDirectoryA函数执行完后,eax中长度为19,ebp+0xC存的是
路径。
图2-3 sub_40149D返回
图2-4 sub_40149D返回
2.3 sub_40132C函数
传递的参数是PE文件的地址
图2-5 sub_40132C返回
图2-6 sub_40132C函数
图2-7 sub_40132C函数
资源名判断
图2-8 资源名判断
2.4 sub_4010EA函数
函数执行前,创建svchost.exe,随后申请内存并将线程中获取的寄存器的值放入内存中。
图2-9 创建svchost.exe
函数执行后,主程序退出,释放的PE文件未分析。
图2-10 程序退出
0x04 总结
程序运行后生成名为svchost.exe的程序,随后主程序自动退出,留下的程序记录键盘及文件操作信息。声明
以上内容,均为文章作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。
长白山攻防实验室拥有该文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的副本,包括版权声明等全部内容。声明长白山攻防实验室允许,不得任意修改或增减此文章内容,不得以任何方式将其用于商业目的。