Exp4 恶意代码分析

任务一:系统运行监控

记录分析联网的程序

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

/*TN TaskName缩写 */
/*sc 计时方式 */
/*TR TaskRun缩写 */
/*b表示显示可执行文件名,n表示以数字来显示ip和端口 */
/* > 重定向 */

  • 在c盘创建脚本文件netstat5218.bat,写入
date /t >> c:\netstat5318.txt
time /t >> c:\netstat5318.txt
netstat -bn >> c:\netstat5218.txt

  • 右击“计算机”->“管理”,打开任务计划程序,查看任务计划程序库,可以看到刚刚创建的netstat5218

  • 双击该任务,在“操作”选项卡中,编辑“程序或脚本”为C:\netstat5218.bat

  • 在“常规”选项卡中,勾选使用最高权限运行

  • 执行一段时间(我这里运行了4个小时左右)后,可以在netstat5218.txt看到本机的联网记录

  • 将数据导入Excel

可以看到,这段时间联网最多的应用是爱奇艺客户端QyClient.exe,因为中午吃饭看了一会儿,其次联网较多的还有有道云笔记YoudaoNote.exe、QQ、360等

使用sysmon工具监控系统

关于sysmon
什么是sysmon

sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。

通过收集使用Windows事件集合或SIEM代理生成的事件,然后分析它们,您可以识别恶意或异常活动,并了解入侵者和恶意软件在您的网络上如何操作。

过滤器事件
事件过滤器 含义 选项
ProcessCreate 进程创建 UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
FileCreateTime 进程创建时间 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
ProcessTermina 进程结束 UtcTime, ProcessGuid, ProcessId, Image
DriverLoad 驱动加载 UtcTime, ImageLoaded, Hashes, Signed, Signature
ImageLoad 镜像加载 UtcTime, ProcessGuid, ProcessId, Image, ImageLoaded, Hashes, Signed, Signature
CreateRemoteTh 远程线程创建 UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
RawAccessRead 驱动器读取 UtcTime, ProcessGuid, ProcessId, Image, Device
ProcessAccess 进程访问 UtcTime, SourceProcessGUID, SourceProcessId, SourceThreadId, SourceImage, TargetProcessGUID, TargetProcessId, TargetImage, GrantedAccess, CallTrace
FileCreate 文件创建 UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime
RegistryEvent 注册表事件 UtcTime, ProcessGuid, ProcessId, Image, EventType, TargetObject
FileCreateStre 文件流创建 UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, Hash

具体见使用轻量级工具Sysmon监视你的系统

准备xml配置文件
<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">360Se.exe</Image>
</ProcessCreate> <ProcessCreate onmatch="include">
<ParentImage condition="end with">cmd.exe</ParentImage>
</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">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">360Se.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>

注解及注意事项:

  • 第一行中的Sysmon schemaversion=为版本号,需要与下载的sysmon一致,否则无法安装
  • include被过滤器保留的,黑名单;exclude被过滤器排出的,白名单
  • 进程创建去除了以360Se.exe结尾的,即360浏览器,查看cmd.exe
  • 网络连接过滤掉了360浏览器的连接,以及源为127.0.0.1和目的端口为137的连接,查看目的端口是80和443的连接
    • 137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
    • 127.0.0.1是本机的回放地址
    • 目的端口80 http,443 https
  • 远程线程创建
    • explorer.exe:Windows程序管理器或文件资源管理器
    • svchost.exe:svchost.exe是微软Windows操作系统中的系统文件,微软官方对它的解释是:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个该文件的进程
    • winlogon.exe:Windows Logon Process是Windows NT用户登录程序,用于管理用户登录和退出
    • powershell.exe:Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。

插播一条:powershell和cmd的区别

你可以把powershell看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。

1.shell可以说是cmd的升级版、补充版,shell在原来cmd基础上做了很多修改、调整的,且增加了很多命令及命令别名。

2.CMD和powershell都可以通过运行命令打开.

3.在powerShell中可以通过alias、gal或者get-alias命令查看原长命令及别名。

操作步骤
  • 先把写好的sysmon5218.xml扔到C盘里
  • 下载sysmon,解压,命令行进入sysmon文件路径,安装
sysmon.exe -i C:\sysmon20165318.xml
  • 选择"Agree",安装成功



  • 这一步中如果出现You need to launch Sysmon as an Adminsitrator报错,则需要用管理员身份打开命令行,我的电脑直接在搜索中找到cmd,而后右击,以管理员身份打开即可

  • 右击“计算机”-> “管理”,进入“事件查看器”,进入路径应用程序和服务日志/ Microsoft/ Windows/ Sysmon/ Operational,可以看到按照配置文件的要求记录的新事件,及事件ID、任务类别、详细信息等。

  • 用实验二的后门程序回连主机,并运行dir、shell、getuid等指令,可以看到出现了一个使用searchfilterhost.exe的事件

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

切记:SearchFilterHost.exe也可能是恶意软件所伪装,尤其是当它们存在于c:\windows或c:\windows\system32目录。

看来八成就是你了!


任务二:恶意软件分析

这一步我用了SysTracer这个工具,是在win7虚拟机内使用的

  • 分别在回连之前,回连后,使用dir命令,截屏后,关闭虚拟机键盘后建立快照

回连前与回连后

  • 对比快照1和快照2,可以看到多了一个进程bd5218.exe

  • 添加并删除了一些dll文件

dll文件为动态链接库文件,又称“应用程序扩散”。在Windows中,许多应用程序并不是一个完整的可执行文件,他们被分割成一些相对独立的动态链接库,即dll文件,放置于系统中。

  • 新增了很多文件、目录、键值

  • 新增程序使用的ip和端口

  • 在注册表HKEY_CLASSES_ROOT中新增的内容

  • c:\Windows\Prefetchc:\Windows\System32\LogFiles\WMI\RtBackup修改一些内容

执行dir命令前后

  • 注册表HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中新增了许多内容

  • 文件没有变化

  • 进程没有变化,但是dll文件被改动了

  • 原来svchost.exe所使用的546端口也被关闭了

截屏前后

  • 注册表没有变化

  • 文件

  • 句柄

禁用键盘前后

  • 注册表RNG有改动,去搜了搜RNG(随机密匙)下的简直是产生随机数种子的,有点想不通这个和禁用键盘有啥关系

  • 又把svchost.exe的546端口给打开了??


基础问题回答

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

一般来说恶意代码的行为都有一些共同性,比如连接远程控制端、修改注册表,那么就监控这些敏感行为就好,更宽泛一些,可以监控主机的联网记录、进程执行情况等,看看有没有可疑行为,但这种就有点大海捞针了

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

恶意代码分析工具如systracer


实验总结与体会

这次实验感觉有点难?开始弄c盘的权限,因为一开始没有“从桌面建好拖进c盘”,而是试图直接在c盘建txt,所以涉及到了一系列权限问题,进行了一系列更改所有权的迷之操作,感觉我现在c盘里面权限都是乱七八糟的。

然后收集好联网数据以后导入到Excel里面并生成透视表也是很神奇的操作,虽然跟课程主题无关但是学到了一招!

再后面,分析恶意代码,感觉自己只是找到了前后两个快照的不同之处,但具体还是没有分析透,有关注册表、files、还有句柄的修改很多都看不懂,不知用意何在

20165218 《网络对抗技术》Exp4 恶意代码分析的更多相关文章

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

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

  2. 20145226夏艺华 网络对抗技术EXP4 恶意代码分析

    20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...

  3. 20155302《网络对抗》Exp4 恶意代码分析

    20155302<网络对抗>Exp4 恶意代码分析 实验要求 •是监控你自己系统的运行状态,看有没有可疑的程序在运行. •是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工 ...

  4. 20145208 蔡野 《网络对抗》Exp4 恶意代码分析

    20145208 蔡野 <网络对抗>Exp4 恶意代码分析 问题回答 总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文 ...

  5. 20145215《网络对抗》Exp4 恶意代码分析

    20145215<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...

  6. 20155227《网络对抗》Exp4 恶意代码分析

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

  7. 20155232《网络对抗》Exp4 恶意代码分析

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

  8. 20155239 《网络对抗》Exp4 恶意代码分析

    20155239 <网络对抗>Exp4 恶意代码分析 使用schtasks指令监控系统运行 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到nets ...

  9. 20155304《网络对抗》Exp4 恶意代码分析

    20155304<网络对抗>Exp4 恶意代码分析 实践内容 1.系统运行监控 1.1使用schtasks指令监控系统运行 我们在C盘根目录下建立一个netstatlog.bat的文本文件 ...

  10. 20155308《网络对抗》Exp4 恶意代码分析

    20155308<网络对抗>Exp4 恶意代码分析 实践说明 实践目标 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件: ...

随机推荐

  1. Streamr助你掌控自己的数据(3)——教你在Streamr市场上发布数据

    博客说明 所有刊发内容均可转载但是需要注明出处. 教你在Streamr市场上发布数据 本系列文档主要介绍怎么通过Streamr管理自己的DATA,整个系列包括三篇教程文档,分别是:教你5分钟上传数据至 ...

  2. C++ 函数 引用

    一.引用的概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.引用的声明方法: 类型标识符 &引用名 = 目标变量名: 为一个变量起一个别名.假如有一个变量a,想给 ...

  3. 软件工程-东北师大站-第十二次作业(PSP)

    1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图

  4. oracle和mysql对时间与字符串的转换

    1,oracle to_date(#{item.value},'YYYY-MM-DD hh24-mi-ss') to_char(CRERATE_TIME,'YYYY-MM-DD hh24-mi-ss' ...

  5. 实验三— —敏捷开发与XP实践

    ---恢复内容开始--- java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:2013 ...

  6. 20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结

    20172319 2018.03.27-04.05 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 编写类 类与对象的回顾:对象是有状态的,状态由对象的属性值确定.属性由类中 ...

  7. ns3 模拟无线网络通信

    /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* * This program is fre ...

  8. Scrum Meeting Beta - 10

    Scrum Meeting Beta - 10 NewTeam 2017/12/11 地点:新主楼F座二楼 任务反馈 团队成员 完成任务 计划任务 安万贺 完成了作业详情的本地存储Issue #165 ...

  9. Java 文件下载功能 解决中文乱码

    Html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  10. Python面向对象高级编程:__slot__(给实例添加方法、属性)

    纲要: 本章总的来说是给实例添加属性,给类添加方法两个主题,以及相应的作用范围.总结如下: 1.给实例添加属性(作用范围:当然是只对当前实例有效): 2.用__slots__限制可以给实例添加的属性( ...