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

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.dllWS2_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,查了一下,罗马尼亚……
posted @ 2017-03-25 21:53  20145211  Views(297)  Comments(0Edit  收藏  举报