1、中国菜刀
(1)2011 版本
中国菜刀是一款 C/S 框架的Webshell 管理工具,它不像传统的 asp 恶意脚本或 php 恶意脚本上传到网站上可以直接打开。它有自己的服务端程序,但是这个服务端程序却极小, 只有一句代码,从而保证了Webshell 的隐蔽性。 作为 Webshell 管理工具的始祖,2011 版本菜刀,已经开始使用 base64 加密进行初步的对抗。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XZkB6DpZ-1612256010721)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)] |
图 1 2011版菜刀
(2)2014 版本
2014 版本菜刀相较于 2011 年版本,除了稳定性以外,对 2011 年版本的 eval,
base64_decode,这两个特征进行了编码,对菜刀流量进行了进一步的隐藏。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CSc0TBdT-1612256010725)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)] |
图 2 2014 版本菜刀
(3)2016 版本
2016 版本菜刀,进一步对绕过流量检测产品做了功课:从请求流量中的字符串拼接, 大小写,到返回包的首尾变换标识符等。可以看到各个 Webshell 管理工具已经开始有针对性地对流量检测产品进行研究和绕过,不再是单纯聚焦在网站的管理上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-glfJIXio-1612256010727)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)] |
图 3 2016 版本菜刀
可以看到所有版本的菜刀都没有改掉用 Base64 加密,并且有首尾字符。当前的检测产品也大多从菜刀的Base64 加密内容以及首尾字符等方面入手。
2、冰蝎
作为老一代 Webshell 连接工具,菜刀的流量特征十分明显,大多数安全设备基本都可以识别其流量。因此目前的菜刀基本都是在安全教学中使用,很少应用于实战中。近年来, 加密Webshell 管理工具逐渐走进攻击者的视野,这类 Webshell 管理工具从连接到各种操作的流量全部都是加密的,可以有效绕过大多数网络流量检测设备。动态二进制加密网站管理客户端“冰蝎”就是其中的佼佼者。
基础版冰蝎拥有5 种语言的网站Webshell。而最具代表性的就是asp,jsp,php 三种版本, 它们具有不同的加密手法和流量行为。
首先是冰蝎的密钥获取过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-296S63EH-1612256010728)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)]
图 4 冰蝎密钥获取过程
获得的 16 位密钥,会被用于解密接下来的数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WHfyuyeS-1612256010730)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)] |
图 5 冰蝎通信流量
随后发出的操作指令均采用加密方式传输。而解密的密钥就是之前协商好的 16 位密钥。将这些流量解密后可以看到 behinder,java 之类的关键字。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8X6bGst1-1612256010731)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg)] |
图 6 冰蝎通信流量解密
随着冰蝎的逐渐流行,不少安全厂商也使用流程检测、流行为分析等方法针对其密钥传输过程,流量行为研发有针对性的检测方法。然而攻防始终是螺旋式上升的过程,既然厂商检测冰蝎用到了流程检测、流行为分析,那么只要稍微改一下流程细节,就能有效绕过检测。目前已知的绕过方式包含修改密钥协商过程,修改密钥长度等方法。
冰蝎加密所用密钥是长度为 16 的随机字符串,小写字母+数字组成。密钥传递阶段, 密钥存在于Response Body 中。
对此,网上已经出现了很多对抗检测的思路:
(1) 删减传递密钥过程,将密钥硬编码在客户端和服务器端。在每次打开冰蝎的时候生成一个密钥,然后生成带密钥硬编码的服务器端;或将密钥存放在某个文件中如(key.ini)由用户自定义,Behinder.jar 去读取 key,服务器端中的密钥让用户手动修改。
(2) 打乱顺序
1) 针对检测整体流程
增加无用步骤,在流量中添加无用请求来干扰检测的每一步检测成功跳到下一步检测的机制。
2) 针对取密钥解密过程
在密钥传输过程中增添无用请求,使检测产品检测不能做出判断到底哪个才是最后一个密钥。重新定义取哪一个密钥,写在参数里或者代码里,让检测产品不知道哪一个是真正的密钥。
3、中国蚁剑
中国蚁剑是一款开源的跨平台网站管理工具,主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
中国蚁剑最大的特点是遵循开源,鼓励共创的原则,所以蚁剑有非常强大的可扩展性, 这也使蚁剑成为了近年来的一匹黑马,同时也让各个安全厂商伤透脑筋。
蚁剑也是加密的巅峰之作之一,基础版本包含了base64,chr,chr16,rot13 加密传输。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tWgoShwQ-1612256010732)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg)] |
图 7 蚁剑通信流量
基础版本如图,其他加密方式之后解密流量相同。
另外蚁剑包含强大的扩展支持。扩展支持包括绕过函数检查之类的功能,攻击者可以通过扩展功能更有效地对抗检测产品。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yobvoBJz-1612256010732)(file:///C:/Users/王重阳/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg)] |
图 8 蚁剑扩展支持
未来的Webshell 管理工具会赋予使用者更多的灵活性,通过自定义扩展插件, 增加各个参数的可变性等进一步隐藏其特征,不断挑战防御者的检测能力。安全厂商也要从双向流量行为特征角度运用人工智能、大数据等方式,不断提高攻击者的技术门槛。