恶意代码分析实战11-1

Posted Neil-Yale

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恶意代码分析实战11-1相关的知识,希望对你有一定的参考价值。

本次实验我们将会分析lab11-01.exe文件。先来看看要求解答的问题
Q1.这个恶意代码向磁盘释放了什么?
Q2.这个恶意代码如何进行驻留?
Q3.这个恶意代码如何窃取用户登录凭证?
Q4.这个恶意代码对窃取的证书做了什么处理?
Q5.如何在你的测试环境让这个恶意代码获得用户登录凭证?

Peview载入
在这里插入图片描述

看到了ginadll和一个注册表,怀疑这可能是一个拦截gina的恶意代码
查看导入函数
在这里插入图片描述

可以看到一些操纵注册表和提取资源节的函数
我们看到了名为TAGD的资源节
在这里插入图片描述

可以看到它里面包含一个pe文件
用resource hacker打开
在这里插入图片描述

将其保存为文件
在这里插入图片描述

因为可能是dll也可能是exe此时还不清楚,暂时命名为test.exe
接下来可以使用peid查看文件类型
在这里插入图片描述

可以看到这是一个dll文件,那么重命名为test.dll
接下来动态分析
使用process monitor监控
在这里插入图片描述


接下来运行lab11-01.exe
在这里插入图片描述

注意到createfile在同路径下创建了msgian32.dll
在文件夹里确实可以看到释放的msgina32.dll
Q1.这个恶意代码向磁盘释放了什么?
A1.恶意代码从名为TGAD资源节中提取出文件msgina32.dll,然后将其释放到硬盘上
在这里插入图片描述


在注册表方面,访问设置了ginadll
在这里插入图片描述

在注册表中查看
在这里插入图片描述在这里插入图片描述


那么我们接下来看看我们手动提取和它自动释放的dll是不是一样的
释放的md5为
在这里插入图片描述

手动提取的md5为
在这里插入图片描述

是完全一致的。
因为添加进去了注册表项,所以当系统重启后,仍然可以保持持久化驻留
Q2.这个恶意代码如何进行驻留?
A2.恶意代码将自己添加到注册表: HKLM\\SOF TWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\GinaDLL中。这使得系统重启后, msgina32.dll将被加载。

我们来使用Peview分析释放的dll
在这里插入图片描述

在导出函数表中看到很多前缀以Wlx开始的函数
接下来使用IDA分析
在这里插入图片描述

一开始将fdwReason与1比较,来判断是不是加载时被调用,是的话往左边走

左边,是获取目录,然后与MSgina组合,然后使用LoadLibrary获取msgina.dll的句柄
然后返回值保存在eax
通过mov指令保存在了hModule
也其实是恶意的gina为了实现真正的gina所实现功能所做的操作
接下来切换到export窗口
分析导出函数
在这里插入图片描述

先分析logon的
双击进入
在这里插入图片描述

可以看到是将字符串压栈,作为sub_10001000参数使用
该函数返回值保存在eax
后面jmp eax则是直接跳到了eax保存的位置进行执行
跟进这个函数分析
在这里插入图片描述

可以看到,一开始是拿到了之前得到的句柄,以及压栈的字符串
后面调用GetProcAddress获得真实的gina中的logon函数地址
这样的话,假的gina就能实现真的gina的功能调用

Q3.这个恶意代码如何窃取用户登录凭证?
A3.恶意代码用GINA拦截窃取用户登录凭证。msgina32.dll 能够拦截所有提交到系统认证的用户登录凭证
分析其他的函数也是类似的
在这里插入图片描述

不过logout是个例外,因为它是用于注销的
在这里插入图片描述

可以看到下面是一些push,而且有个格式化的字符串
push入栈的内容都是sub_10001570的参数
进入这个函数看看
在这里插入图片描述

可以看到它的功能就是把日期、时间等信息写到msutil32.sys
Q4.这个恶意代码对窃取的证书做了什么处理
A4.恶意代码将被盜窃的登录凭证记到%SystemRoot%lSystem32\\msuti32.sys中。用户名、域名称、密码、时间戳都将被记录到该文件
接下来我们重启,测试下分析出来的结论是否正确
重启后在c盘找到该文件
在这里插入图片描述

用记事本打开
在这里插入图片描述

可以看到,记录了我登录的时间、UN是username,PW就是password,我没设置,所以显示的null
Q5.如何在你的测试环境让这个恶意代码获得用户登录凭证?
A5.释放并且安装恶意代码后,必须重启系统才能启动GINA拦截。仅当用户注销时,恶意代码才记录登录凭证,所以注销然后再登录系统,就能看到记录到日志文件的登录凭证

参考。
1.《恶意代码分析实战》

以上是关于恶意代码分析实战11-1的主要内容,如果未能解决你的问题,请参考以下文章

恶意代码分析实战3-2

恶意代码分析实战9-1

恶意代码分析实战14-02

恶意代码分析实战11-2

恶意代码分析实战15-3

恶意代码分析实战21-2