如何排查服务器是否有被黑客入侵的迹象?

排查服务器是否被黑客入侵是系统维护的重要工作。以下是详细的排查步骤,通过分析日志、检查用户、进程、网络连接等多个方面来判断服务器是否存在被入侵的迹象。


一、入侵的常见迹象

在开始排查之前,以下是一些常见的入侵迹象,若发现这些情况,需要进一步深入检查:

  1. 服务器性能异常

    • CPU、内存或磁盘使用率异常升高。
    • 系统变慢或卡顿。
  2. 异常登录活动

    • 出现未知 IP 地址的登录。
    • 登录失败次数激增。
    • 在非正常时间有登录记录。
  3. 文件被篡改或新增未知文件

    • 系统关键文件(如 /etc/passwd/etc/shadow)被修改。
    • 系统目录中出现未知脚本或文件(如 /tmp/var/tmp/dev/shm 等)。
  4. 异常网络流量

    • 服务器流量激增。
    • 打开了未知端口。
    • 持续对外连接可疑 IP。
  5. 日志异常

    • 系统日志被清空。
    • 日志中有异常登录或操作记录。
  6. 可疑进程或后门

    • 系统中运行未知的高权限进程。
    • 有伪装成正常服务的恶意程序。

二、详细排查步骤

1. 检查登录记录

黑客通常会通过 SSH 或其他远程方式登录服务器,检查登录记录可以发现异常活动。

查看登录历史
  • 查看最近登录的用户: bash

    复制

    last
    
  • 检查系统中是否有异常的远程登录 IP 或非正常时间的登录。

查看登录失败记录
  • 检查 SSH 登录失败的情况: bash

    复制

    grep "Failed password" /var/log/secure
    

    或:

    bash

    复制

    grep "Failed password" /var/log/auth.log
    
检查成功登录记录
  • 查看成功的 SSH 登录记录: bash

    复制

    grep "Accepted password" /var/log/secure
    

    或:

    bash

    复制

    grep "Accepted password" /var/log/auth.log
    
重点关注
  • 是否有来自未知 IP 的登录。
  • 是否有大量失败登录尝试,可能是暴力破解攻击的迹象。

2. 检查用户账户

黑客可能会创建新的账户以保持对系统的访问。

列出所有用户

bash

复制

cat /etc/passwd
查找具有 root 权限的用户

bash

复制

awk -F: '($3 == 0) {print}' /etc/passwd
检查用户组文件

bash

复制

cat /etc/group
重点关注
  • 是否有新增的未知用户。
  • 普通用户是否被赋予了 root 权限。

3. 检查系统日志

日志文件可以记录服务器的活动,但黑客可能会清空或篡改日志,因此要仔细检查。

查看系统日志
  • CentOS: bash

    复制

    cat /var/log/messages
    
  • Ubuntu: bash

    复制

    cat /var/log/syslog
    
检查 SSH 日志
  • CentOS: bash

    复制

    cat /var/log/secure
    
  • Ubuntu: bash

    复制

    cat /var/log/auth.log
    
检查是否有清空日志的痕迹

bash

复制

ls -lh /var/log/
  • 如果日志文件大小异常或时间戳不符合预期,可能是被清空或篡改。

4. 检查异常进程

黑客可能会运行后门程序或恶意进程来控制服务器。

查看当前运行的进程

bash

复制

ps aux
寻找可疑进程
  • 查看是否有伪装成系统进程的恶意程序(如伪装为 sshdnginx)。
  • 查看进程的运行路径是否正常,重点检查 /tmp/var/tmp/dev/shm 等目录中的程序。
列出启动项
  • 查看开机启动服务: bash

    复制

    systemctl list-units --type=service
    
  • 检查定时任务: bash

    复制

    crontab -l
    cat /etc/crontab
    
重点关注
  • 是否有不明启动项或定时任务。
  • 是否有恶意进程运行。

5. 检查网络连接

黑客可能会通过网络后门访问服务器或利用服务器对外发起攻击。

查看当前网络连接

bash

复制

netstat -tuln

或:

bash

复制

ss -tuln
寻找可疑端口
  • 检查是否有异常的监听端口(如 12345、31337 等常见后门端口)。
  • 注意是否有未知的外部连接。
查看网络流量

使用 iftopnload 检查网络流量:

bash

复制

iftop

(需安装:yum install iftopapt install iftop

重点关注
  • 是否有异常的流量流向未知 IP。
  • 是否有隐藏的监听端口。

6. 检查文件系统

黑客可能会篡改系统文件或上传恶意脚本。

检查最近修改的文件

bash

复制

find / -mtime -5 2>/dev/null

此命令查找最近 5 天内被修改过的文件。

查找隐藏文件

bash

复制

find / -name ".*" 2>/dev/null
检查关键系统文件
  • 检查 /etc/passwd/etc/shadow/etc/sudoers 是否被修改:

    bash

    复制

    ls -l /etc/passwd /etc/shadow /etc/sudoers
    
重点关注
  • 是否有未知的脚本或文件出现在 /tmp/var/tmp/dev/shm 等目录。
  • 是否有文件被篡改或权限被异常修改。

7. 检查资源使用情况

黑客可能会利用服务器进行挖矿或 DDoS 攻击,导致资源使用异常。

查看系统资源
  • 查看 CPU 和内存使用情况: bash

    复制

    top
    
  • 使用 htop(需安装)查看进程的实时资源占用:

    bash

    复制

    htop
    
重点关注
  • 是否有占用大量资源的可疑进程。
  • 是否有伪装成正常服务的恶意程序。

8. 检查是否存在 rootkit 或恶意软件

使用工具扫描是否存在 rootkit 或其他恶意程序。

使用 rkhunter

bash

复制

rkhunter --check

(需安装:yum install rkhunterapt install rkhunter

使用 chkrootkit

bash

复制

chkrootkit

(需安装:yum install chkrootkitapt install chkrootkit


三、确认入侵后的应对措施

如果确认服务器被入侵,应立即采取以下措施:

  1. 隔离服务器

    • 断开服务器网络,防止进一步的攻击或数据泄露。
  2. 备份重要数据

    • 在隔离后,将重要文件和日志备份以便分析和恢复。
  3. 分析入侵方式

    • 收集日志、异常文件和进程信息,分析黑客的入侵手段。
  4. 清理恶意程序

    • 删除恶意文件、进程或用户。
  5. 重新部署系统

    • 如果系统被严重破坏,建议重装操作系统并重新部署服务。
  6. 加强安全措施

    • 修改所有密码,尤其是 root 和 SSH 用户的密码。
    • 限制 SSH 登录,启用密钥认证并关闭密码登录。
    • 安装防火墙(如 iptablesfirewalld)。
    • 启用安全工具(如 Fail2Ban)防止暴力破解。

四、总结

通过以上步骤,可以全面排查服务器是否存在被入侵的迹象。如果发现异常,应迅速采取隔离和修复措施。同时,做好日常的安全防护(如定期更新系统、关闭不必要的端口和服务、定期备份等)以降低被入侵的风险。

相关推荐
A_New_World27 分钟前
线程池、内存池 和 数据库连接池
linux·服务器·c++
运维小文36 分钟前
TCP协议简单分析和握手挥手过程
服务器·网络·网络协议·tcp/ip·三次握手
呆呆在发呆.42 分钟前
计组实验-Bomb Lab -2
java·服务器·前端
gywl1 小时前
计算机网络-应用层
服务器·网络·计算机网络
重生之我在VS写bug1 小时前
【操作系统1】一篇文章便可入门操作系统
linux·服务器·开发语言·jvm
伤心男孩拯救世界(Code King)1 小时前
【Linux】--- 进程的概念
linux
染指11102 小时前
49.第二阶段x86游戏实战2-鼠标点击call深追二叉树
汇编·c++·windows·游戏安全·反游戏外挂·游戏逆向
月巴月巴白勺合鸟月半2 小时前
一个小工具
windows·delphi
艾德金的溪2 小时前
ES(elasticsearch)端口漏洞处理
服务器·网络·elasticsearch
hurrycry_小亦3 小时前
(Windows系统)详细介绍Windows系统 含有英文版
windows