​分析Cknife,一个类似China Chopper的webshell管理工具(第二部分)

阅读量    237560 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

  https://p1.ssl.qhimg.com/t01059ceada379fa93c.jpg

在第一部分中,我们分析了最近的趋势、代码库和探索防御性抑制。第二部分,我们将分析一份由中国程序员编写的webshell。

http://p0.qhimg.com/t01ad9a38263e58fcc8.png

 

  在2016年3月26日,记录未来自然语言处理(NLP)设备发出了Cknife警报。

http://p3.qhimg.com/t015b82fc7c1ca90256.png

 

背景

  记录未来为Cknife记录的时间线显示其第一次出现是在2015年12月。2016年3月下旬因为Cknife发布了官方开源版本,出现次数明显激增。

  

http://p6.qhimg.com/t016b00a95369dde07a.png

  大量中文论坛公布了一份受其启发编写的webshell代码,向 China Chopper表示敬意。

 

  作者是Chora和MelodyZX ,他们称Cknife是对China Chopper时代的怀念,原话是这样的,“这个工具不是为了取代Chinese kitchen knife,它是一个时代的象征,是不可替代的。”

 

  他们俩表示创建Cknife并且不断发展的原因是“我们想让它可以在功能上代替Chinese kitchen knife。Chopper是很方便,但是多年以来也积攒了许多问题。我们提取了它的核心功能,并在其中添加了我们自己多年的行业经验。它是跨平台、基于文件配置的Chinese kitchen knife,用户可以自定义所有操作。”

 

China Chopper历史

  China Chopper是一个巧妙构建的4KB大小的webshell工具,据报告它被用于多个刑事和民族活动中,其中包括美国国防承包商。Webshell工具的第一次公开亮相是在2012年,随后maicaidao[.]com为其标记了来源。

http://p1.qhimg.com/t0181b25dc5e71393db.png

 

  ReversingLabs已经收集到自2013年以来超过250份不一样的China Chopper样本,这就说明了webshell的普及性。

China Chopper — Cknife的相似之处

  大量的图标(PNG文件)的存储位置都是Cknife-master/src/com/ms509/images/,其SHA1哈希值是main.png is 4c805a9064d3d7d230c6241e63db4fcf7a1a1e15。

 

  谷歌搜索main.png图像的结果中包括2013年开始运行的China Chopper中国网站,和最近才开始进入公众视线的Cknife,具体网址是这些:

hxxp://www.wmzhe[.]com/soft-32162.html

•hxxp://www.uzzf[.]com/tags_Hopper.html

•hxxp://www.uzzf[.]com/tags_webshell%B9%DC%C0%ED.html

•hxxp://www.uzzf[.]com/key/hackersoft/

•hxxp://m.uzzf[.]com/u/37342

•hxxp://m.uzzf[.]com/u/60389

 

  China Chopper使用的图标和Cknife有着一样的视觉效果(区别就是更清晰一些),但是它们的加密方式是不同的。

http://p2.qhimg.com/t019b90373b38340019.png

 

SHA1: 4c805a9064d3d7d230c6241e63db4fcf7a1a1e15

http://p9.qhimg.com/t010321f9a4447ce769.png

 

  SHA1: 4ce780088b93a3e6e6592de9de1d2c2f85012b59

http://p6.qhimg.com/t018c1f9ea74f3766e1.png

 

  

http://p1.qhimg.com/t01be010fbdef059877.png

 

  从2013年开始至少有78个不一样的 China Chopper 示例使用这个图标。

 

  有趣的是,两位作者使用的都是同样的webshell图标。Chora 和MelodyZX 可能在看到China Chopper图标之前就已经确定了自己的原始图标,或者也可能是这两位作者本身关系就很好。

 

  China Chopper和Cknife的webshell文件另一个相似之处就是它们都在自己的HTTP POST 响应中使用了特定的 “->|”和“|<-” 字符,不管是Write(“->|”)响应、Write(“|<-”)响应,还是 echo (“->|”)和echo (“|<-”)。

 

  下面这个由ReversingLabs处理的China Chopper图表描绘了2016年3月Cknife开源版本公布之后中文论坛上对其引用的激增。

https://p4.ssl.qhimg.com/t01b29e2de9df9c6c34.png

 

作者——Chora和MelodyZX

  Chora和MelodyZX是两个人的网名,背后是(至少部分是)MS509团队,负责创建和发布 Cknife。

http://p8.qhimg.com/t01cbe715e57471d3c2.png

 

  MS509团队最近受邀出席“中国网络安全讲座2016年年会”,这就意味着他们的研究在中国被默认是合法的。

 

  此外,MelodyZX还是阿里巴巴漏洞披露名单的前50名之一。

http://p0.qhimg.com/t01b5d216cabf554907.png

 

  

https://p3.ssl.qhimg.com/t014e8a1150493ed3b2.png

  在原始的Cknife 论文贴中,Chora声明了Cknife功能和使用示例,并特别说明了webshell是为了绕过网页应用防火墙(WAF)而设计的,可以用于Red Team训练。

 

  然而Cknife很有可能会被恶意使用,因为Chora不可能不知道开源自定义webshell会带来的影响。

 

  Cknife面板菜单也只有中文模式,这或许是因为目标用户只是中文用户。 Chora 和MelodyZX 都不断在中文论坛上更新其发展进程,从这就可以看出他们的目标受众只是中文用户。

 

https://p3.ssl.qhimg.com/t013c7ee5478dceb8a0.png

 

   这里没有关于Cknife的进一步解释,这使得大家难以捉摸作者动机。从MelodyZX以及Cknife目的意图的已知信息中中可以将其比作两个灰帽。

http://p0.qhimg.com/t01b7dca35c07ad5cf9.png

 

http://p2.qhimg.com/t016d0dc1ee2ef5c4a9.png

 

  Chora编写了Cknife的设计和java编码,而MelodyZX使用SQLite创建了数据库架构。

 

Cknife的内部分析

  Cknife是用java编写的,目的是为了跨平台兼容。Cknife还为本机操作系统渲染设置了较旧的 Swing GUI框架。对于java应用程序客户端来说这是个有趣的选择,因为java开发人员普遍认为Swing不易于使用。

 

  一种解释就是从遗留的应用程序中复制一大段Swing代码可以节约作者大量时间。

 

  Cknife的GitHub自述指令包括原始的java归档(JAR)文件托管在百度的链接(下载zip文件需要密码“f65g”)。从最新版本的GitHub来源中建立Cknife会产生Cknife.jar的更新版本。执行 Cknife Java 存档(sudo java -jar Cknife.jar),结果会显示在 Cknife GUI 面板(客户端)中。用鼠标右键单击主面板中的菜单,会出现一个拥有不同皮肤的子菜单,这里可以看出作者有在努力创建一个功能完善、方便使用的webshell管理工具。

  

http://p7.qhimg.com/t01111c746b571a37ad.png

  最后一个通用菜单指向的是对应的端口、用户名、密码和代理类型的代理服务器配置的子菜单。

http://p2.qhimg.com/t01d03ec0082e7eb96b.png

 

  了解Cknife 客户端和 Ubuntu 14.04 webshell之间基本联系的快速办法就是使用和cus.php web shell文件有着相同本地目录的PHP服务器。

 

http://p3.qhimg.com/t0108b91393b8bf9273.png

 

  运行PHP服务器之后,启用 TCPDump 来捕获随后在环回接口上生成的数据包,然后将其保存到一个文件里进行审查。


http://p3.qhimg.com/t0172e6093b21b17d5a.png

 

  接下来使用 Cknife 客户端连接到本地 cus.php webshell中。


http://p3.qhimg.com/t01e4c871d91455fb3b.png

http://p6.qhimg.com/t01fae1c052981ea925.png

 

  在配置连接参数之后,URL的右击菜单中有多国语言选项,用于连接到webshell以及枚举网页服务器上的远程文件、连接到远程数据库,和启动远程shell命令行访问。

http://p1.qhimg.com/t015b6e8b4adcef7388.png

 

  在连接到远程 web shell 文件之后, Cknife 客户端将显示一个10秒的 HTTP 状态代码弹出窗口。额外的测试功能需要在一个拥有综合数据库且功能完整的 web 服务器上启动 web shell文件之后才能使用。

 

  下面是 Cknife Java 客户端和 webshell之间基本连接的1019 字节。

https://p1.ssl.qhimg.com/t0125ac6763c161bf2b.png

 

  Cknife 的用户代理很引人瞩目,因为客户端的 Java 应用程序相对罕见。像大多数 web shell一样,Cknife 使用 Base64 编码的字符串对HTTP POST 数据传输和储存进行模糊处理。

https://p0.ssl.qhimg.com/t0189e34cc0242f47b1.png

 

结论

  Cknife 是中国一个跨平台兼容的 Java webshell框架 ,操作起来更像是针对web 服务器设计的RAT,其原型是China Chopper。

 

  两位作者, Chora和MelodyZX(MS509团队成员) ,他们自己可能认为自己是白帽,但鉴于其开源 Cknife 一定会被黑帽利用,所以可以认定他们是灰帽。

 

  基于作者的自述,Cknife 开发的动机似乎是想要改善China Chopper性能,后者被尊为一个时代的文化标志。

 

原文地址:

https://www.recordedfuture.com/web-shell-analysis-part-2/

 

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多