作为一名沉迷于安全技术的小白,近期在对公司一台Win7客户主机进行安全应急响应时,捕获到一个64位dll形式的恶意程序,于是对其展开分析,收获很多。下面想结合取证分析的过程,从取证经过、动静态分析、破解加密等角度入手,与大家分享一些综合性的恶意程序分析方法,相互启发,相互学习。也许有些方法比较基础,望各位大佬勿喷~
提供dll样本以便大家茶余饭后分析着玩玩~
链接:https://pan.baidu.com/s/1y7ylCgRU2khpVaYhlIngsw 密码:xut0
取证经过
某用户向SRC反映最近自己的邮箱账号被盗,作为应急中心的一员,我与团队成员一起对该用户的电脑进行了初步的取证和排查。
个人对个人主机排查的常用思路是:
可疑进程
网络流量
启动项
文件比对
但为了达到攻击持久化的目的,恶意程序往往会对系统进行驻留,因此对启动项进行检测排查是一个非常重要的环节。下面先推荐一款比较好用的常规自启动检测工具。
autoruns.exe
是一款出色的启动项目管理工具,作用就是检查开机自动加载的所有程序,例如硬件驱动程序,windows核心启动程序和应用程序。它比windows自带的msconfig.exe还要强大,通过它我们还可以看到一些在msconfig里面无法查看到的病毒和木马以及恶意插件程序,还能够详细的把启动项目加载的所有程序列出来。比如logon、explorer还有IE上加载的dll跟其它组件。

但autotuns也不是万能的,比如dll劫持等部分特殊的启动方式也无法检测到。作为取证人员,平时应该多多搜集和积累攻击者使用的奇淫巧技。
由于个人在对dll劫持方式有较多的了解和实践,同时结合文件比对,终于发现主机` C:\windows\` 目录下多了一个叫midimap.dll的动态库,基本可以断定为可疑程序,便对其展开分析。

动静态分析
首先我们对加载该dll的进程做了监控和分析。
dll劫持技术分析:
根据以往经验,可以利用工具和相关命令迅速确定是哪些进程加载了这个midimap.dll,推荐2种简便方法。
tasklist /m XXX.dll
以管理员权限运行` tasklist /m` 命令,可以获得所有进程中加载的动态链接库,也可以具体到某一个dll对应的进程,见下图。

Process Explorer
非常好用的一款增强型任务管理器软件,让使用者能了解看不到的在后台执行的处理程序,能显示目前已经载入哪些模块,分别是正在被哪些程序使用着,还可显示这些程序所调用的 DLL进程,以及他们所打开的句柄。

综上,可确定是explorer.exe进程加载了midimap.dll。
同时,我们利用一台干净的win7虚拟机对explorer.exe加载midimap.dll的过程进行了分析。使用Process Monitor软件对explorer.exe进程的行为进行了监控并设置了过滤条件,如下图。

可发现正常情况下,explorer.exe应加载位于` C:\windows\system32\` 目录下的midimap.dll,但由于exe加载dll有一定的搜索顺序,会首先在同目录下查找对应的dll文件。因此将恶意的midimap.dll文件放置在` C:\windows\ ` 目录下即可实现dll劫持。
行为分析
除了对恶意程序进行直接的静态分析和动态跟踪调试,我们还常使用其他工具和手段对恶意程序的行为进行监控和分析,尤其在对一些较难逆向的复杂程序进行分析时,结合行为监控将大大提高分析效率。这里也简单介绍2款工具。
Procmon
Process Monitor是一款能够实时显示文件系统、注册表与进程活动的高级工具,是微软推荐的一个系统监视工具。增加了进程ID、用户、进程可靠度、等等监视项,可以记录到文件中。它的强大功能足以让其成为你系统中的核心组件以及病毒探测工具。

文件监控软件
利用文件监控软件往往能对恶意程序的读写的文件的路径进行快速定位。

在对该恶意动态库进行分析时,我们使用Procmon工具对explorer.exe(加载恶意dll)进程的行为进行了监控,在敲击键盘和移动鼠标时,会伴有文件读写的行为,定位到` C:\Users\Windows\Appdata\Local\Microsoft\Windows\Caches\caches_version.db` 疑似为恶意程序产生的记录文件。
使用010editor打开caches_version,疑似加密的记录文件。

静态分析
用IDA对正常路径` C:\windows\system32\` 下的midimap.dll与在` C:\windows\` 下的恶意midimap.dll进行对比。可见恶意dll导出函数与正常dll的完全相同。
|