应急响应初探之入侵排查
字数 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 -
克隆账号步骤:
- 访问注册表
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\runHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_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
- Windows 2003:
- 查看最近打开文件:
%UserProfile%\Recent - 按时间查找文件:
- 使用Registry Workshop搜索注册表
- 使用文件资源管理器按修改时间筛选
二、Linux系统入侵排查
1. 账号安全检查
1.1 用户信息检查
- 查看
/etc/passwd和/etc/shadow文件 who和w命令查看当前登录用户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 user或userdel -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
三、通用排查建议
- 建立基线:在系统正常时记录关键文件和配置的哈希值
- 定期检查:设置定期安全审计计划
- 日志集中:配置日志服务器集中存储和分析日志
- 最小权限:遵循最小权限原则配置用户和服务的权限
- 补丁管理:定期更新系统和应用补丁
通过以上全面的排查方法,可以有效发现Windows和Linux系统中的入侵痕迹,及时采取应对措施,保障系统安全。