zoukankan      html  css  js  c++  java
  • 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,查了一下,罗马尼亚……
  • 相关阅读:
    DNS正向反向解析
    varnish-4.0.5的反向代理 缓存测试 负载均衡实验
    DS8700 硬盘更换略
    ftp虚拟用户
    maven mvn 命令行 编译打包
    linux下的springboot项目启动文件
    linux系统安装gcc
    linux系统下安装两个或多个tomcat
    linux系统的磁盘挂载
    常用linux命令
  • 原文地址:https://www.cnblogs.com/nostalgia-/p/6618693.html
Copyright © 2011-2022 走看看