2018-2019-2 网络对抗技术 20165216 Exp4 恶意代码分析
作者:互联网
2018-2019-2 网络对抗技术 20165216 Exp4 恶意代码分析
1.原理与实践说明
1.1实践目标
- 监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
1.2实验内容概述
- 系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 分析该软件在
- (1)启动回连
- (2)安装到目标机
- (3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据
1.3.基础问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用schtasks指令设置定时计划,并将内容写入一个文本。使用Excel表格进行图像分析,找到可疑程序。
- 使用Sysmon编写配置文件,记录有关日志。
- 使用Process Explorer工具监视进程执行情况
- 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它 的哪些信息。
- 使用抓包软件Wireshark进行抓包分析
使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
** **实践过程
2.1使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 用管理员模式打开Win10下的CMD命令提示符
- 使用命令 "schtasks /create /TN netstat5216 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt""创建计划任务 netstat5216
- TN 是TaskName的缩写,我们创建的计划任务名是netstat5216;
- sc 是计时方式,我们以分钟计时填MINUTE;
- TR 是Task Run,运行命令符指令netstat
- bn b表示显示可执行文件名,n表示以数字来显示IP和端口;
- “>” 表示输出重定向,将输出存放在c:\netstatlog.txt文件中
- 在桌面创建netstat5216.txt文件,编辑写入以下3行
- date /t >> c:\netstat5318.txt
- time /t >> c:\netstat5318.txt
- netstat -bn >> c:\netstat5216.txt
- 复制进入C盘目录下后(需要授权),更改后缀为.bat脚本文件
- 打开控制面板-系统与安全-管理工具-计划任务-netstat20165216
- 右键编辑,将启动程序或脚本设置为C盘目录下的netstat5216.bat,参数清空。
- 等待漫长的时间,在netstat5216.txt内查看相关记录
- 进行Excel表分析
- 新建Excel表
- 选择数据-获取外部数据-自文本,选择netstat5216.txt
- 选择分隔符号文件类型,下一步
- 分隔符号Tab键,分号,逗号,空格打√,下一步
- 列数据格式为常规,完成。
- 数据放置位置为第一个单元格就好(默认)
- 选择进程列(即名字为.exe的可执行文件列)
- 插入-数据透视图(不是数据透视表,图和表的表示是不同的!)
- 区域选择.exe可执行文件这一列
- 选择新工作表
- 若出现此命令要求源数据至少有二行...的提水,在列的第一个单元格随便填写个内容,如可执行文件,只要有字就OK
- 在右侧选择添加的字段中去掉 空白 协议 TCP 等无意义字段,我们只需查看.exe执行程序就好
- 将其分别移入轴(类别)以及值当中即可观察其汇总表
- 我们观察到360tray.exe是连接网络最多的一个
- 查看表格,可以看到它使用的协议为TCP,外部地址为36.99.30.203:80
我们估计是360安全卫士实时监控所带的东西,我们上网查查看
???????
2.2安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- sysmon是微软Sysinternals套件中的一个工具,使用sysmon工具前首先要配置文件。参考使用轻量级工具Sysmon监视你的系统该文章,创建配置文件sysmon20165216.xml。该文章同样可以查看时间过滤器及其参数。
- 可参考上述文章选择事件过滤器
- 这里我选择的有进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。
- 配置文件的编写
- 关于ProcessCreate,选项我选择Image、SourceIp、SourcePort。
- 关于进程创建时间FileCreatTime,我选择了Image选项。
- 关于网络连接NetworkConnect,我选择了Image、SourceIp、SourcePort
- 关于远程线程创建CreateRemoteThread,我选择了TargetImage、SourceImage.
- 配置文件20165216Sysmoncfig内容如下:
<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">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" 内浏览器名字,360的进程名为360se.exe,谷歌就改为chrome.exe,火狐为firefox.exe,具体查看方法建议任务管理器查看详情。
- 网络连接过滤掉了浏览器的网络连接、源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 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
- 安装老师码云下的SysinternalsSuite201608.zip并解压
- 管理员命令指示符下进入解压SysinternalsSuite2016目录下
- 执行命令 sysmon.exe -i C:\20165216Sysmoncfig.xmml
- 弹出窗口选择Agree
安装完成界面:
PS:如果更新了配置文件,可以输入指令sysmon.exe -c C:\20165216Sysmoncfig.txt进行update
- 在事件查看器查看日志
- Win10右键开始栏即可
- 找到应用程序和服务日志/Microsoft/Windows/Sysmon/Operational相应目录
- 打开之后清空日志放干扰(其实也可以按照时间排序),不扰乱
- 启动回连,安装至目标主机
找到后门程序启动的日志
发现它出现了c:\windows\System32\cmd.exe以及conhost.exe
- 启动screenshot
观察日志
发现出现了backgroundTaskHost.exe
- 输入命令shell
观察日志
出现了c:\Windows\SysWOW64\cmd.exe以及又一个conhost.exe
3.1恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(1)读取、添加、删除了哪些注册表项
(2)读取、添加、删除了哪些文件
(3)连接了哪些外部IP,传输了什么数据(抓包分析)
3.11 使用SysTracer进行分析
第一步:下载安装Systracer。
1.首先下载完成后进行安装,步骤为:agree->选第二个
2.设置监听端口号
3.安装完成后点击take snapshot进行快照
4.可以直接默认选择start
注意:上面是第一个快照操作,是不运行后门的时候比较“干净的”快照
5:打开后门程序进行回连,成功后,进行第二次快照
6:使用命令ls,进行第三次快照
7:使用命令screenshot,进行第四次快照
8:分别对第一次快照和第二,第二和第三、第三和第四次快照进行Compare操作,观察注册表内以及其他的变化,部分截图如下:
3.12 使用Wiresark进行分析
- 安装Wireshark(如果没安装)
- 在回连之前开始抓包
- 回连
- 设置过滤条件 ip.addr == 192.168.1.260
- 分析reverse_tcp建立连接的过程
- 截图如下
- 使用 screen shot后观察抓包情况
结果多了非常多的ACK以及PSH,进度条又多了许多。应该是调用了autdio线程之类的。
** **实验总结与体会
本次实验让我学会了一种.bat脚本软件可以输出日志,并进行Excel表分析。学会了如何监听系统的网络连接状态,并进行简单的快照以及抓包分析,还是非常实用的。
后门程序在干什么?可能是获取了注册表的shell,或又是输入法的权限。还是非常有意义的。
标签:分析,exe,快照,配置文件,恶意代码,netstat5216,20165216,2019,txt 来源: https://www.cnblogs.com/qq2497879550/p/10665864.html