木马免杀原理

木马免杀原理##木马免杀原理###一、实验目的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又跳回来执行.

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 虚拟IP原理

    原文链接: http://xiaobaoqiu.github.io/blog/2015/04/02/xu-ni-iphe-ippiao-yi/                    http://www.cnblogs.com/crazylqy/p/7741958.html文中有两处用红色标记的文字,是博主认为错误的地方,故做了修改,若理解有误,还望指正。            …

  • mysql学习之mysql集群

    mysql学习之mysql集群本片博文是笔者学习《高性能mysql》一书的第一篇学习笔记,对应书籍章节为第10章。主要介绍了mysql集群部署方案主从集群部署。集群方案、主从同步原理、复制类型、docker安装mysql集群示例。

    2022年10月23日
  • k8s pod的状态为evicted

    k8s pod的状态为evictedkubectlgetpods–namespace=ingress-nginx–watch

  • 频段划分_世界各国频段划分

    频段划分_世界各国频段划分电磁波频段的划分射频(300KHz-300MHz):包括LF,MF,HF,VHF微波(300MHz-3000GHz):包括UHF,SHF,EHF,PHF微波频段的划分波段频率范围/GHzUHF0.3-1.12L1.12-1.70LS170-2.60S2.60-3.95C3.95-5.85XC5.85-8.20X8.2…

  • Qcom 平台 LK 阶段配置 I2C[通俗易懂]

    Qcom 平台 LK 阶段配置 I2C[通俗易懂]本文着重介绍,如何在qcom平台的LK阶段配置和使用I2C。硬件平台:msm8909软件平台:Android5.0、Android8.0I2C设备:ADV7533

    2022年10月19日
  • netstat详解「建议收藏」

    netstat详解「建议收藏」netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。语法:netstat[选项]参数:-a或–all:显示所有连线中的Socket;-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;-c或–continuous:持续列出网络状态;-C…

发表回复

您的电子邮箱地址不会被公开。

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