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

原理与实践说明

1.实践目标

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

2.实践内容概述

  • 系统运行监控

    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
  • 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 连接了哪些外部IP,传输了什么数据

实践过程记录

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

  • 使用schtasks /create /TN netstat5212 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"命令创建计划任务netstat5212
  • TN是TaskName的缩写,我们创建的计划任务名是netstat5212;
  • sc表示计时方式,我们以分钟计时填MINUTE;
  • TR=Task Run,要运行的指令是 netstat
  • bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;
  • 表示输出重定向,将输出存放在c:\netstatlog.txt文件中

  • 在桌面建立一个netstatlog.txt文件,内容为: date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt

  • 这些指令是用来将记录的联网结果格式化输出到netstatlog.txt文件中
  • 将后缀名改为.bat后,用管理员身份将该文件放入C盘
  • 打开计算机管理的“任务计划程序库”,可以查看到5212netstat任务就绪,打开其属性,修改其指令为c:\netstatlog.bat

  • 还可以自行更改该任务的其他属性,如在"条件"选项卡中可以看到,电源选项中默认操作为“只有在计算机使用交流电源时才启动此任务”,把这个取消掉

执行此脚本一定时间,就可以在netstat5212.txt文件中查看到本机在该时间段内的联网记录:

  • 当记录的数据足够丰富时,停止任务,将所得数据在excel中进行分析,此过程要一直保持开机联网状态才能持续监控 等待一段时间(6小时),将存储的数据通过excel表进行整理, 统计图如下:

  • 由统计数据可知,联网排名第1的是“vmware-hosted.exe”,这一管理服务是esx主机和vmkernel之间的主要通信通道。其次还有ware.exe、QQ.exe等常见的程序,并没有发现什么异样这

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

  • sysmon是微软Sysinternals套件中的一个工具,直接从(马云链接)上下载。使用sysmon工具前首先要配置文件。参考使用轻量级工具Sysmon监视你的系统该文章,手动创建配置文件sysmon20165212.xml。

  • 代码如下

  • <Sysmon schemaversion="3.10">
    <!-- Capture all hashes -->
    <HashAlgorithms>*</HashAlgorithms>
    <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <ProcessCreate onmatch="exclude">
    <Image condition="end with">360se.exe</Image>
    </ProcessCreate> <FileCreateTime onmatch="exclude" >
    <Image condition="end with">360se.exe</Image>
    </FileCreateTime> <NetworkConnect onmatch="exclude">
    <Image condition="end with">360se.exe</Image>
    <SourcePort condition="is"></SourcePort>
    <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>
    <NetworkConnect onmatch="include">
    <DestinationPort condition="is"></DestinationPort>
    <DestinationPort condition="is"></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>

     

  • 安装sysmon:执行命令sysmon.exe -i C:\sysmon2016212.xml,成功安装结果如下:

  • 查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational,在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等。

  • 分析日志,我分析的是自己生成的后门文件进行分析。 启动回连到kali

  • 找到运行后门文件相对应的日志,打开这个事件,可以看到其属于“NetworkContect”。查看详细信息,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等

  • 在kali中会用webcam_snap命令调用主机的摄像头抓拍,日志中看到一个带有Photo关键词的日志记录

  • kali中运行dir命令后,主机日志中可以看到一个带有searchfile关键词的日志记录

    • SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。

  • kali中输入ps后,主机中的日志记录

  • kali中输入shell,主机中的日志记录

恶意软件分析

使用VirusTotal分析恶意软件

  • 把生成的恶意代码放在VirusTotal进行分析(也可以使用VirusScan工具),基本情况如下:

  • 查看这个恶意代码的基本属性:

  • 可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)最神奇的是它可以查出来文件的编码方式,可以看出我是用VC++进行编译的!

  • 还可以看到加壳连接情况:upx壳和http连接

  • 以及该恶意代码的算法库支持等一系列信息

使用systracer分析恶意软件

这个我放在win7虚拟机里进行。文减少,易于进行比较

  • 点击右侧的take snapshot,存储快照

    • 快照1:移植后门程序,保存为Snapshot #1
    • 快照2:运行后门程序并在kali中实现回连,保存为Snapshot #2
    • 快照3:在kali中使用dir指令,保存为Snapshot #3
    • 快照4:在kali中使用record_mic指令,保存为Snapshot #4
  • 快照1和2的对比,可以明显看到增加了后门程序

  • 快照2和3的对比,注册表和文件增删改方面

  • 快照2和4对比,能够看到在媒体播放器方面有所改动

返回目录

使用wireshark抓包分析恶意软件

  • 回连完成后结束捕获,并过滤ip,只看和虚拟机IP有关的数据包,所以把没用的包过滤掉 - 首先是tcp建立的三次握手

  • 有大量的TCP包,这其中有回连相关的包,之后我有用dir指令查看了靶机的当前目录,传输了很多数据过来:

基础问题回答

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

    • 使用windows自带的schtasks指令设置一个计划任务,发现网络连接异常
    • 使用Sysmon,编写配置文件,记录有关的系统日志
    • 使用Process Explorer工具,监视进程执行情况。
    • 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
  • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改。
    • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
    • 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

实验中遇到的问题及解决方法

  • 安装sysmon时,自己写的xml配置文件和下载的安装包版本要对应
  • xml配置文件中的过滤项里一般我们填的127.0.0.1的过滤掉,因此有时候如果虚拟机ifconfig显示的ip时候127.0.0.1那么日志里是肯定看不到相关日志的,所以要注意虚拟机的ip不要被过滤掉。
  • 开启360情况下所有日志中的目的地址都会是360设定的地址,应该是360会将主机和kali之间通信的数据进行加密或者“安全处理”,所以为了直观的观察结果,可以吧360关掉

实验总结与体会

本次实验相比于之前2次少了很多具体的操作,但是要求我们更充分的去了解恶意代码的特征、工作原理,通过观测我们上几次自己制作的特征明显的后门程序,我能直观地看到日志行为特征,连蒙带猜,仅通过sysmon的日志就可以判断自己的电脑有没有可以迹象 本次实验在动态分析的时候,锻炼了我们的信息处理能力,明显看到有很多不同,但是分析是又不知道该从何下手,不太清楚每一项具体代表什么含义,只能通过查阅资料,连蒙带猜的进行分析。 通过自己动手实践,实现了从攻击者身份到检测、分析者身份的转变,更全面的理解了前两次实验中生成的后门程序到底在做什么,对恶意代码有了更深入的理解。所以,我们在发现自己电脑有了不正常的流量消耗之后,而杀软没有任何报毒,就可以通过观察日志去判断自己的电脑有没有被植入后门,这一点,能力范畴超越了360等杀软,是我们实验过程中弥足珍贵的收获!

2018-2019-2 网络对抗技术 20165212 Exp4 恶意代码分析的更多相关文章

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

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

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

    - 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析 - 实验任务 1系统运行监控(2分) (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP ...

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

    2018-2019-2 网络对抗技术 20165317 Exp4 恶意代码分析 实验要求 1.系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间 ...

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

    2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析 实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp ...

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

    2018-2019-2 网络对抗技术 20165336 Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或E ...

  6. 2018-2019-2 20165236 《网络对抗技术》Exp4 恶意代码分析

    2018-2019-2 20165236 <网络对抗技术>Exp4 恶意代码分析 一.1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行; 1.2是分析一个恶意软件, ...

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

    2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析 一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2 ...

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

    2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...

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

    2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析 实验过程 一.系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一 ...

随机推荐

  1. nginx常用命令汇总

    nginx基础命令: sudo nginx // 开启nginx服务器 sudo nginx -s reload // 重启nginx服务器 sudo nginx -s stop // 关闭nginx ...

  2. vue.js循环for(列表渲染)详解

    vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...

  3. English trip -- VC(情景课)10 B Around the house 在家里

    Vocablulary focus  核心词汇 cook play the guitar listen to music watch TV read magazines work in the gar ...

  4. 20170601xlVBA正则表达式提取体检数据

    Public Sub GetFirst() GetDataFromWord "初检" End Sub Public Sub GetDataFromWord(ByVal SheetN ...

  5. Java字符串 API

    常用API

  6. priority_queue与bfs不得不说的古寺

    前几天写到bfs,看到之前写的,突然感觉不对,后来发现自己把点权值默认当成了边权值,导致一直走不出来: 点权值嘛,就是经过这个点时,要付出这么多的代价,边权值则是经过边时付出,二者有区别滴: 边权值求 ...

  7. 用Maven创建第一个web项目

    http://www.cnblogs.com/leiOOlei/p/3361633.html 一.创建项目 1.Eclipse中用Maven创建项目 上图中Next 2.继续Next 3.选maven ...

  8. 纯js倒计时效果(交流加群:452892873)(本群每天都更新学习资料)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 第一章连通性问题-----algorithm in C 读书笔记

    首先不得不吐槽一下翻译的质量,霍红卫....你给我站出来,不打死你,只想问你一下,你当年四级过了吗? 问题描述 输入两个整数,代表两个节点,如果这两个整数没有建立连接(这包括直接连接和通过其他节点连接 ...

  10. 第三视角团队:"Jarvis For Chat"团队选题报告

    "Jarvis For Chat"团队选题报告 组长博客链接 本次作业链接 NABCD在项目中的使用 N(Need,需求) QQ和微信已经成为人们社交的必需品,在QQ有7.8亿活跃 ...