《网络对抗技术》——Exp4 恶意代码分析
目录
- 一、实践基础
- 1、实践目的
- 2、实践内容
- 3、实践原理
- 二、实践内容
- 系统运行监控
- (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
- (2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点可疑行为。
- 恶意代码分析
- 静态分析——VirusTotal网站扫描恶意软件
- 静态分析——PEiD软件分析恶意软件
- 静态分析——使用PE Explorer分析恶意软件
- 动态分析——使用systracer分析恶意软件
- 动态分析——使用Process Monitor分析恶意软件
- 系统运行监控
- 三、实验问题
- 四、实验总结与体会
一、实践基础
1、实践目的
- 监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2、实践内容
- 系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 分析该软件在启动回连、安装到目标机及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据
3、实践原理
- 恶意代码
- 使计算机按照攻击者的意图运行以达到恶意目的的指令集合。
- 指令集合:二进制执行文件,脚本语言代码,宏代码,寄生在文件、启动扇区的指令流。
- 恶意代码目的:技术炫耀/恶作剧,远程控制,窃取私密信息,盗用资源,拒绝服务/破坏......
- 恶意代码类型
- 计算机病毒,蠕虫,恶意移动代码,后门,特洛伊木马,僵尸程序,Rootkit等…
- 计算机病毒是最早出现的恶意代码,媒体/工业界的概念混淆,经常以计算机病毒(Computer Virus)等价于恶意代码
- 系统监控
- 把系统看做一个黑盒子
- 从网络进出口,监控对外数据收发
- 把系统看做白盒子
- 谁(进程)
- 读写了什么(文件)
- 收发了什么(网络)
- 隐通道
- 内存发送Wifi信号
- DNS包发送数据
- 把系统看做一个黑盒子
- 分析环境
- 静态分析:
- 恶意代码扫描、文件格式识别、字符串提取、二进制结构分析、反汇编反编译、代码结构与逻辑分析、加壳识别和代码脱壳
- 动态分析:
- 快照比对、动态行为监控、网络监控、沙盒、动态跟踪测试
- 静态分析:
二、实践内容
系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
使用schtasks指令监控系统
- 使用schtasks指令。schtasks.exe是安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
schtasks /create /TN netstat1317 /sc MINUTE /MO 1 /TR "cmd /d netstat -bn > d:\netstatlog.txt"
- 创建计划任务 netstat1317 :
- TN 是TaskName的缩写,我们创建的计划任务名是netstat1317;
- sc 表示Task Run,要运行的指令是 netstat;
- bn其中b表示显示可执行文件名,n表示以数字来显示IP和端口;
- >表示输出重定向,将输出存放在c:\netstat1317.txt文件中;
在D盘中创建一个脚本文件 netstat1313.bat
- 创建一个 netstat1317.txt 文本文件,并写入以下内容:
date /t >> d:\netstat1317.txt
time /t >> d:\netstat1317.txt
netstat -bn >> d:\netstat1317.txt
在Windows的任务计划程序中,可以查看到新创建的任务:
- 双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的 netstat1317.bat 批处理文件,将可选参数清空,点击确定。
接着,在“常规”栏下选择“使用最高权限运行” ,否则可能导致文件不能自主更新或者记录里出现权限问题,点击确定保存。
运行该任务。
等待了足够长的时间后,可以选择终止计划任务,然后对收集到的数据进行统计。在D盘目录下,出现了一个netstat1317.txt 的文件,可以在其中查看联网数据。
在Excel表格中分析记录的数据
-
创建新表格,点击数据,导入数据,选择直接打开数据文件,并在选择数据源中选择文本文件。
-
按照步骤,选择其他编码、分隔符号。
-
选择协议一列,点击上方菜单栏中的插入,选择数据透视图。
-
在新工作表中,点击数据透视图,在跳出的右侧边栏的字段列表中,筛选出我们需要的字段进行分析,并将字段拖放到下方的轴和值中。
分析:如图所示,在这段时间内,联网最多的是程序wpscloudsvr.exe ,也就是WPS,其次为firefox.exe 和desktopcal.exe.如果打开了比较大的表格文件,有可能有占用较多内存的现象。wpscloudsvr是wps的云服务,其主要作用是弹窗登录,如果我们使用WPS时不想被他占资源和打扰可以对它进行处理。图中也包括了其他软件的相关联网程序。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点可疑行为。
sysmon是微软Sysinternals套件中的一个工具,它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。使用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
- 下载并解压SysinternalsSuite201608.zip 文件,并进入文件夹新建配置文件sysmon20181313.xml ,在里面输入以下代码(具体方法同上)。
<Sysmon schemaversion="4.81">
<!-- 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>
<Image condition="end with">QQBrowser.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>
参数说明:
- ProcessCreate表示进程创建
- NetworlConnect 表示网络连接
- CreateRemote 表示远程线程创建
- FileCreate Time 表示进程创建时间
- 在onmatch后面跟的参数include和exclude分别表示“免检”和“必检”名单。免检名单中在统计时忽略掉,必检名单在检测时需要进行匹配。
发现出现提示:You need to launch Sysmon as an Administrator.
解决方法:以管理员身份打开cmd,再次尝试:
右击Win,选择事件查看器,依次选择应用程序和服务日志->Microsoft->Windows->Sysmon->Operational ,可以查看到按照配置文件中的配置信息所记录的一些信息。
- 利用实验三中生成的后门程序进行分析
- 后门程序启动回连到kali
打开事件查看器 ,根据运行时间可以很容易地找到刚刚运行的后门的相关信息。
恶意代码分析
静态分析——VirusTotal网站扫描恶意软件
- 使用VirusTotal分析恶意代码基本信息如下:
- 查看恶意代码的基本属性,可以看出它的SHA-1、SHA-256、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。
静态分析——PEiD软件分析恶意软件
PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。
- 扫描模式
- 正常扫描模式:可在PE文档的入口点扫描所有记录的签名;
- 深度扫描模式:可深入扫描所有记录的签名,这种模式要比上一种的扫描范围更广、更深入;
- 核心扫描模式:可完整地扫描整个PE文档,建议将此模式作为最后的选择。PEiD内置有差错控制的技术,所以一般能确保扫描结果的准确性。前两种扫描模式几乎在瞬间就可得到结果,最后一种有点慢,原因显而易见。
- 查看实验二中生成的普通后门文件
(1)用wireshark分析TCP流量包
reverse_tcp反弹端口攻击原理
反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。
下面结合Windows下用wireshark捕获的流量包进行分析
TCP在建立连接时有三次握手,如上图所示,下面我们在Kali中打开msfconsole并进行监听,在Windows上运行20201317back.exe
后门程序,Kali攻击机中通过TCP反弹获取到Windows端口
过滤wireshark捕获的包,筛选ip.addr == 192.168.174.141 && tcp
可以用wireshark自带的对TCP流量进行分析的工具将TCP流的数据图形化
上图是wireshark截获到的TCP时间序列的信息图
上图是勾中“限制显示过滤器”后的流量图,也就是TCP流在靶机(主机,IP为192.168.171.128
,端口号为1317
)和攻击机(Kali,IP为192.168.171.128
,端口号为1317
)间的往返情况
上图是192.168.171.1:1248
和192.168.171.128:1317
之间TCP流的往返时间
下面具体来分析TCP流中的一个包
在wireshark中追踪TCP流可以发现包的内容全部为密文,下面直接查看wireshark分析出来包的信息对第一个[SYN]包,我们在Internet Protocol层可以看到各种信息,包括原地址和目的地址
传输控制协议(Transmission Control Protocol)可以看到第一个包中TCP选项内容
接下来TCP流中的包也可以以同样方法进行分析
(3)使用SysTracer分析
systracer可以记录下计算机某个时刻的状态。然后过一段时间后再次记录。通过比较两次记录中计算机的不同进行相应的分析。
我进行了三次snapshot,其中snapshot1是未进行操作时的初始状态,snapshot2是攻击机已经通过reverse_tcp攻击成功后的状态,snapshot3是攻击机进入到靶机的shell后的状态
第一次捕获
snapshot1
snapshot2
snapshot3
也是同理,可以看到3比1增添了后门程序、增添了svchost.exe,删除了svchost.exe又增添了svchost.exe,最后增添了WmiApSrv.exe
(4)使用Process Explorer分析恶意软件
使用Process Explorer分析恶意软件
下载Process Explorer v16.22并解压
打开Process Explorer.exe
Process Explorer可以监听到电脑上所有正在运行的程序,找到可疑行为,仔细观察是否有后门程序。
通过Process Explorer中的Find工具查找使用了cmd的进行,直接定位到后门程序20201317back.exe
选中此后门程序后,可以直接点击Kill Progress杀死进程
标签:分析,exe,恶意代码,恶意软件,程序,TCP,Exp4 From: https://www.cnblogs.com/lyxhhz/p/17284538.html