您的位置:首页 > 理论基础 > 计算机网络

20145211黄志远 《网络对抗技术》 恶意代码分析

2017-03-25 21:53 976 查看

20145211黄志远 《网络对抗技术》 恶意代码分析

实验原理

恶意代码

恶意代码(Unwanted Code)是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。

特征:

恶意的目的

本身是计算机程序

通过执行发生作用

有些恶作剧程序或者游戏程序不能看作是恶意代码。对滤过性病毒的特征进行讨论的文献很多,尽管它们数量很多,但是机理比较近似,在防病毒程序的防护范围之内,更值得注意的是非滤过性病毒。

恶意代码分析

静态分析:在恶意代码没有运行的情况下对其进行分析

动态分析:通过恶意代码运行后,对电脑注册表等信息的改变进行分析,确定其行为,对其进行定性分析。

基础问题回答

总结一下监控一个系统通常需要监控什么、用什么来监控。

通常对一个系统的注册表,开放端口,进程运行状况,开启的服务等

通常使用一些软件来读取系统的注册表等。

如果在工作中怀疑一台主机上有恶意代码,请设计下你准备如何找到对应进程、恶意代码相关文件。

首先断网,以防止恶意软件造成进一步的伤害。接着并对计算机的注册表,进程,端口,服务等内容进行检测,并观察后台运行的进程有没有比较奇怪的。

然后开启一迈克咖啡波全盘扫描,我相信收钱的软件。

实验总结与体会

恶意代码的分析有很多方法,也有很多与之匹配的软件,有些软件还是相当好用的,不过有一些则是一个难度的提升,需要对系统知识具有充分的掌握,并在实践中摸索出更多方法


做这些分析实验,需要耐得住寂寞,有一些细节一不注意,就可导致最后功亏一篑,举个例子,我在新建监视任务时,没有勾选最高权限,导致我的cmd窗口每次都会跳出决绝访问,其实,我知道是权限不够的原因,但是我以为是要在访问控制组里添加everyone,但发现已经添加了,后来又重加了几个dog,才发现没看到下面的选项,真的是雪崩。。

最后,这些恶意代码分析实验都是为了以后能更好的看管自己的电脑,我现在是在虚拟机里运行的,因为注册表少,方便,还有就是我的c盘没有几个g了;不过,以后还是得在本机上运行,这样才能学以致用。不然就只在云端起舞,而不在地面步行了。

实践过程记录

通过VirScan网站的行为分析来分析恶意代码:

准备工作:随便抓取了一个wueryiyi.exe,这个网站还是相当全面的,它主要是基于特征库的检查匹配。

检测一波



点击“文件行为分析”,可以详细地察看是否有敏感行为,可以发现该文件会有网络连接的行为,自行删除注册表键值的行为


PE explorer

准备工作:将wueryiyi.exe拖拽到PE explorer的窗口,先查看一波基本信息;

可以看见kali在2009年的时候就有了该后门程序的生成



打开引入表查看一些具体信息,主要是函数的依赖





Windows中有3个非常重要的底层DLL:Kernel32.dll、User32.dll、GDI32.dll。其中Kernel32.dll顾名思义就是内核相关的功能,主要包含用于管理内存、进程和线程的函数;这个后门程序要调用内核,显然不是什么好东西。

WSOCK32.dll
WS2_32.dll
,是用来创建套接字的dll库,这显然是是想反弹端口连接啊!

ADVAPI32.dll库是用来给应用程序记录注册表的操控和日志的,憋说话,恶意代码,鉴定完毕。

PEiD查壳通常情况下,只有那些为了保护自身软件版权的,才会加壳防止被反编译,一般小程序是不会加壳的,没有必要。



居然什么都没找到,以为没有加壳,具体查看一下编译器


UPX啊,行了,压缩壳的。

Dependency Walker

进击的巨人,他和PE explorer有许多相似之处,都是用来分析函数依赖的,不过各有千秋



惊人的发现,他可以对注册表进行肆意的删改,简直了。

恶意代码动态分析

SysTracer

使用上次免杀实验里,用c写的shellcode,在回连成功的情况下进行监听。

首先在开启后门之前,使用SysTracer进行一次快照,方便之后对比

接着在回连成功之后进行第二次快照;

然后在kali攻击机中分别对靶机进行截图和获取shell,并分别进行快照

将四次快照对比。

将回连成功后的快照与之前的快照比对,可以发现注册表有了变化,新添加了一个表项,而且新添了一个开放端口80,用来回连的







截屏之后发生的变化,注册表进一步发生了变化,且新增了一个key;还删除了自己的两个记录








获取shell之后,又新添了4个开放端口;而且在cmd中添加了自己的权限,在windows下新建了自己的文件夹




wireshake

对回连过程进行抓包,设置过滤条件ip.addr==192.168.207.133



watch看到靶机与攻击机建立的三次握手连接,还有大量的TCP连接数据包



对sreenshot和shell过程进行抓包,不过对抓到的具体包并不是很了解





安装并使用Sysmon

右键管理员cmd,轻车熟路,之前,经常在Windows命令行下编译运行c代码,不过得用管理员权限。


配置一下文件,我觉得就用老师那个配置文件挺好的啊,版本号都给对了



查看一下事件数,简直爆炸



那就过滤一下



一开始还以为是啥奥迪……



被他发现是虚拟机里的win10了



设置任务计划

写一个watchdog脚本,每天看一波门



这里有一点需要注意的是,一定要勾选最高权限,我一开始任务运行的时候,总是因为cmd不是以管理员身份运行的导致拒绝访问,我知道是权限的原因,找了半天,发现这下面还有一个最高权限运行,真的是……



最后查看一任务



检查一下log



因为是虚拟机,主要就是浏览器一类的软件了,当然还有和本机的连接,127.0.0.1


不太懂81.161.59.90是什么ip,查了一下,罗马尼亚……

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: