中国菜刀原理浅分析

作者: 分类: Web 时间: 2016-09-07 评论: 2条评论

看下菜刀的原理,先连接抓包,看看都发生了什么

wireshark.png

从图中可以看到,发了一个包,然后返回结果,我们解析一下request包的具体内容,可以看到,访问一句话木马所在文件,然后传入参数@eval(base64_decode($_POST[z0]));。之后再传入z0和z1的参数,可以发现都是套了base64,我们解一下然后美化一下代码看看:

opendir.png

可以看到,先是用ini_set()set_time_limit()set_magic_quotes_runtime()来分别设置关闭显示错误信息,防止超时和关闭转移符号(This function was DEPRECATED in PHP 5.3.0, and REMOVED as of PHP 7.0.0.)

之后开始打开目录,列目录里所有文件和目录,然后返回。

分别用菜刀连接LinuxWindows系统,打开虚拟终端,分别输入lsdir,然后我们抓包看一下,分别是如下,代码基本相似,就是传入的参数有差别。

linux.png

windows.png

先用dirname()substr()来区别系统(文件路径由'/'开头的是linux系统),然后再用system()来跑命令,后面的2>&1是把错误输出重定向到标准输出。

看下下图,对比一下,可以看到,菜刀是根据->||<-来标记开始和结束的,然后[S][E]之间是对应当前操作目录,其他的都很好理解了。

inWin.png

incaidao.png

以上是对中国菜刀进行简单的抓包分析。

下面我们来看看挂上Shadowsocks代理后会发生什么?

首先随便挂上一个日本的节点,然后开启全局,到ip111.cn查一下确认已经全局代理了。

然后我们先用浏览器访问下网站,再用菜刀连接一句话所在文件。全程抓包:

shadowsocks.png

从图中我们可以看到,用浏览器访问目标网站,全部用TCP来发包,而不是HTTP,通过在目标网站所在服务器上查看日志文件可以发现是用代理的IP来进行访问的。

而用菜刀连接可以看到,依然是HTTP,相当于是直连到目标站点,而不经过Shadowsocks的代理,我们看看下图加了过滤条件,确认只有菜刀会直连。

ss2caidao.png

这其实是最初探究菜刀原理的目的,因为之前一段时间一直使用Shaowsocks在科学上网,也因为便捷,速度快,一般我都是全程挂着的。这次朋友跟我说了这个问题,让我心里拔凉拔凉的,都造的什么孽?还能不能好好的检测了。

之后和朋友两人用了市面上一款叫做绿豆加速器的vpn代理软件来测试,发现挂上代理后,即便用菜刀连接在目标网站所在服务器上的日志里记录的也会变成代理的IP。这促使了我去查阅关于Shadowsocks代理的细节,发现了这篇文章Shadowsocks(Sock5代理)的PAC模式与全局模式与VPN的区别

我的理解是,VPN是把所有网络请求不管三七二十一都套上代理,而Shadowsocks则是使用了Sock5,而只有支持Socks5或者使用系统代理的软件才能使用Shadowsocks。根据上面的测试,菜刀估计是不支持Sock5,所以并没有通过代理,而直接连接到目标网站,因此就出现了在服务器的日志里记录了真实的IP

所以,友情提醒进行友情(hei)检测(chan)的朋友们,慎用代理软件。Shadowsocks用于日常使用速度是一流的,但是用于安全监测可能会有某些坑爹的情况存在。

标签: Hacking

声明:文章基本原创,允许转载,但转载时必须以超链接的形式标明文章原始出处及作者信息。

已有 2 条评论

  1. 上不霸气
    上不霸气

    同样是九年义务教育,为什么师傅那么优秀。

    时间: 2018-07-27 at 09:24 回复

添加新评论