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

ops/2024/12/17 9:24:55/

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


一、入侵的常见迹象

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

  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)防止暴力破解。

四、总结

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


http://www.ppmy.cn/ops/142607.html

相关文章

uniapp+uview 图片预览组件

uniapp uview 图片列表预览组件 注意&#xff1a;在app端需要先判断是否存在手机相册权限 <template><!-- css使用的是uview1.0组件中的css --><!-- u-image 使用的是uview1.0的组件 --><view class"u-flex u-row-between u-flex-wrap">&…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…

基于GIT模型的智能图像描述生成器

导入必要的库: from transformers import AutoProcessor, AutoModelForVision2Seq # 用于加载和使用模型 from PIL import Image # 处理图像 import requests # 下载网络图片 from IPython.display import Image as IPImage, display # 显示图像主要函数 analyze_image: …

配置ssh-key连接github

GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。 具体内容参考如下链接 https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent mac配置 ssh-keygen -t ed25519 -C …

环境和工程搭建

1.案例介绍 1.1 需求 实现⼀个电商平台 该如何实现呢? 如果把这些功能全部写在⼀个服务⾥, 这个服务将是巨⼤的. 巨多的会员, 巨⼤的流量, 微服务架构是最好的选择. 微服务应⽤开发的第⼀步, 就是服务拆分. 拆分后才能进⾏"各⾃开发" 1.2 服务拆分 拆分原则 …

第三十一章 Spring之假如让你来写事务——融入IOC容器篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…

Python解释器和PyCharm详解

目录 1.什么是Python解释器? Python解释器的类型和特性 Python解释器的优势 2.什么工具可以写Python文件? 3.为什么Python解释器和PyCharm不在同一个网站? 1.什么是Python解释器? Python解释器‌是Python程序运行的核心&#xff0c;它的主要作用是将Python代码转换为…

人工智能对我们的生活影响有多大?

人工智能的深刻影响 引言 你好&#xff0c;欢迎来到这个关于人工智能&#xff08;AI&#xff09;的探索之旅&#xff01;在当今社会&#xff0c;人工智能已经渗透到我们生活的每一个角落&#xff0c;从家庭和工作场所&#xff0c;到教育和社会经济领域&#xff0c;都留下了深…