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

1.实践目标

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

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

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

2.实践内容

1. 系统运行监控——计划任务(注:在虚拟机win7下完成)

  • 使用schtasks /create /TN netstat5336 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"命令创建计划任务netstat5336

    • TN是TaskName的缩写,我们创建的计划任务名是netstat5318;
    • sc表示计时方式,我们以分钟计时填MINUTE;
    • TR=Task Run,要运行的指令是 netstat

      bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;
    • >表示输出重定向,将输出存放在c:\netstatlog.txt文件中

  • 因为虚拟机里没什么东西,所有没有什么太多的任务

  • 在C盘中创建一个netstat5336.bat脚本文件,写入以下内容
date /t >> c:\netstat5318.txt
time /t >> c:\netstat5318.txt
netstat -bn >> c:\netstat5318.txt
  • 打开任务计划程序创建任务

  • 点击操作并编辑,将“程序或脚本”改为我们创建的netstat5336.bat批处理文件,确定即可。

  • 在任务管理器中把对应任务属性->条件->电源,关闭选项。注意:“使用最高权限运行”一定要选!!!

  • 执行此脚本一定时间,查看到本机在该时间段内的联网记录:

  • 数据分析:将存储的数据通过excel表进行整理,因为在虚拟机上做的软件比较少,从图可以看出来基本上都是阅览器使用的较频繁,其他很少。(数据分析部分借鉴博客

2. 系统运行监控——利用Sysmon

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

  • 过滤器事件的选项:

    • 进程创建ProcessCreate的过滤事件选项有:UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
    • 进程创建时间FileCreatTime的过滤事件选项有:UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
    • 网络连接NetworkConnect的过滤事件选项有:UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
    • 远程线程创建CreateRemoteThread的过滤事件选项有:UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
  • 写配置文件sysmon5336.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">chrome.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.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>

  • 参数解释:

    • exclude相当于白名单,不用记录。include相当于黑名单。
    • Image condition这里要根据自己使用的浏览器更改,例如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,火狐浏览器是“firefox.exe”我用的是360浏览器和火狐浏览器写在exclude中就是不记录由360浏览器和火狐浏览器创建的进程。想知道自己浏览器进程名,可以查看“netstat5318.txt”中的记录。
    • 进程创建时间类似,也是不创建浏览器创建进程的时间。
    • 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,并查看目的端口为80(http)和443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。127.0.0.1表示本机IP。)
    • 远程线程创建记录了目标为explorer.exe、svchost.exe、firefox.exe、winlogon.exe和powershell.exe 的远程线程。(explorer.exe是Windows程序管理器或者文件资源管理器,svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。)
  • 安装sysmon:执行命令sysmon.exe -i C:\sysmon20165336.xml,成功安装结果如下:

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

  • 利用Sysmon具体分析日志,这里我选择了自己实验二中生成的后门20165336.exe进行分析,启动回连、安装到目标主机。

  • 分析后门文件:

    • 因为该后门里的buf是经过加密得,所以虚拟机里对该文件扫描结果有些分析出来的是?这个符号。

  • 还了解到Windows7下的cmd.exe是64bit的,kali回连获取的windows的cmd程序是32位的。

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

3.使用VirusTotal分析恶意软件

  • 把生成的恶意代码放在VirusTotal进行分析

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

  • 查看该恶意代码的算法库支持情况:

4.使用PEiD分析恶意软件

  • 没有加壳的后门程序

  • 加过压缩壳的后门程序:

  • 加过加密壳的后门程序:

5.使用PE Explorer分析恶意软件

PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。该软件支持插件,你可以通过增加插件加强该软件的功能,原公司在该工具中捆绑了UPX的脱壳插件、扫描器和反汇编器,可以查看程序头部信息(默认界面)、程序静态数据目录、程序结头信息、对程序反汇编等等,非常好用。

  • 查看文件引用的dll库,可以通过视图->引入进行查看,如下图所示:

  • KERNEL32.dll:控制着系统的内存管理、数据的输入输出操作和中断处理。
  • msvcrt.dll:是微软编译软件的函数库。
  • USER32.dll:Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。它是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。
  • WSOCK32.dll:Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。
  • 使用该工具查看了实验三生成的多个后门程序,发现使用veil生成的后门程序所引用的dll文件是最多的,而且所有的后门程序都会引用KERNEL32.dll这个文件。

6.使用Process Monitor分析恶意软件

  • 打开软件,可以看到各个进程的详细记录

  • 进程的详细信息和使用的库:

7.使用Process Explorer分析恶意软件

  • 后门程序进行回连时可以在 Process Explorer工具中查看到其记录。

  • 查看该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等。

8.使用systracer分析恶意软件

  • 在两台虚拟机中进行,windows虚拟机文件少,进行快照时间短,且易于分析。

  • 下载SysTracer工具

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

    • 快照一:未移植后门程序,保存为Snapshot #1
    • 快照二:移植后门程序,保存为Snapshot #2
    • 快照三:运行后门程序并在kali中实现回连,保存为Snapshot #3
    • 快照四:在kali中使用dir指令,保存为Snapshot #4
    • 快照五:在kali中使用record_mic指令,保存为Snapshot #5

  • 右下角的compare键或者View Differences Lists比对各快照
  • 分析:快照一和快照二:增加后门程序20165336E.exe
    • 后门程序生成了很多文件、目录和键值
    • 注册表项中有变化
    • 进程中增加了一项与多媒体有关的应该是与record_mic指令相关

9.使用wireshark抓包分析恶意软件

  • 过滤规则设置为ip.addr == 192.168.1.168,查看和虚拟机IP有关的数据包

  • 有大量的TCP包跟回连相关,dir指令会有数据产生(PSH表示有DATA数据传输):

3.实验问题

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

  • 用windows自带的schtasks指令设置一个计划任务,隔一定时间记录主机的联网记录或者是端口开放、注册表信息。
  • Sysmon,修改配置文件内容,记录有关的系统日志。
  • 使用Process Explorer,对进程进行监控。
  • 使用Process Monitor,监视系统有关活动。

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

  • 可以用Systracer(分析有关系统异常);virscan(对指定文件进行分析定性)。Wireshark(进行抓包分析)。

4.遇到的问题

  • Sysmon安装出错,原因在于用.txt编辑时版本号不对。

5.实验总结与体会

这次实验主要让我了解了一些恶意代码分析的工具程序,这些程序功能的强大引起了我极大的兴趣,让我在不断探索中,发掘恶意代码程序之间细节之处,这次实验只能说让我对这些软件有了了解,我相信只有进一步熟悉掌握这些软件,才能充分利用起来去解决实际问题,本次实验也提高了我动手能力和独立解决问题的思维,总体上没遇到很大的问题,在与同学的交流和查询学长学姐的博客中都能很好的解决,在不断地学习过程中有时要用到前面所学到的内容,这让我必须要融会贯通这些知识,让我自己不断得到锻炼,不断提高。

2018-2019-2 网络对抗技术 20165336 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 20165236 《网络对抗技术》Exp4 恶意代码分析

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

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

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

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

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

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

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

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

    2018-2019-2 20165205<网络对抗技术>Exp4 恶意代码分析 实验要求 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中 ...

随机推荐

  1. Alpha冲刺(10/10)

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺倒计时之10(匆匆而过) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 答辩演练 版本演示视频拍摄 接下来的计划 ...

  2. make menuconfig 笔记

    由于公司对于新CPU开发很着急,似乎明年2月份就能达到量产的目标.之前只有2个人在做平台级的开发,于是就另外抽调人手,而我就在其中.我之所心搞openwrt是因为硬件部门的样机一直未有时间表,而我总不 ...

  3. Team Queue (HDU:1387)

    Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...

  4. Docker发布程序那些事

    最近使用docker比较频繁,所以也难免碰到一些坑,在这里记录一下,给自己写个笔记 1.docker 1.13.0版本不支持docker stack deploy -c 多个 -c的yml文件合并 如 ...

  5. Excel—单元格引用

    EXCEL的引用有3种:相对引用.绝对引用.混合引用 相对引用.绝对引用比较简单,就是要么拖拽后变,要么拖拽后不变 混合引用有点难度,凡是需要向右拖拽再向下拖拽的记住一定是混合引用 要将拖拽后依然不变 ...

  6. Python:爬虫之利用Python获取指定网址上的所有图片—Jaosn niu

    # coding=gbk import urllib.request import re import os import urllib def getHtml(url): #指定网址获取函数 pag ...

  7. sublime 学习笔记

    一.subline text 常用快捷键1.安装插件:ctrl + shift + p -> packages controll -> 输入插件的名字即可2.python 的脚本的运行 c ...

  8. 我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯

    关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程. 中文网络教程链接(链接至 altera中文官网,点击观看) Quartus II 软件设计系列:基础 Qu ...

  9. [nodemon] clean exit - waiting for changes before restart

    出现上述日志信息,程序就不能往下运行了. 原因:node程序在初始化的时候就报错了,仔细debug吧...

  10. arcgis中转换netCDF为栅格数据

    最近有个同学询问我一个问题,使用arcpy把netcdf转化成栅格文件,忙活了两个小时才搞定,其实主要代码非常简单,只不过要对arcgis 的功能比较熟悉(其实多思考和查考它的帮助文章,无聊) # - ...