Linux入侵应急响应与排查
字数 973 2025-08-12 11:34:09
Linux入侵应急响应与排查指南
一、账号安全检查
1. 检查特权用户
特权用户指UID为0的用户,可能存在非法添加的超级用户:
awk -F: '$3==0{print $1}' /etc/passwd
2. 检查远程可登录账户
查找使用MD5、SHA-256或SHA-512加密的账户(可能为弱密码):
awk '/\$1|\$5|\$6/{print $1}' /etc/shadow
3. 检查sudo权限
查看具有ALL权限的用户:
cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4. 账号处理措施
- 锁定可疑账号:
usermod -L username
- 删除可疑账号:
userdel username # 仅删除用户
userdel -r username # 删除用户及主目录
二、系统状态检查
1. 当前登录信息
who # 查看当前登录用户(tty本地/pts远程)
w # 查看系统信息和用户行为
uptime # 查看系统负载和运行时间
2. 网络连接检查
netstat -tunlp | less # 查看所有监听端口和连接
tcpdump -c 10 -q # 抓取10个精简网络包
三、进程检查
1. 进程检查命令
ps -ef # 查看所有进程
top # 查看资源占用情况
2. 深入分析可疑进程
ps eho command -p $PID # 查看进程完整命令行
readlink /proc/$PID/cwd # 查看进程工作目录
ls -l /proc/$PID/exe # 查看进程文件路径
strings -f /proc/$PID/environ | cut -f2 -d '' # 查看进程环境变量
lsof -p $PID # 查看进程打开的文件
四、服务检查
1. 运行中服务检查
service --status-all | grep running # CentOS6及之前
systemctl list-units --type=service --state=running # CentOS7+
2. 开机自启服务检查
# CentOS7+
systemctl list-unit-files --type=service | grep "enabled"
# CentOS6及之前
chkconfig --list | grep "3:on\|5:on"
五、启动项与计划任务检查
1. 启动项检查
cat /etc/rc.local
2. 计划任务检查
检查以下目录中的异常任务:
/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/*
六、文件系统检查
1. 敏感目录检查
ls -al /tmp # 检查/tmp目录
ls -al / # 检查根目录隐藏文件
2. 查找近期访问文件
find /opt -iname "*" -atime 1 -type f
七、历史命令检查
cat ~/.bash_history # 查看当前用户历史命令
cat /home/*/.bash_history # 查看所有用户历史命令
八、日志分析
1. 重要日志文件
/var/log/btmp:错误登录记录(使用lastb查看)/var/log/lastlog:用户最后登录时间(使用lastlog查看)/var/log/wtmp:用户登录/注销记录(使用last查看)/var/log/utmp:当前登录用户(使用w,who,users查看)/var/log/secure:认证相关日志
2. 登录失败分析
# 查看登录失败最多的20个账号
lastb | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 20
# 查看爆破来源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
3. 成功登录分析
# 查看成功登录的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}'
九、数据库日志检查
1. MySQL日志检查
-- 查看常规日志设置
SHOW VARIABLES LIKE '%general%';
-- 查看慢查询日志设置
SHOW VARIABLES LIKE 'slow_query%';
2. MySQL日志分析工具
使用mysqldumpslow分析慢查询日志:
mysqldumpslow [OPTS...] [LOGS...]
十、WebShell排查工具
1. D盾查杀
- 特点:Windows平台专用,强大的代码分析引擎
- 下载:http://www.d99net.net
2. 河马查杀
- 特点:跨平台支持,传统特征+云端大数据双引擎
- 支持:Windows/Linux,支持在线查杀
应急响应流程总结
- 账号检查:特权用户、远程可登录用户、sudo权限
- 系统状态:当前登录用户、网络连接、进程
- 服务检查:运行中服务、自启动服务
- 持久化检查:启动项、计划任务
- 文件系统:敏感目录、近期修改文件
- 历史命令:用户执行过的命令
- 日志分析:安全日志、登录日志、数据库日志
- WebShell检查:使用专业工具扫描
通过以上步骤的系统检查,可以全面排查Linux系统可能存在的入侵痕迹和后门程序,为系统恢复提供依据。