初识免杀对抗

10世界杯决赛

本文是一份面向网络安全新手的 Webshell 免杀对抗入门指南,基于实操实验拆解免杀核心逻辑与落地方法。内容涵盖免杀基础认知(对象、目标、技术分类)、环境搭建(Windows 10 靶机 + 主流杀软)、开源免杀工具(Bypass_Webshell、Webshell_Generate 等)的实操使用,以及静态免杀、动态行为绕过、流量检测规避(Suricata 规则对抗、工具魔改)等关键场景的实验复现。文中整理了免杀所需的开源项目、检测平台、规则库等实用资源,通过真实的测试结果(含成功案例与拦截场景),帮助读者快速理解免杀对抗的核心痛点与应对思路,适合网络安全爱好者、渗透测试入门者系统学习 Webshell 免杀技术。当然也是引用了部分小迪老师笔记内容

免责声明本文所涉及的技术、工具及实验流程,仅用于网络安全学习与研究,旨在帮助读者了解网络安全防护原理,提升安全防御能力。严禁将本文中的技术、工具及相关思路用于任何非法入侵、破坏网络安全、侵犯他人合法权益的行为。使用者需遵守《中华人民共和国网络安全法》《中华人民共和国刑法》等相关法律法规,任何因违规使用造成的法律责任,均由使用者自行承担。所有实验操作均需在授权的测试环境中进行,未经授权的网络渗透行为属于违法行为,作者坚决反对任何形式的网络攻击行为。本文所引用的开源项目、工具及资源,版权归原作者所有,若涉及侵权请联系删除。作者不对第三方工具的安全性、合法性承担任何责任,使用者需自行评估风险并合规使用。本文仅为技术分享,不构成任何形式的安全建议。网络安全是动态对抗过程,相关技术与防护手段会持续迭代,读者需结合实际场景合理应用,谨慎评估风险。0x01前情提要

一、网络安全基础认知了解 Webshell 的核心概念:知道 Webshell 是植入 Web 服务器的恶意脚本(如 PHP/ASPX/JSP),能通过网络远程控制服务器,是渗透测试中的常用工具;清楚 “免杀” 的核心目标:不是让木马 “隐身”,而是绕过杀毒软件、防火墙等安全工具的检测,同时保证其功能正常;认识常见安全防护工具:知道火绒、360 安全卫士、Windows Defender 是终端杀毒软件,WAF(Web 应用防火墙)、EDR(终端检测响应系统)、云沙箱是专业安全设备,各自的核心作用是检测 / 拦截恶意文件、行为或流量。二、操作系统与环境操作基础熟悉 Windows 系统基础操作:会搭建 Windows 10 测试环境(虚拟机安装、文件管理、命令行使用),能安装 / 配置杀毒软件,开启 / 关闭实时防护功能;掌握 Kali Linux 基础使用(流量检测部分):会通过终端执行简单命令(如apt install安装软件、cat查看日志),了解虚拟机网络配置(确保 Kali 与 Windows 靶机处于同一网段);了解 Web 服务器搭建:知道 phpStudy 等工具的用途(快速搭建 Apache+PHP 运行环境),能将文件放入网站根目录,通过浏览器访问测试文件。三、脚本语言与工具基础掌握 PHP 基础语法:能看懂简单 PHP 代码(如变量定义、函数调用、eval()/shell_exec()等命令执行函数),了解 PHP 脚本的运行依赖(需 PHP 解释器、配置文件php.ini等);熟悉常用工具的使用逻辑:知道 GitHub 的基本操作(下载开源项目),会通过命令行启动 Java 工具(如java -jar 工具.jar),了解哥斯拉、冰蝎等 Webshell 管理工具的核心用途(连接并控制 Webshell)。四、核心技术概念认知静态检测与动态检测的区别:知道静态检测是杀毒软件扫描文件特征码(如特定代码片段),动态检测是监控文件运行后的行为(如执行系统命令、反向连接);加密与混淆的基础作用:了解加密(如 Base64)、代码混淆(如随机变量名、冗余代码)是为了破坏文件特征码,让安全工具无法识别;流量特征的基本概念:知道工具通信时会产生特定流量指纹(如冰蝎的 Base64 加密数据),流量检测设备会通过这些特征识别恶意连接。五、实操基础技能会配置测试环境:能独立安装虚拟机(VMware/VirtualBox)、部署 Windows 10 靶机与 Kali 攻击机,配置网络互通;会使用命令行工具:Windows 中能打开 CMD 执行简单命令(如java -version验证环境),Kali 中能执行安装、启动、日志查看等基础命令;会简单排查环境问题:如 Java 工具启动失败时,能判断是否未安装 Java 环境;Webshell 无法访问时,能检查 phpStudy 是否正常运行、文件路径是否正确。

针对于webshell免杀,我们需要了解一些新的免杀工具以及后期在原本的工具上进行更改 ,除了C2的免杀以及后期的银狐什么钓鱼文档表格等等都是免杀的目标,每个对象的免杀技术也略有差异,单独去看每个项目的理论都会存在差异,以及需要了解各大网站的沙箱/安全设备/流量监控等等平台和各种终端杀软都会对我们的免杀存在干扰。所以不同的分类不同的安全防护都不一样这一块的内容相对较多,但是基本上是换汤不换药这里只是小白作者的基础分享谢谢~

本期文章只是为了去了解webshell的免杀分享哦~

我们做免杀不是为了说把木马传递到目标主机上没有杀死就行了就不管了不是这样的,我们后续还有很多的事情要做。

webshell主要看两个层面:

静态

动态以及基于动态不同的查杀平台

查杀平台 / 安全防护工具举例

阿里检测:https://ti.aliyun.com/#/sastiFile

长亭检测:https://rivers.chaitin.cn/webShell

牧云检测:https://stack.chaitin.com/

微步检测:https://s.threatbook.com/

河马检测:https://n.shellpub.com/

默安检测:https://ti.moresec.cn/

VirusTotal:https://www.virustotal.com/gui/home/upload

各类WAF及杀毒:火绒,DF,X60全家桶,卡巴斯基,云沙箱平台,雷池等

以上都是比较知名的安全厂商,以及终端杀软,这些都是webshell的查杀的平台,免杀不仅是杀毒软件,还有以上各种云沙箱等等。做免杀针对不同的目标需要了解不同的技术,需要认识到这些安全机制都是怎么识别出来这种shell的。

查杀的时候有的可能就是看你源码,有的可能就是看你的病毒行为等等。

这里作者仅能浮现出以下几种,windows的DF、火绒、某60,无法实现卡巴和eset,卡巴斯基破解版没有钱买正版的但是官网有免费使用30天的,eset这个感兴趣的话可以根据文章自己去复现这里免了。

PS:主要原因作者电脑性能垃圾带不起来

上面的web的检测平台后期检测分析会用到,杀软检测不出来, 且不清楚是哪个文件出了问题 ,那杀软没有告警的话很大概率就是木马做了隐藏,比较杀软主要还是针对于exe 这类文件的检测能力更强 ,但是针对于webshell会很有难度,但是这种web分析平台针对webshell查杀很强。

早期的杀软针对于这个webshell免杀能力相对较弱,几乎就是在代码层面稍微修改一下就好了,什么php和asp不管,主要是针对的exe针对很多,现在想手搓代码很难,除非诸位的代码基础很好, 很多都是通过工具结合 AI 进行混淆加密处理 ,网上的项目工具按照时间划分很多还是划分不了的,而且在其他大佬开发突然不开发了也就没得用了

开源项目举例:

https://github.com/1276486/ZREBypass

https://github.com/xiaogang000/XG_NTAI

https://github.com/cseroad/Webshell_Generate

https://github.com/hackerxj007/Bypass_Webshell

内部项目举例: PS:就是收费用的人少所以使用免杀期很长一些

https://mp.weixin.qq.com/s/03F08rKA3CRk3AFh4Pewxg

https://mp.weixin.qq.com/s/XZl9UJl7RDoysgTKpsrufg

上面的项目呢就是勉勉强强针对于终端杀软能过几个,但是云沙箱这种的作者感觉悬乎,杀软的如果难度深的也很难,比如卡巴或者DF所以还是需要自己好好学习过一下试试。

内部的就是什么wx公众号或者知识星球的,其实内部和开源区别在于使用人群较少,需要花点小钱99来一下我就免了没钱!!!

0x02实验复现2.1环境准备环境准备的话准备一个windows10就好了, 以下三款杀软的市场占比较高,很强势了还有windows的DF,先去了解主流,剩余的用户群体较少的后面就相对容易。

首先这里使用一句话木马进行测试, 测试火绒是否会直接查杀一句话木马 。

一句话木马的代码 可直接放置在靶机中,且靶机需提前安装火绒安全软件

看到病毒库更新时间明确标注,属于较新版本

然后我们直接把一句话木马丢到靶机里面去插卡一下结果

在上图里面可以看到,火绒直接重拳出击了没得了,哪怕放到什么某60或者卡巴上面也活不了因为现在没有任何的免杀机制在里面的。

2.2项目bypass-webshell项目链接地址1:https://github.com/hackerxj007/Bypass_Webshell

然后直接去使用第一个bypasswebshell创建一个webshell

使用方法:首先在项目的jar文件中打开一个cmd

PS: 项目运行需依赖 Java 环境,未安装的读者需自行下载配置

java链接:https://www.java.com/zh-CN/

然后运行命令 java -jar bypass_webshell.jar就好了

这个使用方法很简单就是选择你的webshell的语言然后去将原本的一句话木马输入进去然后点击编码并且复制结果就好。

然后把输入的结果创建新的webshell就好了,创建完成之后保存,一会有用命名为1.php

2.3项目Webshell_Generate-1.2.6项目链接地址2:https://github.com/cseroad/Webshell_Generate

该项目更新时间较近,但不确定当前是否仍适用 ,如果翻车了也希望各位不要喷我谢谢

下载完之后和之前的使用方法是一样的

使用方法:使用命令:java -jar Webshell_Generate-1.2.6.jar

这个项目是直接把webshell给创建好了,保存在指定路径即可。

生成完之后的后门文件

作者这里是分享了四款,做两个项目就好,不是为了把四个项目都做了,只是分享娱乐。

2.4免杀测试火绒安全查杀测试直接把两个木马丢进去

可以看到没有报毒出来,然后再进行单独的文件检测

很明显两个webshell火绒都没有检测出来问题

2.5免杀测试某60查杀测试一样去两个php文件丢进去就好

360 检测出了第二个文件(2.php),第一个文件(1.php)未被拦截

单独使用360去进行测试的话发现1.php这个文件是安全的

2.6免杀测试windows-DF查杀测试由于DF是检测目录我就将所有的病毒文件都放到一起去玩了

然后我使用windwosDf扫描一下, 测试时需确保实时防护功能已开启 ,DF就会检测你下载的文件

这个的话这暂时是只查杀到了没有任何免杀的一句话木马emmm不排除是不是版本的问题

PS:作者认为应该是和60差不多或者的样子,有各位玩家自己尝试一下看看吧。

后续暂不开展云沙箱相关测试 ,基本上就是过不了的。

但是这个是有前提的就是我们在昨晚之后这个仅限于是静态的免杀,主要是针对于代码层面的,但是后续还需要测试动态的免杀效果,就是动态可以理解我们上传的文件,这个文件会存在什么行为,这个行为是否会危害当前的主机,就是我们不能上传上去就不管了,传马的主要目标是为了进行控制,所以针对于控制层面的对抗也十分重要。

2.7webshell连接以及动态免杀webshell主要就是为了连接上去

然后这里使用phpstudy进行测试

由于 1.php 是基于哥斯拉免杀逻辑生成的,因此使用哥斯拉工具进行连接测试

然后进行访问1.php文件

使用哥斯拉进行测试连接,由于作者是使用的360的靶机进行的渗透, 因此不再测试 2.php(该文件上传后已被 360 拦截) 。使用的是1.php这个文件

然后添加连接进行连接,发现是可以玩耍的。尝试一些敏感操作比如创建一个新的用户或查看用户net user

执行敏感命令

发现这就很尴尬了别人玩网站的时候突然来这个提示。就GG了

这个就是动态行为,我们也需要在动态行为上面也进行免杀。不光是60,其余的安全软件也会有,但是60比较强势

免杀对抗需综合多方面因素,不能仅满足于静态绕过还需考虑连接、操作行为啊等等

尝试简单的突破,网上有很多的早期,但是现在肯定对60来讲是没用的了

方案1:更改命令执行文件名称这个方案的核心不是修改文件本身的功能,而是规避杀软 / EDR 的 “文件名特征” 匹配,具体逻辑如下:

这些系统命令文件的核心功能由其自身的二进制代码决定,仅更改文件名(如将cmd.exe改为cmd_abc.exe、mytool.exe),不会影响其执行命令的核心功能;杀软 / EDR 的行为检测规则中,很大一部分是基于 “文件名” 进行初筛(快速高效),对于改名后的危险文件,其默认的监控规则无法识别该文件名与 “高风险工具” 的关联;当 Webshell 或恶意程序调用改名后的文件执行命令时,杀软 / EDR 无法通过文件名快速触发风险判定,从而实现绕过基础行为检测的目的。需要了解的是net是来源于,这个目录的

早期玩法就是将net 改名为 1.exe 这类不常见名称 或者别的exe名称这样的话在执行的话就是1 user这种命令。

然后尝试使用1.exe user绕过看看。还是GG了还是知道你在搞事情啊。火绒试一下

可以看到火绒确实没有阻止我使用net user查看用户

其实这里两种玩法要不就是硬钢60,但是很难,因为这个玩法就是根据防御机制去想绕过的方案,但是作者为小白玩家免了哈哈,要不然就是换思路换项目去绕过不硬钢了

PS:小迪老师称之为软钢

我们的最终命令是看到这个命令的执行结果

方案二:写脚本这是写脚本实现免杀的核心前提,和方案一(改名)的对抗目标一致,但思路更优:

正如之前所说,cmd.exe、powershell.exe、net.exe等系统可执行文件,早已被杀软 / EDR 列入高风险监控名单,无论是直接调用还是改名后调用,都容易触发检测(尤其是高级防护工具会通过哈希、行为链识别);而 “写脚本”(常见如 PHP、Python、VBScript 等脚本文件)的核心,是不直接调用这些知名危险可执行文件,而是通过脚本语言自身的内置函数、原生 API 来实现相同的功能(如查看目录、执行命令、读写文件等);杀软 / EDR 对脚本语言的原生内置函数,通常没有预设的 “强拦截规则”(脚本函数功能通用,既可以用于合法开发,也可以用于恶意操作,难以一刀切判定风险),因此通过脚本实现恶意操作,能大幅降低被检测到的概率。通过php脚本绕过写一下脚本

小白玩家痛苦时刻代码意思如下:

通过 PHP 的shell_exec()函数执行系统命令net user,并将命令执行结果直接输出到浏览器页面。

各部分作用说明

shell_exec():PHP 的内置函数,用于执行外部系统命令,它会捕获命令执行的完整输出并以字符串形式返回(无输出时返回NULL)。

net user:Windows 系统专属的命令行工具,用于查看、创建、修改本地计算机的用户账户,直接执行该命令会列出当前系统中所有的本地用户账户信息。

echo:将shell_exec()获取到的命令执行结果输出到页面。

我们直接通过浏览器去访问试试

这个文件我们命名成为3.php,然后我们使用浏览器去访问靶机的3.php

很明显60还是强的GG了

查看火绒是什么效果,当然这里为了美观作者把代码稍微修改了一下

这个可以自己找豆包写一个就行无所谓

----

// 执行net user命令并捕获所有输出(含错误)$command = 'net user 2>&1';$output = shell_exec($command);

// 输出结果(无结果时显示错误提示)if ($output === null) {echo "命令执行失败:可能是权限不足或环境不支持\n";} elseif (trim($output) === '') {echo "命令执行成功,但无返回结果\n";} else {echo "系统本地用户列表:\n\n" . $output;}

----

或者我们能不能把net换成我们刚刚更改的文件1.exe呢,这里直接公布结果60不行火绒可以

或者我们更换脚本中的执行函数为system发现火绒也直接弹出了警告。火绒也是开始发力了,60感觉还是可以拦截的。就不浪费时间了

方案三: 是利用 PHP 版本差异这是该方案成立的核心前提,也是其对抗价值所在:

PHP 作为主流之前 Web 脚本语言,存在众多版本迭代(如 5.2、5.6、7.0、7.4、8.0 + 等),不同版本之间不仅有功能新增 / 废弃,还存在函数行为变化、内置特性差异、安全机制迭代;杀软、EDR、WAF 等防护工具的检测规则,大多是基于主流稳定版本(如 7.4、8.0)或大众高频使用版本进行开发和更新的,对于老旧版本(如 5.2、5.6)的特殊特性、新版本尚未普及的隐藏功能,存在明显的适配滞后性;同时,很多防护规则是 “一刀切” 式的(比如针对某函数的恶意使用场景制定拦截规则),并未考虑该函数在不同 PHP 版本中的行为差异,这就给了对抗者可乘之机 —— 利用特定版本的独有特性,绕过通用检测规则这里引用一下别的大佬的文章:https://xz.aliyun.com/news/10385里面有很多的绕过方案,这里不在进行一一展示,只展示其中几个

----

----

将内容更换成为net user查看一下,然后还是在3.php里面修改。

作者还是更改了一下代码

----

// 使用规范的HEREDOC语法(结束标记单独占行)$a=<<< aaassasssasssasssasssasssasssasssasssasssasssassssaa;

// 执行命令并捕获所有输出(含错误)$output = `1.exe user 2>&1`; //如果使用net user火绒会直接拦截

// 输出结果if ($output === null) {echo "命令执行失败:可能是函数被禁用或环境不支持\n";} elseif (trim($output) === '') {echo "命令执行成功,但无返回结果(通常是权限不足)\n";} else {echo "系统本地用户列表:\n\n" . $output;}?>

----

360依然稳定发挥了

测试火绒:依然可以绕过

或者各位小伙伴试试替换成为powershell命令或者将文件的结果输出到一个制定的文件里面去都是可以的,但是我感觉360还是过不去。仅个人观点啊

主要原因就是60可以直接察觉到这个调用cmd或者调用这种exe文件,就是现在考虑的是如何让60不知道调用的问题,小迪老师思路是尝试使用文件包含或者结合其他的漏洞去尝试。

2.8针对流量检测设备绕过在真实环境中不单单就终端杀软,还有很多流量检测比如说你被某某某工具入侵了,这个是因为工具的指纹特性的,也和使用的用户量多少存在一定关系,用户使用多了就很容易被察觉出来。这也是我们需要解决的,webshell工具有很多,哥斯拉、冰蝎、游魂、菜刀、蚁剑等等

这里使用工具suricata进行流量检测,环境需求就是保证kali和windows的靶机在同一个网段即可。

在kali上安装工具

安装:apt install suricata

PS:小伙伴记得把kali的源换一下就好了,考虑到有的小伙伴是懒人版本比如作者所以写了一个sh脚本穿件一个文件随便命名xxx.sh将内容复制然后赋予执行权限执行就好了

----

#!/bin/bash # 声明:该脚本需要root权限运行,用于将Kali Linux软件源替换为国内镜像源 # 支持的镜像源:阿里云、清华大学、中科大(可自行切换) # 检查是否为root用户,非root则退出 if [ "$(id -u)" -ne 0 ]; then echo "错误:请使用root权限运行该脚本(sudo ./replace_kali_sources.sh)" exit 1 fi # 定义软件源配置文件路径和备份文件路径 SOURCES_FILE="/etc/apt/sources.list" BACKUP_FILE="/etc/apt/sources.list.bak.$(date +%Y%m%d%H%M%S)" # 步骤1:备份原有软件源配置文件(带时间戳,避免覆盖旧备份) echo "===== 第一步:备份原有软件源配置文件 =====" if [ -f "$SOURCES_FILE" ]; then cp "$SOURCES_FILE" "$BACKUP_FILE" if [ $? -eq 0 ]; then echo "原有软件源已备份至:$BACKUP_FILE" else echo "错误:备份原有软件源失败,请手动检查文件权限" exit 1 fi else echo "警告:未找到原有软件源配置文件 $SOURCES_FILE,将直接创建新文件" fi # 步骤2:选择国内镜像源(默认使用阿里云,可注释切换其他源) echo -e "\n===== 第二步:写入国内镜像源配置 =====" # 可选镜像源:阿里云(推荐,稳定快速)、清华大学、中科大 cat > "$SOURCES_FILE" << EOF # 阿里云 Kali 镜像源(推荐国内使用) deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib # 清华大学 Kali 镜像源(备用) # deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib # deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib # 中国科学技术大学 Kali 镜像源(备用) # deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib # deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib EOF # 验证写入是否成功 if [ $? -eq 0 ]; then echo "国内镜像源已成功写入 $SOURCES_FILE" else echo "错误:写入镜像源配置失败,请手动检查文件写入权限" exit 1 fi # 步骤3:更新软件源缓存(可选,自动更新,避免用户后续手动操作) echo -e "\n===== 第三步:更新软件源缓存 =====" apt update -y # 判断更新结果 if [ $? -eq 0 ]; then echo -e "\n===== 操作完成!=====" echo "1. 软件源已成功替换为国内阿里云镜像源(如需切换其他源,可编辑 $SOURCES_FILE 取消对应注释)" echo "2. 原有软件源备份至:$BACKUP_FILE" echo "3. 软件源缓存已更新完成,可直接使用 apt install 安装软件" else echo -e "\n===== 软件源缓存更新失败 =====" echo "1. 可能是网络连通性问题,请检查网络是否能访问阿里云镜像源" echo "2. 可手动执行 apt update 再次尝试更新" exit 1 fi

----

监控:suricata -c /etc/suricata/suricata.yaml -i eth0 -s /etc/suricata/rules/Behinder3.rules //调用冰蝎规则库

将文件存到/etc/suricata/rules即可

规则库内容:

alert http any any -> any any (msg: "Behinder3 PHP HTTP Request"; flow: established, to_server; content:".php"; http_uri; pcre:"/[a-zA-Z0-9+/]{1000,}=/i"; flowbits:set,behinder3;noalert; classtype:shellcode-detect; sid: 3016017; rev: 1; metadata:created_at 2020_08_17,by al0ne;)

alert http any any -> any any (msg: "Behinder3 PHP HTTP Response"; flow: established,to_client; content:"200"; http_stat_code; flowbits: isset,behinder3; pcre:"/[a-zA-Z0-9+/]{100,}=/i"; classtype:shellcode-detect; sid: 3016018; rev: 1; metadata:created_at 2020_08_17,by al0ne;)

9. sid: 3016017; rev: 1:规则唯一标识,sid(Signature ID)是规则的唯一编号(不可重复),rev是规则版本号(修改规则时递增)。

10. metadata:created_at 2020_08_17,by al0ne:规则元数据,记录创建时间和作者。

第二段规则:Behinder3 PHP HTTP Response(服务器→客户端 响应检测)plaintext

alert http any any -> any any (msg: "Behinder3 PHP HTTP Response"; flow: established,to_client; content:"200"; http_stat_code; flowbits: isset,behinder3; pcre:"/[a-zA-Z0-9+/]{100,}=/i"; classtype:shellcode-detect; sid: 3016018; rev: 1; metadata:created_at 2020_08_17,by al0ne;)

各字段核心含义(重点区分与第一段的差异):

1. msg: "Behinder3 PHP HTTP Response":规则描述,说明检测到冰蝎 3.0 PHP 版本 HTTP 响应。

2. flow: established,to_client:流量状态过滤,仅匹配「已建立的 TCP 连接」,且仅匹配「服务器返回给客户端」的流量(响应方向)。

3. content:"200"; http_stat_code:内容匹配,在「HTTP 响应状态码」中查找「200」(冰蝎 3.0 后门与客户端通信时,服务器通常返回 200 OK 响应)。

4. flowbits: isset,behinder3:流量标记校验,核心联动逻辑,仅当当前 TCP 流已被第一段规则设置了「behinder3」标记时,才继续匹配后续特征(确保是同一笔恶意通信的响应)。

5. pcre:"/[a-zA-Z0-9+/]{100,}=/i":正则表达式匹配,与第一段类似,但长度要求降低为≥100(冰蝎 3.0 响应端返回的 Base64 加密数据长度通常短于请求端)。

6. 无noalert动作:匹配成功后,会执行alert动作,触发正式告警(日志记录、控制台提示,若配置 IPS 模式还会阻断流量)。

7. sid: 3016018:规则唯一标识,与第一段规则sid不同(每个规则必须有唯一sid)。

----

然后执行开头的命令suricata -c /etc/suricata/suricata.yaml -i eth0 -s /etc/suricata/rules/Behinder3.rules

但是需要确保kali和靶机在同一个网段下

eth0和windows靶机网段信息在同一位置下, 若检测到冰蝎相关流量,会自动将日志信息写入 fast.log 文件

查看:cat /var/log/suricata/fast.log

然后将冰蝎的php后门进行免杀处理还是之前的项目bypass-webshell

然后将文件命名为321.php使用冰蝎连接

冰蝎下载地址:https://github.com/rebeyond/Behinder/releases/tag/Behinder_v3.0_Beta_11

PS作者用的是天狐团队的工具包https://www.one-fox.cn/th/index.html

使用冰蝎自己的webshell进行连接即可

随便进行操作查看

在kali上都是可以被发现存在入侵行为的

随着我操作增加流量记录也会实时增加

流量就显示到了关于windows靶机和我84.1我的宿主机之间的流量

但是我们使用魔改版去尝试一下,作者使用的是银狐安全团队的工具包自己去浏览器一搜就有了哦

再去尝试连接看看会不会被检测到,发现不论我们如何操作流量检测都不会被检测到,因为这个魔改版本中存在一个profile项, 该 profile 功能可模拟正常网络访问的数据包, 该 profile 功能可模拟正常网络访问的数据包(例如模拟用户访问百度等合法网站的数据包特征) ,因此我们在控制webshell的时候由于经过了模拟数据包伪装就可以骗过流量检测设备进行绕过,还有很多别的魔改版本直接隐藏工具的指纹特征。

需要注意这里如果更换工具需要使用魔改版本的webshell,要不然使用之前冰蝎的webshell连接不上

可以看到我不管怎么增加行为流量不会去进行记录。

那除了这个方式之外还有什么别的方式呢,换webshell工具,这个流量检测工具不是检测冰蝎吗,我们换成别的比如菜刀什么的,或者去寻找一些内部版本的webshell工具或者新出来的webshell工具,这里可以看看马头webshell

马头webshell:https://github.com/HeNry4396/Matouwebshell

推荐该工具的原因是,安全软件及流量检测设备尚未收录其大量 Webshell 流量特征 。所以可以更好的绕过检测,而且新工具有更多的扩展性,或者自己有能力的话可以自己去魔改这样的话也可以去绕过流量检测。

后面可能会写魔改的文章一点点提升自己。

PS:小白作者没有能力哈哈

webshell面临的三个问题

1、工具项目: 工具的流量特征被流量检测系统识别

2、工具进行敏感操作: 工具执行敏感操作时,被杀毒软件或安全设备检测并拦截,且触发告警提示

3、木马免杀: 免杀需覆盖静态免杀、云沙箱、防火墙等多类检测设备,需综合运用加密、混淆等技术

0x03全文总结本文是面向网络安全入门者的 Webshell 免杀对抗实操指南,以 “理论铺垫 + 实验复现 + 实战延伸” 为核心逻辑,用通俗化的技术表达,系统拆解免杀技术的落地思路与实操要点,兼具入门指导性与实战参考价值。

简单来说,“Webshell 免杀” 的核心目标,是让 Webshell 这类恶意脚本绕过各类安全防护机制,既能成功植入目标主机,又能正常执行命令、维持控制,且不被检测拦截。文章开篇先明确了免杀的核心对抗对象 —— 不仅包括火绒、360 安全卫士、Windows Defender 等主流终端杀毒软件,还涵盖 EDR、云沙箱、WAF、流量检测设备等专业安全工具;免杀目标则聚焦 Webshell、C2 工具、渗透测试工具等常见场景;同时梳理了静态加密混淆、动态行为规避、源码魔改等核心技术方向,并附上开源项目、检测平台、规则库等实用资源,为新手快速搭建免杀知识框架。

实验部分是全文核心,作者以 Windows 10 系统为靶机,选取市场占有率较高的终端杀软作为检测标的,开展完整实操验证:首先用未做任何免杀处理的 “一句话 PHP 木马” 做测试,结果被火绒直接拦截,印证了基础恶意脚本的易检测性;随后借助Bypass_Webshell和Webshell_Generate两款开源工具,通过加密、混淆等静态免杀手段对原始木马进行处理,生成新的 Webshell 文件;经测试,优化后的文件成功绕过火绒的静态检测,但 360 安全卫士仍能识别部分样本,体现了不同防护工具的检测强度差异。

在此基础上,文章进一步延伸至动态免杀与流量绕过两大实战场景:针对 Webshell 连接后执行敏感操作(如查看系统用户、修改文件)易被拦截的问题,提出三类实操方案 —— 一是更改net.exe等系统危险命令文件的名称,规避杀毒软件对知名风险文件的监控;二是编写自定义脚本,利用 PHP 等脚本语言的原生函数替代系统危险文件,隐藏恶意行为;三是利用不同 PHP 版本在函数权限、配置默认值上的差异,借助防护工具的版本适配滞后性实现绕过。同时客观说明,这三类方案均存在局限性,难以突破 360 等高级防护工具的深度行为检测与云沙箱分析。

针对流量检测拦截问题,作者通过 Suricata 工具演示了冰蝎 Webshell 流量的捕获过程,验证了常规 Webshell 工具的流量特征易被识别的问题;并提出两类绕过思路:一是对工具进行魔改,通过模拟正常网络访问数据包(如开启 profile 功能)伪装恶意流量;二是选用马头 Webshell 等新兴、小众工具,利用安全工具对其流量特征的检测空白实现规避。

最后,文章总结了 Webshell 免杀的三大核心挑战:工具本身的流量特征易被监控、执行敏感操作时易触发防护拦截、需同时适配静态检测、动态分析、流量监控等多类防护场景。整体而言,本文通过贴近实战的实验流程、清晰易懂的技术拆解,帮助新手快速掌握免杀技术的核心逻辑与基础操作,同时明确了免杀对抗的复杂性,为后续深入学习源码魔改、高级动态免杀等技术提供了清晰方向。

0x04引用连接一、开源免杀工具 / 项目链接ZREBypass:https://github.com/1276486/ZREBypassXG_NTAI:https://github.com/xiaogang000/XG_NTAIWebshell_Generate:https://github.com/cseroad/Webshell_GenerateBypass_Webshell:https://github.com/hackerxj007/Bypass_WebshellMatouwebshell(马头 Webshell):https://github.com/HeNry4396/Matouwebshell冰蝎(Behinder)v3.0:https://github.com/rebeyond/Behinder/releases/tag/Behinder_v3.0_Beta_11二、内部项目 / 付费工具参考链接https://mp.weixin.qq.com/s/03F08rKA3CRk3AFh4Pewxghttps://mp.weixin.qq.com/s/XZl9UJl7RDoysgTKpsrufg三、Webshell / 病毒检测平台链接阿里检测:https://ti.aliyun.com/#/sastiFile长亭检测:https://rivers.chaitin.cn/webShell牧云检测:https://stack.chaitin.com/微步检测:https://s.threatbook.com/河马检测:https://n.shellpub.com/默安检测:https://ti.moresec.cn/VirusTotal:https://www.virustotal.com/gui/home/upload四、Suricata 规则库链接al0ne/suricata-rules:https://github.com/al0ne/suricata-rulesptresearch/AttackDetection:https://github.com/ptresearch/AttackDetectionProofpoint--EmergingThreatsOpenRuleset:https://rules.emergingthreats.net/open/Proofpoint--EmergingThreatsProRuleset:https://rules.emergingthreats.net/PRO_download_instructions.htmlOISF--SuricataTrafficID ruleset:https://openinfosecfoundation.org/rules/trafficid/trafficid.rulesPositiveTechnologies--AttackDetectionTeam ruleset:https://raw.githubusercontent.com/ptresearch/AttackDetection/master/pt.rules.tar.gzSecureworks 相关规则集(需联系获取):https://www.secureworks.com/contact/Abuse.ch SSLBlacklist:https://sslbl.abuse.ch/blacklist/sslblacklist.rulesAbuse.ch SuricataJA3FingerprintRuleset:https://sslbl.abuse.ch/blacklist/ja3_fingerprints.rulesEtnetera aggressive IP blacklist:https://security.etnetera.cz/feeds/etn_aggressive.rulestgreen/hunting rules:https://raw.githubusercontent.com/travisbgreen/hunting-rules/master/hunting.rulesmalsilo/win-malware rules:https://malsilo.gitlab.io/feeds/dumps/malsilo.rules.tar.gzStamusNetworks/lateral rules:https://ti.stamus-networks.io/open/stamus-lateral-rules.tar.gz五、其他工具 / 参考链接Java 环境下载:https://www.java.com/zh-CN/PHP 版本差异绕过方案参考:https://xz.aliyun.com/news/10385马头 Webshell Docker 镜像:docker pull henry404/matouwebshell:1.0马头 Webshell 在线管理地址:http://localhost:6324/天狐工具包:https://www.one-fox.cn/th/index.html神奇的南仁:http://www.xiaodi8.com/喜欢这篇分享的话,求求点个关注(・ω・´)~ 若内容存在错误,欢迎交流指正,请勿恶意吐槽,感谢!

求求你了关注一下小白作者~~~~~我是小白玩家~

PS:作者写这一篇用了好几天所以中间在看的时候可能会出现一些时间上存在很大间隔的情况希望理解

不要逼我求你~给我关注啊,你不要逼我啊