WEB

WEB安全

漏洞复现

CTF

常用工具

实战

代码审计

Javaweb

后渗透

内网渗透

免杀

进程注入

权限提升

漏洞复现

靶机

vulnstack

vulnhub

Root-Me

编程语言

java

逆向

PE

逆向学习

HEVD

PWN

CTF

heap

其它

关于博客

面试

杂谈

MYCCL使用方法

最近群里看到一张截图,说是用myccl免杀360,没见过这个想着去了解一下

查了一下发现这个工具很早就有了,通过修改特征码达到免杀

0x01 特征码

个人理解就是文件中的某一串二进制代码,杀毒软件识别到了就会认为这个文件为木马

myccl将00覆盖到文件中,如果此时文件不报毒了说明说明覆盖的地方存在特征码

1
2
3
4
5
6
7
8
9
10
11
12
13
如M为特征码存在在某一段中
aaaaa
aMaaa
aaaaa

myccl将代码覆盖生成三个文件

aaaaa aaaaa aaaaa
----- aMaaa aMaaa
----- ----- aaaaa
不报毒 报毒 报毒

说明特征码在后面两个文件中,继续缩小范围得到特征码,详细的可以用二进制查看的工具就可以知道myccl的工作原理

然后就是继续这个过程得到特征码的准确位置,当然特征码可能有很多个,还有复合型特征码啥的,还是要具体看情况去找。

网上这类教程不多,可能是因为太古老了,在B战找到一个讲的比较详细的

https://www.bilibili.com/video/BV1ia4y1v7nd?from=search&seid=7992726858703873504

0x02 免杀实践

杀软用火绒,被杀的文件为nc

需要用到的工具有myccl和C32asm

为啥不用360呢..360每个文件都会丢到云上扫描,myccl出来的文件一般都是很多的(和文件大小有关),真的可以扫一年,有耐心的师傅可以尝试一下

起始位置可以自己定,也可以不用管就用默认的,数量选选100就好了,长度会自动算好的,点一下生成,会在被选中的文件同目录下生成OUTPUT文件夹

第一段0000是文件的序号,第二段是文件开始的位置,第三段是单位长度

第二个文件是0001,这里应该是文件名排序的问题,E0+17F就是第二个文件的开始

接下来对文件夹杀毒,然后把扫出有毒的文件删除,点击二次处理,提示找到特征码是否继续,点击yes

再次扫描文件夹发现没有报毒文件,点击二次处理,会给出一个特征码分布示意图,这个不用管

继续扫描文件夹,发现没有报毒

点击特征区间

右键复合定位此处特征码

可以看到缩小了特征码的范围,这里的数量也是可以改的,继续改成100重复之前的操作

生成->扫描文件夹->删除报毒文件->二次处理->发现没有报毒->复合定位特征码

现在范围已经确定在两个字节内了可以不用在继续缩小范围

用C32asm打开文件

将nc拖入然后以十六进制打开文件,找到00006678的位置,后面的两个字节就是特征码

可以看到是一个中括号和一个换行符,这个一看就是nc打印出来的那些内容,修改一下应该不会使程序不能用,把中括号修改一下,随便换个符号

修改好后另存为一下,看看这个修改后的文件能不能使用

是可以正常使用的,help界面的输出被修改了,最后再看一下能不能免杀

是可以免杀的

0x03 总结

这个方法还是有挺多局限的,视频中是通过修改汇编语言的,nc是通过修改输出文本的,PE的格式也不是很了解,所以解释不清楚,要是碰到特征码在不可修改的地方就比较麻烦(当然也可能是因为水平不够)

这个方法只能针对特定杀软,因为不同杀软直接特征码可能不一样

至于为什么用nc,就是因为尝试cs的木马发现特征码在一个函数名里面,不知道怎么修改,也有可能不能修改,所以用nc来实验,不管怎么说也是多学一种方法了