最近在整理安全设备告警日志时,发现一个值得深入分析的案例——某台服务器上出现了可疑的Webshell访问行为。作为安全工程师,这类实战分析不仅能提升威胁检测能力,更能帮助我们理解攻击者的操作模式。今天我就把这个典型场景的完整分析过程记录下来,包含流量特征提取、行为模式还原和防御策略建议三部分。
Webshell作为攻击者维持权限的常用工具,其通信流量往往伪装在正常HTTP请求中。与传统漏洞利用不同,它的危害在于长期潜伏性。通过本次分析,你将掌握:
本次分析使用的原始数据包已做脱敏处理,包含以下关键信息:
提示:实际工作中建议同时收集以下辅助数据
- 对应时间段的系统日志
- 文件完整性监控记录
- 相关主机的进程快照
工欲善其事必先利其器,我的分析工具栈如下:
| 工具类型 | 具体工具 | 用途说明 |
|---|---|---|
| 流量分析 | Wireshark 3.6.1 | 原始流量解析 |
| 日志分析 | ELK Stack | 多维日志关联 |
| 行为沙箱 | REMnux 7 | 样本动态分析 |
| 辅助工具 | CyberChef | 数据解码转换 |
关键配置要点:
http contains "exec" || http contains "system"通过时间线梳理,发现攻击者分三个阶段渗透:
典型的HTTP请求特征:
http复制POST /wp-content/plugins/hello.php HTTP/1.1
Host: victim.com
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
cmd=whoami&token=3d3d516343746f4d
关键识别点:
高级攻击者会采用加密通信,本例中观察到:
解码示例(CyberChef操作):
code复制原始参数:c3lzdGVtKCJpcGNvbmZpZyIp
Base64解码:system("ipconfig")
基于分析结果建议部署以下规则:
yaml复制# Suricata规则示例
alert http any any -> $HOME_NET any (
msg:"Webshell Command Execution";
flow:established,to_server;
content:"cmd="; nocase;
pcre:"/(system|shell_exec|passthru)\s*\(/i";
classtype:web-application-attack;
sid:1000001;
)
bash复制# 监控Web目录文件变化
inotifywait -m -r /var/www/html -e create,modify |
while read path action file; do
echo "$(date) - $action detected on $file" >> /var/log/web_mon.log
done
disable_functions = "exec,passthru,shell_exec"针对新型Webshell的识别方法:
当攻击者删除Webshell文件后,可通过以下方式取证:
bash复制# 获取PHP进程内存
gcore -o /tmp/php_dump <PID>
# 搜索敏感字符串
strings php_dump.<PID> | grep -E 'system\(|exec\('
经过这次分析,有几个关键发现值得分享:
防御层面建议建立三层检测:
最后提醒一个容易忽视的细节:攻击者经常利用网站favicon.ico作为心跳检测标志,建议对此文件设置严格的访问控制