木马免杀原理

木马免杀原理##木马免杀原理###一、实验目的1.了解杀毒软件特征码查杀病毒的基本原理2.掌握木马特征码免杀的原理和方法###二、实验环境1.系统环境:Windows环境,XP环境2.软件工具:灰鸽

大家好,又见面了,我是你们的朋友全栈君。

木马免杀原理

一、实验目的

1.了解杀毒软件特征码查杀病毒的基本原理

2.掌握木马特征码免杀的原理和方法

二、实验环境

1.系统环境:Windows环境, XP环境

2.软件工具:灰鸽子,MYCCL,OC_cntrump,AVG杀毒软件,ollydbg

三、实验原理

杀毒软件特征码查杀病毒的工作原理
首先让我们简单了解一下杀毒软件特征码查杀病毒的原理,特征码就是能识别一个程序是病毒的一段不大于64字节的特征串。特征码定位法分为文件从查杀和内存查杀,杀毒软件公司拿到病毒的样本以后,定义一段病毒特征码到病毒库中,然后与扫描的文件比对,如果一致则认为是病毒。内存查杀则是载入内存后再比对,行为检测法是新出现的一种定义病毒的方法它利用的原理是某些特定的病毒会有某些特定的行为来做出是否为病毒的判断

四、实验步骤

打开Windows7虚拟机,打开工具软件安装包安装AVG杀毒软件,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

打开灰鸽子远程控制软件,点击配置服务程序,输入本机的IP地址,生成服务器,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

将生成的Server.exe程序复制到桌面,在其右键菜单中选择“Scan with AVG Anti-Spyware”用杀毒软件对其进行扫描,发现杀毒软件报毒,这里选择不采取任何操作,关闭杀毒软件,如图所示:

<span role="heading" aria-level="2">木马免杀原理

对Server.exe做免杀处理,首先需要定位其特征码,MYCCL工具是一款复合特征码定位系统,主要定位木马病毒的特征码工具。打开MYCCL工具,点击文件,打开Server.exe程序,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

将开始位置为00000400,分块个数设置为100,点击生成按钮,在桌面上生成了OUTPUT文件夹,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

桌面生成了OUTPUT文件夹,此文件夹可以看到由木马源程序衍生处的100个程序,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

右键点击OUTPUT文件夹,用杀毒软件对其扫描,扫描完成之后点击Apply all actions按钮处理所有可疑文件,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

处理完所有可疑文件之后,再次打开OUTPUT文件夹,可以发现可疑文件都被删除了只剩下83个程序,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

在MYCCL工具点击二次处理,提示找到一处特征码,程序提示为文件0009A509_00001DB3中发现特征码,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

继续扫描OUTPUT文件夹,没有发现可疑文件,表示其他位置已没有特征码

<span role="heading" aria-level="2">木马免杀原理

在MYCCL工具中,点击特征码区间按钮打开区间设定界面,右键点击打开右键菜单,选择复合定位此处特征码,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

将分块个设置为100,点击生成,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

处理完成之后,点击二次处理,提示已经找到特征码,选择yes继续寻找其他特征码,扫描OUTPUT文件夹,没有发现可疑文件,表示已经没有其他特征码,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

<span role="heading" aria-level="2">木马免杀原理

<span role="heading" aria-level="2">木马免杀原理

完成上述操作之后,点击二次处理,显示特征码分布示意图,并精确定位特征码于0009B9C3处,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

打开OC_cntrump.exe,将Server.exe文件拖入OC_cntrump.exe软件中,输入文件偏移地址0009B9C3(刚刚通过MYCCL定位的地址),将地址转换为内存地址,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

用ollydbg工具对Server.exe进行处理,按下快捷键ctrl+g,输入上一步获取的内存地址,跳转至0049C5C3处,向上滑动滚轮,自动归位到指令首址,内容为MOV EAX,DWORD PTR SS:[EBP-101C](特征码包含在该指令中),如下图所示:

<span role="heading" aria-level="2">木马免杀原理

在程序的最下发找到一段“00”空白区,例如004A21E4双击这一行,在弹出窗口填入特征码段内容MOV EAX,DWORD PTR SS:[EBP-101C],点击“汇编”保存设置。此时会自动跳至下一地址进行编辑,输入JMP 0049C5C7跳转到代码“MOV EAX,DWORD PTR SS:[EBP-101C]”的下一个地址,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

<span role="heading" aria-level="2">木马免杀原理

返回到0049C5C1处,右键点击代码,选择汇编,写入跳转指令JMP 004A21E4,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

右键点击空白处,依此选择“复制到可执行文件”-“所有修改”-“全部复制”,在弹出界面空白处点击右键,选择“保存文件”,文件名称为“Server2.exe”,退出ollydbg程序,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

<span role="heading" aria-level="2">木马免杀原理

在桌面右键Server2.exe进行扫描,发现杀毒软件没有报毒,说明特征码免杀成功,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

在Windows7虚拟机启动灰鸽子控制软件,将免杀之后的Server2.exe挂马到网页上,在从XP虚拟机访问http://192.168.70.133,访问成功后,返回到Windows7虚拟机发现上线主机出现,说明免杀木马安装成功并能正常运行,如下图所示:

<span role="heading" aria-level="2">木马免杀原理

五、修改特征码的方法

方法一:直接修改特征码的十六进制法

  • 修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制

  • 适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用

方法二:修改字符串大小写法

  • 修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了

  • 适用范围:特征码所对应的内容必需是字符串,否则不能成功.

方法三:等价替换法

  • 修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令

  • 适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等

方法四:指令顺序调换法

  • 修改方法:把具有特征码的代码顺序互换一下.

  • 适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行

方法五:通用跳转法

  • 修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.

  • 适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154991.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Modelsim-win32-6.6d 破解安装教程

    Modelsim-win32-6.6d 破解安装教程1、准备文件  modelsim-win32-6.6d-se.exe 2、安装步骤·(安装前把杀毒软件关闭)双击文件 modelsim-win32-6.6d-se.exe(注:安装路径不要有中文)点击Next 点击Browser ,建议安装目录改成自己新建在D盘下  点击Next—-&gt;Agree —–&gt;等待安装 安…

    2022年5月10日
    59
  • 读写TGA文件

    偶尔会遇到处理TGA文件的需求,封装成类以后再用到会很方便。    类的名字叫做myTGA,提供以下功能:    1:读取文件;    2:保存文件到指定目录;    3:获取图像信息(宽,高,深度/像素占用比特数,像素通道数);    4:访问像素;    5:转换到AUX_RGBImageRec 格式;    6:设计优良的结构易于扩展(目前只支

    2022年4月6日
    47
  • ddns dnspod_dns和ddns的区别

    ddns dnspod_dns和ddns的区别NBNS——–NetBIOS漏洞【询问主机名】NBNS是网络基本输入/输出系统(NetBIOS)名称服务器的缩写。它也是TCP/IP协议的一部分。它负责将计算机名转化为对应的IP。其中,NamequeryNB是请求包,NamequeryresponseNB是响应包。双方的端口号均为137。NBNS在WIndows用的较少,Windows普遍采用LLMNR协议。在一个局域网中的两台主机,主机A的ip是:10.30.59.77,Mac地址为:HonHaipr_81:74:8A。主

    2022年8月31日
    0
  • Python if用法_if语句的用法例子

    Python if用法_if语句的用法例子if语句的语法及其实例等…..

    2022年9月26日
    0
  • Python入门教程 超详细1小时学会Python

    Python入门教程 超详细1小时学会Python为什么使用Python假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200.思路:用shell编程.(Linux通常是ba

    2022年7月3日
    23
  • php递归算法经典实例_一文读懂递归算法

    php递归算法经典实例_一文读懂递归算法本篇文章主要介绍PHP递归算法详解,感兴趣的朋友参考下,希望对大家有所帮助。遇到需要设计树节点的数据库结构,以及需要读出来的树节点数据结构!大家是否会选择用数据库的查询方式来获取树结构呢?//曾经的数据库查询获取方式$res=$this->db->query(“select*frommenuwherepid=0”);foreach($resas$k=>$v)…

    2022年8月11日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号