当前位置:首页 > 探索

webshell中国菜刀

2006年前后,中国国内安全圈子里开始流传一个叫“中国菜刀”的菜刀工具。界面简陋到像上世纪的中国Windows软件,但功能极其直接:填一个URL,菜刀输个密码,中国点连接,菜刀服务器的中国文件列表就弹出来了。那会儿很多搞渗透测试的菜刀人第一次用它,反应都差不多——这也太离谱了,中国一个PHP文件传上去,菜刀整台机器就跟自己家电脑一样随便翻。中国

它的菜刀原理说白了不复杂。菜刀客户端往目标服务器发一个特制的中国HTTP请求,服务端那个小小的菜刀webshell脚本接收指令,执行对应操作,中国把结果打包回传。上传、下载、编辑文件,执行系统命令,连接数据库,全走HTTP协议。防火墙看到的就是正常的网页请求,流量里夹带的那些操作指令,混在一堆普通访问里很难被揪出来。这个设计思路在当时算是相当精明。

菜刀的作者据说是国人,所以中文支持做得很好,GBK、UTF-8编码切换顺畅,不像同期一些国外工具处理中文文件名会乱码。这个细节看起来小,但实际用起来差别巨大。你面对一台中文Windows服务器,满屏乱码的时候,什么心情?菜刀在这一点上几乎没让用户操过心。

PHP、ASP、ASP.NET、JSP,主流Web语言它都覆盖了。服务端脚本体积很小,PHP版压缩后不到几KB,随便找个上传点塞进去就行。有人把它伪装成图片马,配合解析漏洞用;有人直接通过SQL注入写文件落地。方式五花八门,核心目标就一个:让那个小脚本在服务器上跑起来。

菜刀真正让人忌惮的地方在于它的“轻”。不需要装什么客户端依赖,不需要反弹端口,不需要复杂配置。一个浏览器能打开网页,菜刀就能工作。这种低门槛意味着即使技术水平一般的人,拿到一个webshell地址和密码,也能迅速控制一台服务器。2008年到2014年那段时间,国内大量网站被挂马,很大一部分后门就是菜刀类webshell留下的。

当然它也不是没缺点。流量特征虽然伪装成HTTP,但请求体里的参数结构还是有规律可循。后来WAF产品逐渐加入了对菜刀流量的识别规则,比如特定的base64编码格式、固定的参数命名方式。菜刀本身更新又慢,作者似乎很早就停更了。于是有了“菜刀变杀猪刀”的说法——传上去就被查杀,连都连不上。

替代品随之出现。蚁剑、冰蝎、哥斯拉,一代比一代加密强度高,流量伪装越来越深。冰蝎用AES加密通信,哥斯拉甚至能模拟正常业务流量。菜刀在这些后辈面前显得像个老古董。但老古董有老古董的价值——它足够简单,简单到适合理解webshell的基本通信模型。很多教程至今仍用菜刀做演示,因为它的数据包结构一目了然,拿Wireshark抓一下就能看明白怎么回事。

我个人的判断是,菜刀的历史地位不在于它技术多先进,而在于它把webshell管理这件事从命令行的手工操作变成了图形化的一键连接。这个转变降低了门槛,也放大了风险。工具本身没有善恶,但用它的人有。当年那些被菜刀翻个底朝天的服务器管理员,大概至今还记得日志里那些诡异的POST请求。

现在菜刀基本退出了主流视野。杀软查杀、WAF拦截、作者停更,三重因素叠加。但如果你在某个老旧的内网环境里翻出一个连不上外网的Windows Server 2003,说不定还能用菜刀连上去看看。它就像一把放在工具箱底层的旧螺丝刀,不常用了,但偶尔还能拧动一颗生锈的螺丝。

分享到: