zoukankan      html  css  js  c++  java
  • 20145316许心远《网络对抗》第四次实验:恶意代码分析

    20145316许心远《网络对抗》第四次实验:恶意代码分析

    实验后回答问题

    请设计下你想监控的操作有哪些,用什么方法来监控

    • 想要监控的操作
      • 监控链接了哪些ip和端口
      • 监控注册表信息
      • 监控文件的增删
      • 权限变动
    • 想要用什么方法进行监控
      -静态方法
      • virscan扫描
      • ip explorer分析属性
      • dependency walker分析
      • peid分析
        -动态方法
      • wireshark抓包分析
      • sysmon监视记录系统活动,并记录系统日志
      • systracker查看注册表和文件信息
      • 创建任务监控

    如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息

    • TCPview工具可以查看系统的TCP连接信息
    • wireshark进行抓包分析,查看系统到底进行了哪些网络连接
    • systracer查看注册表信息的改动是否合理
    • sysmon/netstat监视和记录系统活动,并记录到windows事件日志

    实验体会

    • 终于理解了老师上课时说的“前三次实验大家都做得挺舒服的”这句话了,这次实验刚开始真是“透心凉,心飞扬”,一直到现在其实做得都并不满意,很多东西没有做全分析全,这才感觉到网络对抗这门课不是简单的种后门种病毒玩游戏,还是有很多硬知识需要去消化理解。比如说再systracer的snapshot环节,明明都照出来了,可就是不懂这些删减的表项到底什么意思,哪个进程开动了改往哪儿找,这充分显示出理论学习的不扎实。
    • 之前三次实验都是老师给出实验大体步骤,一步一步照着做下去,像按照说明书搭房子,锻炼的是动手能力,但这次实验几乎没有实验指导,怎么做都要自己去想,从地基到房梁结构都要自己设计,侧重于锻炼思维能力,收获了一种全新的学习体验。

    实验过程

    • 恶意代码是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。
    • 恶意代码的分析方式有两种:静态分析技术和动态分析技术。在这篇博客里我们静态分析选用的工具是:virscan、PE explorer、PEiD、dependency walker;动态分析选用的工具是:systracer、wireshark、netstat、sysmon。
    • 本次实验采用的代码是第二次后门实验的代码,中途改过多个名20145316_backdoor、fool5316、exp4等都是,大家意会。
    • win10的ip:192.168.2.175(桥接模式)
    • 虚拟机的ip:192.168.2.202(桥接模式)

    virscan扫描

    • 用上次实验的方法将虚拟机生成的后门传送到主机

      上传至virscan的在线网页,进行扫描(因为一点问题,我改了文件名)扫描结果如下:
    • 等待一会,点击“文件行为分析”,生成行为分析报告
    • 另外还有一些不需要工具的简单方法,比如说直接右键属性,没有证书、文件信息缺失的文件多有问题

    PE explorer

    • 文件头信息菜单下可以看一些简单的时间戳等基本属性信息

    • 导入表菜单下可以看这个程序都调用了哪些dll文件。下图中的ADVAPI32.dll文件是一个高级API应用程序接口服务库的一部分,调用这个dll可以实现对注册表的操控,而WSOCK32.dllWS2_32.dll这两个DLL用于创建套接字,即会发生网络连接。这3个dll同时出现,难道不奇怪吗?

    PEiD

    • 直接导入文件,查看程序是否加壳
    • but这个却告诉我们“nothing found”,好像是一个乖巧软萌的程序啊
    • 尝试过其他同学的做法,进一步展开,但等待我的仍然是“not packed”,不造为啥,可能版本太低或者64位系统的缘故吧。

    dependency walker

    • dependency walker这个软件也是针对dll进行分析的,而且显然比PE Explorer更强大
    • 哈哈,在这里我们可以找到一个这个恶意软件删除注册表键值的函数调用

    systracer(我的2.6版本有点低,建议下2.10)

    • 从这里开始我们的动态分析吧~建立4个快照snapshot
      • snapshot#1:什么都不做的情况
      • snapshot#2:kali生成后门并文件通过ncat传到主机上
      • snapshot#3:kali打开msf监听并回连成功
      • snapshot#4:kali在msf监听端对主机进行截屏
    • 快照结果对比分析
      • 1&2————新增了我们传输的文件exp4(显示有些乱码)
      • 1&2————ncat.exe被调用
      • 1&2————注册表发生变化

      • 2&3————新增注册表项vitualdesktop,获得主机shell
      • 2&3————注册表发生变化
      • 3&4————注册表发生变化

    wireshark抓包

    • 我抓取了kali向主机传送后门程序、回连、抓屏过程的数据包,设置正确的过滤条件,可以很轻易的获取相关信息,这些数据包里面含有三次握手过程,比如下图前三行。
    • “TCP segment of a reassemble PDU”是大段报文分解成段发送,像这部分应该就是传送后门文件时的数据。

    netstat

    • 创建任务,设置任务计划里的触发器,每5分钟反馈
    • 在C盘下创建文件夹:5316,在文件夹下创建netstat5316.txt,写一个脚本,内容如下:
    • 保存后将后缀改为.bat
    • 设置任务计划的“操作”选项栏,将启动程序设为我们的netstat5316.bat,参数为>>c:5316 etstat5316.txt,这样我们的网络记录信息netstat5316.txt就会保存在C盘5316文件夹下
    • 创建完成,运行任务,5316文件夹下出现我们的txt文件
    • txt截的图没啥分析价值,传一张之前在命令行执行netstat的图吧。可以看到kali回连成功那里的extablished。

    sysmon

    • 安装sysmon成功,xml文件内容复制老师的
    • 查看系统进程



  • 相关阅读:
    windows10下Mysql5.7安装指南
    SVN迁移Gitlab步骤
    java.lang.String中的replace方法到底替换了一个还是全部替换了。
    MongoDB升级导致启动失败
    阿里云CentOS7.3搭建多用户私有git服务器(从安装git开始)
    CentOS7.3编译安装Nginx设置开机启动
    关于使用Xshell远程连接启动tomcat导致图片不显示,报错Could not initialize class sun.awt.X11GraphicsEnvironment解决方案
    easyui报错“Cannot read poperty 'options' of undefined”问题解决方案之一
    Ubuntu18.04系统中vi键盘输入字符不匹配
    ux.form.field.TreePicker 扩展,修复火狐不能展开bug
  • 原文地址:https://www.cnblogs.com/xxy745214935/p/6642901.html
Copyright © 2011-2022 走看看