2018-2019-2 《网络对抗技术》Exp4 恶意代码分析20165211
实践内容概述
实践目标
- 监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实践内容
系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
恶意软件分析
- 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时。该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
- 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时。该后门软件
实验问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用schtasks指令设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录,分析记录。
- 使用sysmon工具,通过修改配置文件,记录相关的日志文件。
- 使用Process Explorer工具,监视进程执行情况。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 静态分析
- VirusTotal、VirusScan网页扫描
- PEID扫出文件壳
- Ollydbg,IDA反汇编
- 动态分析
- wireshark抓包分析
- systracer快照比较
实践过程记录
系统运行监控
使用schtacks指令监控系统运行
使用指令
schtasks /create /TN netstat20165211 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
创建任务
netstat20165211
,其中指令解释如下TN
是TaskName的缩写,我们创建的计划任务名是netstat5318;sc
表示计时方式,我们以分钟计时填MINUTE,该例中为每一分钟记录一次电脑状态;TR
=Task Run,要运行的指令是 netstatbn
,b
表示显示可执行文件名,n
表示以数字来显示IP和端口;>
表示输出重定向,将输出存放在C盘的netstatlog.txt
文件中
成功创建
附:在此过程中,我出现了cmd显示无效参数的问题,如下
后来经过反复排查,才发现是TR之前少加了一个空格
查看结果
在C盘创建一个
netstat5211.bat
的文件,写入以下内容date /t >> c:\netstat5211.txt time /t >> c:\netstat5211.txt
netstat -bn >> c:\netstat5211.txt
打开
任务计划程序
打开netstat20165211
将此程序的程序或脚本改为我们创建的netstat5211.bat
安全选项中勾选使用最高权限运行
让其自动运行一段时间,收集足够的数据以待分析
- 收集足够的数据后,将数据导入EXCEL进行,选择数据-->获取外部数据-->自文本,选择我们的文件,文本导入向导配置如下
文本导入后,效果如下
选中B列,可以看到,这一列为所运行的程序,对这一列进行分析。选中后-->插入-->数据透视表-->数据透视图
将数据透视表字段列表配置如下
- 得到分析图,查看
可以看到wps.exe
是最高的,但是,我一直都没有运行wps
,搜索之后,也发现了wps.exe
文件,应该是这个文件一直在后台运行着。随后是chrome.exe
,VMware
相关的服务,还有nimdnsResponder.exe
,nidmsrv.exe
,nimxs.exe
,tagsrv.exe
,查了一下,前三个为LabVIEW
相关程序。LabVIEW
是NationalInstruments,Inc
.出品的一种图形化的编程语言,用于快速创建灵活的、可升级的测试、测量和控制应用程序。但其连接的都是本地地址,应该不存在木马文件,后门文件的可能性。在图中还可以看到我们的后门程序。
使用sysmon工具监控系统运行
编写对应的配置文件,这里编写的文件
systom5211
内容如下<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”- 进程创建时间类似,也是不创建浏览器创建进程的时间。
- 网络连接为过滤掉浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。
- 137端口的主要作用是在局域网中提供计算机的名字或 IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
- 127.0.0.1表示本机 IP。
- 远程线程创建记录了目标为
explorer.exe
、svchost.exe
、winlogon.exe
和powershell.exe
的远程线程。explorer.exe
是Windows程序管理器或者文件资源管理器svchost.exe
是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。winlogon.exe
是Windows NT 用户登陆程序,用于管理用户登录和退出。powershell.exe
是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
安装sysmon,下载解压
进入解压后的目录,在命令行输入
sysmon.exe -i C:\sysmon5211.xml
提示报错后,输入命令
sysmon -accepteula -i -n
成功安装
打开事件查看器,
应用程序和服务日志/Microsoft/Windows/Sysmon/Operational
按此路径查看按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息
在
kali
端启动第二次实验生成的后门文件
我们可以在事件查看器中看到后门文件的事件记录
同时,在查看事件时会找到大量的有关allhost.exe
文件的记录
搜查资料后发现,dllhost.exe
是微软Windows操作系统的一部分。dllhost.exe
用于管理DLL应用
,在任务管理器中可以找到,这个程序对是微软Windows系统的正常运行是非常重要的。
冲击波杀手借用了dllhost.exe作为进程名,但是由于Windows不允许同一个目录下有同名文件的存在,因此,冲击波杀手把病毒体“dllhost.exe”放到了C:\Windows\System32\Wins目录里面。
还可以找到我们上一步自动运行的脚本的进程,在每分钟的整点就会有一串这样的进程
恶意软件分析
使用Virus Total分析恶意软件
同样还是使用之前实验二,实验三的后门软件,选择一个Akashi_Shellcode_upx.exe,进行分析
查看细节,可以看到他的基本信息(文件类型,文件大小等等)
加壳情况
还可以看到,这个文件会发起与192.168.78.129的连接。
同样的分析网站还有virscan,在实验三中,在这两个网站已经测试了很多的实例
使用PEiD分析恶意软件
PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
我们测试一下未加壳,UPX压缩壳,和加密壳hyperion三种情况
未加壳
UPX压缩壳
加密壳hyperion(加密壳找不到壳呀…………)
使用Process Explorer
分析恶意软件
在运行后门程序之后,我们可以看到在软件页面出现了新的进程20165211_akahsi.exe
打开后可以查看进程的信息
使用Process Monitor
分析恶意软件
通过对软件的使用,首先寻找大面积出现的20165211_akashi.exe
进程,找到之后,向前推,即可找到Explore.EXE
对运行20165211_akashi.exe
的操作。
随即可以看到20165211_akashi.exe
的进程状况
使用systracer
分析恶意软件
- 在靶机安装SysTracer软件
- 保存快照,命名为Snapshot #1
- 将后门软件植入靶机,对靶机注册表、文件等进行快照,保存为Snapshot #2
- 打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照,保存为Snapshot #3
- 在kali中对靶机进行获取摄像头操作,win7下再次快照,保存为Snapshot #4
分析,通过compare键,进行比较分析。
快照一和快照二:
可以看到,增加了我的后门文件20165211_akahsi.exe
,同时在这个过程中增加,删除了exe文件和dll文件
快照二和快照三:
可以看到,多了一个Apache HTTP Server 进程,指向的文件是我们的后门文件,这个进程新建了很多目录,文件,键值
同时相比快照二,也删除更新了很多的文件
快照三和快照四:
我们可以看到最明显的是,在注册表中多了很多对于摄像头的操作
使用wireshark
分析恶意软件
主要分析了20165211_akashi.exe
,已知ip为192.128.0.106,即可设过滤条件为ip.addr==192.168.0.106
,查看结果为
我们可以看到,有很多靶机和主机之间的tcp连接数据包,其中PSH,ACK包有数据进行传输
实验总结与体会
本次实验做的时候,正值清明假期,回家的时候,把自己的虚拟机文件拷硬盘带回去,结果用别人的电脑做的时候就各种不习惯,实验做了很久,崩溃。
这次实验,重要让我们知道了恶意软件的进程特点,也给我们提供了很多分析恶意软件的工具,比如SysTracer,Process Explorer等等,在做实验的过程中也确实遇到了很多的问题。在很多时候,软件出来结果时,更是如同大海捞针,需要自己足够了解进程的正常状态,软件的正确使用方式才能更高效的做完。
做完实验了,该去删电脑上的后门程序了……
2018-2019-2 《网络对抗技术》Exp4 恶意代码分析20165211的更多相关文章
- 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中生成后门软件: ...
随机推荐
- Golang package
今天,灵感一现:不能一个文件干到底吧,那要是工程大了怎么办? 答案很简单,“包”啊 GO里的包,看起来很简单,但又不简单 一开始,我想当然的以为就是include 路径一样的问题 事实是,GO以GOP ...
- cocos JS for循环让精灵从屏幕中间往两边排列散开
//this.ShowImg[i] 需要排列什么就push加进数组里面,一个for循环计算即可 var size = this.ShowImg.length;var count = size; for ...
- selenium键盘操作
键盘操作需引用: from selenium.webdriver.common.keys import Keys 操作码表: NULL = '\ue000' CANCEL = '\ue001' # ^ ...
- webpack使用七
产品阶段的构建 目前为止,我们已经使用webpack构建了一个完整的开发环境.但是在产品阶段,可能还需要对打包的文件进行额外的处理,比如说优化,压缩,缓存以及分离CSS和JS. 对于复杂的项目来说,需 ...
- SQLSetEnvAttr
SQLSetEnvAttr 函数定义: 函数的大概意思就是将,第一个参数设置为第二个参数的属性 SQLRETURN SQLSetEnvAttr( SQLHENV EnvironmentHand ...
- Python全栈-day4-语法基础2
一.字符串 1.字符串基础 1)作用:用于描述姓名.性别.地址等信息 2)定义方式:单引号或者双引号以及三引号内添加字符 注:day3中介绍 name = 'zhang' user_name = &q ...
- .net 缓存
缓存有很多实现方法,所有这些可以被分为两类,基于内存的缓存和基于磁盘的缓存: 1. 内存驻留缓存——包含在内存中临时存储数据的所有实现方法,通常在以下情况下使用: a) 应用程序频繁使用 ...
- Python大神成长之路: 第二次学习记录
数据类型 数据操作 bytes 类型 "".encode() 编码-->二进制 "".decode() 解码 判断字符串里的字符是否全为 ...
- win10 在任务栏添加 desktop 快捷图标
http://www.xitongcheng.com/jiaocheng/win10_article_11980.html [Shell] Command= IconFile=explorer.exe ...
- springboot maven项目,为什么build成功,build path也没错误,project-->clean 也没用,项目上面还是有个红x呢?
springboot maven项目,为什么build成功,build path也没错误,project-->clean 也没用,项目上面还是有个红x呢? 看错误信息有提示: Descript ...