恶意代码分析实战-实验11
本文最后更新于:2021-09-08 下午
Lab 11-1
详细分析
使用火绒剑监控行为,可以看到其向当前的目录下释放了一个Dll文件。
IDA查看,可以看到很明显的从资源节中释放文件
之后会进行注册表的相关操作。
可以看到在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下创建了一个键值GinaDLL,值是释放的DLL的路径。
打开DLL文件,查看其导出表,可以看到大量的Wlx开头的函数,由此可以判断出这是一个GINA拦截,窃取用户登录凭证。
通过查看字符串可以看到一个msutil32.sys,仔细查看发现,是创建此文件,然后向其中写一些数据,写入的数据是什么需要继续往外分析,查看传入的参数。
可以看到写入的数据,是一个结构体的相关信息。而这就是登录账户的信息。
1 |
|
1.这个恶意代码向磁盘释放了什么?
释放了一个msgina32.dll文件。
2.这个恶意代码如何进行驻留?
设置注册表,成为winlogon的一员。
3.这个恶意代码如何窃取用户登录凭证?
GINA拦截用户登录信息
4.这个恶意代码对窃取的证书做了什么处理?
将其保存到msutil32.sys文件中。
5.如何在你的测试环境下让这个恶意代码获得用户凭证?
需要先重启,启动拦截,然后注销系统,再次登录时,信息就会被记录。
Lab 11-2
详细分析
使用IDA打开DLL,看到DLL main函数。
首先会尝试打开C:\Windows\system32\Lab11-02.ini这个文件,可以看到模式是打开存在的文件
然后会读取文件中的数据,这是读取到的数据。
解密算法,解密出数据billy@malwareanalysisbook.com,是一个邮箱地址。
然后会进行比较当前运行的是否是THEBAT.EXE、OUTLOOK.EXE、MSIMN.EXE这三个程序,如果是的话会执行下面的三个函数
之后会获取send函数的地址,来进行inline hook
HOOK函数,关于inline hook的相关知识可以查看这里,inline hook
inline hook前
inline hook后
查看HOOK后的jmp地址,这个函数检测send中发送的数据如果含有RCPT TO:,会加入一个新的RCPT TO: billy@malwareanalysisbook.com,RCPT TO是收件人的意思,也就是发送的所有邮件都会被发送到恶意的邮箱去。
DLL还有一个导出函数install,可以看到是设置了一个键值。分析是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows下的AppInit_DLLs中设置了spoolvxx32.dll,这个键值的作用是当前所有加载user32.dll的程序都会再次加载此键值中的dll。之后会将自身复制到system32目录下。
但是实际测试中发现并没有实现,原因是在XP中这样可以实现,而在win7中不行。
win7需要按照如图中设置,即可实现DLL的注入。
1.这个恶意DLL导出了什么?
导出了一个install函数
2.使用rundll32.exe安装这个恶意代码后,发生了什么?
会将自身复制到system32目录下,还会设置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows下的AppInit_DLLs,这会实现DLL的注入。
3.为了使这个恶意代码正确安装,Lab11-02.ini必须放置在何处?
根据上面分析可知必须放在system32目录下。
4.这个安装的恶意代码如何驻留?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows下的AppInit_DLLs在这个键值中写入DLL的路径,可以实现持久化驻留。
5.这个恶意代码采用的用户态Rootkit技术是什么?
inline hook
6.挂钩代码做了什么?
修改了send函数,所有向外发送包含RCPT TO:几个字符的邮件会被额外添加一行,发送给恶意账户。
7.哪个或者哪些进程执行了这个恶意攻击,为什么?
THEBAT.EXE、OUTLOOK.EXE、MSIMN.EXE,查询发现,它们都是邮件进程
8..ini文件的意义是什么?
存储机密过后的恶意电子邮件地址,用来读取解密。
9.你怎样用wireshark动态抓取这个恶意代码的行为?
可以查看与邮件相关的数据包来进行分析。
Lab 11-3
此实验最好在XP中进行,win7运行没有cisvc.exe。
详细分析
分析程序,可以看到首先复制了文件,之后调用了sub401070
然后经过分析是将一段shellcode注入到cisvc.exe中。
之后就是执行了CMD命令,net start cisvc
可以通过工具看到注入前后的入口点明显发生了变化
分析shellcode发现主要是调用了恶意DLL中的函数zzz69806582
分析DLL,查看这个导出函数看到它创建了一个新的线程。
继续分析新线程,打开发现其创建了一个互斥量防止重复运行,然后创建一个C:\WINDOWS\System32\kernel64x.dll文件,然后是键盘记录功能。记录在创建的文件之中。
记录的一些信息
1.使用基础的静态分析过程,你可以发现什么有趣的线索?
可以看到其中的字符串和一些API,字符串有cmd.exe猜测其启用了cmd,DLL中的导入表有GetAsyncKeyState,猜测可能有键盘记录。
2.当运行这个恶意代码时,发生了什么?
会进行键盘的记录
3.Lab11-03.exe如何安装Lab11-03.dll使其长期驻留?
将其复制在了system32目录下,然后还向cisvc.exe注入了shellcode,使其加载恶意DLL的导出函数实现键盘记录。
4.这个恶意代码感染windows系统的哪个文件?
cisvc.exe
5.Lab11-03.dll做了什么?
创建了dll文件,在其中进行键盘记录
6.这个恶意代码将收集的数据存放在何处?
C:\WINDOWS\System32\kernel64x.dll之中
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!