20165207 Exp4 恶意代码分析
1、实验内容
1.1、系统运行监控
1.1.1、使用命令行创建计划任务
使用netstat创建任务计划,每分钟查看一次都有哪些进程联网。
之前实验中,我有使用任务计划的图形界面创建ncat的计划任务,故这次重点实践一下使用命令行命令创建计划任务。
输入如下命令:
对于这个命令,
- /TN表示task name即任务名称,这里的名字就是netstat当然也可以取别的名字;
- /SC表示SChedule type计划的类型,指定为分钟(MINUTE);
- /MO为modifier,字面意思是调节器,用来指定SC标明的类型的具体取值,这里是1分钟,取值指定为1;
- /TR表示taskrun后面接具体执行的命令,netstat的b参数是显示在创建每个连接或侦听端口时涉及的可执行程序名字,n参数是以数字的形式显示地址和端口号。
最后为了方便查看,将输出的内容重定向到txt文档中。
但是……,
可是我已经是用管理员身份运行的powershell,我还能咋提升啊???
那先手输一个命令测试一下
去找这个文件,查看内容如下:
这哪有问题啊。
之后还试了,不以管理员身份运行的powershell、以管理员身份运行的cmd、不以管理员身份身份运行的cmd,结果都是:手工输入命令执行是没有问题的,创建任务计划之后,输出重定向的文件里都是显示权限需要提升:
四种操作:
这是四种操作的结果,指向了一个答案:
然后我又创建了一个计划任务,企图在这个任务里通过图形化界面解决这个问题:
然后进入计划任务的图形化界面,修改权限(就是更改运行这个程序的用户的身份)
结果还是这样:
真是的,再在权限设置里勾上“以最高权限运行”试一下……
然后等候一分钟,就真的出来了,真的啊
哭了,试了这么久,终于做出来的第一步的第一部分……
我的电脑真棒,太强了!
1.1.2、使用命令行借助批处理文件创建计划任务
这部分就是练习一下,并没有重新用批处理弄,因为前面浪费了好多时间,再重新花一个晚上的话,我可能就做不完了
首先新建一个bat格式的文件,输入如下内容:
创建任务计划
在任务计划里给它提升权限
得到结果:
1.1.3、分析netstat计划任务的最终结果
把电脑丢在一个有电源而且有网的教室里,在1.1.1的任务计划跑了一个下午和一个夜晚之后(大概16个小时),早上开始分析结果。
首先把这个计划任务停掉。
然后把txt导入到excel里。
依次选择数据->获取外部数据->自文本
导入成功之后,插入数据透视图
在数据透视图选择字段的时候,应该把TCP去掉,因为这个txt的格式"TCP"和正常的应用名处在同一列,但是我们需要的是联网的进程而不是一堆TCP(最可疑的是TCP没有意义啊)
最后把字段拖到计数项,图表会生成出来
然后从左到右依次看一下数值比较高的都是什么东西
- 360se.exe是360浏览器,昨晚在写博客的草稿,还查了一些操作,浏览器用的的确很多
- Apoint.exe是触摸板相关的程序Alps Pointing Device,但是触摸板联网干啥呀!!!!这个不老实的触摸板一会要重点看一下!
- QQ.exe 不用说了
- SearchUI.exe 是那个win10“小娜”的搜索程序
- SGTool.exe是搜狗输入法
- Skype是自带的类似于微信的聊天软件
- svchost.exe是一个系统程序,但是也有病毒会利用这个名字来伪装自己,一会也要看一下
- Wechat是微信,带thunder的都是和迅雷相关的程序,果然迅雷在用我的数据帮其他用户加速,而且不知道有没有传不该传的东西。
- WpnuserService是推动短信和消息的进程,但是WpnService究竟是不是一样的功能就不好说了
- ddps起初觉得很可疑,后来查到说里面的签名是联想的签名,貌似这个东西是自带的杜比音频的服务
所以下面重点要看不老实的触摸板
天哪,你究竟要干嘛呀
再向后查找几处,这个东西建立的连接的目的IP就都是127.0.0.1了,而且端口号也都固定在了13336、13337、13338,但是上面连的那个外网的IP还是很可疑啊
但是又蹦出来一个:
这,冷不丁连一下外网,肯定不能放过你了。
1.1.4、安装配置sysmon监控可疑行为
sysmon是Sysinternal套件的一个工具,首先装上Sysinternal套件:
官网下载
当然官网也提供了单独的Sysmon的下载,也可以只选择Sysmon而不下载整个的一组套件。
下好了之后解压到c盘,然后在命令行里输命令安装
然后,如果想在win10里的某个文件夹打开powershell可以按ctrl+shift+右键:
这样打开的快一些,不用一步一步往目录里进
看来安装之前要先写好配置文件才能安装
那下面先写“小毛驴”配置文件
除了看那个触摸板之外,本来我还想排除一些常见的程序的,但是杀毒软件也关掉了,任务管理器里面的其他进程除了带windows的我都不认识几个,又怕会有把名字伪装成带windows之类的恶意程序,就没有往实验指导里xml的模板里再加限制了,然后利用命令开始安装:
哈,版本错了。而且官网的例子上也有问题:
可能他们是知道自己官网上的例子好久没更新了,才会把正确的4.20输出来吧
改过来,重新装,没有出其他问题:
然后让这个system monitor也跑上一个晚上。
PS: 刚开始的时候遇到了几个问题,打开日志之后出来一堆和迅雷有关的记录……,然后我把迅雷退了,占着我的网上传东西,还增加分析的工作量
还有就是正在那个每分钟运行一次的任务计划,忘记加进小毛驴里面去掉了
还有就是,进程终止的信息像这种:
实际上是不需要的,人家都终止了,也没办法干坏事了。
所以初步修改一下之后,增加了下面这几行,减少一下明早的工作量
间隔一分钟之后刷新一下,ID为1的那几个进程创建的事件(cmd.exe和NETSTAT.EXE)都不再记录了
但是比较经常出现的svhost.exe、winlogin.exe和powershell.exe是不应该被禁掉的,svhost.exe容易被蠕虫病毒伪装,winlogin.exe完全就是病毒生成的,另外利用powershell自带的脚本写的脚本病毒杀毒软件是杀不出来的,所以powershell.exe的自动运行也需要警惕。
1.1.5、sysmon结果分析
先找那个Apoint.exe
嗯?是我搜索方法有问题么
试一下搜别的,比如360浏览器的名字360se6
能搜出来,!
那,为啥搜不出来Apoint.exe
Apoint.exe理论上是个自带的驱动,而且连接过微软的IP,难道说微软的套件会自动忽略掉自带的东西?
那再搜一下微软的Skype?
联网的事件的ID为3,但是在txt对应的Apoint联网的时间里,sysmon完全没有出现ID为3并且是Apoint.exe联网的事件。
看来使用Sysmon重点分析我电脑上的可疑进程遇到了问题,我觉得后面我应该用类似沙盒或者apiHook之类的研究一下它的行为
另外,在查看其他的sysmon日志中的事件的时候,发现了一个没有见过名字的进程,oemdrvrepair
联想官网的解释是“联想电脑管家原厂服务”。
附近还有一个联网比较频繁的进程,名字叫“Oemsyscheck.exe”
所以说,不排除我电脑里面的Apoint是一个“Oem”的代工产品,因此和描述的不联网有差异,而且驱动修复的过程中也有需要联网的可能性
1.2、恶意软件分析
先分析我上次自己做的后门,再研究一下Apoint.exe。使用的工具有sysmon、ProcessMonitor、DependencyWalker
1.2.1、msf生成vs重编译的反弹后门行为分析
sysmon分析
先根据新的IP重新生成一个后门的shellcode,
扔进vs里重新编译
kali开启监听
windows双击运行之后查看sysmon的日志
首先出现了ID为1的进程创建事件:
下一个事件是向我的kali发起tcp连接
如果不在kali里执行命令,然后就没有后续发生的相关事件,在kali里获取击键记录看这边sysmon的日志会发生什么
日志里出现了一个进程创建的事件,是RunTimeBroker进程,这个程序是用来检测应用是否有某项权限的。
也就是说获取击键记录的操作是被系统发现了的,但是具体是哪个进程获取的我还没有分析出来
按理来说,能够获取击键记录的程序是被打包成dll文件然后被kali发送到内存当中的,sysmon能不能监控内存呢
好像是不可以的。再在kali里面再做一些操作,比如输出击键记录和抓取摄像头,但是主机的日志里面还是没有特别明显的不正常的东西诶
只有这个searchFilterHost说有13%的可能是恶意软件伪装
然后遇到的最明显的一个是下面这个开始录制音频的进程,因为主机里面是没有录音的操作
DependencyWalker静态分析
用sysmon得到的信息并不多,我想继续用DependencyWalker查看一下这个程序会调用什么动态链接库
KERNERL32.DLL是负责内存管理和中断处理的动态库
下面这些也基本都是正常的API调用
想想也是这样的,如果它在写死的行为里面就有恶意行为了,那我上次实验最后验收的时候也就不可能免杀了。
还是应该在进程运行起来之后,kali把写了恶意代码的dll发到受害者的内存里,那就应该用一个可以动态分析的工具了
ProcessMonitor动态分析进程的文件操作和注册表修改
打开Sysinternal自带的procmon.exe套件。
设置过滤器:
在右上角勾选上注册表选项(showRegisterActivity)和文件操作(showFileSystemActivity)以及第三个那个网络活动(ShowNetworkActivity)
就看到了后门程序的进程所有的对文件和注册表操作和网络活动
可以说是很多了
前两行是进程创建和线程创建,后面陆续开始加载内存映像
首先把met5207win10.exe本身加载到内存中
然后加载动态链接库ntdll
ntdll加载到内存中之后开始操作注册表
最先打开了几个注册表项,可以看到是关于session manager的注册表项
后面还有几十个和联网相关的注册表项的打开和文件创建,以及套接字相关的动态链接库的加载
上面这些操作主要为图片中最下面一行的tcp connect做准备
然后,和kali开启了第一次tcp链接之后,陆续加载了一些加密相关的动态库
我怀疑是上面图最上面的tcp receieve操作,kali给win10主机发来了一些含有恶意代码的库函数到内存中
然后win10调用一堆库函数,包括加密和用户的环境等等
到这里,应该就是正式把自己的shell的控制权给人家了
上面这些都是在14:30的一小段时间之内完成的
这里之后,我有一段时间没有操作,观察一下它会做啥
看来就是,受害者和kali之间,你发一下我收一下,维持kali的控制权
再然后,我在kali里面输了一下获取击键记录的命令keyscan_dump,ProcessMonitor开始发生了变化
显示进程加载了如下的动态链接库:
这几个应该是用来记录键盘的动态库
后面又抓取了一下屏幕,结果突然弹出来好多好多对视频设备的注册表操作,来使用摄像头设备
直到后面的一次tcp数据传输之后才停止
Wireshark捕包分析
进程开始运行时,tcp三次握手建立连接
建立连接之后的Tcp数据交互都是加过密的,数据包的内容像下面这样
加过密的内容也符合我们刚才使用processmonitor的时候看到的调用crypto相关的动态库的行为特征
1.2.2、会联网的触摸板驱动Apoint.exe行为分析
然后,我掏出来processmonitor来分析那个可疑的触摸板驱动
首先,通过过滤器,把要过滤的名字改成Apoint.exe
然后,目测这个Apoint.exe没有连接外网的IP
我大概翻了几千条,没有发现
或许和时间有关,netstat记下来的连接外网的记录都是发生在半夜,那么我应该半夜起来再研究一下,然后再更新这里
反正最后查得查不出来,我都应该是需要重装一下这个触摸板的驱动了,难以让我相信了
2、回答问题
2.1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
如果只是觉得有恶意代码,而不能确定是那个进程,可以像实验最开始的的那样监控一下流量,监控个两天两夜。然后,可以对数据进行分析,重点要查看那些和正常行为不符的联网行为,比方说上面那个Apoint.exe官网描述是不会产生联网的行为的,再比如某个没有打开的程序在电脑空闲的时候自动运行并且联网了,就要更加重视了。netstat主要用来缩小范围,范围缩小到一定程度就可以用sysinternal里面的工具来监控详细的行为了,直接用filemon或者sysmon不加筛选地来监控系统的工作量太大了。如果可以缩小到了一个进程,那么可以直接用ProcessMonitor加过滤器,查看那一个进程的行为。
2.2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
静态分析可以使用DependencyWalker查看调用的动态库,可以使用PEID来查壳其中还有插件可以用来脱壳。
动态分析的话,可以使用filemon、regmon,两者分别可以用来查看文件和注册表,但是我觉得这方面功能最强的还是processmon它不仅可以查看这个进程的文件更改和注册表操作,还能够查看这个进程的网络连接状态以及线程活动。
另外,systracer有很多同学用,功能是给系统捕捉快照,便于查看进程启动前后文件和注册表的不同,进而比对出可疑程序对文件和注册表的修改。然而,如果只是分析一个可疑进程的行为,我觉得它的针对性不如ProcessMonitor强。
3、实验总结与体会
这次实验是分析恶意代码,本来以为出的问题会比以前少一点,然而并没有顺利很多。还好问题都是力所能及的范围内可以解决的。
个人感觉netstat创建计划任务只是用来确定一个范围的,具体做分析的时候后面的几个工具里最有效的,我觉得还是ProcessMonitor。它能包含system monitor、filemonitor、regmonitor的全部功能还有wireshark的一部分功能,部署过滤器方面,它的过滤器要比sysmon的xml用起来更方便。
另一个收获就是,我知道了常见的几个进程的名字,以及它们相应的行为特征。以后,如果发现了反常行为能够及时发现。
以及,我发现了这个电脑的触摸板的驱动程序会偷偷连外网,提醒了我要重装这个驱动。
4、参考内容:
20165207 Exp4 恶意代码分析的更多相关文章
- 2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...
- 2018-2019 20165237网络对抗 Exp4 恶意代码分析
2018-2019 20165237网络对抗 Exp4 恶意代码分析 实验目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后 ...
- 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析
2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...
- 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析
- 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析 - 实验任务 1系统运行监控(2分) (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP ...
- 2018-2019-2 20165239《网络对抗技术》Exp4 恶意代码分析
Exp4 恶意代码分析 实验内容 一.基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. •使用w ...
- 2018-2019 20165235 网络对抗 Exp4 恶意代码分析
2018-2019 20165235 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件 ...
- 2018-2019-2 网络对抗技术 20162329 Exp4 恶意代码分析
目录 Exp4 恶意代码分析 一.基础问题 问题1: 问题2: 二.系统监控 1. 系统命令监控 2. 使用Windows系统工具集sysmon监控系统状态 三.恶意软件分析 1. virustota ...
- 20155312 张竞予 Exp4 恶意代码分析
Exp4 恶意代码分析 目录 基础问题回答 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (2)如果 ...
- 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311
2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...
随机推荐
- 【JAVA】猜数字
import java.util.*; public class GN { public static void main(String arg[]) { ;// 数字标记 ;// 位置标记 ;// ...
- Unity3D笔记二十 多媒体与网络
1 游戏音频 1.游戏音乐:如游戏背景音乐 2.游戏音效:如开枪或打怪物时“砰砰”的游戏音效 Unity 3D游戏引擎共支持4种音乐格式的文件,具体如下. aiff:适用于较短的音乐文件,可用作游戏音 ...
- Win7去掉桌面图标小箭头
去掉win7的快捷方式的小箭头: 每当我们装完一个软件,在桌面生成快捷方式的时候总会有个小箭头,有些朋友看到觉得很烦,如何去掉这个小箭头呢? 点击开始图标 - 附件 - 命令提示符(有情提示,请右击用 ...
- Jenkins构建报错(Jenkins is reserved for jobs with matching label expression)解决办法
Jenkins构建报错Jenkins is reserved for jobs with matching label expression 原因节点配置导致 修改配置
- PHP配置xcache缓存扩展
安装步骤 wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz tar -xf xcache-3.2.0.tar ...
- Python装饰函数
from time import ctime, sleep def tsfunc(func): def wrappedFunc(): print('[%s] %s() classed' % (ctim ...
- python3学习笔记(4)_function-参数
#python学习笔记 17/07/10 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- import math #函数 函数的 定义 #定义一个求绝对值 ...
- time out 超时
网络不通:比如代理服务拒绝连接 网络ok,但是数据量过大,传输超时
- Frogger--poj2253
http://poj.org/problem?id=2253 题意:The frog distance (humans also call it minimax distance) between t ...
- Python开发【笔记】:关于子线程(子进程)与主线程(主进程)的关联
前言: 主要分析下面的问题: 主线程启线程 主线程执行完毕,会关闭子线程吗? 子线程启线程 主线程执行完毕,会结束吗? 主进程启动进程,主进程执行完毕,会怎样? 子进程启动进程,进程执行完毕,又会 ...