zoukankan      html  css  js  c++  java
  • 2018-2019-2 网络对抗技术 20165303 Exp4 恶意代码分析

    实践目标

    1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。

    1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。

    1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

    实验内容

    • 一.系统运行监控(2分)

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

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

    • 二.恶意软件分析(1.5分)

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

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

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

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

    课后问题

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

    首先就是监控自己系统中有哪些程序在运行,每个五分钟或者十分钟检查一下系统中有哪些应用程序的进程,但是这个时间间隔也有可能会错过一些进程,比如说每隔一小时才启动一次的程序,有可能不会被记录下来,要是他启动时间特别短的话,还有就是监控一下远程连接的IP地址和自己的IP地址,看一下连接到了哪里,再看一下端口号,看看是那些应用程序在使用端口。

    • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

    1.使用sysmon工具监控系统 2.使用VirusTotal分析恶意软件 3.使用Process Monitor分析恶意软件Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动 4.使用Process Explorer分析恶意软件Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。5.使用PEiD分析恶意软件PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。6.使用systracer分析恶意软件

    实验过程与内容

    实验一 使用schtasks指令监控系统

    • 使用管理员权限创建任务,命令如下schtasks /create /TN netstat5303 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"命令创建计划任务netstat5303
    • 其中,TN是TaskName的缩写,我们创建的计划任务名是netstat5303;sc表示计时方式,我们以分钟计时填MINUTE;TR=Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
    • 在C盘先创建一个TXT文件,然后把如下代码写入
    time /t >> c:
    etstat5303.txt
    netstat -bn >> c:
    etstat5303.txt```
    - 然后修改后缀名改为.bat,使其成为一个脚本文件,我改的是```netstat5303.bat```
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403223610521-407286067.png)
    - 打开我的电脑,右键单击管理,点击任务计划管理,再点击任务计划程序库就可以看到自己刚刚创建的任务计划
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403223811388-1204403470.png)
    - 双击任务点击编辑,将“程序或脚本”改为我们创建的```netstat5303.bat```批处理文件,确定即可。添加参数那里需要把其他的数据都删掉,在首界面要点击使用最高权限运行,否则的话就可能在C盘中无法创建TXT文件,因为权限不够,无法写入
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403224258660-481562930.png)
    - 任务还有其他属性,比如默认操作为“只有在计算机使用交流电源时才启动此任务”,所有说在使用电池的时候你是无法启动此任务的,这点要注意
    - 执行此任务一段时间后你就会在C盘里面看见自己创建的netstat5303.txt
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403224701828-1360894319.png)
    - 然后在Excel中把自己的数据进行系统性的分析,首先导入数据,点击数据,选择来自文本,找到自己的TXT,导入进去
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403225453493-1614448320.png)
    - 选择分隔符号,可以直接从第十行开始导入
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403225547227-266626447.png)
    
    - 分隔符号选为tab键和空格键
    
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403225646072-358026117.png)
    - 列数据格式选为常规就可以了
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403225718815-838847345.png)
    然后就可以看到自己所创建的表格了,非常整齐
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190403230028064-735785876.png)
    - 对表格进行统计做一些数据透视图,然后就可以更直观的看到那些应用程序进行了链接
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404154413251-1569435450.png)
    - 从数据里面看到发现winstore链接的次数最多,可能是因为我在后台下载win10商店游戏的缘故
    - 接下来的程序就是kbasesrv.EXE   他是金山旗下的一个软件程序。该程序由金山旗下软件静默下载安装到电脑里,使用特定参数启动并篡改首页。用户双击打开桌面的快捷方式,会启动IE浏览器并访问毒霸网址大全。但是我已经在好几天前就已经把金山毒霸给卸载了,没想到他还在启动某些服务,说明卸载没有卸载完全,让人细思极恐,可以想象我们以前安装的软件好多都卸载不干净,然后就会导致系统运行的越来越慢。
    - 在接下来的就是QQ浏览器了,因为我用的就是QQ浏览器,做实验的时候看一下参考,所以他在链接也比较正常了
    - 在接下来的就是迅雷了,但是我明明没有启动迅雷,但是他却在运行,这就让人琢磨不透了,他究竟是如何启动的,什么时候启动的。
    - 下面一张图就是本地链接的地址了
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404155337114-1905913835.png)
    可以看到用的最多的就是127.0.0.1和192.168.1.155这应该是我的本机的地址
    - 再下来就是我的电脑连接的外部的IP地址了
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404160130467-1687270774.png)
    - 发现链接的最多的就是60.221.218.74放到百度看一下这是哪里,这是山西临汾的一个地址
    
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404160326208-203838761.png)
    - 接下来的121.29.54.199这是河北省石家庄市 联通不是太能看出来究竟是哪里的服务器
    这个实验到这里基本上就结束了
    
    ##实验二  系统监控——Sysmon工具
    
    - Sysmon是微软Sysinternals套件中的一个工具,能监控几乎所有的重要操作。
    - 首先我们根据实验指导书中的链接下载一下Sysinternals套件,下载下来之后解压到c盘或者什么地方都可以,只要方便即可
    - 接下里,我们来新建并编辑配置文件C:20165303.xml    exclude相当于白名单,里面的程序或IP不会被记录,include相当于黑名单,可以把自己想监控的写到黑名单中~
    - 这是我编辑的我自己的xml文件
    
    
    * microsoft windows
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </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>
    
    ```

    • 接下来使用命令sysmon.exe -i C:20165303.xml进行Sysmon的配置更新与启动
    • 这是配置好的截图,可以看到各种命令参数。
    • 接下来在win10环境下,左下角开始菜单右击开始——事件查看器——应用程序和服务日志——Microsoft————Windows——Sysmon——Operational。这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等。
    • 不同的事件有不同的识别码
    事件识别码2 :进程更改了文件创建时间
    事件识别码3 :网络连接
    事件识别码4 : Sysmon服务状态已变更
    事件识别码5 :进程已终止
    事件识别码6 :已载入驱动程式
    事件识别码7 :已载入影像
    事件识别码8 :创建远程线程
    事件识别码9 : RawAccessRead
    事件识别码10 :进程访问
    事件识别码11 :文件创建
    事件识别码12 :注册事件(创建和删除对象)
    事件识别码13 :注册事件(值集)
    事件识别码14 :注册事件(键和值重命名)
    事件识别码15 :文件创建流哈希
    事件识别码255 :错误```
    
    - 观察一个事件识别码为3的详细信息,可以看到这是一个有关QQ浏览器网络连接的事件
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404162857264-1010425176.png)
    
    
    
    - 观察一个事件识别码为5的详细信息,可以看到这是一个有关搜狗输入法的进程终止事件,可以想一下,应该是输入终止了,然后搜狗输入法结束了输入进程
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404163039238-830626616.png)
    
    - 在观察一个事件识别码为1的详细信息,可以看到这是有关QQ浏览器的进程建立的事件,应该就是qq浏览器重新进行了唤醒,然后建立了进程
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404163233223-1720455860.png)
    
    - 然后我们打开我们的kali虚拟机,然后使用我们实验三中的后门文件进行回连,然后观察回连成功后的日志
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404163251278-990306280.png)
    
    - 可以看到20165303wy.EXE后门程序创建了网络连接,这应该就是后门回连的时候创建的网络连接使用tcp连接,连接的目的IP地址为192.168.1.154,正是我的kali虚拟机的IP地址,端口也是我设置的5303端口,这详细而又充分的体现了我们通过后门程序控制windows的过程!
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404163535234-207035753.png)
    
    - 接下来我们进行拍照看一下又创建了哪些进程,从图上看到,启动了driver,这应该是驱动进程,我猜想应该是启动了相机的驱动程序,而且他的事件识别码也是6,已载入驱动程式
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404163827220-40278103.png)
    
    - 接下来进行截屏的操作,从图上看出来进行了网络连接,应该是截了屏之后把数据传过去了,所以才会有网络连接,事件识别码3 :网络连接
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404164337264-812709524.png)
    
    这个实验差不多也分析完了,比较简单的可以分析出来究竟他干了些什么,但是更深层次的就不是那么容易分析了
    
    ##实验三  恶意软件分析
    
    ###先把自己的后门软件丢到网站上看一下究竟怎么样,发现能被检测出来的概率还是挺大的
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404165113211-1904985096.png)
    
    ###使用systracer进行分析
    - 首先下载systracer,在网上找了一个中文版的,哈哈哈英文版看不太懂```https://pan.baidu.com/s/17z9wW_ieYEJCJfz7ky8PQA#list/path=%2Fsharelink3890020941-823790193933702%2F20451&parentPath=%2Fsharelink3890020941-823790193933702```这是百度云的链接,想要的同学可以直接下载一下就能用了
    - 我是在win7虚拟机和kali里面做的,英win7虚拟机的文件比较少,扫描的时候花的时间更短,这是在程序运行的截图
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404165521226-1955233231.png)
    - 点击创建快照,若如下图没有全选,可以选择——仅扫描指定项,然后将下面的全选,之后就可以点击开始啦,接着等一会,扫描结束之后会弹出一个框,点击OK,快照就会自己保存下来
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404165612212-2035457672.png)
    - 我们可以进行以下操作进行对比操作
    ```在win7虚拟机安装SysTracer软件后保存快照,命名为Snapshot #1
    将木马植入靶机,对靶机注册表、文件等进行快照,保存为Snapshot #2
    打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照,保存为Snapshot #3
    在kali中对靶机进行屏幕截图,win7下再次快照,保存为Snapshot #4
    在kali中对靶机进行提权操作,win7下再次快照,保存为Snapshot #5```
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404165849216-312268558.png)
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404165857213-1273137683.png)
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404165902214-954365732.png)
    
    - 接下来点击右下角的比较,看一下究竟有什么变化
    - 这是注册表的变化,在进行kali回连的时候他对很多注册表项都进行了改变
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404170056219-385726574.png)
    - 这是文件的变化,发现也有不少文件发生了变化,尤其是20165303wy.exe,这是我电脑中的后门文件
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404175914229-748454356.png)
    
    - 在下面就是应用程序的变化,主要的还是我的后门程序的变化20165303wy.exe
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404180104102-770242089.png)
    
    ###接下来用wireshark抓包分析连接了哪些外部IP,传输了什么数据
    
    - 设置主机host为192.168.1.154,我的kali虚拟机的IP地址,然后回连看抓到了哪些东西
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404185447255-1314778456.png)
    - 发现大部分的包都是请求的tcp三次握手请求建立的包,可能他是在大量的发送请求命令然后进行连接
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404185624492-399222396.png)
    - 然后打开一个命令包看看里面到到底有什么,发现果然就是一些建立连接的内容三次握手包
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404185738743-981988534.png)
    - 然后进行截屏或者录像等操作,看看抓了什么
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404193724583-883843452.png)
    还是一些tcp连接请求包
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404193745149-564894464.png)
    
    - 再来看一下具体内容,发现也是一些tcp传输数据
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404193835858-1362594407.png)
    
    ###下面我们用peid文件格式识别(peid工具)来分析一下
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404200459355-699711627.png)
    - 发现查到了加壳upx1
    还发现有的并没有发现加壳,但是我是加了的
    
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404200725811-1239251051.png)
    有的也没有被查到,哈哈哈哈
    
    ###然后用pe explorer分析一下,发现还有点看不太懂
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190404201654494-559342091.png)
    
    ###使用Process Explorer分析恶意软件
    
    - 由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
    
    - 靶机运行后门程序进行回连的时候可以看的到20165303wy程序进行了运行,还有他的子程序conhost也进行了运行
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190405210436077-1145532400.png)
    - 下面这是程序的详细信息
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190405210731143-609824934.png)
    
    
    
    - 这个软件还可以让我们进行系统资源的监控,类似于Windows的资源监控器
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190405210744305-1665845909.png)
    
    ###使用Process Monitor进行分析
    Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常 有用。 这是一个高级的 Windows 系统和应用程序监视工具,由优秀的 Sysinternals 开发,并且目前已并入微软旗下,可靠性自不用说。
    
    - 运行后门程序进行回连下面是找到这个程序的截图,不得不说找了费老半天劲
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190405211703197-742326078.png)
    
    - 进程的详细信息如下
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190405211724131-1664714447.png)
    
    - 这是这个后门程序引用的各种其他的库
    ![](https://img2018.cnblogs.com/blog/1296850/201904/1296850-20190405211755800-445663698.png)
    
    
    #实验中遇到的问题
    
    - 首先就是无法生成netstat5303的问题,就是在C盘里权限不够,无法写入,你需要加一个在最高权限下运行就可以成功创建.txt文件了
    - 然后就是在Excel中无法创建数据透视图的问题,由于自己Excel知识没有学好,所以需要在百度现学习,尤其是怎么统计链接数量那里搞了好久
    - 再有就是Sysmon软件老是安装不成功,可能是因为我没有按管理员权限运行的结果
    - 还有就是systracer软件里面东西太多,无法靠自己来充分理解里面的变化,只能是知道里面有哪些发生了变化,而且刚开始在win10主机里做的时候,win10系统太庞大,扫描一次要花费很长时间,所以后来移到了虚拟机中
    
    #实验总结与体会
    本次实验让我对电脑中的恶意软件进行了分析,首先让我感触很深 的就是金山毒霸,因为上次实验要用,所以下载了这个金山毒霸,一般我的电脑是不想装杀毒软件的,但是我在后来卸载了以后还是有金山毒霸的进程在系统中频繁的运行,所以说很多杀毒软件就是恶意软件,还有一些软件就是频繁的自启动并且进行网络连接,再有通过后门恶意软件分析,知道了后门软件还是可以通过监控发现的,他们修改通过注册表和一些文件的变化来达到自己的目的,这次实验让我从攻击者的身份转变到了分析者,这个感觉很奇妙,让我明白了这些恶意软件到底是如何通过什么方式进行运行的,收获非常大。
  • 相关阅读:
    剑指21.栈的压入、弹出序列
    剑指20.包含min函数的栈
    剑指19.顺时针打印矩阵
    Java--使用反编译工具,打开jar包,查看源码
    没想到 Unicode 字符还能这样玩?
    angularjs中响应回车事件
    两个很好的angular调试工具-——batarang(stable)和ng-inspector
    基于 ThinkPHP5 的 cltphp 被搜索劫持,篡改首页的解决过程记录
    国内外CDN服务商CNAME特征串调研
    开源中国/码云 README.md上传图片的爬坑记录
  • 原文地址:https://www.cnblogs.com/Vventador/p/10652292.html
Copyright © 2011-2022 走看看