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

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”也被记录了下来。判断这个恶意代码用于键盘活动记录。

转载于:https://www.cnblogs.com/hyq20135317/p/5491598.html

计算机病毒实践汇总三:动态分析基础(分析程序)相关推荐

  1. 计算机病毒实践汇总六:IDA Pro基础

    在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. IDA使用 (1)搜索.下载并执行IDA Pro,对可执行程序lab05-01.dll进行装载,分别以图形 ...

  2. 计算机病毒实践汇总五:搭建虚拟网络环境

    在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 涉及内容: INetSim安装及使用 ApateDNS安装及使用 1. 搭建病毒分析网络环境原因 使用虚拟机作为 ...

  3. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.7 网络接口简介(七)学习EventChannel对象

    零.回顾 在之前我们自定义实现picker-view组件的时候, 曾经使用过一个pop-up的自定义组件, 这个组件可以在底部滑入一个面板, 现在我们把登录按钮放在底部滑入的面板之上, 然后在完成登录 ...

  4. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.6 网络接口简介(六)关于Page页面隐藏代码执行及Promise对象catch处理的补充

    零.回顾 在上节课我们主要是基于 Promise 加 await.async关键字改写了登录模块代码, 但是我们在自动登录这一块的代码仍然有问题,这节课我们看一下, 如何在接口调用中实现微信用户的自动 ...

  5. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.5 网络接口简介(五)基于Promise+await、async关键字改写登录模块

    零.回顾 在上节课我们主要实践练习了Promise的三个方法,包括any.all.race. 现在我们对Promise变成已经有了一个大致的了解. 这节课我们尝试将登录模块使用Promise编程方式进 ...

  6. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.9 网络接口简介(九)扩展wxp模块的request3方法,实现用户登录的自动融合

    零.回顾 在上节课我们主要介绍了观察者模式, 并据此模式实现了一个event模块, 这节课我们基础用户登录的自动整合, 尝试在wxp模块当中扩展出一个request3这样的一个接口. 一.在wxp组件 ...

  7. 《恶意代码分析实战》第3章 动态分析基础技术(课后实验Lab 3)

      一名网络空间安全专业学生学习本书过程中记录下所做实验,如有错误或有待改进的地方,还请大家多多指教. 第3章 动态分析基础技术(实验) Lab 3-1:使用动态分析基础技术来分析在Lab03-01. ...

  8. 小程序实践(三):九宫格实现及item跳转

    效果图: 实现效果图红色线包含部分的九宫格效果,并附带item点击时间. --------------------------------------------------------------- ...

  9. [网安实践III] 实验3.逆向分析

    [网安实践III] 实验3.逆向分析 1 流量分析 借助Wireshark抓取Android模拟器中"QQ同步助手"登录和同步数据时的流量,回答以下问题: (1)筛选流量中,对应域 ...

  10. 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇

    本文由百度技术团队"蔡锐"原创发表于"百度App技术"公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. ...

最新文章

  1. Redis消息通知系统的实现
  2. Worktile荣登2020中关村国际前沿科技创新大赛大数据与云计算领域TOP10
  3. HDU - 1556 Color the ball(树状数组)
  4. std string与线程安全_详解linux系统中断线程的那些事
  5. k8s angular mysql_Angular 实践:如何优雅地发起和处理请求
  6. C和指针之字符串memcpy、memmove、memset使用总结
  7. java 异步阻塞_大白话搞懂什么是同步/异步/阻塞/非阻塞
  8. 再谈迭代器,生成器,yield,及和类的使用
  9. x3850x5启动代码c2_代码小时x 2,080
  10. fileoutputstream 文件不存在_总结Java中创建并写文件的5种方式
  11. java 创建restful_使用Java创建RESTful Web Service
  12. 子类调用父类的构造函数几种情况
  13. 安卓app开发工具_手机APP开发会涉及到哪些知识点呢?
  14. 生物信息学软件_高通量测序技术|生信的发展,常用数据格式及分析软件
  15. iOS活体人脸识别的Demo和一些思路
  16. Unacceptable certificate: CN=GlobalSign Domain Validation CA - SHA256 - G2, O=GlobalSign nv-sa, C=BE
  17. Python--Opencv:errorFindContours supports only CV_8UC1 images when mode = CV_RETR_FLOODFILL otherw
  18. Charles 限制网络速度(Throttle设置)
  19. 网页marc数据采集器(国图marc数据批量下载)
  20. 魔兽巨龙追猎者服务器微信群,魔兽世界怀旧服开门情况一览,60多个区已缴满...

热门文章

  1. P1018 乘积最大(高精度加/乘)
  2. Spring Boot整合 Thymeleaf 模板引擎
  3. hibernate_09_关联映射_多对一
  4. CI加载model的问题
  5. SubLime Text 3 的常用插件
  6. java的关闭钩子(Shutdown Hook)
  7. 依赖注入框架Autofac的简单使用
  8. Linux下配置静态IP地址,设置DNS和主机名
  9. momentjs 使用总结
  10. 有一种尊重,叫迟三秒再关门