• SEO文章推广! 合作联系qq:122325244 正式全面改版 !免费SEO地址:https://www.seozhan.cn/tool 站长QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏SEO站长博客吧

反混淆神器!CyberChef助你秒解混淆脚本

脚本编程 SEO站长博客 2个月前 (08-13) 174次浏览 已收录 0个评论

一、概述

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 拖进来,成功解密出字符串。

不对啊,怎么解密完还是一堆乱码?别急,注意看 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

使用之前的 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


SEO站长博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:反混淆神器!CyberChef助你秒解混淆脚本
喜欢 (0)
[h4ck3st@126.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址