服务器被入侵挂马排查与修复实录:history_check系统后门及LD_PRELOAD恶意Hook清除全过程

5

服务器被入侵挂马排查与修复实录

关键词:服务器被入侵、网站挂马排查、history_check后门、LD_PRELOAD恶意Hook、WebShell清理、系统安全加固

一、事件背景:搜索引擎异常收录暴露挂马痕迹

近期通过搜索引擎 site:你的域名 发现站点标题与描述中出现博彩类异常内容,怀疑服务器已被入侵挂马。该服务器运行多个网站并使用宝塔面板管理。由于入侵痕迹可能被刻意隐藏,需从系统层到Web层进行全方位深度排查。

二、用户层与登录审计:发现日志被清空

首先检查系统用户与登录记录,确认是否存在新增账户或异常登录。

cat /etc/passwd | grep "/bin/bash"
awk -F: '$3 >= 1000 {print $1, $3, $6}' /etc/passwd

结果显示拥有bash权限的用户仅有 rootubuntu,UID正常,未发现新增用户。但检查登录日志时发现严重异常:

lastlog
last

所有用户均显示 Never logged in,且 wtmp 日志从4月26日才开始记录。这说明 /var/log/lastlog/var/log/btmp 已被清空,是典型的入侵后擦除痕迹行为。

三、定位系统级后门:history_check进程

检查进程时发现名为 history_check 的异常进程正在运行:

ps aux | grep history_check

该程序位于 /usr/local/bin/history_check,为ELF静态链接可执行文件,大小达11MB,创建时间为 2026年4月3日01:18。同时发现其注册了systemd服务:

/etc/systemd/system/history_check.service

服务配置显示其以 root 身份运行,设置为开机自启且崩溃后自动重启。auth.log中实时记录着我执行的每一条命令:

history_check[41345]: [HISTORY_CHECK] user="root" cmd="grep ..."

这是一个命令监控后门,入侵者通过它实时窃取服务器上的所有操作指令。

四、更深层威胁:LD_PRELOAD恶意Hook

检查系统环境时发现了更底层的攻击手段:

cat /etc/ld.so.preload

该文件指向 /usr/local/lib/libsnoopy_history.so。这是一个通过LD_PRELOAD机制加载的恶意共享库,会拦截系统中所有进程的命令执行,比systemd服务更隐蔽、更底层。即使删除history_check可执行文件,此Hook仍在工作。

五、入侵路径分析:通过Web漏洞进入

auth.log中未发现任何SSH成功登录记录,说明入侵者并非通过SSH进入。综合判断,入侵者最可能是通过Web应用漏洞(如CMS插件漏洞、文件上传漏洞)获得初始权限,随后利用网站进程权限上传后门并提权至root,最终植入history_check系统监控后门与LD_PRELOAD恶意库。

六、WebShell清理:[你的域名]站点

在网站层面通过关键词扫描发现 [你的域名] 目录下存在多个可疑PHP文件:

  • application/admin/controller/Wang.php

  • application/index/controller/Alipayma.php

  • application/index/controller/Sq.php

其中Wang.php包含经典的 eval(base64_decode(...)) 结构,属于一句话木马变种,入侵者可通过浏览器直接执行任意系统命令。确认后立即删除:

rm -f /www/wwwroot/[你的站点]/application/admin/controller/Wang.php
rm -f /www/wwwroot/[你的站点]/application/index/controller/Alipayma.php
rm -f /www/wwwroot/[你的站点]/application/index/controller/Sq.php

七、完整修复流程

按以下顺序完成系统级清理:

  1. 停止并禁用history_check服务:systemctl stop history_check; systemctl disable history_check

  2. 删除恶意可执行文件:rm -f /usr/local/bin/history_check

  3. 清空LD_PRELOAD配置:> /etc/ld.so.preload

  4. 删除恶意共享库:rm -f /usr/local/lib/libsnoopy_history.so

  5. 删除systemd服务文件并重新加载:rm -f /etc/systemd/system/history_check.service; systemctl daemon-reload

  6. 删除宝塔目录下残留的恶意插件文件:rm -rf /www/server/panel/plugin/linuxsys/

  7. 重启服务器,确保所有已加载的恶意库被彻底清除

八、最终深度扫描验证

修复完成后执行全维度深度扫描,结果如下:

  • 系统Hook:ld.so.preload 已清空,/usr/local/lib 无恶意库残留

  • 进程与服务:history_checksnoopy 相关进程与服务

  • 用户账户:无新增用户,SSH密钥目录为空

  • 计划任务:无异常crontab

  • 网络端口:仅开放80、443、3306(本地)、888(本地)、6379(本地)及业务端口,无异常外连

  • WebShell扫描:全站 eval+base64 组合未检出,一句话木马特征检出的均为正常CMS插件文件

  • 临时目录:/tmp/var/tmp/dev/shm 无异常后门文件

  • 宝塔面板:无恶意插件,近期登录IP均为正常

  • 网站首页:各站点标题与SEO信息正常,模拟搜索引擎蜘蛛UA返回内容无博彩信息

九、安全加固与防御建议

清理完成后必须进行以下加固,防止再次入侵:

  • 修改宝塔面板密码:使用16位以上强密码(大小写+数字+符号),定期更换

  • 绑定面板访问IP:在宝塔安全设置中绑定固定公网IP,禁止其他地址访问面板

  • 修改服务器root密码:通过 passwd 命令更新

  • 修改所有网站后台密码:包括Zblog、AnqiCMS及各站点数据库密码

  • 更新软件:将宝塔面板、Nginx、PHP、MySQL等组件升级至最新版

  • 开启防火墙:仅放行80、443、22端口,关闭不必要的端口暴露

  • 定期自查:每周执行 cat /etc/ld.so.preload 与全站WebShell扫描

  • 搜索引擎监控:定期搜索 site:你的域名 检查是否有异常标题,如有则说明数据库曾被篡改

十、总结

本次入侵事件从4月3日持续至5月初,入侵者通过Web漏洞获得初始权限,随后提权并植入history_check系统监控后门与LD_PRELOAD级命令Hook,同时在网站目录植入WebShell。整个排查过程覆盖了用户层、系统层、服务层与Web层,最终通过删除恶意文件、清空Hook配置、重启系统完成清理,并经深度扫描确认服务器已彻底恢复安全。

服务器安全的核心在于最小权限暴露强密码策略。面板类管理工具务必限制访问IP并定期更新,CMS插件应及时修补漏洞,避免成为攻击者的入口。

网友评论

访客信息

你已经3分钟没有访问该网站

这些可能是你需要的内容: