20145234黄斐《网络对抗技术》实验四,恶意代码分析_weixin_33967071的博客-程序员秘密

技术标签: 运维  操作系统  c/c++  

恶意代码

概述

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

恶意代码分析

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

恶意代码

  • 本次实验分析的对象是第二次实验中的20145234.exe,为了能够顺利上传改名为hfhf.exe

恶意代码分析之静态分析

概述

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

静态分析之特征库比对

  • 该内容在前几篇博客中都有提到,特征库比对是一种静态分析技术,通过对代码与特征库中的特征码进行比对,判断这个文件是否是为恶意代码,如果是则进一步联系到病毒库中对该病毒的描述,从而确认其行为,达到分析的目的
  • 通过VirSCAN.org平台进行分析如下:
  •  

  • 点击“文件行为分析”,可以详细地察看是否有敏感行为,可以发现该文件会有网络连接的行为,自行删除注册表键值的行为
  •  

静态分析之PE套件使用

PE explorer

  • 在虚拟机下通过PE explorer打开文件hfhf.exe,可以查看PE文件编译的一些基本信息,导入导出表等
  • 如下图,可以看到该文件的编译时间、链接器等基本信息
    •  

  • 如下图,我们点击“导入表”,可以查看该文件依赖的dll库
    •  

    • WSOCK32.dllWS2_32.dll,是用来创建套接字的dll库,显然,如果这个程序所介绍的功能中不应该有网络连接部分,那么在其动态链接库中还存在这2个库就显得尤为可疑了
    • 另外图中所显示的ADVAPI32.dll库百度可知:是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关。
    • 敏感了吧,注册表的操控,想想72k的一个小程序还操控注册表,一看就不正经了
    • 另外2个不做过多介绍,属于一般程序在win下都会调用的dll库

PEiD

  • PEiD是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
  • 经过上一次的实践学习,知道恶意代码为了掩护伪装自己,另一种常用方式就是加壳,通过加壳来达到不被杀毒引擎特征码察觉的目的
  • 所以一般正常的软件是不会为自己加壳的,如果你从网上下载了一个带壳软件,那么你就要小心了,须谨慎使用该软件;接下来就通过PEiD这款工具分析一下hfhf.exe看看是否带壳
  •  

  • 虽然显示“什么都没找到 [调试] ”但是正常的编译会显示编译器的,既然没找到,说明不能识别该编译器(可能和PEiD版本有关),所以我们点击一下上图中的Set Info,看看到底是怎样的编译器使它不能识别
  •  

  • 百度一下UPX不难发现,这就是一个压缩壳工具!所以hfhf.exe可能是一款压缩壳病毒

Dependency Walker

  • Dependency Walker是一款Microsoft Visual C++中提供的非常有用的PE模块依赖性分析工具,可以查看PE模块的导入模块,查看PE模块的导入和导出函数,动态剖析PE模块的模块依赖性,解析C++函数名称
  • 总体来说,是一款专门分析函数依赖的工具软件,相比PE explorerPE view对dll文件分析更专业,更细致具体,详情如下图
    •  

  • 我们从中看见了,该可执行文件可以对注册表进行删除操作

系统运行监控

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

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

 

使用计划任务schtasks

  • 使用命令C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt" 创建计划任务netstat
  • 如下图所示:
    •  

netstat命令设置计划任务

  • 在C盘中创建一个netstat5234.bat文件

    • 其中写入代码
    • date /t >> c:\netstat52234.txt
      time /t >> c:\netstat5234.txt
      netstat -bn >> c:\netstat5234.txt
  • 在任务计划程序中,新建一个触发器
    •  

  • 新建一个操作,并设置参数:>> c:\netstat5234.txt
    •  

  • 并设置一个名称,给予最高权限
  • 回连后,发现记录了回连产生的记录
  •  

总结与思考

  • 恶意代码不仅可以通过一些工具来进行静态分析,而且还可以通过动态的手段来防护。例如我们电脑自带的Windows Defender,IDS,还有杀软的防护功能,对系统都是一种监控;但是这种监控我们无法直接看到,通常都是自动处理了,只能留下清除的记录,不过我们可以通过一些动态监控软件,例如SysTracer、SysinternalsSuite、ProceMonitor等一些工具,可以搜集一段时间内系统注册表、文件等的变化;
  • 如果怀疑一台主机上有恶意代码,应当首先更新病毒库,并对敏感怀疑位置进行病毒查杀,如果没有找到,应该开启相关病毒扫描引擎,对计算机进行动态扫描,然后打开相应的监视器,查看有没有可疑注册表、进程,通过注册表中的可疑项或者进程,右键可以打开文件所在位置,对特定的文件进行详细的静动态分析,最终确认是否为恶意代码;
  • 恶意代码分析是一种解剖恶意代码的艺术,需要了解恶意代码是如何工作的、如何识别它,以及如何战胜它消除它,通过这次的实践,对恶意代码的基本分析还是不算很难的,静态动态的分析方法综合应用,基本上就可以确认一个代码的行为了,根据以上方法,我们不用过渡依赖于杀毒软件给我们的杀毒报告,可以对有所怀疑的软件进行自主分析,最后做出自己的决定是否对其查杀。

转载于:https://www.cnblogs.com/taigenzhenjun/p/6666933.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33967071/article/details/93265314

智能推荐

【tensorflow 错误解决】Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED_东华果汁哥的博客-程序员秘密_cudnn_status_alloc_failed

报错信息提示:E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED原因分析:GPU显存设置有问题,需要设置为仅在需要时申请显存。import tensorflow as tfconfig = tf.compat.v1.Conf...

手把手教你Laravel 集成 GatewayWorker (Workerman),实现简单的聊天系统._凡尘-追梦者的博客-程序员秘密

GatewayWorker 与 Workerman的关系Workerman可以看做是一个纯粹的socket类库,可以开发几乎所有的网络应用,不管是TCP的还是UDP的,长连接的还是短连接的。Workerman代码精简,功能强大,使用灵活,能够快速开发出各种网络应用。同时Workerman相比GatewayWorker也更底层,需要开发者有一定的多进程编程经验。因为绝大多数开发者的目标是基于Workerman开发TCP长连接应用,而长连接应用服务端有很多共同之处,例如它们有相同的进程模型以及单发、群发、广

Qt6.2.3使用vscode编写Qt项目_vscode 中编写qt_RiCoCoSoul的博客-程序员秘密

前言关于怎么下载安装Qt6.0和vscode这里就不讲了,网上的教程多如牛毛。再次说明此教程只适合有Qt基础和Cmake基础的人!!!测试环境Qt版本:6.2.3vscode:1.63.2编译器:MinGW64-GCC-11.2设置找到Qt安装目录找到路径目录*:\Qt\6.2.3\mingw_64(此路径包含了库文件)和*:\Qt\Tools\mingw900_64\bin(Qt自带的MinGw编译器)设置环境变量这里有两种方法一是直接使用Qt内置的工具提供的MinGW,或者.

启动Vue项目执行npm run serve报错npm ERR! [email protected] serve: `vue-cli-service serve --open`_会哭的孩子有奶喝的博客-程序员秘密

问题想启动一个Vue项目,在终端输入npm run serve后报错:解决方法参考 https://blog.csdn.net/CC1991_/article/details/108152325 ,发现很容易解决,只需要先把项目里面的node_modules文件夹直接删掉,再执行命令npm install,安装完毕之后,再次在终端里面输入命令行:npm run serve 回车,就不再报错。总结:启动Vue项目执行npm run serve报错首先删掉node_modules文件夹然后执行

mac清理系统存储之xcode_|刘钊|的博客-程序员秘密

1、iOS DeviceSupport --~/Library/Developer/Xcode/iOS DeviceSupport竟占最多!我把12以下的都删除了。不过这个可重新生成!在连接旧设备调试时,会重新自动生成。2、Archives --~/Library/Developer/Xcode/Archives这个不可恢复;Adhoc或者App Store版本会被删除。建议备份...

随便推点

运用PARALLEL方式成倍提升Oracle数据分析效率_keueng的博客-程序员秘密_在oracle 的查询语句中使用parallel(8) 会提升查询速度吗

运用PARALLEL方式成倍提升Oracle数据分析效率Oracle作为一种大型数据库,在我国已成为大型企事业单位(如公立医院)的主流数据库并占有了绝对的市场份额。这就意味着审计工作同Oracle的交集越来越多,同时这种数据库的使用也意味着远超SQL SERVER的海量数据信息,其数据分析效率成为严重制约审计工作进度的瓶颈。本文将介绍在Oracle中如何通过采用PARALLEL(并行)方式最大化调用

设备连接:Ubuntu16.04 ROS中连接Hokuyo激光雷达UTM-30LX-EW_Upupup6的博客-程序员秘密

这次连接的设备如下:(以下是一步步的设备连接到采集数据的介绍,没法再详细了吧) -----第一步:连接硬件----首先雷达需要的供电电压是12V,PC需要的供电电压是24V。所以本次连接是两个电源。------第二步:通信-----之后就是在ROS下给实现PC与雷达的通信了。首先在Ubuntu下打开一个终端,为了防止下次下次查找,我是直接在Documents下建立...

山东省第七届ACM大学生程序设计竞赛 A Julyed_但求-_-心安的博客-程序员秘密_1021905877

JulyedTime Limit: 2000MS Memory limit: 65536K题目描述    Julyed is preparing for her CET-6. She has N words to remember, but there is only M days left. If she can’t remember all these words,

美国 CS 就业,大多数公司真的不看学校吗?_woshicver的博客-程序员秘密

来源:https://www.zhihu.com/question/57166186编辑:深度学习与计算机视觉声明:仅做学术分享,侵删论坛里,经常有人说...

看完这篇垃圾回收,和面试官扯皮没问题了_Hollis Chuang的博客-程序员秘密

前言 Java 相比 C/C++ 最显著的特点便是引入了自动垃圾回收 (下文统一用 GC 指代自动垃圾回收),它解决了 C/C++ 最令人头疼的内存管理问题,让程序员专注于程序本身,不用...

读《疯狂的程序员》有感_iteye_3619的博客-程序员秘密

用了很长很长的时间,终于看完了《疯狂的程序员》,当看完的那一刻,我感到我自己跟书中的绝影比较,相差的是太多了。网上许多人都评论这本书,说这本书是程序员版的奋斗,书中写绝影怎样的努力,怎样的辛苦,怎样最后取得了进步,但是对于我感触最深的还是绝影生活对我的影响。我是学计算机的,最后的工作可能也是对着电脑编程序。里面写到,最后绝影跟龚燕还是分手了,我自己也联想到自己,自己以后不管怎样一定不能太专注于...

推荐文章

热门文章

相关标签