Linux入侵排查
字数 884 2025-08-18 11:38:28
Linux入侵排查指南
一、事件背景分析
-
典型入侵场景:
- 服务器暴露远程端口(如SSH 22端口)到公网
- 使用弱密码(如"123456")
- CPU使用率异常高(挖矿病毒典型特征)
-
初步确认方法:
- 使用ScanPort或nmap进行全端口扫描
- 注意内网和外网扫描结果可能不同(路由器配置影响)
二、入侵排查流程
1. 异常进程排查
# 查看CPU占用高的进程
top
# 查看进程树关系
pstree -p
关键点:
- 查找非常见进程(如案例中的
sysmd) - 检查进程是否独立运行(不依赖其他进程)
2. 恶意文件定位
# 查找可疑文件
find / -name "sysmd" 2>/dev/null
# 检查文件创建时间
ls -alh /usr/bin/sysmd
关键点:
- 常见存放路径:
/usr/bin/,/tmp/,/var/tmp/ - 检查近期创建的可执行文件
3. 日志分析
# 查看系统日志
journalctl -xe
cat /var/log/syslog
cat /var/log/auth.log
# 检查历史命令
history
cat ~/.bash_history
关键点:
- 攻击者可能删除日志和历史记录
- 检查
/var/log/目录下日志文件的完整性
4. 网络连接检查
# 查看网络连接
netstat -antp
ss -antp
lsof -i
# 检查DNS解析
cat /etc/resolv.conf
关键点:
- 查找异常的外网连接(特别是国外IP)
- 案例中连接到以太坊矿池地址
5. 用户账户检查
# 检查用户文件
cat /etc/passwd
cat /etc/shadow
# 检查sudo权限用户
cat /etc/sudoers
ls /etc/sudoers.d/
关键点:
- 查找UID为0的非root用户(如案例中的
kernelsys) - 检查异常用户的家目录
6. 持久化机制检查
# 检查开机启动项
cat /etc/rc.local
ls /etc/init.d/
ls /etc/rc.d/
systemctl list-unit-files --type=service
# 检查计划任务
crontab -l
ls /etc/cron*
关键点:
- 案例中
rc.local被添加了恶意启动项 - 检查所有可能的自启动位置
三、应急处理措施
-
样本收集:
cp /usr/bin/sysmd /tmp/malware_sample chmod -x /usr/bin/sysmd -
清除恶意项:
- 删除或禁用开机启动项
- 删除恶意文件
- 禁用异常用户
-
系统加固:
- 修改所有弱密码为复杂密码
- 限制SSH公网访问(使用VPN或白名单)
- 更新系统和软件补丁
-
后续监控:
- 持续观察系统资源使用情况
- 设置告警机制
四、总结与防御建议
-
常见挖矿病毒特征:
- CPU使用率异常高
- 存在异常外网连接
- 系统中有不明进程
-
防御措施:
- 禁用SSH密码认证,使用密钥登录
- 设置强密码策略
- 限制不必要的公网端口暴露
- 定期更新系统和应用补丁
- 部署入侵检测系统(IDS)
-
排查工具推荐:
- 进程分析:top/htop, pstree
- 网络分析:netstat, ss, lsof
- 文件分析:find, stat
- 日志分析:journalctl, grep
通过系统化的排查流程,可以有效发现并清除Linux系统中的入侵痕迹,恢复系统安全状态。