Exp4 恶意代码分析
作者:互联网
- Exp4 恶意代码分析
Exp4 恶意代码分析
实践目标
-
是监控你自己系统的运行状态,看有没有可疑的程序在运行。
-
是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
-
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实践内容-系统运行监控
系统运行监控-计划任务
写.bat文件与接收文件
脚本文件
date /t >> C:\exp4\netstatlog.txt
time /t >> C:\exp4\netstatlog.txt
netstat -bn >> C:\exp4\netstatlog.txt
接收文件
创建计划任务
schtasks /create /TN netcontrol1310 /sc MINUTE /MO 1 /TR "C:\exp4\20191310netcontrol.bat"
指令分析:
查看任务计划
设置相应权限
设置选项:
等待之后查看数据
我们用Excel分析获得的数据
导入数据
新建excel文件->选择上方“数据”->选择“获取外部数据”->选择“自文本”
进入文件导入向导第一步
选中“分隔符号”,点击“下一步”
进入文件导入向导第二步
选中全部分隔符号,点击“下一步”
进入文件导入向导第三步
列数据格式选择常规,点击“完成”
导入情况完成
对数据进行统计学分析
首先查看所有联网程序的联网次数,具体excel操作如下
选中分析数据
选中分析结果所在表
遴选数据标签,选中轴和值
生成分析表格:
分析结果:
在此项中,“nvcontroller”是方式最多的,这里基本上每次连接都会涉及,排名第二的是“NVDIA”。这里我们还可以找到微信、虚拟机、onedirve等进程信息。
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为
下载安装sysmon
设置配置文件
新建一个配置文件,我这里命名为1310sysmon
<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>
</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>
在有sysmon.exe的文件目录下用管理员方式打开cmd
输入
.\Sysmon.exe -i .\1310sysmon.txt
有弹窗,点击agree
成功安装
分析
运行实验二和实验三的后门软件
已经正常回连
查看sysmon
桌面“这台电脑”图标,右键菜单中,点击打开“管理”,点击左侧“系统工具”->“事件查看器”,点击“事件查看器”右侧小箭头,选择日志的位置:应用程序和服务日志/Microsoft/Windows/Sysmon/Operational。
Sysmon具体分析日志的例子我选择了自己实验三中生成的后门20191310_upx.exe进行分析
进行攻击实例
查看sysmon
出现了SearchFilterHost.exe、conhost.exe等系统执行exe,但是后门的通信没有具体展示,应该是在conhonst中隐藏了。
- conhost.exe是命令行程序的宿主进程。简单的说他是微软出于安全考虑,在windows 7和Windows server 2008中引进的新的控制台应用程序处理机制。
- SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。
继续分析
每进行一次攻击,不管成功与否(可能不成功)我们就发现了都有这样的svhost
Svchost.exe是微软视窗操作系统里的一个系统进程,管理通过Dll文件启动服务的其它进程,一些病毒木马伪装成系统dll文件通过Svchost调用它,试图隐藏自己。每个svchost可以同时调用多个dll文件,启动多个服务。
说明这里是采用了微软视窗里的这个系统进程进行的攻击。
当然也有直接显示的:
这里便是利用sysmon的分析简要过程,还可以利用sysmon得到的信息检索更有效的分析结果!
恶意软件分析
分析该软件在
(1)启动回连
(2)安装到目标机
(3)其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)
该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据
利用Systracer进行动态分析
下载安装systracer
安装大版,选择2
设置端口,我设置成我实验二和三常用的端口
快照
在后门没开启之前先快照一下。点击“take snapshot”,如图,按照以下步骤进行:
完成
Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后,拍摄快照:
新的快照完成
快照分析(读取、添加、删除了哪些文件)
- 点击上方“Applications”->左侧“Running Processes”->找到后门进程“zjy_backdoor.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号:
- 在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化:
- 大致的结果(读取、添加、删除了哪些注册表项):
所有蓝色标注的地方,就是前后发生变化的地方。例如,我发现后门启动后,对我的"Local Settings"->"Software"中的文件进行了修改
同时:
hkey_local_machine根键的System子键进行了修改。
这里关于HKEY_LOCAL_MACHINE的介绍:
- 它保存了注册表里的所有与这台计算机有关的配置信息
- 被修改的部分是Fastcache,即高速缓冲存储器。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改变在很多地方,一个丢失的项会使这个系统变的不稳定。
同样,这里只要kali机进行了攻击指令,那么一定会有快照的变化,我们利用这种方法,可以初步进行对比前后的时间分析!
利用wireshark进行抓包分析
kali回连之前捕获
回连完成后结束捕获(连接了哪些外部IP)
过滤规则设置为 ip.addr == 192.168.40.128
,这里我只想查看和虚拟机IP有关的数据包,所以把没用的包过滤掉:
在这里已经发现了和自己主机(被攻击的通道)
传输的数据(传输了什么数据)
第一条是kali向win发送的[PSH,ACK]包
第二条便是回复确认包
分析中必定能找到握手包,且包携带有数据
Kali获取下摄像头、录个音、获取击键记录并查看,再看看wireshark
这回PSH+ACK的包好像多了些,估计多出来的便是我们这些攻击手段衍生的数据包。
通过PEview分析
根据PE文件的完整性以及相关特征来进行分析,本程序使用了ADVAPI32.dll
、KERNEL32.dll
、MSVCRT.dll
、WS2_32.dll
、WSOCK32.dll
链接库,其中WS2_32.dll
、WSOCK32.dll
是比较熟悉的win上面编写SOCKET用的,这是用来回连使用的,而ADVAPI32.dll
是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,从这句解释就可以看出,本后门程序的潜在的威胁,KERNEL32.dll
是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。而MSVCRT.dll
是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能。
故此种分析也是可以的!
Stud_PE编辑与查看(已经分析好的划分数据)
使用OllyDbg分析程序
单步调试:
可查看入口地址,堆栈情况
实验后回答问题
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
我会看他修改了哪些注册表、创建了哪些进程、占用了哪些端口、修改、查看了哪些文件等等,利用上面实验所使用的文件或者程序,比如说快照技术的对比,还比如说可以定时让主机执行netstat然后分析,去编写一些脚本文件,当然也可以利用Sysmon,编写配置文件,记录与自己关心的事件有关的系统日志,然后采用可视化方法读取并且导入分析!
为实现网络监控,我可以采用这些工具:Fport,lsof,TDImon,ifconfig,tcpdump
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
-
可以利用IDAPro,gdb,SoftICE,systrace,ollydbg进行单步调试
-
可以利用Wireshark等网络工具查看是否存在可疑连接
-
可以利用工具Systracer拍摄快照,比对前后区别,分析改变的注册表及文件等信息
-
当然为了安全,可以利用NormanSandbox,CWSandbox,FVMSandbox等工具
实验总结与体会
在本次实验中,在周期性任务那里我学会了命令行的操控方法,学会了把命令行下的结果记录到文件中、利用.bat文件显示时间、以及按照学姐学长们的方法利用excel分析数据、当然可以利用别的工具如python,但是我环境坏掉了,就不行了。我还学会了如何利用Sysmon监控自己的事件、如何写配置文件、如何分析日志中的大量信息、如何对恶意代码进行进一步分析。
通过这样的一个动手实践,实现了从攻击者身份到检测、分析者身份的转变,更全面的理解了前两次实验中生成的后门程序到底在做什么,对恶意代码有了更深入的理解。
同时这次的实验是让我们通过个这种各样的工具或者软件去更好的了解自己的电脑在做着什么,这次实验下载了一些工具,颇有感觉!
网络对抗,异常重要,信息安全,任重道远!
标签:分析,文件,exe,快照,查看,恶意代码,dll,Exp4 来源: https://www.cnblogs.com/sisterben/p/16141930.html