-
-
[原创]Lab03-03样本分析记录
-
2021-3-20 19:45 3411
-
0x00 说明
该样本来源于此帖恶意样本简单分析
0x01 基本信息
NAME:Lab03-03.exe
MD5:e2bf42217a67e46433da8b6f4507219e
SHA1:daf263702f11dc0430d30f9bf443e7885cf91fcb
样本运行后,效果可见ANYRUN。
PEID查壳:
运行样本并通过procexp对其进行监控,结果如下图。据此可以知道,Lab03-03.exe
运行后生成名为svchost.exe
的程序,随后Lab03-03.exe
自行退出:
将生成的svchost.exe
与系统文件svchost.exe
进行对比可发现,该文件出现了许多不应该存在的字符串:
查看服务,该svchost.exe
属于未知组件:
通过procmon,可以发现由Lab03-03.exe
生成的svchost.exe
在不断调用WriteFile
和CreateFile
等函数对一个名为practicalmalwareanalysis.log
的文件进行操作:
打开该文件,其中记录了键盘及文件操作等信息。例如此处在桌面新建文档并键入字符,打开practicalmalwareanalysis.log
后可观察到如下信息:
由此可知Lab03-03.exe
运行后将生成进程svchost.exe
并自行退出,留下的svchost.exe
会在同目录下生成practicalmalwareanalysis.log
用于记录键盘及文件操作信息。
0x02 静态分析
用IDA对Lab03-03.exe
进行分析
0x02.01 main函数
main函数主要逻辑如下:
其中主要分析sub_40149D
、sub_40132C
及sub_4010EA
0x02.02 sub_40149D函数
该函数第一个参数为\svchost.exe,函数主要目的是返回系统文件svchost.exe
的路径:
0x02.03 sub_40132C函数
sub_40132C
将PE文件地址作为参数传入:
随后对其进行如下处理:
首先查找位置,此处笔者将该部分复制出来保存:
当判断该文件前两个字母不为"MZ"时,sub_401000
函数将对其进行处理,处理方式为:
sub_40132C
函数结束后内存变化如下,此时解析后的PE文件写入内存0x3B0000
处:
将保存的文件异或处理后得到文件如下,对该文件的分析将放至第三部分详细描述:
0x02.04 sub_4010EA函数
此函数分析如下:
首先创建svchost.exe
,随后申请内存并将线程中获取的寄存器的值放入内存中:
之后利用NtUnmapViewOfSection
函数将Buffer
处的模块卸载:
最后激活进程:
0x03 解析后PE文件分析
此处用IDA对其进行分析
0x03.01 main函数
0x03.02 回调函数fn
fn
中调用了函数sub_4010c7
,该函数主要目的为处理键值并在相应的文档中记录信息:
之后通过对传入值的判断做如下操作,从而完成对键值的监听:
0x04 参考链接
https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keydown
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-setfilepointer
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。