29
2018
10

PHP小记:利用 PHAR 完成 PHP webshell 静态免杀

      最近看到某位前辈在玩PHAR,由于其文件构造的特殊性,认为其可以利用起来做PHP WEBSHELL的免杀。

     借用一段话“PHAR (“Php ARchive”) 是PHP里类似于JAR的一种打包文件。如果你使用的是 PHP 5.3 或更高版本,那么Phar后缀文件是默认开启支持的,你不需要任何其他的安装就可以使用它。

直接上代码:

<?php
$path='demo.phar';   //生成的Phar包名
$phar=new Phar($path);
$phar->buildFromDirectory('phar');  //要打包成Phar的目录名
$phar->setStub(Phar::createDefaultStub('index.php','./index.php'));
//createDefailtStub方法  第一参为cli命令行的默认目录,第二参为浏览器的默认目录
$phar->compressFiles(Phar::GZ);  //生成文件
?>

这部分代码将一个目录打包成一个phar包文件。

见目录:

图片.png

其上述第一个index.php 是demo.php被解析后访问的默认文件。这一处是由上述createDefaultStub方法设定的。同时对应的webshell脚本也写在其中,当然也可以指定/引用 ‘phar’目录其他的php文件,如果你写了的话。

生成的Phar文件改成php格式后可以在浏览器中解析。如下:

图片.png

访问对应 ./demo.php 之后会跳转到之前设定的默认文件 index.php上。直接以./index.php路径作为webshell路径。直接打开这种改过之后的php文件,是无法打开的。

图片.png

但可以作为webshell:

图片.png

暂时没去深入作为动态免杀的方法,后续尝试..

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。