应急响应初探之入侵排查
字数 2582 2025-08-22 12:22:36

Windows与Linux系统入侵排查全面指南

一、Windows系统入侵排查

1. 账号安全检查

1.1 检查可疑账号

  • 使用命令 lusrmgr.msc 查看用户管理界面
  • 重点关注管理员组(Administrators)中的新增用户
  • 使用 net user 命令查看用户列表

1.2 检查隐藏/克隆账号

  • 创建隐藏账号:

    net user test$ abc123! /add
    net localgroup administrators test$ /add
    
  • 克隆账号步骤:

    1. 访问注册表 HKEY_LOCAL_MACHINE\SAM\SAM
    2. 修改权限使Administrator有完全控制权
    3. 找到Administrator(000001F4)和隐藏账号(如000003EA)
    4. 复制Administrator的F值到隐藏账号
    5. 导出注册表项,删除用户后再导入
  • 检测方法:

    • 对比用户管理界面与注册表中的用户信息
    • 使用D盾工具检测克隆账号

1.3 检查异常登录

  • 使用 eventvwr.msc 打开事件查看器
  • 导出Windows安全日志进行分析

2. 检查异常端口与进程

2.1 检查网络连接

  • netstat -ano 查看所有连接
  • 定位可疑的ESTABLISHED连接

2.2 进程定位

  • tasklist | findstr "PID" 通过PID查找进程
  • 在任务管理器中查看进程对应文件位置
  • 使用 wmic process 查看详细信息

2.3 服务端口映射

  • 查看 %system%/system32/drivers/etc/services 文件
  • 了解Windows服务与端口的对应关系

3. 检查启动项、计划任务和服务

3.1 启动项检查

  • 检查【开始】>【所有程序】>【启动】目录
  • 使用 msconfig 查看启动项目
  • 检查注册表启动项:
    • HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
  • 使用 gpedit.msc 检查组策略

3.2 计划任务检查

  • 控制面板中查看任务计划
  • 使用 at 命令检查计划任务

3.3 服务检查

  • services.msc 查看服务状态
  • 注意异常的启动类型和服务状态

4. 系统信息与文件检查

4.1 系统信息

  • systeminfo 查看系统版本和补丁信息

4.2 可疑文件查找

  • 检查用户目录:
    • Windows 2003: C:\Documents and Settings
    • Windows 2008R2: C:\Users
  • 查看最近打开文件: %UserProfile%\Recent
  • 按时间查找文件:
    • 使用Registry Workshop搜索注册表
    • 使用文件资源管理器按修改时间筛选

二、Linux系统入侵排查

1. 账号安全检查

1.1 用户信息检查

  • 查看 /etc/passwd/etc/shadow 文件
  • whow 命令查看当前登录用户
  • uptime 查看系统负载和登录情况

1.2 特权用户检查

  • 查找UID为0的用户:
    awk -F: '$3==0{print $1}' /etc/passwd
    
  • 检查可远程登录账号:
    awk '/\$1|\$6/{print $1}' /etc/shadow
    
  • 检查sudo权限:
    more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
    

1.3 账号管理

  • 禁用账号: usermod -L user
  • 删除账号: userdel useruserdel -r user

2. 历史命令检查

  • 查看用户历史命令: cat ~/.bash_history
  • 增强历史命令记录:
    sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
    echo 'USER_IP=`who -u am i 2>/dev/null | awk '\''{print $NF}'\'' | sed -e '\''s/[()]//g'\''`
    if [ "$USER_IP" = "" ]; then USER_IP=`hostname`; fi
    export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
    shopt -s histappend
    export PROMPT_COMMAND="history -a"' >> /etc/profile
    source /etc/profile
    

3. 检查异常端口与进程

3.1 网络连接检查

  • netstat -antlp|more 查看所有连接
  • 查看进程路径: ls -l /proc/$PID/exe

3.2 进程检查

  • ps aux | grep pid 查看进程详情
  • 检查无签名、无描述信息的进程

4. 启动项与定时任务检查

4.1 启动项检查

  • 检查 /etc/rc.local
  • 检查 /etc/rc.d/rc[0~6].d/ 目录
  • 查看 /etc/init.d/ 目录下的服务脚本

4.2 定时任务检查

  • crontab -l 查看当前用户的计划任务

  • 检查系统定时任务文件:

    • /var/spool/cron/*
    • /etc/crontab
    • /etc/cron.d/*
    • /etc/cron.daily/*
    • /etc/cron.hourly/*
    • /etc/cron.monthly/*
    • /etc/cron.weekly/
    • /etc/anacrontab
    • /var/spool/anacron/*
  • anacron 任务示例:

    @daily 10 example.daily /bin/bash /home/backup.sh
    

5. 服务检查

  • chkconfig --list 查看服务自启动状态
  • service --status-all 查看所有服务状态
  • 检查源码安装服务的路径: /usr/local/

6. 异常文件检查

  • 检查 /tmp 目录及隐藏文件
  • 按时间查找文件:
    find /opt -iname "*" -atime 1 -type f
    
  • 使用 stat 命令查看文件详细信息

7. 日志分析

7.1 安全日志分析

  • 爆破root账号的IP:
    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    
  • 所有爆破尝试的IP:
    grep "Failed password" /var/log/secure | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | uniq -c
    
  • 登录成功的IP:
    grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    
  • 登录成功的详细信息:
    grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
    

7.2 用户管理日志

  • 新增用户日志: grep "useradd" /var/log/secure
  • 删除用户日志: grep "userdel" /var/log/secure
  • su切换日志: 搜索 pam_unix(su-l:session)
  • sudo使用日志: 搜索 sudo: 条目

8. 后门排查

8.1 文件完整性检查

  • 使用MD5校验文件:
    import hashlib, os
    def md5sum(file):
        m = hashlib.md5()
        if os.path.isfile(file):
            f = open(file, 'rb')
            for line in f:
                m.update(line)
            f.close()
        else:
            m.update(file)
        return (m.hexdigest())
    

8.2 文件差异比较

  • 使用 diff 命令:
    diff -c -a -r dir1 dir2
    
    重点关注新增的代码行(以+开头的行)

三、通用排查建议

  1. 建立基线:在系统正常时记录关键文件和配置的哈希值
  2. 定期检查:设置定期安全审计计划
  3. 日志集中:配置日志服务器集中存储和分析日志
  4. 最小权限:遵循最小权限原则配置用户和服务的权限
  5. 补丁管理:定期更新系统和应用补丁

通过以上全面的排查方法,可以有效发现Windows和Linux系统中的入侵痕迹,及时采取应对措施,保障系统安全。

Windows与Linux系统入侵排查全面指南 一、Windows系统入侵排查 1. 账号安全检查 1.1 检查可疑账号 使用命令 lusrmgr.msc 查看用户管理界面 重点关注管理员组(Administrators)中的新增用户 使用 net user 命令查看用户列表 1.2 检查隐藏/克隆账号 创建隐藏账号 : 克隆账号步骤 : 访问注册表 HKEY_LOCAL_MACHINE\SAM\SAM 修改权限使Administrator有完全控制权 找到Administrator(000001F4)和隐藏账号(如000003EA) 复制Administrator的F值到隐藏账号 导出注册表项,删除用户后再导入 检测方法 : 对比用户管理界面与注册表中的用户信息 使用D盾工具检测克隆账号 1.3 检查异常登录 使用 eventvwr.msc 打开事件查看器 导出Windows安全日志进行分析 2. 检查异常端口与进程 2.1 检查网络连接 netstat -ano 查看所有连接 定位可疑的ESTABLISHED连接 2.2 进程定位 tasklist | findstr "PID" 通过PID查找进程 在任务管理器中查看进程对应文件位置 使用 wmic process 查看详细信息 2.3 服务端口映射 查看 %system%/system32/drivers/etc/services 文件 了解Windows服务与端口的对应关系 3. 检查启动项、计划任务和服务 3.1 启动项检查 检查【开始】>【所有程序】>【启动】目录 使用 msconfig 查看启动项目 检查注册表启动项: HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce 使用 gpedit.msc 检查组策略 3.2 计划任务检查 控制面板中查看任务计划 使用 at 命令检查计划任务 3.3 服务检查 services.msc 查看服务状态 注意异常的启动类型和服务状态 4. 系统信息与文件检查 4.1 系统信息 systeminfo 查看系统版本和补丁信息 4.2 可疑文件查找 检查用户目录: Windows 2003: C:\Documents and Settings Windows 2008R2: C:\Users 查看最近打开文件: %UserProfile%\Recent 按时间查找文件: 使用Registry Workshop搜索注册表 使用文件资源管理器按修改时间筛选 二、Linux系统入侵排查 1. 账号安全检查 1.1 用户信息检查 查看 /etc/passwd 和 /etc/shadow 文件 who 和 w 命令查看当前登录用户 uptime 查看系统负载和登录情况 1.2 特权用户检查 查找UID为0的用户: 检查可远程登录账号: 检查sudo权限: 1.3 账号管理 禁用账号: usermod -L user 删除账号: userdel user 或 userdel -r user 2. 历史命令检查 查看用户历史命令: cat ~/.bash_history 增强历史命令记录: 3. 检查异常端口与进程 3.1 网络连接检查 netstat -antlp|more 查看所有连接 查看进程路径: ls -l /proc/$PID/exe 3.2 进程检查 ps aux | grep pid 查看进程详情 检查无签名、无描述信息的进程 4. 启动项与定时任务检查 4.1 启动项检查 检查 /etc/rc.local 检查 /etc/rc.d/rc[0~6].d/ 目录 查看 /etc/init.d/ 目录下的服务脚本 4.2 定时任务检查 crontab -l 查看当前用户的计划任务 检查系统定时任务文件: /var/spool/cron/* /etc/crontab /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/ /etc/anacrontab /var/spool/anacron/* anacron 任务示例: 5. 服务检查 chkconfig --list 查看服务自启动状态 service --status-all 查看所有服务状态 检查源码安装服务的路径: /usr/local/ 6. 异常文件检查 检查 /tmp 目录及隐藏文件 按时间查找文件: 使用 stat 命令查看文件详细信息 7. 日志分析 7.1 安全日志分析 爆破root账号的IP: 所有爆破尝试的IP: 登录成功的IP: 登录成功的详细信息: 7.2 用户管理日志 新增用户日志: grep "useradd" /var/log/secure 删除用户日志: grep "userdel" /var/log/secure su切换日志: 搜索 pam_unix(su-l:session) sudo使用日志: 搜索 sudo: 条目 8. 后门排查 8.1 文件完整性检查 使用MD5校验文件: 8.2 文件差异比较 使用 diff 命令: 重点关注新增的代码行(以+开头的行) 三、通用排查建议 建立基线 :在系统正常时记录关键文件和配置的哈希值 定期检查 :设置定期安全审计计划 日志集中 :配置日志服务器集中存储和分析日志 最小权限 :遵循最小权限原则配置用户和服务的权限 补丁管理 :定期更新系统和应用补丁 通过以上全面的排查方法,可以有效发现Windows和Linux系统中的入侵痕迹,及时采取应对措施,保障系统安全。