20165214 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6

《网络对抗技术》Exp3 免杀原理与实践 Week5

一、实验目标与内容

  • 1.实践目标

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

      • (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
      • (2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。

- 2.2恶意软件分析(1.5分)

    - 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

    -(3)读取、添加、删除了哪些注册表项

    -(4)读取、添加、删除了哪些文件

    -(5)连接了哪些外部IP,传输了什么数据(抓包分析)

二、实验步骤

步骤一:系统运行监控

使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。

  • 1、使用schtasks指令。schtasks.exe是安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。

    • schtasks指令的参数:

      • TN:任务名,我起为schtasks5214
      • sc:计时方式,这里用MINUTE表示以分钟为单位
      • bn:b是显示可执行文件的名字,n是用数字表示IP和端口
      • TR:要运行的指令、
      • >:输出重定向,也就是要将输出放在哪个文件,本次为c:\netstatlog.txt
    • 根据上面参数构造指令为schtasks /create /TN schtasks5214 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"。打开cmd,在cmd输入这句指令并回车。
  • 2、打开C盘,新建schtasks5214.bat,输入date /t >> c:\netstat5318.txt time /t >> c:\netstat5318.txt netstat -bn >> c:\netstat5318.txt,保存并关闭。(由于在C盘权限不够不能直接创建,所以只能通过先在其他地方输入然后再复制到C盘目录下。)
  • 3、打开任务计划,查看我们在第一步创建的任务计划。
  • 4、双击打开,在操作栏下点击编辑,将程序或脚本选择为第二步中所新建的bat脚本
  • 5、考虑到开始实验的时间已经接近11点了,即将断点,于是再在条件栏下,将只有在计算机使用交流电源时才启动此任务这一项取消
  • 6、接着,在常规栏下选择使用最高权限运行,点击确定保存。
  • 7、然后就是等待。。(4小时过去了)。期间我尝试了断网,发现断网不会造成影响,网一连上就又继续获取相关数据了。打开netstatlog.txt进行查看:
  • 8、使用excel进行数据分析。打开WPS,导入netstatlog.txt:
  • 9、使用B列的数据生成数据透视图,统计如下:

使用最多的是火狐浏览器,其次是wps。看着这些数据,再回想昨天做实验的时候我所使用的app,能对得上。

安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

  • 1、下载老师所给的资源SysinternalsSuite.zip,解压。sysmon就在解压好的文件夹中。
  • 2、在使用sysmon之前,先在这篇文章中进行粗略的浏览,掌握大概的原理与方法。
  • 3、查看sysmon的版本。右键Sysmon.exe,在属性->详细信息中进行查看
  • 4、在sysmon所在目录下创建sysmon5214.xml(可以先创建txt文件,之后再转换格式),在里面输入
<Sysmon schemaversion="4.12">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <ProcessCreate onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.exe</Image>
      <Image condition="end with">wps.exe</Image>
    </ProcessCreate>

    <ProcessCreate onmatch="include">
      <ParentImage condition="end with">cmd.exe</ParentImage>
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.exe</Image>
     <Image condition="end with">wps.exe</Image>
    </FileCreateTime>

    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>

    <NetworkConnect onmatch="include">
      <DestinationPort condition="is">80</DestinationPort>
      <DestinationPort condition="is">443</DestinationPort>
    </NetworkConnect>

    <CreateRemoteThread onmatch="include">
      <TargetImage condition="end with">explorer.exe</TargetImage>
      <TargetImage condition="end with">svchost.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>
  • 针对常用的Firefox和wps我把他们放在iniclude里。在上面的代码中,第一行的sysmon版本号要跟使用的sysmon对上。ProcessCreate表示进程创建,NetworlConnect是网络连接,CreateRemote是远程线程创建,FileCreate Time是进程创建时间。在onmatch后面跟的参数include和exclude分别表示“免检”和“必检”名单。
  • 5、打开cmd,进入到sysmon所在的文件夹中,输入sysmon.exe -i sysmon5214.xml
    • 不知道为什么,这里提示版本不对,提示版本应该是3.10,然而我上面在查看版本号的时候是4.12。先改成3.10,再次运行,成功运行:
  • 6、打开事件查看器时间查看器(本地)->应用程序和服务日志->Microsoft->Windows->Sysmon->Operational,双击Operational,可以查看按照sysmon5214.xml中的配置信息所记录的一些信息。选择其中任一条,可以看见进程号、运行的软件名等信息。
  • 7、接下来使用实验3中的恶意程序(更换了ip地址,重新生成)进行回连,进行日志分析
  • 8、打开事件查看器,根据运行时间可以很容易地找到刚刚运行的后门的相关信息。
  • 9、回到kali,使用webcam_snap进行拍照。回到事件查看器,可以看到出现了两条这样的信息:


    SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。
  • 10、再使用getuid指令,回到事件查看器,没有发现什么。
  • 11、是不是使用不同的指令,日志是不同的呢?接下来尝试一下简单的dir命令,进行查看,发现没有出现什么提示。这是怎么回事呢?getuid和dir指令在network中都没显示。我没有找到原因。
    (不过我倒是发现了wps一直在后台默默在用着我的网络。。。当我没上网的时候,network类别几乎都是wps.exe和wpscenter.exe,看来以后不用的时候还是将他们彻底退出吧)

步骤二:恶意软件分析

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件(3)读取、添加、删除了哪些注册表项(4)读取、添加、删除了哪些文件(5)连接了哪些外部IP,传输了什么数据(抓包分析)。在这一步中,由于wps.exe关于network实在很烦人,我重新修改了sysmon的配置。

  • 1、使用wireshark进行抓包分析。

    • 打开wireshark,选择wlan模式。开始抓包后,本机启动恶意程序回连kali虚拟机,回连成功后停止捕包,输入筛选条件ip.addr == 172.30.4.217进行查看
    • 可以看到一开始建立了三次握手连接。
    • 再次开始抓包,kali调用屏幕拍照webcam_snap和获取uidgetuid,然后停止捕包,进行查看
    • 使用时getuid出现了4条记录:
    • 使用时webcam_snap出现了很多条记录,我觉得应该是图片的空间比较大导致的:
  • 2、使用Systracer分析(为了能够看到恶意软件连接时的变化,每尝试新的分析软件时,都先关闭连接再重新启动链接)
    • 安装并运行systracer。systracer就好像一个“照相机”。他可以记录下计算机某个时刻的状态。然后过一段时间后再次“拍照”记录。通过比较两张“照片”中计算机的不同进行相应的分析。一开始我是在本机上做快照的,后来发现本机东西太多了,一次快照要花的时间太长。所以我决定用win7虚拟机来做。
    • 未植入恶意软件之前,先进行一次记录;(记录1)
    • 植入恶意软件之后进行一次记录;(记录2)
    • 恶意软件回连之后进行记录;(记录3)
    • 在kali终端进行相应操作之后进行记录。这里选的是webcam_snap(记录4)和pwd(记录5)。
    • 选中记录1和记录2,点击右下角的view different list,再点击view,可以看到增加了很多不知道是什么的文件和键值:
    • 选中记录2和记录3进行比较:
      • 运行的进程多了后门程序
      • 植入了一些键值
      • 可以看到连接的目的ip以及端口号
    • 选中记录3和记录4进行比较(这里显示systracer没有注册):

      • 再查看file栏下:
    • 选中记录4和记录5进行比较:

  • 3、使用PEID检查是否加壳(PEID下载很简单,直接百度就可以知道找到)。
    • 不加壳
    • 压缩壳
    • 加密壳(这里不小心删除掉了加密壳使用的软件hyperion,参考了这个回答找回。。有惊无险)
    • 压缩壳后再加密壳
    • 可以看到,只有有加密壳竟然都不能识别出来。。而我们之前实验的时候也是只要涉及到加密壳就不能回连。这两者是否有关联?
  • 4、使用VirusTotal进行检查,结果如下:

    • 可以看到该恶意代码的相关信息,MD5、SHA-1、文件类型、文件大小、加壳方式等信息。

三、遇到的问题

1、任务启动失败,在任务计划界面一直显示0x01,查询了一下0x01在windows表示运行失败。

解决方法:在同学的帮助下,我发现是因为在步骤一的第4小步的操作界面我没有去掉参数,导致了这一的情况。把参数去掉就解决了问题。

2、启动sysmon失败,提示如下:

解决方法:读提示信息后发现,运行Sysmon.exe需要管理员权限。于是使用管理身份打开cmd,重新输入,解决了问题。

3、想要把systracer转移到win7虚拟机中,插U盘无法识别

解决方法:关闭虚拟机,在USB控制器选项勾选全部,再打开虚拟机,插入U盘,解决问题

四、基础问题问答

  • 1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    答:可以使用schtasks定时监听,一段时间后统计数据;可以使用Sysmon,通过编写配置文件,监视相应的进程情况;可以使用Systracer进行快照比较。
  • 2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    答:可以使用VirusTotal进行检查;可以使用Systracer进行分析,查看其对注册表、文件的修改;可以使用wireshark进行捕包分析,查看它连接到了哪些ip、与外部进行了哪些通信。

五、心得体会

本次实验难度不是很大,主要是一些相关软件的应用以及对相关数据的分析。我觉得比较费时间的一点是,遇到一堆数据不知从何下手进行分析,很多系统的应用都不懂是干嘛的,只能一个一个百度查,逐个排除嫌疑。不过这样下来以后我对系统的一些进程有了更好的了解,不会把他们和其他的进程混在一起分不清了。
通过对恶意代码的分析,也使得我对恶意代码的行为、特征有了更好的了解。
不过在网上查找相关信息的时候,甚至还有可以绕过分析的方法!令人惊讶。然而我们现在连做完全免杀都有点费力。看来学习的道路还很长。
感觉自己每次实验都要很久,因为老是喜欢进行各种各样的尝试。。问题是那些尝试竟然还都失败了,浪费了大把的时间。。

原文地址:https://www.cnblogs.com/zhuwenyuan/p/10662921.html

时间: 2024-11-08 21:48:41

20165214 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6的相关文章

20145239杜文超《网络对抗技术》- 恶意代码分析

20145239杜文超<网络对抗技术>- 恶意代码分析 实验后回答问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (1)使用计划任务schtasks指令动态监控系统运行 (2)使用sysmon工具动态监控系统运行 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. (1)使用systracer工具进行快照分析注册表信息.文件行为等信息的变化 (2)把程序放在vir

20145225唐振远《网络对抗》Exp4 恶意代码分析

20145225唐振远<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放.注册表信息等等: 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件便可以查看: 使用Process Explorer工具,监视进程执行情况,查

20155317《网络对抗》Exp4 恶意代码分析

20155317<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 我首先会选择看任务管理器,查看系统下有什么进程,都在干些什么,不懂得就去网上搜索相关关键词. 我会开启360安全卫士,利用360监控是否有恶意程序. 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. 利用Process Explorer去分析进程在连接什么地址

20145207李祉昂《网络对抗技术》恶意代码分析

实验内容 schtasks.Sysmon对电脑进行系统检测,并分析. 对恶意软件进行静态分析,直接上传到网上,或者利用peid等软件. 对恶意软件进行动态分析,使用systracer,以及wireshark分析. 实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. schtasks,Sysmon监控 (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. wi

20145235李涛《网络对抗技术》- 恶意代码分析

基础问答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 可以通过计划任务,来建立一个定时更新的日志来查看 通过sysmon来监控. 通过Process Explorer工具,查看是否有程序调用了异常的dll库 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. 可以通过抓包工具,进行分析. 通过systracer工具分析某个程序执行前后,计算机注册表.文件.端口的一些变化情况.

2015306 白皎 《网络攻防》Exp4 恶意代码分析

2015306 白皎 <网络攻防>Exp4 恶意代码分析 netstat [Mac.Linux.Win] sysinteral [MS]:1 2 3 一.系统监控--Windows计划任务schtasks 1.创建计划任务,使系统每5分钟自动检测到哪些有哪些程序在连接我们的网络. 注:任务将创建于当前登录的用户名文件夹下. C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\

20155334 《网络攻防》Exp4 恶意代码分析

<网络攻防>Exp4 恶意代码分析 一.实验问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 可以使用工具监测系统,之后进行下一步分析. 在windows下建立一个监测本机连接ip地址的任务计划程序. 通过sysmon监控重要操作,并找到日志查看. 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. PEiD工具,可以查看程序有没有被常用的加壳软件加壳. PE expl

2019-2020-2 20175310奚晨妍《网络对抗技术》Exp4 恶意代码分析

目录 1 基础知识 1.1 恶意代码的概念与分类 1.2 恶意代码的分析方法 1.3 实践目标 2 实践内容及步骤 2.1 系统运行监控 2.1.1 Windows计划任务schtasks 2.1.2 sysmon 2.2 恶意软件分析 2.2.1 静态分析 2.2.2 动态分析 3 实验中遇到的问题 3.1 实验二生成的后门文件一直不能成功回连 3.2 实验中需要用到的软件 4 问题回答 4.1 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下

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

2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systracer套件. 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质. 2.实践内容概述 系统运行监控 使用如计划任务,每隔一分钟记