热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

秒解混淆脚本!反混淆神器CyberChef使用指南

CyberChef是一款强大的编码转换器,集成了多种编码转换的功能,能辅助大家方便快捷地解密出恶意脚本。概述CyberChef是一款强大的编码转换器&

CyberChef是一款强大的编码转换器,集成了多种编码转换的功能,能辅助大家方便快捷地解密出恶意脚本。

概述

CyberChef是一款强大的编码转换器,地址在:https://gchq.github.io/CyberChef/

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

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

实战演练

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

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,后面遇到相似的混淆脚本就能使用该规则进行解密。

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

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


推荐阅读
  • 在写每日签到的时候,我居然使用的是本地时间被项目经理笑哭了。。。。,如果你在写单机游戏,没有游戏服务器,但又不想使用本地时间,就可以采用下面方法.方法总结:     1.使用 ... [详细]
  • 互联网世界 9 种基本的商业模式
    互联网世界9种基本的商业模式一个商业模式是运行一个公司的方法;通过该模式的运作,一个公司能维持自己的生存,就是说,能有收益。商业模式意味着一个公司是如何通过在价值链中定位自己,从而获 ... [详细]
  • Damus 体验教程分享:功能和用户体验如何?
    Damus是一个基于去中心化社交协议Nostr的、允许用户控制的社交网络,支持加密消息传递、比特币闪电小费等功能,但当前Damus尚处于早期阶段,很多功能亟待完善和优 ... [详细]
  • 最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现s ... [详细]
  • 配 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Go 中的 init 函数 ... [详细]
  • 开发笔记:js正则表达式属性及方法的使用
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了js正则表达式属性及方法的使用相关的知识,希望对你有一定的参考价值。正则表达式直接量 ... [详细]
  • linux系统中涉及内核参数的命令和文件分别为命令:sysctl文件:etcsysctl.conf、子目录etcsysctl.d常规操作我们不同的配置 ... [详细]
  • 726:ROADS726:ROADS总时间限制:1000ms内存限制:65536kB描述Ncitiesnamedwithnumbers1Nareconnectedwithon ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
author-avatar
cshaadi_915
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有