实验目的

  • 是监控你自己系统的运行状态,看有没有可疑的程序在运行。
  • 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

    教程

实验内容

  • 系统运行监控

    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
    • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
  • 恶意软件分析

    分析该软件在以下操作时的行为:

    • 启动回连
    • 安装到目标机
    • 及其他任意操作时
    • 该后门软件
      • 读取、添加、删除了哪些注册表项
      • 读取、添加、删除了哪些文件
      • 连接了哪些外部IP,传输了什么数据(抓包分析)

实验步骤

(一)系统运行监控

根据netstat的结果分析程序连接

  • 在c盘创建netstatlog.txt,用命令行创建计划任务C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"显示创建成功,
  • 在c盘的根目录下创建批处理文件netstatlog.bat,内容为
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
  • 将任务中的脚本文件改为自己创建的netstatlog.bat
  • 点击创建的任务属性,使用最高权限运行该任务,运行之后就会每5分钟触发一次了。
  • 昨天电脑开了整整一天,应该已经收集到很多信息了。今天我又打开上个实验的后门,希望能捕捉到我的后门程序
  • 将信息导入Excel,使用透视表和图表进行分析。
  • 我使用的是饼状图,可以看到有两个软件运行的最多,是QyFragment.exefirefox.exe
  • 查找了一下发现QyFragment.exe是奇艺影音辅助程序

Our database contains 13 variants of the file "qyfragment.exe" with final rating Safe and zero variants with final rating Threat . (13个杀软都检测是安全的,0个杀软检测是有威胁的)

  • 检测是安全的,继续查看信息。突然发现我捕捉的信息中有4个爱奇艺的软件,出现的频率都很高,上网查之后发现除QyPlayer.exe以外,另外3个软件都是流氓软件。反正也不大需要,就直接把爱奇艺卸载了。
  • 将这四个软件筛选出去,出现最多的是svchost.exe,官方解释是:

Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个进程。

  • 看来是正常的,继续排查。接下来的WpnService是个系统服务,但是wpn是什么没查到,可能是vpn。
  • OneSyncSvc是个开机启动项,会频繁读取磁盘。这两个服务奇奇怪怪的,网上也查不到什么,继续看看有没有可疑的软件
  • dosvc也是一个系统程序

此程序可以一次点击简单删除启动程序、浏览器辅助对象、工具栏、服务等。可以容易删除恶意广告软件、恶意代码、恶意软件、恶性程序、垃圾程序、特洛伊木马下载等。

  • backgroundTaskHost进程属于照片应用的进程,modulecoreservice.exe是网络核心模块服务,除此之外,其他进程在三天的时间里联网的次数都小于3。

  • 对剩下软件一个个查找,发现一个可疑的HxTsr.exe,查找了一下是outlook的一个进程。大部分网友认为其被伪装成病毒是因为它不断启动并随后消失,但是就我捕捉到的信息来看,它的联网次数只有2,应该是正常的插件。
  • 综合来看联网比较多的大多是系统程序,但由于刚刚重装系统,系统里面应该不会有问题。查找了一下大多数电脑都会有这些自动运行的程序,但不排除病毒的可能性。
  • 对连接数大于10的IP地址进行批量查询
  • 手动分析完接下来就借助工具了。

使用sysmon监控系统运行

  • 之前已经配置文件并启动sysmon,修改配置文件,添加检测HxTsr.exe的语句。
  • sysmon -c c:/Sysmoncfg.xml使配置生效
  • 进入事件管理器查看sysmon中的operational,可以看到事件5是关闭进程。查看的backgroundTaskHost进程,是照片应用进程。
  • 事件1是创建进程,截取进程是svchost.exe,点击system显示它的parentImage是mmc.exe

mmc.exe是系统管理程序的一个框架程序,全称是Microsoft Management Console,它提供给扩展名为msc的管理程序一个运行的平台,比如组策略,系统清单,任务管理器,以及打印管理、本地安全策略等等,另外本进程也可能同时运行两个或更多个。

(二)恶意软件分析

恶意软件是通过读取、添加、删除注册表项或文件实现对靶机的控制的。

  • 本次实验分析的是用vs c+shellcode直接生成的可执行文件,没有任何伪装。

virscan分析文件

  • 使用virscan查看行为分析
  • 文件信息

  • 查看行为信息,其网络行为描述的套接字的连接就是我kali的IP地址

使用systracer分析恶意软件

安装到目标机时
  • 注册表修改了HKEY_CURRENT_USER的键值
  • 注册表在键值中增加了VirtualDesktop
  • 注册表删除了HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters的键值
  • 新增了我的后门软件
  • 删除了我的系统文件
  • 新增了系统控制文件
  • 连接外部ip
启动回连时
  • 注册表新增了HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\HomeGroup\UIStatusCache的键值,新增了用户组中的用户信息
  • 注册表更改了UI的状态
  • 注册表删除本地计算机中的一些用户策略了
  • 更改了一些系统文件
  • 删除了一些系统批处理文件
  • 添加了一些trn文件
  • 看到我的虚拟机和主机之间的通信
使用shell命令查看靶机系统信息
  • 注册表新增了系统用户信息
  • 注册表修改了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\UserSettings的键值
  • 删除了旧的控制台信息
  • 新增了控制台的配置文件
  • 查看控制机和靶机之间的通信

实验中遇到的问题

  • 一开始创建计划任务的时候命令行显示创建成功,但是打开任务计划显示错误代码为1,分析了一下应该是因为c盘中没有netstatlog.txt
  • 运行计划任务时导出的文件中显示请求的操作需要提升,判断是权限不够造成的,选用最高权限运行

实验后问题回答

  • 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

    • 想监控的操作主要有网络连接、端口使用、CPU占用情况。
    • 使用计划任务每隔一个固定时间运行一次控制台的netstat命令,对捕获到的信息进行批量分析。
    • 可以使用sysmon,通过修改配置文件来监控觉得可疑的端口、软件和事件。
    • 设置计划任务运行任务管理器查看cpu占用情况,监控可疑程序。
  • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 可以使用systracer拍摄快照,对程序或进程的可疑动作的前后进行对比,对比注册表、系统用户、系统文件的变化情况。
    • 使用wireshark抓包,检测是否连接可疑的外部IP地址。

实验总结

这次实验的关键在于分析恶意软件的动作,通过使用各种工具分析,我可以知道恶意软件都做了些什么,是怎么通过修改系统的注册表、文件等等来做到的。这次用到的工具能帮助更好的保护电脑,这样我就可以在怀疑有恶意代码的时候先做一下基础检查了。

参考资料

2017-2018-2 20155315《网络对抗技术》Exp4:恶意代码分析的更多相关文章

  1. 20145226夏艺华 网络对抗技术EXP4 恶意代码分析

    20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...

  2. 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析

    2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...

  3. 20155302《网络对抗》Exp4 恶意代码分析

    20155302<网络对抗>Exp4 恶意代码分析 实验要求 •是监控你自己系统的运行状态,看有没有可疑的程序在运行. •是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工 ...

  4. 20145208 蔡野 《网络对抗》Exp4 恶意代码分析

    20145208 蔡野 <网络对抗>Exp4 恶意代码分析 问题回答 总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文 ...

  5. 20145202马超《网络对抗》Exp4 恶意代码分析

    20145202马超<网络对抗>Exp4 恶意代码分析 1.实验后回答问题 (1)总结一下监控一个系统通常需要监控什么.用什么来监控. 虽然这次试验的软件很好用,我承认,但是他拖慢了电脑的 ...

  6. 20145215《网络对抗》Exp4 恶意代码分析

    20145215<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...

  7. 20155227《网络对抗》Exp4 恶意代码分析

    20155227<网络对抗>Exp4 恶意代码分析 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分 ...

  8. 20155232《网络对抗》Exp4 恶意代码分析

    20155232<网络对抗>Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...

  9. 20155239 《网络对抗》Exp4 恶意代码分析

    20155239 <网络对抗>Exp4 恶意代码分析 使用schtasks指令监控系统运行 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到nets ...

  10. 20155304《网络对抗》Exp4 恶意代码分析

    20155304<网络对抗>Exp4 恶意代码分析 实践内容 1.系统运行监控 1.1使用schtasks指令监控系统运行 我们在C盘根目录下建立一个netstatlog.bat的文本文件 ...

随机推荐

  1. docker的网络基础配置

    一.端口映射实现访问容器 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射.当使用-P标记时,Docker会随机映射一个49000~49900的端口至容器内部开放 ...

  2. [翻译] OCMaskedTextField

    OCMaskedTextField https://github.com/OmerCora/OCMaskedTextField Simple class to display dynamically ...

  3. iOS设计模式 - 模板

    iOS设计模式 - 模板 原理图 说明 定义一个操作中的算法的骨架,而将步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤. 源码 https://github.c ...

  4. SpringBoot+MyBatis连接数据库

    SpringBoot通过MyBatis连接数据库有2种方法: 1.注解 2.XML文件 1.注解 1.构建项目 2.添加依赖: <dependencies> <dependency& ...

  5. [转] 29个你必须知道的Linux命令

    总结: 1. find  查找文件 2. grep 查找某个文件或者文件夹里面文件的内容 29个你必须知道的Linux命令 虽然Linux发行版支持各种各样的GUI(graphical user in ...

  6. 【JS】#001 JS定义对象写法(原型、JSON方式)

    下面主要写两种 JS 定义对象的 常用写法 写法1:[很像面向对象语言中的写法] function zhongxia(age) { this.age = age; } zhongxia.name = ...

  7. SDN2017 第一次实验作业

    1. 安装mininet 从github上获取Mininet源码并运行安装脚本 $ git clone git://github.com/mininet/mininet $ ./mininet/uti ...

  8. 更改Request Parameters中的值

    1. 定义ParameterRequestWrapper 继承HttpServletRequestWrapper public class ParameterRequestWrapper extend ...

  9. PHP SPL神器实现堆排序

    之前学习过内部排序的八大算法,也一一写过代码实现.其中堆排序的原理是 将一颗二叉树初始化为堆 依次将最后一个结点与堆顶结点交换.然后调整堆顶元素位置,重置堆. 将二叉树初始化为堆可以看做从最后一个非叶 ...

  10. 利用xlst导出多表头的简便方法

    大家都知道在ASP.NET中进行表格导出有很多种办法,aspose,npoi,cvs等等,今天就来介绍xlst,导出多表头.与以往不一样的是我们利用模板,只需要在模板中定义好表格样式,然后绑定数据就可 ...