用户登录
个人主页 用户中心 我的订单 添加授权 管理授权
退出登录
用户登录 用户注册
欢迎来到 UC建站系统

网站后门检测全方案从免费手动到全自动云防护四个层级:一句话木马潜伏94天才被发现百度收录了三百多页赌博页面,config.php的base64_decode解码出来就是webshell后门

上个月一个做外贸的朋友来找我,说他网站被黑了。症状是:百度搜索结果里出现了大量"澳门赌场""六合彩"的奇怪页面,但这些页面在他网站后台根本找不到。打开网站正常访问一切正常,但用site命令在搜索引擎里一查,收录了三百多页完全不认识的内容。用FTP连上服务器一看,根目录下多了三个php文件:config.php、cache.php、class-mysql.php,文件修改时间是凌晨三点,文件权限777。打开config.php,第一行是 base64_decode,解码出来是一句话木马 。黑客在三个月前就拿到了webshell权限,一直潜伏着没动,等百度收录了他的黑产页面才开始变现。从被挂后门到被发现,整整过去了94天。

网站后门检测的四个层级,从免费手动到全自动云防护

每往上走一层,漏报率降一个数量级,但成本和运维复杂度也翻一倍

层级代表工具/方案成本漏报率适合谁
本地手动扫描D盾、河马单机版、WebShellKiller¥0约15%-30%偶尔查一次的个人站长、小博客
自动化定期扫描ClamAV + cron + inotify + 自写脚本¥0 + 服务器成本约10%-20%有运维能力的团队、多站点站长
云端安全服务阿里云安全中心、华为云HSS、腾讯云NDR¥600-3000/年约3%-8%云服务器用户、中小型企业站
WAF + 实时阻断阿里云WAF、腾讯云WAF、长亭雷池¥3000-10000/年约1%-5%电商、金融、政企、高价值站点

一、先把后门分成三类,每类的检测手段完全不一样

网站后门不是一个东西,是三种技术形态完全不同、藏匿位置完全不同的恶意程序。用同一种方法去查三种后门,一定会漏掉至少一种。

后门类型典型形态藏在哪里怎么查最有效最容易漏掉的原因
文件型Webshell一句话木马 eval($_POST['pass'])、图片马、混淆加密大马网站目录下,伪装成正常php/asp/jsp文件D盾静态扫描(特征匹配+语法分析)混淆加密后的代码,D盾的特征库可能不识别
内存型后门Java Filter内存马、PHP扩展级后门服务器内存中,磁盘上没有文件河马动态行为分析(进程+内存检测)静态扫描完全无效,因为硬盘上没有恶意文件
系统级后门被替换的系统命令(ps、netstat被替换)、定时任务、SSH公钥、crontab系统目录、启动项、计划任务文件完整性监控(Tripwire / inotify)+ 进程审计Webshell扫描工具不管系统文件,只管网站目录

三种后门的检测逻辑完全不重叠。文件型用D盾,内存型用河马,系统级用Tripwire或inotify监控文件变化。只装了一个D盾就以为"查完了",大概率漏掉了内存马和系统级后门。

二、免费本地扫描工具,D盾和河马搭配用漏报率最低

对于个人站长和中小站点,免费工具已经够用,但前提是两款工具搭配用,不是二选一

D盾 — 静态特征扫描,覆盖面广但怕混淆

检测原理:特征库匹配 + 语法分析。内置数万条webshell特征规则,扫描所有脚本文件(php/asp/jsp/aspx),识别 eval、assert、system、exec、preg_replace /e 等危险函数调用。

优势:免费、扫描快(10万文件约30秒)、Windows一键操作、报告指出可疑代码行号和匹配特征、对已知的一句话木马和常见大马识别率接近95%。

短板:纯静态分析,对混淆加密(base64+gzcompress多层嵌套、自定义加密函数、序列化+spl_autoload_register等)漏报率较高。正常框架代码(如ThinkPHP的缓存文件、Composer生成的autoload)容易被误报。

1 - 网站后门检测全方案从免费手动到全自动云防护四个层级:一句话木马潜伏94天才被发现百度收录了三百多页赌博页面,config.php的base64_decode解码出来就是webshell后门 - UC建站系统

平台:仅Windows(需要Windows环境运行,Linux服务器上的文件需下载到Windows本地扫描)。

下载:d99net.net 官方站点,免费绿色版。

河马 — 动态行为分析,专治混淆和内存马

检测原理:沙箱模拟执行 + 机器学习。在隔离环境中模拟运行PHP/JSP代码,监控是否尝试执行系统命令、外联网络、读写敏感文件。结合AI模型判断行为是否恶意。

优势:对混淆加密后门检测能力强(因为不管你怎么加密,执行时总要解密成恶意行为)、误报率比D盾低、能检测部分内存马、支持Linux和Windows双平台。

短板:扫描速度比D盾慢(需要模拟执行)、资源占用高、对于"沉睡"后门(从未被触发过的webshell)效果不如特征匹配。

价格:单机免费版功能完整,企业版按服务器数量付费。

下载:shellpub.com 官方站点,提供Linux/Windows双版本。

两款工具的组合策略很明确:D盾做初筛——把所有网站文件拖进去跑一遍,标记出所有可疑文件;河马做确认——把D盾报警的文件单独提出来用河马深度分析,剔除误报(框架代码、正常加密业务代码),揪出D盾漏掉的混淆后门。

别在线上服务器上直接跑扫描工具。正确的做法是:先把整个网站目录打包下载到本地或分析虚拟机,在隔离环境里做扫描,确认没有后门之后再覆盖线上。原因有两个:一是扫描工具本身要读取所有文件,对I/O有压力;二是如果后门已经具备自毁或反检测机制,在线上运行扫描可能触发它的反制逻辑。

2 - 网站后门检测全方案从免费手动到全自动云防护四个层级:一句话木马潜伏94天才被发现百度收录了三百多页赌博页面,config.php的base64_decode解码出来就是webshell后门 - UC建站系统

三、Linux服务器上的自动化防线,三件免费工具搭起来不花一分钱

手动扫描的问题是"想起来了才查一次",两次扫描之间可能有几周甚至几个月的空窗期。那个外贸朋友的网站94天才发现后门,就是因为扫描不是定期的。

Linux服务器上可以用三个免费开源工具搭一条自动化检测链:

# 第一条防线:ClamAV 定时扫描网站目录

# 安装
sudo apt install clamav clamav-daemon -y
sudo freshclam # 更新病毒库

# 创建每日扫描脚本 /opt/security/clamav-scan.sh
#!/bin/bash
LOG="/var/log/clamav/daily-scan-$(date +%Y%m%d).log"
clamscan -r -i --max-filesize=50M --max-scansize=50M \
--exclude-dir="^/sys\|^/proc\|^/dev" \
/var/www/html > "$LOG" 2>&1

# 发现可疑文件,发邮件告警
if grep -q "FOUND" "$LOG"; then
mail -s "网站后门告警" admin@xxx.com < "$LOG"
fi

# 加入crontab,每天凌晨3点自动扫描
0 3 * * * /bin/bash /opt/security/clamav-scan.sh

ClamAV是开源免费的杀毒引擎,虽然查杀率比不上商业产品,但它的webshell特征库在持续更新,对常见的eval、assert一句话木马和已知大马有较好的检出能力。作为免费方案的第一道防线足够了。

# 第二条防线:inotify 实时监控网站目录文件变化

# 安装inotify-tools
sudo apt install inotify-tools -y

# 创建监控脚本 /opt/security/inotify-watch.sh
#!/bin/bash
WATCH_DIR="/var/www/html"
inotifywait -m -r -e create,modify,delete,move \
--format '%T %w%f %e' --timefmt '%Y-%m-%d %H:%M:%S' \
"$WATCH_DIR" | while read line; do
echo "$line" >> /var/log/file-monitor.log
# 新创建的文件立即扫描
filepath=$(echo "$line" | awk '{print $3}')
if echo "$line" | grep -q "CREATE"; then
clamscan --no-summary "$filepath" >> /var/log/file-monitor.log 2>&1
fi
done

# 用systemd设为开机自启的服务

inotify的核心价值是实时性——任何新文件写入网站目录的瞬间就会被检测到,ClamAV可以对新文件做即时扫描。ClamAV的每日定时扫描最多延迟24小时,inotify把这个延迟缩短到秒级。

# 第三条防线:检查异常进程和异常网络连接

# 找出监听在非标准端口上的进程
ss -tlnp | grep -v ":22\|:80\|:443\|:3306"

# 找出对外发起可疑连接的进程
netstat -antp | grep ESTABLISHED | grep -v ":80\|:443\|:53\|:3306"

# 检查crontab有没有异常定时任务
crontab -l && cat /etc/crontab && ls /etc/cron.*

# 检查最近24小时内修改过的php文件
find /var/www/html -name "*.php" -mtime -1 -ls

# 检查777权限的文件
find /var/www/html -perm 777 -type f

这三条命令应该是安全巡检的标配。很多系统级后门不会留在网站目录里,而是通过修改crontab定时下载恶意脚本执行,或者在非标准端口上开一个反向shell。文件扫描工具只查网站目录,看不到这些。

四、云端安全服务,六百到三千一年值不值

阿里云、腾讯云、华为云都提供了主机安全产品,内置webshell检测和木马查杀功能。和免费工具比,多了两个核心能力:

能力免费工具做不到的为什么重要
实时阻断+自动隔离发现webshell后不仅告警,还能自动把恶意文件移到隔离区,防止被进一步利用从发现到处置的时间从"人工处理的小时级"缩短到"秒级自动"
云端威胁情报联动和云端海量威胁情报库实时比对,识别出被标记为恶意C2服务器的通信本地工具看不到外联行为的威胁情报上下文,只能看到"有个连接"

四家云厂商的webshell检测能力对比如下:

厂商产品检测技术价格参考适合场景
阿里云云安全中心机器学习引擎+深度检测+自动隔离基础版免费,企业版约¥960/年起阿里云ECS用户,集成度最高
华为云企业主机安全HSS特征匹配+行为分析+AI图像指纹+云查杀基础版免费,企业版按主机数计费华为云用户,反弹Shell检测能力强
腾讯云网络威胁检测NDR流量旁路检测+自研沙箱+TAV引擎+AI按流量带宽计费不需在主机装Agent,旁路检测对业务零干扰
百度云主机安全HOSTEYE全流量镜像+PHP/JSP沙箱+AI神经网络基础版免费百度云用户,沙箱行为分析独特

如果你用的是云服务器,先看云厂商的基础版(免费)能不能覆盖需求。阿里云和华为云的基础版已经包含基本的webshell检测和告警,对个人站长和小企业够用了。企业版的价值在"自动隔离"和"攻击溯源",当你管着10台以上服务器或者网站被黑一次的经济损失超过几千块时,企业版的钱就值得花。

五、WAF是最后一道防线,但别拿它当唯一防线

WAF(Web应用防火墙)的核心作用是在上传阶段就拦截webshell文件,不让恶意文件落到服务器上。阿里云WAF、腾讯云WAF、长亭雷池这些产品能识别上传文件中的恶意代码模式,在请求到达Web服务器之前就拦截掉。

3 - 网站后门检测全方案从免费手动到全自动云防护四个层级:一句话木马潜伏94天才被发现百度收录了三百多页赌博页面,config.php的base64_decode解码出来就是webshell后门 - UC建站系统

但WAF有一个致命的盲区:它只能拦截"从HTTP请求进来的",对于以下场景完全无效——

· 通过SSH、FTP直接上传的webshell(不走HTTP通道,WAF看不到)

· 通过第三方组件漏洞(如phpMyAdmin弱口令、Redis未授权访问)直接写文件

· 供应链攻击(下载的插件/主题/依赖包里预埋了后门)

· 内存马(根本没有文件落地过程,WAF看不到文件上传行为)

正确的安全架构应该是WAF做前置拦截 + 主机安全/定期扫描做后置检测 + 文件完整性监控做实时感知,三层叠加才有纵深防御效果。只装WAF不装主机安全,等于把大门锁了但阳台窗户开着。

六、被挂后门后的六步应急响应,顺序错了等于白干

发现网站被挂后门后,大多数人的第一反应是"赶紧把那个恶意文件删掉"。这个操作在90%的情况下是错的——因为你只删了一个webshell文件,但黑客是怎么把这个文件传上来的漏洞还在。不堵漏洞就清后门,第二天又会被传一个新的。

步骤操作优先级具体做什么
1隔离现场最紧急先不要删任何文件。把网站目录完整备份下来(保留原始时间戳和权限),这是后续溯源的关键证据。如果网站还在被用来发黑产内容,临时关闭对外访问或切换到维护页面。
2全量扫描紧急用D盾+河马组合扫描备份目录,找出所有webshell文件(不止你发现的那一个)。记录下所有可疑文件的路径、创建时间、修改时间。
3排查入侵入口重要看webshell文件的创建时间,去Web服务器访问日志(nginx access.log / apache access.log)里查那个时间点前后15分钟的所有POST请求,定位上传漏洞的URL。常见的入口:文件上传功能未限制类型、编辑器上传漏洞(UEditor/CKEditor旧版)、插件/主题漏洞(WordPress插件未更新)、弱口令爆破。
4清理后门重要删除所有检测出的webshell文件。同时检查系统级的残留:crontab有没有异常任务、/etc/passwd有没有新增用户、SSH authorized_keys有没有被添加、非标准端口有没有监听进程。
5修补漏洞必须做根据步骤3找到的入侵入口,修复对应的漏洞:更新CMS/插件/框架到最新版、限制文件上传类型(白名单机制)、改所有密码(FTP/数据库/后台管理员)、关闭不必要的端口和服务、配置文件权限(网站目录750,文件644,配置文件600)。
6建立持续监控长期部署ClamAV定时扫描 + inotify文件监控 + 异常进程/连接巡检脚本。把扫描结果和告警接入企业微信或钉钉。如果用的是云服务器,开通基础版主机安全。

这六步里最容易跳过的就是第3步和第5步——直接删文件然后以为问题解决了。结果是黑客的webshell被删了,但漏洞还在,第二天换了个文件名又传了一个新的上来。

七、按场景选方案,从零预算到万元年费

你的情况推荐方案年成本理由
个人博客,半年查一次D盾 + 河马 手动扫描¥0免费工具够用,定期下载整站到本地跑一遍
多站点站长,3-5个网站ClamAV + inotify + 巡检脚本¥0自动化免手动,三个免费组件搭一条防线
阿里云/腾讯云ECS用户云安全中心基础版(免费)¥0云厂商原生集成,基础版够用,无需额外部署
企业官网,被黑损失大云安全中心企业版 + WAF¥3000-10000/年实时阻断+自动隔离+攻击溯源,纵深防御
电商/金融/政企WAF + 主机安全 + 渗透测试 + 日志审计¥10000+/年多层防护+合规要求,单点防御不够

网站后门检测这件事,免费方案和付费方案在"能不能查出后门"这个维度上差距不大——D盾加河马的组合搭配,对文件型webshell的检出率已经能做到85%以上。真正拉开差距的是三个东西:扫描频率(手动一年两次 vs 自动化每天一次,发现的时效差了几百倍)、检测范围(只查网站目录 vs 连系统文件、内存、网络连接一起查)、处置速度(发现后人工删除 vs 自动隔离阻断)。不想花钱的,把ClamAV定时扫描和inotify文件监控搭起来,每天自动跑一次,至少不会出现被挂了94天还不知道的情况。

相关推荐
在线客服
👇找客服拿折扣
QQ咨询&售后
在线时间
11:00 ~ 5:30
QQ:3155555535
👇联系QQ
👇联系WX
首页 程序 帮助 登录