一、应急响应整体思路
异常识别入口
通过三类线索发现主机入侵/中毒可疑现象:
- 系统资源异常占用(CPU/内存跑满)
- 安全设备告警(防火墙、EDR、入侵检测)
- 主机本地异常行为:
- 陌生异地异常登录、暴力破解
- 不明后门/木马文件、WebShell
- 对外异常外联、反弹Shell连接
- 陌生高占用恶意进程
排查六大核心维度
- 进程排查(恶意程序、挖矿、反弹Shell)
- 文件排查(后门、篡改系统命令、WebShell)
- 网络排查(外联恶意IP、异常端口、反弹连接)
- 用户排查(后门账号、UID=0特权账号、可疑sudo权限)
- 持久化后门排查(定时任务、开机自启、驱动木马)
- 日志溯源分析(登录爆破、操作记录、服务报错)
二、进程排查(定位恶意运行程序)
查看系统资源占用,定位高耗进程
top排查要点:非业务用户(mysql/www/apache)运行陌生可执行文件、CPU持续100%挖矿程序、僵尸进程。
全量列出所有进程
ps -ef pstree # 查看进程树,识别父子恶意进程关系根据PID深度排查进程信息
- 查看进程打开的文件、网络句柄
lsof -p PID- 查看进程启动时间
ps -p PID -o lstart- 查看进程真实可执行文件路径
ls -la /proc/PID/exe- 提取程序内可读字符串(木马/后门特征)
strings /proc/PID/exe典型恶意进程特征
- WebShell反弹Shell:apache/www权限执行bash、nc外联进程
- 挖矿程序:mysql/nginx用户运行陌生
dazui、miner类程序,CPU占满
三、文件排查(查找后门、篡改系统命令)
按时间检索新增/修改可疑文件
参数说明:
-mtime -n:n天内修改文件;-mmin -n:n分钟内修改ctime:文件属性变更;atime:文件访问
# 查找1天内所有修改文件 find / -mtime -1 # 网站目录下100天内新增php后门 find /var/www/html/ -mtime -100 -name *.php # 系统命令、定时任务目录近3天变更文件 find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ /var/spool/cron/ -type f -mtime -3 | xargs ls -al检查系统内置命令是否被木马替换
入侵者常替换ls、ps、netstat等命令实现进程/连接隐藏,通过修改时间、文件大小判断异常:
ls -altS /usr/sbin | head -30四、网络排查(反弹Shell、外联恶意IP)
查看全量端口、TCP连接、对应进程PID
netstat -antulp参数释义:a全部连接、n数字IP、t TCP、u UDP、l监听端口、p关联进程PID
筛选已建立的外部连接
netstat -antulp | grep ESTABLISHED查找反弹Shell(bash外联恶意IP)
netstat -antulp | grep bash根据端口查询对应程序
lsof -i:22五、用户排查(后门账号、特权账号、异常登录)
查找UID=0的特权账号(后门root账号)
正常仅root的UID为0,其他账号出现x:0:0即为后门:
grep :0 /etc/passwd检查passwd文件是否被篡改
stat /etc/passwd统计可登录shell的用户(重点排查bash登录账号)
# 统计各类登录shell数量 cat /etc/passwd | awk -F: '{print $7}' | sort | uniq -c # 筛选拥有bash登录权限的用户 cat /etc/passwd | grep bash查看当前在线用户
w who历史登录记录溯源
last # 成功登录记录 lastlog # 所有用户末次登录 lastb # 登录失败、爆破记录排查sudo提权权限
# 过滤sudo配置,去除注释空行 egrep -v "^#|^$" /etc/sudoers # 查看wheel特权组用户 grep wheel /etc/group用户操作历史命令
history # 直接读取用户历史记录文件 cat ~/.bash_history六、持久化后门排查(入侵自启留存手段)
Linux常见4类持久化方式:定时任务、开机启动脚本、系统服务、内核驱动木马
定时任务 crontab 全量排查
① 当前用户定时任务
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/*开机自启项排查
系统运行级别说明
级别 | 功能 |
0 | 关机 |
1 | 单用户修复模式 |
2 | 无NFS字符界面 |
3 | 标准字符服务器(生产常用) |
4 | 系统预留 |
5 | 图形桌面 |
6 | 重启 |
查看当前运行级别:
runlevel自启文件/目录检查清单
/etc/rc.d/* /etc/rc.local /etc/rc[0-6].d /etc/inittab系统开机服务排查(CentOS6)
chkconfig --list七、Linux日志分析(入侵溯源核心)
核心日志文件路径与作用(rsyslog统一管理)
日志路径 | 用途 |
/var/log/messages | 系统内核、服务通用日志 |
/var/log/secure | SSH登录、密码认证、暴力破解安全日志 |
/var/log/cron | crontab定时任务执行日志 |
/var/log/dmesg | 开机硬件、内核报错日志 |
/var/log/boot.log | 系统开机启动流程日志 |
/var/log/btmp | 登录失败二进制日志(lastb读取) |
/var/log/wtmp | 登录成功记录(last读取) |
/var/log/lastlog | 用户末次登录 |
/var/log/maillog | 邮件服务日志 |
入侵溯源常用分析命令
- 爆破root账号IP排行(降序)
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr- 提取所有爆破源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- 爆破尝试的用户名统计
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr- 成功登录IP统计
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr- 提取登录成功时间、账号、源IP
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'八、应急响应专用查杀工具
chkrootkit
用途:检测Rootkit内核木马、篡改系统命令、日志擦除痕迹
内置检测功能:
- 检查网卡混杂模式(嗅探木马)
- 校验lastlog/wtmp日志是否被删除篡改
- 扫描LKM内核隐藏木马
- 检测系统二进制文件被替换特征
官网:chkrootkit -- locally checks for signs of a rootkit
rkhunter(Rootkit Hunter)
扫描Rootkit、后门程序、本地漏洞、恶意脚本,比对系统文件校验值。
WebShell检测工具
深信服EDR内置WebShell查杀,支持一句话木马、大马、加密后门检测。
九、应急响应排查总结流程
- 现象确认:CPU/网络/登录异常 → 锁定入侵特征
- 进程排查:top/ps/lsof 定位恶意PID与程序路径
- 网络排查:netstat 查找反弹外联、陌生端口
- 文件排查:find 检索新增后门、校验系统命令完整性
- 用户排查:排查UID0后门账号、异常登录、sudo权限
- 持久化排查:定时任务、开机自启、恶意服务
- 日志溯源:secure/messages 追溯爆破、入侵操作时间线
- 工具辅助:chkrootkit/rkhunter 查杀Rootkit后门
- 处置:隔离恶意文件、删除后门账号、清除持久化、加固主机