恶意代码

概述

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

恶意代码分析

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

恶意代码分析

静态分析

概述

  • 静态分析技术,可以确认一个文件是否是恶意的,提供有关其功能的信息,可以通过一些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. c语言:第一次作业,分支,顺序结构

    1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 学了几节课的c语言了,因为没自学的原因,跟不上进度.对于c语言现在挺有兴趣的,愿意去花时间去弥补 ...

  2. Eclipse设置所有新创建文件默认格式为UTF-8

    一.为什么需要设置所有新创建文件默认格式为UTF-8 Eclipse编码默认是ISO-8859-1,不支持中文.而很多时候,我们的文件中含有中文,或者需要在创建文件时就需要是UTF-8编码格式的.在创 ...

  3. MySql中order by和union all同时使用

    () UNION ALL () 两边的语句加上括号就可以了

  4. JAVA8 Stream集合操作:中间方法和完结方法

    StreamLambda为java8带了闭包,这一特性在集合操作中尤为重要:java8中支持对集合对象的stream进行函数式操作,此外,stream api也被集成进了collection api, ...

  5. 常用vi命令

    i  在当前光标处插入字符,并进入编辑模式 o 在当前光标插入下一行 x 从当前光标处向后删除一个字符. dd 删除当前光标处所在行 :q! 强制退出不保存 :q 退出(文本有改动则警告) :w 保存 ...

  6. python之函数递归

    函数递归调用 在函数内部,可以调用其它函数,如果一个函数在内部调用自身,即是递归调用 为防止无限递归类似于死循环,需要如下: 1.必须要有一个明确的返回值: 2.每次进入更深一层递归时,问题规模应该比 ...

  7. Codeforces Round #491 (Div. 2)

    Codeforces Round #491 (Div. 2) https://codeforces.com/contest/991 A #include<bits/stdc++.h> us ...

  8. pip升级后出现cannot import name 'main'

    运行pip install  --upgrade pip还有出现这个情况. cd /usr/bin/pip3 修改成: from pip import __main__ if __name__ == ...

  9. Swift - 修改导航栏“返回”按钮文字和图标 /手势冲突解决/响应范围

    iOS11之前 修改导航栏“返回”按钮文字,图标 https://blog.csdn.net/u012701023/article/details/50264265 iOS11 完美解决导航栏按钮偏移 ...

  10. python基础(16)私有类,类,类变量

    1.私有类: class My: def test(self): self.__password = 123456 def say(self): print('password',self.__pas ...