3.4_Linux 应急响应排查速查命令表
Linux 应急响应排查速查命令表现象命令作用系统负载高 / CPU 飙升top -c -o %CPU按 CPU 使用率排序查看高消耗进程及完整命令行ps aux --sort-%cpu | head -10快速列出 CPU 占用最高的前 10 个进程pidstat 1 5每秒采样一次连续 5 次观察各进程 CPU 动态变化内存异常占用free -h查看内存整体使用情况总量、已用、可用ps aux --sort-%mem | head -10列出内存占用最高的前 10 个进程smem -p -s rss更精确统计进程实际物理内存含共享库可疑网络连接netstat -antup显示所有 TCP/UDP 连接、监听端口及对应进程 PIDss -tunp替代 netstat快速列出带进程名的网络连接lsof -i列出所有打开的网络连接及对应程序lsof -i :端口号查看指定端口的连接详情异常外连 IPnetstat -ant | awk /ESTABLISHED/{print $5} | cut -d: -f1 | sort | uniq -c | sort -nr统计已建立连接的外连 IP 及其连接数ss -tunp | grep ESTAB | awk {print $6} | cut -d: -f1 | sort | uniq -c | sort -nr同上使用 ss 命令可疑进程ps auxf树状显示进程关系发现异常子进程pstree -p进程树展示便于识别恶意进程派生关系ls -l /proc/PID/exe查看进程对应的可执行文件路径cat /proc/PID/cmdline获取进程完整启动命令含参数strace -p PID实时跟踪进程的系统调用发现恶意行为隐藏进程ps -e -o pid,cmd | grep -v ^ *PID | sort -n基础进程列表结合unhide工具需安装cat /proc/[0-9]*/status | grep -E ^(PidName)异常登录 / 用户last查看近期所有登录记录包括重启lastb查看失败的登录尝试暴力破解痕迹who当前登录的用户及其终端、时间w更详细的当前登录用户及活动cat /etc/passwd | grep -E /bin/bash$列出拥有 shell 登录权限的用户grep :x:0: /etc/passwd检查是否存在除 root 外的 UID0 用户awk -F: $30 {print $1} /etc/passwd同上更简洁历史命令异常history查看当前用户执行过的命令历史cat ~/.bash_history直接读取 bash 历史文件grep -i wget ~/.bash_history搜索历史中的下载操作grep -i curl ~/.bash_history搜索 curl 命令痕迹定时任务后门持久化crontab -l查看当前用户的 cron 任务crontab -u root -l查看 root 用户的 cron 任务ls -la /etc/cron*检查系统级 cron 目录cron.d, cron.daily, hourly 等cat /etc/crontab查看系统主 crontab 文件cat /var/spool/cron/crontabs/*查看所有用户的 crontab 文件Debian/Ubuntu 路径cat /var/spool/cron/*CentOS/RHEL 路径开机启动项 / 服务后门systemctl list-unit-files | grep enabled列出所有启用状态的服务systemdls -la /etc/systemd/system/multi-user.target.wants/查看多用户模式下的自启服务软链接chkconfig --list旧 sysvinit查看所有运行级服务状态cat /etc/rc.local检查 rc.local 中的自启命令常见后门位置ls -la ~/.config/autostart/检查桌面环境自启动项针对图形界面文件篡改 / 木马文件find / -type f -mtime -1 -ls查找最近 1 天内修改过的文件find / -name *.jsp -mtime -2按扩展名修改时间查找Webshell 常见find / -perm -4000 -type f -ls查找 SUID 文件提权后门stat 文件路径查看文件修改时间、访问时间、属性变化md5sum 文件 | diff - (cat 原始md5)校验文件完整性需预先有基准ls -la /tmp /var/tmp /dev/shm检查常见临时目录是否有可疑执行文件find / -type f -size 10M -exec ls -lh {} \;查找大文件可能为加密容器或数据打包SSH 后门 / 密钥cat ~/.ssh/authorized_keys查看当前用户的 SSH 授权公钥异常入口cat /etc/ssh/sshd_config | grep -E (PermitRootLoginPasswordAuthenticationfind / -name id_rsa -o -name id_dsa 2/dev/null搜索私钥文件位置Webshell 排查find /var/www/ -name *.php -mtime -3查找最近 3 天新创建的 PHP 文件grep -r eval( /var/www/html/在 Web 目录搜索常见恶意函数grep -r base64_decode /var/www/html/搜索 base64 解码混淆 WebShell 常用grep -r system( /var/www/html/搜索命令执行函数find /var/www/ -type f -name *.jsp -exec grep -l getRuntime {} \;搜索 Java WebShell 特征日志分析tail -f /var/log/messages或 /var/log/syslog实时跟踪系统日志grep Failed password /var/log/secureCentOS查看 SSH 登录失败记录grep Accepted password /var/log/auth.logUbuntu查看成功的 SSH 登录grep -E ([0-9]{1,3}\.){3}[0-9]{1,3} /var/log/secure | cut -d: -f4提取登录失败日志中的 IP 并去重统计journalctl -u sshd --since 1 hour ago使用 systemd 日志查看 SSH 服务最近 1 小时记录last -f /var/log/wtmp.1查看历史 wtmp 日志被轮转的内核模块 / Rootkitlsmod列出已加载的内核模块排查可疑 komodinfo 模块名查看模块详细信息路径、依赖cat /proc/modules原始格式的已加载模块列表rkhunter -c运行 Rootkit Hunter需安装chkrootkit另一款 Rootkit 扫描工具环境变量 / 动态链接劫持echo $PATH查看当前 PATH 路径确认是否存在异常目录cat /etc/ld.so.preload检查动态链接器预加载文件常见用户态 Rootkitldd /bin/ls查看 ls 命令依赖的共享库判断是否被劫持进程隐藏 / 替换系统命令which pswhich netstat确认命令路径是否被篡改例如指向 /tmptype ps查看 ps 是内部命令还是别名/文件alias检查是否存在命令别名劫持如 ls 别名隐藏文件busybox ps若安装了 busybox使用静态编译的 busybox 执行绕过被替换的系统命令系统资源异常IO/带宽iotop -o查看正在进行磁盘 IO 的进程需 rootnethogs按进程实时显示网络带宽占用iftop显示主机与外部 IP 的实时流量详情清理与恢复辅助kill -9 PID强制终止可疑进程chattr -i 文件移除不可变属性以便删除被锁定的后门文件rm -rf 可疑文件删除恶意文件systemctl disable 恶意服务禁用自启的服务crontab -r清空当前用户的 cron 任务谨慎使用使用建议以上命令多数需要root权限建议先sudo -i切换到 root 用户。排查前先对关键数据进行备份如dd或tar避免破坏证据链。发现可疑进程或文件后谨慎使用kill或rm先确认影响范围。若进程或文件无法删除检查是否被chattr i锁定、内核模块挂钩或位于/proc/等特殊路径。生产环境操作需谨慎必要时先隔离主机再排查。