恶意代码

概述

  • 恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。
  • 特征:
    • 恶意的目的,获取靶机权限、用户隐私等
    • 本身是计算机程序,可以执行,并作用于靶机
    • 通过执行发生作用,一般来说不运行是没问题的

恶意代码分析

  • 在大多数情况下,进行恶意代码分析时,我们将只有恶意代码的可执行文件本身,而这些文件并不是我们人类可读的。为了了解这些文件的意义,你需要使用各种工具和技巧,而每种只能揭露出少量的信息。所以在实战中,我们要综合使用各种工具,才能看到一个全貌。
  • 恶意代码分析有两类基本方法:
    • 静态分析:在没有运行恶意代码时对其进行分析的技术
    • 动态分析:相比较静态分析而言,则需要运行恶意代码,通过其产生的行为,如对计算机中注册表、文件的更改,网络的连接等动态数据进行分析,从而确定其具体行为

恶意代码分析

静态分析

概述

  • 静态分析技术,可以确认一个文件是否是恶意的,提供有关其功能的信息,可以通过一些PE工具箱(PEview,dependency walker,Resource Hacker,PE explorer等)分析其函数链接库、壳的情况、特征库比对等操作,通过这些工具可以快速分析代码的性质,但是针对较为复杂的恶意代码时很大程度上是无效的;
  • 这就需要更为高级的应用技术了,最典型的方法就是逆向工程,通过将可执行文件装载到反汇编器中,查看程序指令,观察恶意代码到底做了什么。因为这些指令是被CPU执行的,所以通过反汇编可以告诉我们程序具体做了什么,该方法虽然非常高效实用,但是需要综合掌握C语言、汇编、代码结构以及windows操作系统等知识,上手略微困难。

静态分析之特征库比对

  • 通过 Virustotal平台进行分析如下:
  • 在detail里可以看到更详细的信息

静态分析之PE套件使用

PE explorer

  • 通过PE打开20154320lc.exe
  • 可以看到该文件的编译时间本信息
  • 如下图,我们点击“导入表”,可以查看该文件依赖的dll库

PEiD

  • PEiD是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
  • 如图,nothing found,本程序没有加壳

系统运行监控

TCPView查看恶意代码回连前后情况

  • 该工具可以帮我们实时分析正在联网的进程,所以我们可以通过查看每个进程的联网通信状态,初步判断其行为,例如一个程序应该是单机运行的,如果有网络行为,就显得很可疑了
  • 可以看到回连的程序

sysmon工具查看恶意代码回连前后情况

    • Sysmon.exe同目录下建立文件:shiyan4.txt,写好配置文件
    • 管理员身份运行CMD,输入指令:Sysmon.exe -i test.xml,进行安装
      • 安装成功

    • 输入指令:Sysmon.exe -c shiyan4.xml,进行配置
    • 现在可以进入

Applications and Services Logs/Microsoft/Windows/Sysmon/Operational

    查看日志

    • 创建网络连接:

    • 收到微信消息时

    • 创建进程:
    • 打开sysmon创建的进程

    • 创建文件

使用计划任务schtasks

创建计划任务20154320netstat

  • 如下图所示:

netstat命令设置计划任务

  • 每五分钟监控的内容会自动写入文档中

    • 导入到excel中进行分析
    • 统计访问最多的地址

动态分析

概述

  • 动态分析技术,是建立在运行代码的基础上的,通过观察恶意代码执行后系统上的行为,例如对系统注册表的分析、文件的分析、网络的连接等行为,进而判断出该代码具体功能,以移除感染。
  • 但上述操作进行之前,必须得有一个前提——建立一个安全的环境,能够避免恶意代码对系统带来风险的前提下,研究运行的恶意代码。所以一般可以用虚拟机建立一个目标靶机,在对恶意代码目的不明的情况下,先对靶机进行快照备份,然后再运行恶意代码监控其行为,这样的动态分析步骤才会对系统有一定的保障。
  • 再高级一点的就是对代码的动态调试了,通过源代码级与汇编代码级的调试器,对恶意代码进行一步一步调试,观察其执行过程中每个时刻的内部状态。

动态分析之SysTracer

  • 这个实验建议在虚拟机中完成,虚拟机中文件少、注册表少,易分析

操作思路与步骤:

  • 1.打开攻击机msfconsle,开放监听
  • 2.win10下打开木马20154320lc.exe,回连kali
  • 3.kali中通过msf发送文件给win10靶机
  • 4.kali中对win10靶机进行屏幕截图
  • 通过比较每次快照文件的区别,来判断相应的变化

结果分析

      • 启动回连时注册表发生变化
      • 启动回连时,新建了20154320lc

.exe

      应用,启用了许多DLL文件
  • 启动回连时开放端口发生变化,如下图所示,因为本地木马20154320lc.exe会连接远程端口443,所以先关闭了443端口,再开放了443端口
      截屏时注册表发生了一些变化

联网情况分析

  在后门程序回连时,在主机的命令行中用netstat -n命令查看TCP连接的情况,可以发现其中有进行回连的后门程序:

  • 用wireshark,进行捕包分析,查看详细的协议分析发现,后门程序建立了三次握手并回连时进行了基于IP和端口的连接

基础问题

1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

应当首先更新病毒库,并对敏感怀疑位置进行病毒查杀,如果没有找到,应该开启相关病毒扫描引擎,对计算机进行动态扫描,监控主机连接情况,统计结果后找出可疑的Ip地址和端口号,可对这些ip和端口进行有针对性的抓包,查看有无建立套接字等可疑的行为、查看有无可疑的传输内容等,还可以通过systracer等查看注册表、进程等的变化。

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

使用systracer,在打开进程前后分别takeshot,对比前后两张快照课得到进程有哪些行为。

总结与思考

  • 通过这次的实践,基本了解了分析恶意代码的基本操作,将静态动态的分析方法综合应用,基本上就可以确认一个代码的行为了,根据以上方法,我们不用过渡依赖于杀毒软件给我们的杀毒报告,可以对有所怀疑的软件进行自主分析,最后做出自己的决定是否对其查杀。

Exp4 恶意代码分析 20154320 李超的更多相关文章

  1. 2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析

    2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...

  2. 2018-2019 20165237网络对抗 Exp4 恶意代码分析

    2018-2019 20165237网络对抗 Exp4 恶意代码分析 实验目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后 ...

  3. 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析

    2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...

  4. 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析

    - 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析 - 实验任务 1系统运行监控(2分) (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP ...

  5. 2018-2019-2 20165239《网络对抗技术》Exp4 恶意代码分析

    Exp4 恶意代码分析 实验内容 一.基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. •使用w ...

  6. 2018-2019 20165235 网络对抗 Exp4 恶意代码分析

    2018-2019 20165235 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件 ...

  7. 2018-2019-2 网络对抗技术 20162329 Exp4 恶意代码分析

    目录 Exp4 恶意代码分析 一.基础问题 问题1: 问题2: 二.系统监控 1. 系统命令监控 2. 使用Windows系统工具集sysmon监控系统状态 三.恶意软件分析 1. virustota ...

  8. 20155312 张竞予 Exp4 恶意代码分析

    Exp4 恶意代码分析 目录 基础问题回答 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (2)如果 ...

  9. 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311

    2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...

随机推荐

  1. P61 实践作业

    网络攻防实验环境搭建 根据链接下载的实验工具包,将其解压 打开VM虚拟机,点击图中红色框,扫描虚拟机 选择文件所在位置 点击下一步,完成.即可 在VM虚拟机设置中把网络适配器修改为桥接模式.如下图 在 ...

  2. dubbo常见面试问题(二)

    1.什么是Dubbo? Duubbo是一个RPC远程调用框架, 分布式服务治理框架 2.什么是Dubbo服务治理? 服务与服务之间会有很多个Url.依赖关系.负载均衡.容错.自动注册服务 3.Dubb ...

  3. Java学习笔记(二十四):单例设计模式singleton

    为什么要使用singleton设计模式? 假设设计了一个操作数组的工具类(Tools),里面有一个锤子的方法(Hammer),如果不使用singleton设计模式,每次想调用Hammer方法都需要ne ...

  4. jquery花式图片库——jqFancyTransitions

    http://www.html580.com/3785 https://yq.aliyun.com/ziliao/4390 使用方法调用插件js文件: <script src="js/ ...

  5. Ubuntu---添加输入法

    摘要:Ubuntu 在刚刚安装好之后,默认是不支持直接输入中文的,所以我们需要安装支持中文的输入法.网络上面一般推荐使用的输入法是 Fcitx(小企鹅输入法),我们今天就来安装和配置它. step1: ...

  6. python学习中遇到的错误及解决办法

    1. nodename nor servname provided 原因:Python程序中有段程序调用 socket.gethostbyname(socket.gethostname()) sock ...

  7. 【c】多级指针

    一.一级指针 1.int *p,*p2; p是变量名,*表明是指针,指针指向地址. 在定义时初始化,如int *p_2 = &b; //定义一个指针,指针指向一个地址 先定义再初始化,如int ...

  8. TZOJ 2519 Regetni(N个点求三角形面积为整数总数)

    描述 Background Hello Earthling. We're from the planet Regetni and need your help to make lots of mone ...

  9. String、StringBuilder、StringBuffer 区别

    public static void testStringBuffer(){ long start System currentTimeMillis(); StringBuffer sbuf = ne ...

  10. Failed to create agent because it is not close enough to the NavMesh

    主要原因是:两个相同对象navmesh点太近造成. 解决方案:通过NavMesh.SamplePosition 获得可以行走点 ;i<;i++) { , mRadius); , 3.14f); ...