4320LC

Exp4 恶意代码分析 20154320 李超

恶意代码

概述

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

恶意代码分析

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

 

恶意代码分析

静态分析

概述

  • 静态分析技术,可以确认一个文件是否是恶意的,提供有关其功能的信息,可以通过一些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,对比前后两张快照课得到进程有哪些行为。

总结与思考

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

posted on 2018-04-13 07:41  4320LC  阅读(108)  评论(0编辑  收藏

导航