恶意代码分析实战Lab1102
打开ini文件,看到一个字符串,明显是加密过的,很容易猜想dll会对其进行解密
首先关注到ini文件的使用方式
可知ini文件需要放到system32目录下,该dll才可以正确运行
100010B3函数对读取的每一位做计算
不晓得这堆数据有什么用
然后分析到100014B6函数:
合理猜测当这些dll或者exe运行时,会调用该恶意代码
分析installer函数:
很常见的注册表键值操作以及文件操作
分析113D函数块:
这里有可能是作为控制端的后门回传
接下来就可以试着动态调一调会发生什么
记得把ini文件放到C:\Windows\System32目录下
变化如下:
但是,这个文件没有被复制,也没有修改,那恶意代码是如何控制它呢?分析一下这个dll
和原来程序一模一样啊!
问题1:恶意dll导出了什么
导出了一个和自己一样的spoolvxx32.dll
问题2:使用rundll32.exe安装这个恶意代码后会发生什么
A:系统原有的spoolvxx32.dll被覆盖
B:该恶意dll被写入了注册表
问题3:为了使得dll正常安装,ini文件应该放在哪里
C:\Windows\System32问题4:代码如何驻留
注册表的写入
问题5:用户态Rootkit技术
不会,事后查询下
问题6:挂钩代码
不会
问题7:哪些进程执行这个恶意攻击
函数14B6中的所有进程
问题8:ini文件作用
保存一些恶意数据?不太知道
问题9:如何使用Wireshark来抓包分析
PLUS:
只把恶意代码的流程和驻留分析清楚了,剩下的细节需要从网络上学习
用户态的Rootkit技术:
如果父进程是目标,那么暂停该线程;安装钩子;完成之后继续正常操作
13BD:suspend_proc_thread
12A3:prep_hook
1499:resume_proc_thread
在outlook中找到msimn.exe,拖入OD
加密解密的算法还是看到的那一个,从结果反着推也没有弄明白:
当a2 = 50的时候,为啥右边括号里的都会是33
所以,只能这么想:a2是一个常数(传进来的),所以右边括号里的数一定是个常数,那么异或的是一个定值,可以暴力跑出来哪个值是有意义的