前言
在实战渗透中,经常需要上传webshell来完成对目标的权限维持。通过各种方法来构造一个免杀的webshell后门来实现webshell层面的权限维持是大家比较通用的方法,但是除了简单粗暴的写php免杀马,实战中还有一些小技巧值得去学习,毕竟除了要绕过各种waf的防护,还需要绕过“人肉waf“ 管理员的火眼金睛,因此本文将分享一些在web层权限维持常用的方法和技巧。
隐藏webshell
隐藏webshell是web层维持权限的基本方法,但是如果直接写php文件,哪怕是源码免杀,也很容易被管理员发现,因此,利用Apache的解析机制来将webshell源码写入其他非php格式的文件(png、jpeg、.vim、Thumb.db、css、init、.tmp等文件),再配合include、require等函数嵌套使用,基本很难被发现。
.htaccess文件
.htaccess文件是apache服务器的一种目录级别的修改配置的方式,可以用来配置当前目录及其所有子目录,常常被用于访问URL时重写路径;
开启htaccess:
打开apache 配置文件httpd.conf,将LoadModule rewrite_module modules/mod_rewrite.so的注释去掉,
同时确定 AllowOverride的参数若为All:AllowOverride ALL,None表示忽略
.htaccess文件:AllowOverride None,
简单测试方法:就是查看网站根目录下有没有htaccess文件,有的话说明可以使用htaccess文件。
值得注意的是,子目录下的htaccess文件不受父目录的htaccess文件影响,即子目录中的指令会覆盖父目录或者主配置文件中的指令。
SetHandler
SetHandler 指令可以强制所有匹配的文件被一个指定的处理器处理。
SetHandler application/x-httpd-php 将图片马123.jpeg 当做 php 执行
<FilesMatch "123.jpeg">
SetHandler application/x-httpd-php
</FilesMatch>