Exp4 恶意代码识别分析
Exp4 恶意代码识别分析
- 1. 恶意代码的概念与分类
- 2. 恶意代码的分析方法
- 3. Windows计划任务schtasks
- 3.1 系统运行监控
- 3.1.1 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包
- 使用schtacks指令监控系统
- 命令创建计划任务netstat2213
- 在C:盘下创建内容如下的批处理文件(可以先创建.txt文件然后修改后缀名为.bat)
- 修改计划任务
- 对其进行分析
- 1.msedge.exe 是msedge.exe是指Microsoft Edge网页浏览器软件,我只打开了一个网站,所以建立一次连接,符合正常情况
- 2.wechat.exe 是微信进程与不同ip地址间发送消息,可以看到weichat的第一次访问我开始用微信内置浏览器访问一个与msdedge.exe访问相同的网站,所以她们访问的源IP地址不同但目的IP地址相同,后面第二次访问不同网站,目的IP地址也产生变化
- 3.firefox.exe 是火狐浏览器,由于我开启了不同页面,创建了不同的连接同不同的ip地址间。
- 4.svchost.exe是微软Windows操作系统中的系统文件,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以此处我们可以看到会有多个该文件的进程。
- 5.mysqld.exe 是计算机进程,MySQL 数据库服务器相关程序。在本地运行,没有问题。
- 6.tomcat9.exe 是windows 服务的运行程序,相当于运行startup.bat。它在本地运行.
- 3.1.2 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为
- 3.1.1 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包
- 3.2 恶意软件分析
- 3.3 实验后回答问题
- 4.实验总结与体会
- 3.1 系统运行监控
1. 恶意代码的概念与分类
概念
恶意代码是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵犯用户合法权益的软件。
指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。
常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。
特征
1.恶意的目的
2.本身是计算机程序
3.通过执行发生作用
2. 恶意代码的分析方法
2.1. 静态分析
-使用反病毒软件来确认程序样本的恶意性(VirusTotal或者virscan,可调用多个反病毒引擎来进行扫描)
哈希值:恶意代码的指纹(md5deep程序:计算出程序的哈希值)
通过检索恶意代码字符串获得相应的功能调用解释等,查看是否有被加壳处理(字符串检索:Strings 外壳检测:PEiD)
可移植执行(PE)文件以一个文件头开始,包含代码信息、应用程序类型、所需的库函数与空间要求。(使用PEview来分析PE文件。使用Resource Hacker工具来浏览.rsrc节(资源)。PEBrowse Professional和PE Explorer 也是分析PE文件的两大工具)
2.2. 动态分析
-运行程序
沙箱:提供容易理解的输出结果,用来做初诊断非常有用(Norman沙箱、GFI沙箱等)
DLL类型文件执行(PEview、PE Exporer)
用一些系统监视类软件捕获运行中恶意程序的系统调用(process monitor、process explorer)
3. Windows计划任务schtasks
学习内容:windows计划任务+sysmon 监控系统
学习目标:通过计划任务建立一个简单的系网络监控脚本
最后编辑:20170327 Wildlinux
3.1 系统运行监控
官方文档,该指令功能等同于 控制面板-Windows计划任务
3.1.1 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包
使用schtacks指令监控系统
命令创建计划任务netstat2213
schtasks /create /TN netstat2213 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat2213.txt"
---TN netstat2213:说明计划任务名,对任务进行唯一标识的字符串,以路径\名称形式指定
---SC MINUTE:表示已分钟为单位的计时方式
---TR "cmd /c netstat 指定在这个计划时间运行的程序名和路径
---MO 改进计划类型以允许更好的控制计划重复周期
---bn:cmd运行指令"netstat -bn",b会显示可执行文件名,n会以数字的方式显示端口和地址
在C:盘下创建内容如下的批处理文件(可以先创建.txt文件然后修改后缀名为.bat)
修改计划任务
在开始处右击打开计算机管理->任务计划程序,找到上述创建的任务
双击打开任务,操作->编辑->程序脚本,替换为上述创建的批处理文件netstat2213.bat,添加参数为空,具体如图
注意勾选使用最高权限运行否则在运行过程中可能出现由于权限问题产生的错误
一段时间以后得到的txt文件内容如下
对其进行分析
1.msedge.exe 是msedge.exe是指Microsoft Edge网页浏览器软件,我只打开了一个网站,所以建立一次连接,符合正常情况
2.wechat.exe 是微信进程与不同ip地址间发送消息,可以看到weichat的第一次访问我开始用微信内置浏览器访问一个与msdedge.exe访问相同的网站,所以她们访问的源IP地址不同但目的IP地址相同,后面第二次访问不同网站,目的IP地址也产生变化
3.firefox.exe 是火狐浏览器,由于我开启了不同页面,创建了不同的连接同不同的ip地址间。
4.svchost.exe是微软Windows操作系统中的系统文件,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以此处我们可以看到会有多个该文件的进程。
5.mysqld.exe 是计算机进程,MySQL 数据库服务器相关程序。在本地运行,没有问题。
6.tomcat9.exe 是windows 服务的运行程序,相当于运行startup.bat。它在本地运行.
3.1.2 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为
编写配置文件sysmon2213.xml,可以像之前的批处理文件一样建好后更改后缀名为.xml,代码如下:
代码含义:exclude相当于白名单,不用记录。include相当于黑名单,Image condition根据自己使用的更改,我的就是谷歌浏览器chrome.exe,选择137端口。127.0.0.1表示本机IP。网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务。
启动sysmon
以管理员身份运行powershell,转到下载目录下进行安装,输入指令:Sysmon.exe -i sysmon2213.xml,提示安装成功
进入事件查看器里查看日志
1.进入事件查看日志通过应用程序和服务日志/Microsoft/Windows/Sysmon/Operational找到日志具体位置
2.利用Sysmon就可以具体分析你主机最近的程序使用,可以看到我此时正在使用谷歌浏览器,源端口目的端口,源IP地址目的IP地址等信息
3.2 恶意软件分析
3.2.1 静态恶意软件分析
这里使用实验三生成的加压缩壳后门程序20182213,在VirusTotal进行扫描,结果如下:
3.2.2 动态恶意软件分析
此处采用 SysTracer 监控后门启动前后信息变化
1.安装SysTracer,进入后点击第二个,设置安装端口为2213
2.进行截图,恶意软件安装到目标机但未开启后门时,记录为Snapshot3
3.开启后门并回连成功,记录为Snapshot4
4.使用dir获取主机的shell,记录为Snapshot5
进行对比
3和4进行对比时
从应用程序看
1.开启后门后多运行的进程添加了后门恶意软件20182213_1.exe
2.删除了原先这是调整电脑硬件工作的系统进程的dahost.exe添加入了新的自己的dahost.exe
从文件方面出发
开启后门后,更新了以Dumpstack.log为首的一系列旧文件增加了新的文件,同时读取了C盘下面的一系列文件,如图中的net.txt和netstat2213.bat,可以知道Dumpstack是对于大型驱动,记录某个回调函数由谁调用,Pagefile.sys是Windows的“虚拟内存交换文件”。其作用是拿一部分的硬盘空间来当作内存使用,先把内存中一些闲置太久的数据存到硬盘上,等你要回头再用的时候,再从Pagefile.sys里调出。
从端口的角度出发,可以看到20182213_1.exe从端口2213进行了信息交互
从注册表角度出发,增添了用于三次握手的TCP/IP协议的dll文件加入
3和5进行对比时
同样是增加了端口和应用程序以及序列文件
注册表的角度
4和5进行对比
此处采用wireshark进行抓包
输入命令,初始还没有连接kali,kali还在等待windows反弹连接它,然后kali反弹连接获取windows的控制权。
开始抓包后,Kali中启动监听,然后Windows端回连,可以看到TCP三次握手建立连接的过程,目的端口是Kali中设置的监听端口2213,还可以看到目的和源IP地址
回连成功
从wireshark里可以清楚的看见握手过程,可以看到端口为2213,主机地址为192.168.204.1,kail为192.168.204.129,两者通过三次握手建立连接,连接建立成功
3.3 实验后回答问题
3.3.1 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控
1.可以使用计划任务,每间隔一段时间记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。并可以使用wireshark进行抓包分析,是本地连接还是外部连接,发送的数据包内有哪些内容,是否为定时发送窃取信息
2.使用sysmon监控主机内部,看是否存在可疑行为
3.使用网站等进行静态分析比如查看网站virustotal检测某一可执行文件是否为恶意软件
4.检测注册表项
5.检测是否有不知名的进程添加
3.3.2 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
1.使用systracer等软件判断可执行文件是否加壳,隔一段时间观察,对该软件进行操作后,是否修改主机注册表或者是其他相关内容信息,查看了某些不该访问的文件等,以及是否访问一些不该访问的ip地址,擅自修改添加主机中的内容
2.使用使用PEID进行外壳检测,使用工具反编译、反汇编如PE exploer等
4.实验总结与体会
本次实验学习到了很多分析工具,进一步对之前学习的恶意软件进行分析,我们从一开始的学习如何进攻转变为如何对我们自身的电脑进行防御,拥有更好更安全的体验,学习到了要定时监控系统运行情况,不随意从网络上下载软件,增强安全意识。