Ubuntu Tomcat日志识别攻击行为的实用指南
一 日志位置与关键文件
二 快速排查命令与示例
tail -f /var/log/tomcat9/catalina.outgrep -i "ERROR\|Exception" /var/log/tomcat9/catalina.outawk '/ERROR/ {count++} END {print "ERROR count:", count}' /var/log/tomcat9/catalina.outawk '{ip[$1]++;} END {for(i in ip) if(ip[i]>100) print i, ip[i]}' /opt/tomcat9/logs/localhost_access_log.* | sort -nrk2grep -iE "nmap|sqlmap|burp|python-requests|curl|scanner" /opt/tomcat9/logs/localhost_access_log.*grep -Ei "\.(jsp|jspx|war|zip|bak|old)$|/manager/html|/host-manager|/jmx-console|/axis2|/solr|/struts|/shell|\.env|\.git" /opt/tomcat9/logs/localhost_access_log.*grep -i "multipart/form-data" /opt/tomcat9/logs/localhost_access_log.*grep -E "/manager/html|/host-manager" /opt/tomomcat9/logs/localhost_access_log.* | awk '{code[$9]++;} END {for(c in code) print c, code[c]}'stat 查看时间戳,回到访问日志按分钟级检索同 IP 的相邻请求,还原攻击链。三 常见攻击在日志中的特征与排查要点
| 攻击类型 | 日志特征关键词或模式 | 排查要点 |
|---|---|---|
| 目录遍历/敏感文件读取 | 大量 …/、/etc/passwd、.git/、.env、.bak 等 | 关注 200/206 与 404 的比例,结合 UA 与来源 IP 聚类 |
| SQL 注入 | 参数含 '、"、UNION、SELECT、INSERT、–、%27 等 | 观察 5xx/4xx 异常波动与相似参数反复尝试 |
| XSS/命令注入 | 参数含 、onerror=、;、** | 、$()、%3C** 等 |
| 文件上传漏洞 | multipart/form-data、异常扩展名 .jsp/.jspx/.war/.php | 即使 200,也要核对上传目录与落盘文件 |
| WebShell 后门访问 | 访问 .jsp/.jspx 后门、含 cmd、shell、exec、eval 等 | 结合文件时间戳与访问日志定位首次落地与后续利用 |
| 管理接口探测/暴力 | /manager/html、/host-manager、401/403 高频 | 若同 IP 多次尝试,结合防火墙/安全组封禁 |
| 框架漏洞利用 | /struts、/showcase.action、/doUpload.action 等 | 关注异常 200 与后续可疑文件写入 |
| CSRF 可疑线索 | Referer 来自外部站点、同参数重复提交 | 与业务正常参数对比,确认是否为诱导提交 |
| DDoS/暴力扫描 | 同一 IP 短时间高并发、状态码异常集中 | 统计每分钟请求数与失败率,联动限流/封禁 |
| 反序列化/未授权访问 | JMX、AJP 异常访问、异常堆栈 | 核对是否启用 AJP/未授权 JMX,必要时关闭或加固 |
| 以上特征需结合多日志源与上下文验证,避免误报。 |
四 集中化分析与告警
五 处置与加固建议