PHPWebshell免杀

0x01查杀原理

  • 静态特征:字符 语义分析 (混淆)

  • 客户端服务端交互流量日志(流量加密 + 混淆)

  • Opcode rasp技术

  • 机器学习、深度学习算法(像正常php文件)

0x02免杀

字符串变形

ucwords() //函数把字符串中每个单词的首字符转换为大写。
ucfirst() //函数把字符串中的首字符转换为大写。
trim() //函数从字符串的两端删除空白字符和其他预定义字符。
substr_replace() //函数把字符串的一部分替换为另一个字符串
substr() //函数返回字符串的一部分。
strtoupper() //函数把字符串转换为大写。
strtolower() //函数把字符串转换为小写。
strtok() //函数把字符串分割为更小的字符串
base64_encode()  字符串base64编码
base64_decode()     字符串base64解码
urlencode()   字符串url编码
urldecode()   字符串url解码
bin2hex()   把 ASCII 字符的字符串转换为十六进制值。
hex2bin()   把十六进制值的字符串转换为 ASCII 字符。
chr()   从指定的 ASCII 值返回字符。
ord()   返回字符串中第一个字符的 ASCII 值。
explode()   把字符串打散为数组。
implode()   返回由数组元素组合成的字符串。
parse_str() 把查询字符串解析到变量中。
str_ireplace()  替换字符串中的一些字符(对大小写不敏感)。
str_replace()   替换字符串中的一些字符(对大小写敏感)。
str_repeat()    把字符串重复指定的次数。
str_rot13() 对字符串执行 ROT13 编码。
str_shuffle()   随机地打乱字符串中的所有字符。
str_split() 把字符串分割到数组中。
strip_tags()    剥去字符串中的 HTML 和 PHP 标签。
stripos()   返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。
stristr()   查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strlen()    返回字符串的长度。
strpos()    返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。
strrev()    反转字符串。
strripos()  查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。
strrpos()   查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。
strstr()    查找字符串在另一字符串中的第一次出现(对大小写敏感)。

注释

自定义函数

回调函数

特殊字符干扰(\ null ‘’)

数组

类的析构

编码 异或 取反 自增

$GPC

变量覆盖

Php7.1 之后的webshell

进制转换

反序列化

利用文件名

自定义加密

加密混淆工具

Screw phpjm,phpjiami weevely

0x03持久化

不死马

Php while

关闭apache 设置不可写 反不死马脚本

计划任务

At schtask/ crontab

Powershell

最后更新于

这有帮助吗?