黑客
登录
客服
网络安全,渗透测试

免杀入门混淆加密方法分析,看这一篇就够了。

日期:2021/5/11 10:48:30

前言

在日常的渗透测试中,我们直接将metaspolit、CS等工具直接生成的恶意程序或代码发送到目标系统时,通常会遇防病毒和入侵检测系统的查杀。这使得我们的程序被拦截或者运行不稳定。有时候IP还会直接被封杀,增加了我们的攻击难度,这篇文章中,将为大家分享一些自己免杀的学习方法论,一些常用的AV和IDS规避技术,可以用于绕过一些安全软件。

编码器

通过一定规律的编码算法,将对metaspolit、CS生成的shellcode进行编码/模糊处理/变形,从原始shellcode中删除所有无效的字符,从而逃避杀毒软件检测。
编码算法
可以使用多种算法对Shellcode进行编码,包括(但不限于):

1、在特定位置添加垃圾字节
2、使用硬编码的单字节密钥对字节进行XOR或者加减法运算
3、将字节移位某些特定位置
4、交换连续字节

或以任何一种或多种技术的复合。

第一种编码

先来一个简单的编码方法,我选择了一个名为加法和减法(ADD,SUB)这是最早的一种加密方式。

77+eb=162 是n = 77是我们加密的密码,原始字节中的的每个字符都与77相加。关于这个加密数,我们需要找从(0-255)个字节中找出一个与代码相加都不是坏字符的数,来作为我们的加密密码。这就需要我们自己去循坏计算,这里不写具体的编成实现代码。

选择它的原因很简单:
这个很容易实现,并且所有初学者都容易理解。最后,我们把解码器放在shellcode之前,每个字都将与指定的字节进行减法运算,最后得到我们的原始的code

第二个编码

在来一个相对复杂一些的,采用多种算法的复合编码。
1、进行NOT操作
2、ADD通过为0x1字节
3、在(0-255)中找一个随机字节,将字节与随机字节进行XOR,并在shellcode默认添加该字节,作为结束标记符
4、在这些字节之间插入随机字节

编写自动化编码工具

构建解码器

第一种方法来写解码器

解码器的内容很简单,解码器的下方是我们的加密后的代码。每次拿出一个字节与77字节相减,将计算结果存入ESI寄存器。

global _start

section .text
_start:
        jmp short call_decoder

        decoder:
        pop esi

        decoder_loop:
        ;在我们shellcode的末尾,同样放置加密字符,当解码到文件末尾的时候,可以直接跳转到shellcode地方执行
        sub byte[esi],77;
        jz shellcode
        inc esi
        jmp short decoder_loop

        call_decoder:
        call decoder

第二中解码方式

首先,我们需要将解码的shellcode放在某个地方,我们使用JMP指令跳转到执行解码器函数的地方,最后使用POP ESI将shellcode地址放在ESI寄存器中间。我们首先要做的就是删除shellcode每个字节中间的随机字节。先来看一下shellcode的规律

A   r   B   r   C   r   D   r   E   r   F   r   G   e
ESI    ESI+2  ESI+4 
EDI EDI+1

ESI寄存器每次加2就是shellcode的位置
EDI加1就是运算后存放的位置

自动化编码过程

首先加密字节应该注意的是,加密字节和加密后的字节都不应该包含坏字符。不是每个字节都手动与指定字节进行运算的。然后处理未编码的shellcode中的每个字节-我创建了一个小的Python脚本,可以帮自动完成这些计算。
在选择加密字节的时候,我们是从0-255中随机便利选择的,这意味着两次对相同的code进行编码可能不会两次产生相同的输出。

测试编码器

我们使用编写器对code进行编码得到

代码

\xeb\x09\x5e\x80\x2e\x9e\x74\x08\x46\xeb\xf8\xe8\xf2\xff\xff\xff\xdf\xe0\xe1\xe2\x9e

通过ollydbg进行调试,code被成功解码

通过msf生成一个一段shellcode,我们对shellcode进行编码加密

使用自动化脚本对shellcode进行加密

检查功能效果

最后通过virScan扫描看一下效果,国内杀软都可以过。

全程录制了个视频,直接上视频来看看这方方法的免杀效果吧。
https://video.kuaishou.com/short-video/3xr4v2423yz48jq
这里只说实现方法,代码准备做以整套的,暂时不公布,有需要的同学,可以联系我

最新教程

最新文章

推荐文章

热门文章

黑客技术 黑客软件 黑客教程 黑客书籍

关于我们 | 免责声明 | 学员守则 | 广告服务 | 联系我们

©2013-2021 xf1433.com 版权所有

本站资源仅供用于学习和交流,请遵循相关法律法规