zoukankan      html  css  js  c++  java
  • 计算机病毒实践汇总三:动态分析基础(分析程序)

    在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索。敬请批评指正!

    1. 实践内容

    • 搜索、下载并执行Process Monitor,观察随着时间的推移,软件所记录信息;设置监控条件对恶意代码敏感的功能进行监控。
    • 搜索、下载并执行Process Explorer,查看进程列表,选择相应进程进行签名验证,对比其硬盘上的文件和内存中的镜像,结合Dependency Walker对其所载入的dll文件进行比对。
    • 搜索、下载并执行Regshot,观察注册表的变化情况。

    2. 实践一:lab03-01.exe

    (1)简单静态分析

    • 使用常用工具查看:

    • 本程序被加壳,只能看到一个导入函数。

    • 虽然是加过壳的,但是可以看到比较多的信息:

      • 有一些路径、一个网址:可能有联网下载的操作
      • 一个exe程序名:可能是写入的恶意程序
      • 注册表自启动项键值:可能程序要把自己写入自启动项
    • 在之后的分析中应该关注网络连接和下载、注册表更改、新程序的写入的操作。

    • 然后就可以开启监视工具并运行Lab01-03.exe进行简单的动态分析了。

    (2)使用Process Monitor分析

    • 由于这个工具监视的项目过多,进行过滤操作:对Lab03-01.exe程序对注册表键值的更改操作、写文件的操作过滤显示。

    • 可以看到:

    • 恶意代码在系统盘下写入了一个新程序vmx32to64.exe(就是之前看到的那个exe字符串),这个新的可执行程序的长度为7168。实际上,它与Lab03-01.exe程序本身长度是一致的:

    • 可以推测它将自己复制到了system32文件夹下。

    • 再看过滤出的写入注册表值:

    • 显示对注册表键值的更改成功。双击查看详情:

    • 可以看到写入的注册表自启动项键值的数据,路径就是刚创建的那个可执行程序。

    (3)使用Process Explorer分析

    • 开启Process Explorer:

    • 可以看到Lab03-01.exe是一个已经运行的进程。查看这个进程连接的dll:

    • 这个程序应该是有联网的操作。对dll进行签名验证:

    • 查看内存镜像和硬盘镜像中可执行文件的字符串列表(之前验证的是磁盘上的镜像而不是内存中的,通过这样的比较可以分析代码是否有做手脚):

    (4)Regshot注册表的变化情况

    • 在运行Lab03-01.exe之前进行一次注册表快照,运行之后在进行一次,并进行比较:

    • 可以看到显示注册表有一个值有改变:

    • 键值名为VideoDriver,键值为C盘下system32中的vmx32to64.exe。

    (5)网络行为

    • 由于分析它有网络行为,所以用wireshark进行抓包:

    • 可以看到这个程序有一个向www.practicalmalwareanalysis.com连接的包,之后与这个ip(192.0.78.25)有数据传递的包。

    (6)从主机上观察现象

    • 新增加了一个文件:

    • 修改的注册表键值:

    3. 实践二:lab03-02.dll

    (1)简单静态分析

    • 从PEiD中我们可以知道,这个dll文件是没有加壳的,并且很可能开启了一个服务:

    • 导入函数显示它很有可能是网络相关的:

    • 查看这个dll的导出函数有五个,而导出名部分看起来应该是installA。

    (2)运行这个dll程序

    • 借助rundll32.exe工具运行起来这个dll:

    • 查看注册表的变化:

    • 可以看到这个恶意代码将自身安装为一个IPRIP的服务,很有可能是通过svchost.exe程序来运行自身的。使用命令行来启动这个服务:

    (3)Process Explorer分析

    • 查找是哪一个进程调用了Lab03-02.dll:

    • 双击关注这个进程:

    • 发现svchost.exe进程调用了Lab03-02.dll,可以看到这个进程具有恶意代码的特征字符串。
      在ProcessMonitor中按进程PID号过滤:

    • 可以看到有多项更改:

    (4)使用Wireshark分析

    • Wireshark抓包一开始没有反应,过了一会儿才开始有包出现:

    • 可以看到第一个是一个DNS解析,网址仍是practicalmalwareanalysis.com,ping一下找到ip进行过滤:

    4. 实践三:lab03-03.exe

    (1)简单静态分析

    • 没有加壳,编译器是VC6.0:

    • 在PEview中我们发现数据段有一串exe文件名,是svchost.exe

    (2)注册表快照

    • 是干扰项,注册表并没有被修改:

    (3)使用Process Explorer查看

    • 刚一运行Lab03-03.exe时:

    • Lab03-03.exe瞬间变绿变红:

    • 说明Lab03-03.exe执行后自行结束,遗留下孤儿进程:

    • 比较svchost.exe的磁盘镜像字符串列表和内存镜像字符串列表:

    • 两者很明显是更改过的。观察内存中的字符串列表,还可以看到一些信息:

    • 可以通过这个进程的PID过滤ProcessMonitor的选项

    (4)使用Process Monitor

    • 可以看到进行了写文件操作:

    • 而点开写文件的操作,会发现会有连续的几次都写入长度为1的数据。

    • 这些写文件的操作都是在一个名为practicalmalwareanalysis.log的文件中,这个文件是程序新创建的,写进了Lab03-03.exe所在文件夹下:

    • 查看这个文件:

    • 显示的信息时我之前在ProcessMonitor中输入过滤信息时的字符,还有一个误输入的“a”也被记录了下来。判断这个恶意代码用于键盘活动记录。

  • 相关阅读:
    java中interface的完整表述
    DoTA与人生
    DotNet.Utilities工具类
    visual studio xcopy /exclude测试
    Assembly.Load()方法,Assembly.LoadFrom()方法,Assembly.LoadFile()方法的区别!
    DataGridView列自适应宽度
    [Head First设计模式]
    winform 取消datagridview第一行选中状态
    winform WebBrowser如何修改使用默认的IE浏览器版本
    C# 注释换行
  • 原文地址:https://www.cnblogs.com/hyq20135317/p/5491598.html
Copyright © 2011-2022 走看看