如何通过排查日志痕迹判断服务器是否被攻击?
美国、香港服务器
如何通过排查日志痕迹判断服务器是否被攻击?
12-15 来源:
通过排查日志痕迹判断服务器是否被攻击,核心是定位日志中的异常行为特征,不同类型的攻击会在系统日志、应用日志中留下不同的痕迹。以下是分日志类型的排查方法,覆盖 Linux/Windows 系统及常见攻击场景:
一、 核心日志文件位置(先找对日志)
不同系统和服务的日志存储路径不同,先明确关键日志的位置:
系统 / 服务类型 日志文件路径 核心作用
Linux 系统登录日志(SSH) CentOS:/var/log/secure
Ubuntu/Debian:/var/log/auth.log 记录 SSH 登录成功 / 失败、用户权限变更、账户新增等行为
Linux 系统通用日志 /var/log/messages 记录系统启动、进程启停、内核事件等全局信息
Linux Web 服务日志(Nginx) /var/log/nginx/access.log(访问日志)
/var/log/nginx/error.log(错误日志) 记录所有 Web 请求的来源、路径、参数、状态码
Linux Web 服务日志(Apache) Ubuntu:/var/log/apache2/access.log
CentOS:/var/log/httpd/access_log 同上
Windows 系统安全日志 事件查看器 → Windows 日志 → 安全 记录登录行为、账户管理、权限变更等安全相关事件
Windows IIS 日志 C:\inetpub\logs\LogFiles 记录 IIS 接收的 Web 请求信息
二、 按攻击类型排查日志痕迹
1. 暴力破解攻击(SSH/RDP)—— 重点查登录日志
这是最常见的攻击类型,日志中会出现大量来自不同 IP 的登录尝试。
Linux SSH 暴力破解查看 /var/log/secure 或 /var/log/auth.log,搜索关键词:
bash
运行
grep "Failed password" /var/log/secure
异常特征:短时间内出现大量 Failed password for root from xxx.xxx.xxx.xxx port xxx ssh2 记录,且来源 IP 分散(可能是境外 IP);
危险信号:出现 Accepted password for root from xxx.xxx.xxx.xxx port xxx ssh2 记录(非管理员操作),说明暴力破解成功,服务器已被入侵。
补充:用 lastb 命令可直接查看所有登录失败记录,last 命令查看成功登录记录,快速定位异常 IP。
Windows RDP 暴力破解打开 事件查看器 → Windows 日志 → 安全,筛选事件 ID:
事件 ID 4625:登录失败,若短时间内大量出现(同一账户或不同账户),即为暴力破解;
事件 ID 4624:登录成功,查看登录账户、源 IP 是否为授权用户;
事件 ID 4720:新增用户,若出现未知账户,说明攻击者创建了后门账户。
2. Web 攻击(SQL 注入 / XSS / 后台爆破)—— 重点查 Web 访问日志
Web 应用是攻击的重灾区,攻击痕迹会直接体现在请求参数中。
排查 SQL 注入攻击查看 Nginx/Apache 的 access.log,搜索以下恶意关键词:
bash
运行
grep -E "union select|and 1=1|or "a"="a|sleep\(|benchmark\(" /var/log/nginx/access.log
异常特征:请求 URL 或参数中包含 union select and 1=1 or 1=1 等 SQL 语句片段,例如:
plaintext
192.168.1.100 - - [10/Oct/2024:10:00:00 +0800] "GET /index.php?id=1 union select 1,2,3 from users HTTP/1.1" 200 1234
这类请求是攻击者尝试获取数据库数据,若返回状态码为 200(成功),说明应用存在 SQL 注入漏洞。
排查 XSS 跨站脚本攻击在 Web 访问日志中搜索恶意脚本关键词:
bash
运行
grep -E "|alert\(|javascript:|onload=" /var/log/nginx/access.log
异常特征:请求参数中包含 alert("xss") 等恶意代码,攻击者尝试在网页中植入脚本窃取用户信息。
排查后台爆破攻击搜索日志中访问后台路径的请求(如 /admin /login.php /phpmyadmin):
bash
运行
grep -E "/admin|/login|/phpmyadmin" /var/log/nginx/access.log
异常特征:短时间内同一 IP 多次访问后台登录页面,且请求参数中包含不同的用户名 / 密码组合,状态码多为 401(未授权)或 200(登录成功)。
3. 服务器被入侵(后门 / 木马)—— 重点查系统日志 + 文件修改痕迹
攻击者成功入侵后,会留下后门或植入恶意程序,日志中会出现以下异常:
Linux 系统异常
账户异常:在 /var/log/secure 中搜索 useradd usermod 关键词,查看是否有未知账户被创建或提权:
bash
运行
grep "useradd" /var/log/secure
定时任务后门:查看 /var/log/cron 日志,搜索是否有未知定时任务被添加(攻击者常用 cron 实现木马自启动):
bash
运行
grep "CRON" /var/log/cron
关键文件修改:检查 /etc/passwd /etc/shadow /root/.ssh/authorized_keys 的修改时间,若日志中出现这些文件的异常写入记录,说明攻击者篡改了账户或 SSH 密钥。
Windows 系统异常
服务异常:在事件查看器的系统日志中,搜索事件 ID 7045(新增服务),若出现未知服务(如服务名称随机、描述为空),可能是木马服务;
注册表修改:查看事件 ID 4657(注册表值修改),若攻击者修改了远程桌面端口、自启动项等注册表项,会留下记录。
4. DDoS/CC 攻击 —— 重点查流量与请求频率
DDoS/CC 攻击会产生大量请求,日志中体现为请求量暴增 + 来源 IP 分散。
Linux 排查方法
统计 Web 访问日志中不同 IP 的请求次数,找出请求量异常的 IP:
bash
运行
awk "{print $1}" /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
若某 IP 的请求次数远超正常水平(如上万次),即为 CC 攻击源;
查看日志中是否有大量相同的请求路径(如 /api /index.php),且请求时间集中,这是 CC 攻击的典型特征。
云服务器补充结合云平台控制台的网络监控(如阿里云的 “云监控”、腾讯云的 “流量监控”),若日志请求量与控制台的带宽 / 包量峰值同步,即可确认是 DDoS/CC 攻击。
三、 日志排查的关键技巧
按时间范围筛选:攻击通常是短时间内的行为,可按时间戳过滤日志,例如查看近 1 小时的 SSH 登录日志:
bash
运行
grep "Oct 10 10:.*Failed password" /var/log/secure
关注异常状态码:Web 日志中 404(访问不存在的路径)、403(权限拒绝)、500(服务器内部错误)的大量出现,可能是攻击者在扫描漏洞;
结合工具分析:
Linux 可用 awk grep sed 等命令快速过滤日志;
复杂场景可使用 ELK Stack、Graylog 等日志分析平台,实现可视化查询和告警;
Windows 可使用 Log Parser 工具,按条件筛选事件日志。
四、 日志排查的验证步骤
发现异常日志后,先确认该行为是否为正常业务操作(如管理员登录、测试请求);
若为异常行为,记录攻击 IP、时间、攻击类型,然后在安全组中拉黑该 IP;
检查对应时间段的系统资源(CPU / 内存 / 带宽),确认日志异常与资源异常是否同步,避免误判。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快