20165310 NetSec2019 Week6 Exp4 恶意代码分析

一、实验要求

1、系统运行监控

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

2、恶意软件分析

分析该软件在

  • 启动回连
  • 安装到目标机
  • 及其他任意操作时(如进程迁移或抓屏)

该后门软件

  • 读取、添加、删除了哪些注册表项
  • 读取、添加、删除了哪些文件
  • 连接了哪些外部IP,传输了什么数据(抓包分析)

二、实验步骤

1、windows计划任务

  • 以管理员身份打开cmd,使用指令schtasks /create /TN 5310netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt创建计划任务5315netstat,记录每1分钟计算机联网情况:

    • TN是TaskName的缩写,我们创建的计划任务名是netstat5318;

    • sc表示计时方式,我们以分钟计时填MINUTE;

    • TR=Task Run,要运行的指令是 netstat

    • bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;

    • >表示输出重定向,将输出存放在c:\netstatlog.txt文件中

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

这些指令是用来将记录的联网结果格式化输出到netstatlog.txt文件中

  • 将后缀名改为.bat后,用管理员身份将该文件放入C盘

  • 打开计算机管理的“任务计划程序库”,可以查看到5310netstat任务就绪

  • 打开其属性,修改其指令为c:\netstatlog.bat,添加参数一栏删除

  • 为防止运行过程出错,在条件中勾除“只有在计算机使用交流电源时才启动此任务”,在属性中“常规”一栏最下面勾选“使用最高权限运行”

  • 此时,可以在C盘的netstat5315.txt文件中查看到本机在该时间段内的联网记录:

  • 等待足够的时间,将日志通过“数据-自文本”导入Excel,选择分割符号,进行生成

  • 利用Excel的数据生成透视图,查看相关信息

  • 对表格进行分析:

    • 常见的应用软件:Chrome.exe、Tim.exe、QQUrlMgr.exe、WINWORD.exe、OneDrive.exe、BaiduNetdisk相关进程,相对数目比较多但是比较正常,是正常使用电脑的记录
    • 可信任的后台进程:
      • MSI、DragonCenter_Update.exe:我电脑品牌自带的管理工具
      • SeaarchUI.exe:Cortana的搜索功能
      • backgroudTaskHost.exe:win10电脑锁屏时,显示出现的图片信息的进程 ,进程缓存下载图片
      • ChsIME、sppextcomobj.exe:微软输入法相关进程
      • juCheck.exe、juSched.exe:Java升级检测程序(其实也可能是蠕虫,但是电脑感染蠕虫比较明显,可以排除)
      • logitechg_discord.exe:鼠标配置程序
      • PlacesServer.exe:微软官方文档给出了P开头的进程包含,别的信息也查不到,认为安全
      • Vedio.UI.exe:视频播放器
      • BITS:微软后台传输服务
      • DIagTrack:微软收集用户信息的工具,介意可以禁止,但是收集信息包括系统报错等
      • DosVC:使用DOS命令管理服务,虽然我没有使用但是后台计划一直在调用cmd,使用率还是挺高的
      • wlidSVC: Office在线存储服务后台进程,和word使用频数一致,认为安全
      • WpnService: 查不到具体作用,貌似和客户端调用与Windows图形化界面有点关系,VirScan全部通过,也没有看到可以伪装的信息
    • 有一定可疑性的进程:
      • ActionUriServer.exe:系统文件,可被篡改,尤其是当它们存在于C:\ Windows或C:\ Windows \ System32目录时,被篡改可能性更大,可惜记录中没有应用所在位置,自行在C盘搜索发现还在系统目录,并且根据记录去查询外部ip:216.58.199.110,发现在美国,且和我的Chrome.exe外部ip一致,所以我认为可疑性不是特别大。
      • svchost.exe:数目众多,但是tasklist发现都有对应进程而不是暂缺,认为暂时安全。
    • 可疑性比较大的进程
      • HxT sr.exe:微软核心文件,同样要确定他的位置(默认C:\Program File),还是通过ip确认在美国,但是并没能在默认位置搜索到该exe。
      • Isass.exe:据查极有可能是Optix.Pro病毒的一部分,ip很可疑在北京市海淀区,而且微软官方文档没有这一项,导致我很慌。但是去查了病毒特性进行注册表排查,发现没有被更改,所以暂时认为安全。

2、使用sysmon工具

  • 首先创建配置文件sysmon.xml,文件中包含指令:
<Sysmon schemaversion="4.12">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad> <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>
</EventFiltering>
</Sysmon>
  • 在官网上下载sysmon工具

  • 以管理员身份打开命令行,使用指令Sysmon.exe -i C:\sysmon.xml安装sysmon

  • 发现版本不对,但是安装完成了

  • 修改配置文件进行监控,并且更新版本号

    <Sysmon schemaversion="4.20">
    <!-- Capture all hashes -->
    <HashAlgorithms>*</HashAlgorithms>
    <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">
    <Signature condition="contains">microsoft</Signature>
    <Signature condition="contains">windows</Signature>
    </DriverLoad> <NetworkConnect onmatch="exclude">
    <Image condition="end with">iexplorer.exe</Image>
    <SourcePort condition="is">137</SourcePort>
    <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect> <NetworkConnect onmatch="include">
    <DestinationPort condition="is">5310</DestinationPort>
    <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>

    更改部分:增加监听端口5310、443、80服务

  • 命令Sysmon.exe -c C:\sysmon.xml使配置文件生效

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

    • 看到我们回连的后门程序shellcode_upx.exe

    • 在kali中输入dir、getuid等命令后,在被控主机未进行任何操作的情况下,出现系统进程调用等情况

3、恶意软件分析

静态分析

  • 文件扫描(VirusTotal、VirusScan工具等)
  • 文件格式识别(peid、file、FileAnalyzer工具等)
  • 字符串提取(Strings工具等)
  • 反汇编(GDB、IDAPro、VC工具等)
  • 反编译(REC、DCC、JAD工具等)
  • 逻辑结构分析(Ollydbg、IDAPro工具等)
  • 加壳脱壳(UPX、VMUnPacker工具等)

我主要选取以下几种方法和工具来进行分析

(1) 文件扫描(VirScan工具)

  • 使用在线VirusScan工具对实验中的后门进行扫描,发现14/49概率被查杀:

  • 在行为分析报告中可以看到,UPX壳作为标识信息被扫出

(2)文件格式识别(peid工具)

PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。

  • 下载Peid工具,对无壳后门程序进行查壳,发现显示无:

  • 对本次的加壳后门进行扫描

​ 查出UPX的壳

(3) 反编译、反汇编(PE Explorer工具)

PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。该软件支持插件,你可以通过增加插件加强该软件的功能,原公司在该工具中捆绑了UPX的脱壳插件、扫描器和反汇编器,非常好用。

  • 可以查看程序头部信息

  • 点击“导入-引用”,查看其引用的dll库分析

    • KERNEL32.dll:控制着系统的内存管理、数据的输入输出操作和中断处理。

    • msvcrt.dll:是微软编译软件的函数库。

动态分析

  • 快照比对(SysTracer、Filesnap、Regsnap工具等)
  • 抓包分析(WireShark工具等)
  • 行为监控(Filemon、Regmon、ProcessExplorer工具等)
  • 沙盒(NormanSandbox、CWSandbox工具等)
  • 动态跟踪调试(Ollydbg、IDAPro工具等)

我主要选取以下几种方法和工具来进行分析:

(1)快照比对(SysTracer工具)

  • 下载SysTracer工具

  • 点击右侧的take snapshot

    ,存储快照

    • 快照一:未移植后门程序
    • 快照二:移植后门程序并执行dir、getuid等指令

  • 通过右下角的compare键或者View Differences Lists比对各快照,进行分析,可以看到很多有关后门程序的增加和修改操作

  • 还可以查出后门软件对应回连的ip与端口:

  • 对于原来注册表的修改、删除操作

(2)抓包分析(WireShark工具)

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

  • 由于后门在捕获流量的时候已经回连,没能捕捉到回连的流量包,但是发现发出命令后,以ip为过滤条件,可以看到整个攻击过程几乎都是通过tcp实现的

三、实验中遇到的问题

  • 安装sysmon权限不够

    • 用管理员身份启动cmd
  • wireshark捕捉不到对应流量包
    • 选错了网卡,重新选择网卡进行捕捉
  • win7中wireshark安装报错
    • 换用真机继续试验

四、实验总结

1、实验后回答问题

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

    • 使用windows自带的schtasks指令设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录,再使用Excel等软件协助分析
    • 使用sysmon工具,通过配置想要监控的端口、注册表信息、网络连接等信息,记录相关的日志文件。
    • 利用wireshark查看数据包,进行流量分析
  • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 使用PEID查看其是否加壳,如果有进行脱壳操作。
    • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
    • 使用systracer工具分析恶意软件,进行快照的对比(注册表、文件等).
    • 使用Process Explorer查看调用的程序库等等

2、实验感想

​ 本次实验对于我来说,花费时间最长的部分不在于第二部分、第三部分的恶意代码分析,而在于第一部分日志记录的后台文件的解读,在日常生活中最困难的部分其实是寻找到潜伏的恶意代码,经历过免杀等之前的实验操作后,我对于软件的分析持有可以参考,但是也要怀疑的态度。

​ 在第一部分的分析过程中,针对系统正常后台我们也应该持有疑问态度,他是否是恶意代码伪装而成,是否被修改等,可以通过我们使用的应用是否需要调用他、日志记录的ip是否正常、程序所在位置是否在默认位置、注册表是否被更改等信息综合确定,SysTracer工具是个理论上很好的工具但是真机环境其实更加复杂,也数据庞大冗杂,我并不认为适合我们平时日常的整体分析,但是可以搭建沙盒对于已经找到的可以软件进行分析。

20165310 NetSec2019 Week6 Exp4 恶意代码分析的更多相关文章

  1. NetSec2019 20165327 Exp4 恶意代码分析

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

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

    2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...

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

    Exp4 恶意代码分析 实验内容 一.基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 使用wi ...

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

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

  5. 2018-2019 20165237网络对抗 Exp4 恶意代码分析

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

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

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

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

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

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

    Exp4 恶意代码分析 实验内容 一.基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. •使用w ...

  9. 2018-2019 20165235 网络对抗 Exp4 恶意代码分析

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

随机推荐

  1. 懒汉处理dapper字段名与属性名的映射方式

    你还以为走路是世上最简单的事情呢?只不过是把一只脚放到另一只脚前面.但我一直很惊讶这些原本是本能的事情实际上做起来有多困难.而吃,吃也是一样的,有些人吃起东西来可困难了.说话也是,还有爱.这些东西都可 ...

  2. RSA加解密 私钥加密公钥解密 私加公解 && C++ 调用openssl库 的代码实例

    前提:秘钥长度=1024 ============================================== 对一片(117字节)明文加密  私加 ===================== ...

  3. LeetCode119.杨辉三角II

    给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: 你可以优化你的算法到 O ...

  4. activity bj draw 流程图

  5. Python记录7:函数3,函数对象

    #函数对象指的是:函数的内存地址可以像变量值一样去使用,如何使用?def func(): print('from func')#1. 可以被引用# f=func# print(f)# f() #2. ...

  6. Protobuf数据类型

    protobuf编译文件和源码在点击打开链接 1:   数据类型: double: 浮点数 float: 单精度浮点 int32: int类型,使用可变长编码,编码负数不够高效,如果有负数那么使用si ...

  7. CSS选择符-----关系选择符

       包含选择符(E F)           选择所有被E元素包含的F元素 与 子选择符(E>F) 不同的是,包含选择符将会命中所有符合条件的后代,包括儿子,孙子,孙子的孙子... <! ...

  8. canvas添加水印

    <canvas id="canvas"></canvas><canvas id="water"></canvas> ...

  9. HashMap 和 ConcurrentHashMap比较

    基础知识: 1. ConcurrentHashMap: (JDK1.7) segment数组,分段锁:segment 内部是 HashEnty数组,类似HashMap: 统计长度的方法,先不加锁统计两 ...

  10. php Allocator Jemalloc TCMalloc那个内存分配器比较好?

    php Allocator Jemalloc TCMalloc那个内存分配器比较好? php一键安装脚本可以选择是否安装内存优化 You have 3 options for your Memory ...