2019-2020-1 20175313张黎仙《网络对抗技术》Exp4 恶意代码分析
Posted xiannvyeye
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-2020-1 20175313张黎仙《网络对抗技术》Exp4 恶意代码分析相关的知识,希望对你有一定的参考价值。
一、实验目标
- 是监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
二、预备知识
恶意代码概念
- 是通过存储介质和网络进行传播,从一台计算机系统到另一台计算机系统,未经授权破坏计算机系统完整性的程序或代码
- 最常见的恶意代码有病毒、木马、蠕虫、后门、僵尸网络、Rootkit等
- 恶意代码都有以下共同特征:
- 恶意的目的
- 本身是计算机程序
- 通过执行发生作用
更多详情请参见恶意代码
Schtasks的使用
C:schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:
etstatlog.txt"
- TN(TaskName)任务名,这里为netatat
- sc(ScheduleType)计时方式,这里为MINUTE,表示以分钟为单位
- MO(Modifier)指定任务在其计划类型内运行的频率,这里为5,结合上面的sc,表示每5分钟执行一次
- TR(TaskRun)要运行的指令,这里为
cmd /c netstat -bn > c: etstatlog.txt
更多详情请参见Schtasks官方网站
Sysmon的使用
- Sysmon是微软Sysinternals套件中的一个工具。可以监控几乎所有的重要操作。
- 基本操作可以描述为三步:
- 确定要监控的目标
- 写好配置文件
- 启动sysmon
然后就可以在
事件查看器
里找到日志了
Sysmon.exe -i <configfile>
:Sysmon安装Sysmon.exe -c <configfile>
:Sysmon配置Sysmon.exe -u [force]
:Sysmon卸载
更多详情请参见Sysmon官方网站
三、实验内容
任务一:系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
-
使用
schtasks /create /TN netstat5313 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstat5313.txt"
命令创建计划任务netstat5313
-
在C盘要目录下建一个文件
c: etstat5313.bat
,内容如下:
date /t >> c:
etstat5313.txt
time /t >> c:
etstat5313.txt
netstat -bn >> c:
etstat5313.txt
- 打开计算机管理-任务计划程序,可以看到我们新创建的任务:
- 双击
netstat5313
,点击操作
->编辑
,将程序或脚本
改为我们创建的netstat5313.bat
批处理文件,参数可选项为空,常规
中勾选使用最高权限运行
- 对该任务右键点击
运行
,可在netstat5313.bat目录下看到netstat5313.txt,打开就可看到每隔一分钟被输到这里的联网数据。
- 一段时间后,打开Excel表格,选择
数据
->导入数据
->选择数据源
,点击确定。
- 在
原始数据类型
中选择分隔符号
,勾选所有分隔符号即可
- 选择
插入
->数据透视图
,选择我们要分析的那一列,并默认位置新表格,点击确定
- 在字段中去除不需要的字段
- 该字段拖动到下方的轴和值两个区域中
- 最后,得到我们需要的联网信息统计图
- 从图中可知:
- 使用最多的是youdao.exe,因为我正在写博客/(ㄒoㄒ)/~~
- chrome.exe、wps.exe、wpscenter.exe这些均为正常的
- WpnService和WpnUserService相当于一个软件检测版本更新一样有更新就会自动检测到自动更新,也是正常的
- 值得注意的是出现了SearchUI.exe和svchost.exe猜测我的电脑里应该是出现了恶意代码。。。
(2)安装配置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
- 写好配置文件
<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”,写在exclude中就是不记录由谷歌浏览器创建的进程
- 进程创建时间类似,也是不创建浏览器创建进程的时间
- 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1(localhost)的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBios协议后,该端口会自动处于开放状态)
- 远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
- explorer.exe是Windows程序管理器或者文件资源管理器
- svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称
- winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出
- powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
- 启动sysmon
- 以管理员身份进入到
SysinternalsSuite201608
文件夹下,执行sysmon.exe -i C:20175313Sysmoncfig.txt
- 点击
事件查看器
,在应用程序和服务日志
->Microsoft
->Windows
->Sysmon
->Operational
可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别等
- 分析实验二生成的后门程序20175313_backdoor.exe
- 回连成功
- 在点击Sysmon->Operational刷新记录,查看运行后门文件20175313_backdoor.exe日志具体内容
- kali执行
shell
获取win7的cmd,并查看事件查看器
- kali执行
migrate 2224
迁移到explore.exe进程上,并查看事件查看器
- kali执行
record_mic
获取win7的录音,并查看事件查看器
这里发现了一个被创建的的进程svchost.exe,而且他还迁移到explore.exe上,隐藏自己。(svchost.exe是微软视窗操作系统里的一个系统进程,管理通过Dll文件启动服务的其它进程,一些病毒木马伪装成系统dll文件通过Svchost调用它,试图隐藏自己。每个svchost可以同时调用多个dll文件,启动多个服务)
任务二:恶意软件分析
- 下载SysTracer32位
- 创建快照
你可以在任何想要的时间获取无数个屏幕快照,比较任何一对想要的屏幕快照,并且观察其间的不同之处。获取屏幕快照通常会持续几分钟的时间,这取决于文件和文件夹的数量和注册表项目的总数。
- 远程扫描设置端口号5313
- 开启后门程序回连kali,成功后创建第二个快照Snapshot #2
- 一段时间过后(中间发生了一些事情),重新截取快照Snapshot #3
- kali执行
shell
获取目标机cmd,执行dir
后,捕获快照Snapshot #4
(1)安装到目标机,启动回连并进行其他任意操作进行分析
- 快照Snapshot #3和快照Snapshot #4对比分析:
- 从图中可以看出:
- 运行后门程序需要加载
apphelp.dll
应用程序兼容性客户端库- explore.exe新增了一个tquery.dll,说明explore.exe正在运行程序,这里猜测是由于后门程序为了隐藏自己,迁移到浏览器上了。
- SearchIndexr.exe新增了大量的.dll猜测是在进行大量的查询工作,因为攻击机kali执行了
dir
(2)查看该后门软件读取、添加、删除了哪些注册表项
- 快照Snapshot #3和快照Snapshot #4对比分析:
(3)查看该后门软件读取、添加、删除了哪些文件
修改
从这里可以看出来,后门程序修改了注册表配置文件。
新增
- kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操作和中断处理,是必需的
- advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,会受到病毒的侵扰及篡改,导致系统文件丢失、损坏
- wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序,是一个对系统很关键或很可疑的文件,易遭受木马病毒(如“犇牛”病毒)破坏导致系统找不到此文件,出现错误提示框。
- ws2_32.dll是Windows Sockets应用程序接口。一些病毒会在杀毒软件目录中建立伪"ws2_32.dll"的文件或文件夹,在杀毒软件看来这是程序运行需要的文件而调用,这个所谓的“文件”又不具备系统"ws2_32.dll"文件的功能,所以杀毒软件等就无法运行了而提示:应用程序正常初始化失败。
- wsock32.dll和ws2_32.dll,这两个是会经常被木马、病毒等进行侵略篡改的文件,可以分析出我们的后门程序对其做一定的修改来实现反弹连接控制被控机。
删除
EhStorAPI.dll Windows
增强的存储APInetprofm.dll
网络列表管理器- 这里可以看到后门程序进行反弹连接后还删除了浏览器对其行为了记录
(4)查看该后门软件连接了哪些外部IP,传输了什么数据(抓包分析)
从上图可知,win7给kali发送SYN请求连接,说明该后门程序采用反弹式连接;建立连接后,Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包(进行数据传输)。
四、实验思考
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 监控进程:使用Process Explorer
- 查看网络连接情况:使用Windows任务计划netstat
- 查看数据包:使用wireshark捕包,进行数据流分析
- 查看端口:使用nmap查看可疑端口
- 最后,还可利用sysmon工具,配置好想要监控的端口、注册表信息、网络连接等信息,通过其生成的日志文件进行查看
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用命令
tasklist
查看程序进程号 - 使用SysTracer隔断时间截取快照,对截取的快照进行对比分析,分析文件、注册表、应用程序等信息之间的差异
- 使用PEiD进行外壳检测
- 使用PE explorer查看PE文件头中包含代码信息
- 使用Process Monitor分析该程序。Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程
五、实践体会
- 本次实验,理论性是知识偏多,需要学习的内容也比较多。需要准备一个清醒的头脑,以及勤劳的双手。但是,不用安装许多软件,真是让我的电脑又多了一线生机。由此,也让我更加愿意进行本章节内容的学习。
- 当然通过本次实验,更加加深了我对恶意代码的认识,也似乎让我找到了某同学安插在我电脑上的后门程序??
六、参考资料
以上是关于2019-2020-1 20175313张黎仙《网络对抗技术》Exp4 恶意代码分析的主要内容,如果未能解决你的问题,请参考以下文章
2019-2020-1 20175313 20175328 20175329 实验三 实时系统的移植
2019-2020-1 20175313 《信息安全系统设计基础》ucosii
2019-2020-1 20175313 《信息安全系统设计基础》实现mystat
2019-2020-1 20175313 《信息安全系统设计基础》第十周学习总结