20165218 《网络对抗技术》Exp4 恶意代码分析
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 |
准备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\Prefetch
和c:\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 恶意代码分析的更多相关文章
- 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析
2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...
- 20145226夏艺华 网络对抗技术EXP4 恶意代码分析
20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...
- 20155302《网络对抗》Exp4 恶意代码分析
20155302<网络对抗>Exp4 恶意代码分析 实验要求 •是监控你自己系统的运行状态,看有没有可疑的程序在运行. •是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工 ...
- 20145208 蔡野 《网络对抗》Exp4 恶意代码分析
20145208 蔡野 <网络对抗>Exp4 恶意代码分析 问题回答 总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文 ...
- 20145215《网络对抗》Exp4 恶意代码分析
20145215<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...
- 20155227《网络对抗》Exp4 恶意代码分析
20155227<网络对抗>Exp4 恶意代码分析 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分 ...
- 20155232《网络对抗》Exp4 恶意代码分析
20155232<网络对抗>Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...
- 20155239 《网络对抗》Exp4 恶意代码分析
20155239 <网络对抗>Exp4 恶意代码分析 使用schtasks指令监控系统运行 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到nets ...
- 20155304《网络对抗》Exp4 恶意代码分析
20155304<网络对抗>Exp4 恶意代码分析 实践内容 1.系统运行监控 1.1使用schtasks指令监控系统运行 我们在C盘根目录下建立一个netstatlog.bat的文本文件 ...
- 20155308《网络对抗》Exp4 恶意代码分析
20155308<网络对抗>Exp4 恶意代码分析 实践说明 实践目标 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件: ...
随机推荐
- 【LeetCode算法题库】Day2:Median of Two Sorted Arrays & Longest Palindromic Substring & ZigZag Conversion
[Q4] There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...
- 2018NOIP爆0记第一弹
初赛篇 选择即王道 迪杰斯特拉那道题的A选项自己yy一下觉得甚是不妥,就没选 就和30分完美选择题擦肩而过. 填空最后一题不太会搞,就跳过了,最后蒙了个512上去...其实还有点接近的... 5分 然 ...
- ats 转发代理
ats是一个通用代理,可配置为反向和转发代理; 转发代理可以用作基础架构中的中央工具来访问web, 它可以与缓存结合使用以降低 总体带宽使用率.转发代理充当本地网络上的客户端浏览器与这些客户端访问的所 ...
- 高可用Kubernetes集群-16. ansible快速部署
说明 本文档指导采用二进制包的方式快速部署高可用kubernetes集群. 脚本托管:k8s-ansible(持续更新) 参考:高可用kubernetes集群 组件版本 组件 版本 备注 centos ...
- ftp部署及使用
常用软件安装及使用目录 http://www.jb51.net/article/106604.htm ftp部署 本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在 ...
- 使用Python批量修改数据库执行Sql文件
由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些 ...
- 前端_JavaScript
目录 JavaScript的基础 引入方式 JS的变量.常量和标识符 JS的数据类型 运算符 流程控制 JavaScript的对象 String对象 Array对象 Date对象 Math对象 Fun ...
- VS AI 手写数字识别应用
看过我上一篇文章的朋友应该知道,我用VS训练出了minst模型.output目录中有.pb文件. 关于.pb文件的介绍见[参考链接] (https://stackoverflow.com/questi ...
- iOS开发学习-资源打包
图片是被放到Images.xcassets中 1.部署版本在>=iOS8的时候,打包的资源包中的图片会被放到Assets.car 图片被压缩: 2.部署版本在<iOS8的时候,打包的资源包 ...
- Leetcode题库——33.搜索旋转排序数组
@author: ZZQ @software: PyCharm @file: search.py @time: 2018/11/12 18:12 要求:假设按照升序排序的数组在预先未知的某个点上进行了 ...