如何系统排查RCE利用留存的WebShell?

1 人参与

在处置远程代码执行(RCE)漏洞时,修补或升级底层运行时只是切断了后续的入侵路径,无法消除已经落地的持久化威胁。攻击者一旦利用漏洞突破边界,首要动作往往是在系统内植入 WebShell。因此,系统性排查必须超越简单的杀毒扫描,从静态文件、日志审计、运行状态与持久化项四个维度协同推进。

静态文件与特征审查

文件排查的核心在于寻找异常变动与高危语法结构。攻击者常利用应用的可写目录落地脚本,例如上传目录或临时目录。

  • 时间线筛选:优先排查漏洞爆发时间节点前后新增或修改的脚本文件,结合时间戳定位近期变动的脚本。对于涉及 WordPress 等典型应用的环境,重点核查上传路径、插件与主题目录。
  • 内容特征检测:检索包含代码执行与命令调用特征的文件,重点关注使用 eval、system、shell_exec、base64_decode 等危险函数或经由变量函数调用的混淆代码。
  • 敏感配置与深层藏匿:检查配置文件是否被追加恶意代码,核验系统临时目录(如 /tmp、/var/tmp)中是否存在可执行脚本,防止攻击者跨目录伪装落焦。

访问日志与上下文关联分析

WebShell 存活并被利用必然伴随着网络交互。静态排查容易被高度免杀的后门绕过,必须结合访问日志验证可疑路径的调用情况。

通过回溯漏洞曝光前后的 Web 访问日志与错误日志,重点筛查指向非标准应用结构的脚本请求。特别需要注意带有异常 POST 载荷、非常规请求头,或频繁产生解析报错的未知文件路径。如果日志中出现对某个静态资源目录中 PHP 脚本的持续访问,且对应状态码多为成功响应,基本可以判定该路径存在被调用的后门。

进程网络与持久化驻留排查

攻击者留存 WebShell 后,常借此建立反向连接或植入定时任务以维持权限。排查应延伸至系统底层:

  • 网络与进程检测:使用网络检测命令观察 Web 进程(如 PHP-FPM 实例)的网络状态,检查是否存在非预期的对外连接。
  • 定时任务审计:查看系统计划任务列表及相关配置目录,识别是否存在指向临时目录或直接执行下载脚本的未知任务。
  • 应用层状态核对:以 CMS 架构为例,需核对数据库中的活跃插件记录与管理员账户,清理未授权新增的特权账户与未知扩展。

完成全量排查并清除后门文件后,应对核心目录设置严格的写入权限,限制脚本在非必要目录下的解析权限,确保即使有盲区残留也无法被二次激活。

参与讨论

1 条评论
  • 糖豆小熊

    日志回溯这块确实比扫文件管用

    回复