Linux 应急响应指南

在现代企业环境中,Linux 系统同样是攻击者青睐的目标。一旦系统被入侵,攻击者可能会利用各种手段建立后门、修改计划任务、伪装进程、篡改服务配置以及在文件系统中留下恶意痕迹,从而达到远程控制、数据窃取或持久化存在的目的。本文将从 Linux 账户、计划任务、进程、服务、文件痕迹以及日志分析六个方面,详细介绍常用的排查方法和实战技巧,帮助大家快速定位异常、追踪攻击路径,为后续取证和系统修复提供依据。


0x1. Linux 账户排查

背景说明

入侵者往往通过建立隐藏账户或利用弱口令账户来实现对系统的非法访问。因此,排查系统中的用户账户,判断账户状态、权限分配以及登录行为,就显得尤为重要。

排查方法

  1. 查看系统所有用户信息

    • 命令:
      cat /etc/passwd
      
    • 说明:
      该文件中各项信息由冒号分隔,依次为用户名、密码占位符、用户ID、用户组ID、用户描述、用户主目录及默认登录 shell。一般显示 /bin/bash 的账户为可登录状态,而显示 /sbin/nologin 的账户则为禁止登录状态。
  2. 分析超级权限账户

    • 命令:
      awk -F: '$3==0 {print $1}' /etc/passwd
      
    • 说明:
      UID 为 0 的账户通常拥有系统最高权限(如 root)。如果发现除 root 以外其他 UID 为 0 的账户,需要特别警惕并重点排查。
  3. 查看可登录的账户

    • 命令:
      cat /etc/passwd | grep '/bin/bash'
      
    • 说明:
      该命令可帮助确认系统中哪些账户允许交互式登录。
  4. 查看用户错误的登录信息

    • 命令:
      lastb
      
    • 说明:
      该命令展示错误登录记录,包括错误的登录方式、来源 IP、时间等,便于发现暴力破解等异常行为。
  5. 查看所有用户最后的登录信息

    • 命令:
      lastlog
      
    • 说明:
      列出系统中每个用户最后一次登录的信息,帮助判断账户是否存在异常活动。
  6. 查看用户最近登录信息

    • 命令:
      last
      
    • 说明:
      该命令基于 /var/log/wtmp(登录成功)、/var/log/btmp(登录失败)和 /var/log/utmp(当前登录信息)来显示用户的登录记录。
  7. 查看当前用户登录系统情况

    • 命令:
      who
      
    • 说明:
      可直接查看当前系统中已登录的用户列表,便于及时发现非法登录。
  8. 查看空口令账户

    • 命令:
      awk -F: 'length($2)==0 {print $1}' /etc/shadow
      
    • 说明:
      检查 /etc/shadow 中是否存在空口令账户,空口令账户极易被攻击者利用,安全人员需要及时整改。

0x2. Linux 计划任务排查

背景说明

Linux 计划任务(cron)是系统中常见的自动化任务调度工具,攻击者可能会利用 cron 任务实现恶意程序的定时执行和持久化。及时排查计划任务,可以有效发现后门木马或异常任务。

排查方法

  1. 查看当前用户的任务计划

    • 命令:
      crontab -l
      
    • 说明:
      列出当前用户的 cron 任务;如需查看指定用户(如 root)的任务计划,可执行:
      crontab -u root -l
      
  2. 查看系统级别的计划任务文件

    • 文件路径:
      /etc/cron*
    • 说明:
      Linux 系统中,计划任务文件通常以 cron 开头,遍布 /etc 目录下各个子目录(如 /etc/cron.daily/etc/cron.hourly 等)。建议使用正则表达式或 find 命令对这些目录及文件进行检查,以确认是否存在异常任务。

0x3. Linux 进程排查

背景说明

进程排查主要目的是发现系统中是否存在异常或恶意进程,特别是那些监听可疑端口、占用异常系统资源或执行挖矿等非法操作的进程。

排查方法

  1. 分析可疑端口、IP 地址、PID 及程序进程

    • 命令:
      netstat -tulnp
      
    • 说明:
      该命令显示所有监听的端口及其对应的进程,便于识别异常网络连接。
  2. 查看进程对应的可执行程序

    • 命令:
      ls -l /proc/
      
    • 或使用:
      lsof -p 
      
    • 说明:
      根据进程 PID 查看其对应的可执行文件路径及所打开的文件,判断是否存在恶意程序或可疑文件调用。
  3. 排查挖矿进程

    • 命令:
      top
      
    • 说明:
      通过观察系统中 CPU、内存占用率较高的进程,定位可能存在的挖矿或其他恶意行为。对于异常高负载的进程,应进一步核查其详细信息。

0x4. Linux 服务排查

背景说明

服务是 Linux 系统中提供各项功能的重要模块。攻击者往往通过植入恶意服务或篡改系统服务配置实现持久化和隐蔽控制。及时排查服务状态和启动项,有助于发现后门服务和异常启动项。

排查方法

  1. 查看所有服务的状态

    • 命令:
      service --status-all
      
    • 说明:
      列出系统中所有服务及其当前状态,检查是否有异常或不熟悉的服务。
  2. 查看服务是否开机自启动

    • 命令:
      systemctl list-unit-files
      
    • 说明:
      通过该命令可以查看服务的启动状态(启用或禁用),便于识别那些可能被恶意配置为开机自启动的服务。

0x5. Linux 文件痕迹排查

背景说明

入侵者在实施攻击时,往往会对系统文件进行修改、替换或添加恶意文件。通过文件排查,可以查找系统中是否存在异常文件、后门程序以及恶意配置文件,为取证分析提供依据。

排查方法

  1. 敏感目录检查

    • 重点目录:
      • /tmp:常作为临时文件及恶意程序放置目录。
      • 系统命令目录:如 /usr/bin/usr/sbin,这些目录中的文件若被替换或修改,可能说明系统被攻破。
      • SSH 目录:~/.ssh/etc/ssh,常用于配置 SSH 后门或密钥替换,需重点检查。
  2. 时间点查找

    • 命令示例:
      find / -mtime -n +n
      find / -atime -n +n
      find / -ctime -n +n
      
    • 说明:
      通过查找在指定时间段内新增、修改或访问的文件,可以锁定与入侵时间相关的异常文件,为进一步分析提供线索。
  3. 特殊文件排查

    • 查找特殊权限文件:
      • 命令:
        find /tmp -perm 777
        
      • 说明:
        查找权限为 777 的文件,防止被恶意篡改或用于攻击。
    • 核查系统命令文件:
      • 命令:
        ls -alt /bin
        ls -alh /bin
        
      • 说明:
        观察系统命令目录中文件的修改时间和大小,若发现异常,可能说明系统文件已被替换。
    • 排查 SUID 程序:
      • 命令:
        find / -type f -perm -04000
        
      • 说明:
        SUID 程序如果被恶意修改,可能会被攻击者利用获得提升权限,需要逐一核查。

0x6. Linux日志分析

背景说明

Linux 系统日志记录了系统运行中的各类事件,是排查安全事件的重要依据。通过分析日志,可以还原用户登录情况、异常行为及系统变更情况。

排查方法

  1. 查看登录失败的用户信息

    • 命令:
      lastb
      
    • 说明:
      /var/log/btmp 读取记录,了解登录失败的情况,判断是否存在暴力破解或其他异常尝试。
  2. 查看用户成功登录信息

    • 命令:
      last
      
    • 说明:
      /var/log/wtmp 读取记录,查看用户成功登录情况,判断是否存在异常访问。
  3. 查看用户最后登录系统时间

    • 命令:
      lastlog
      
    • 说明:
      该命令列出所有用户最后一次登录的详细信息,便于识别长期未登录或异常登录的账户。

总结

希望这篇分享能为各位安全人员在实战中提供帮助,也欢迎大家交流更多经验与技巧!


你可能感兴趣的:(Linux,应急溯源,linux,运维,服务器)