当前位置:首页>Linux>Linux应急响应排查框架(上)

Linux应急响应排查框架(上)

  • 2026-10-11 06:04:37
Linux应急响应排查框架(上)

阅读须知

本公众号文章皆为网上公开的漏洞,仅供日常学习使用,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把剁椒Muyou鱼头“设为星标”,否则可能就看不到了啦!

2026/07/29 星期三

//01 前言

安全事件的新闻,这几年几乎没断过,更让人头疼的是,很多企业在面对入侵事件时,第一反应往往是"拔网线、关端口、拉黑 IP"。说实话,这些操作只能解决一时,解决不了一世。真正的应急响应,需要的是一套系统化的排查流程。

这篇文章,从实战角度梳理了一套Linux应急响应排查思路,从现象出发、反推入侵路径、再到逐项排查。

//02 先搞清楚:常见的应急事件有哪些?

在实际工作中,应急事件大致可以归为以下几类:

1. 病毒、木马、蠕虫事件

感染型的恶意程序,通常表现为CPU飙升、网络异常流量、文件被加密或篡改。

2. Web服务器入侵或第三方服务入侵

挂马、网页篡改、Webshell上传。攻击者通过Web应用漏洞(如 SQL 注入、文件上传、反序列化)获取服务器控制权。

3. 系统入侵

利用系统漏洞攻击,比如脏牛提权、脏管道提权;或者通过SSH弱口令爆破直接登录。排查时要重点关注对应服务的日志。

4. 网络攻击事件

DDoS流量攻击、ARP欺骗、DNS劫持等。这类攻击不一定需要"入侵"主机本身,但会导致服务不可用。

5. 信息泄漏

拖库、数据库弱口令、业务逻辑漏洞导致的数据外泄。这类事件往往发现得最晚,但损失最大。

//03 通用排查原则:正确分步走

很多人一听到"服务器被黑了",第一反应就是打开终端疯狂敲命令。但这是应急响应的大忌。

正确做法分三步走:

第一步:问清楚。 谁在什么时间发现了异常?异常现象是什么(CPU 飙高?多了不明进程?网页被篡改?)?受害用户做了什么紧急处理?

第二步:反推入侵路径。 从现象出发,逆向思考攻击者可能的入侵方式。如果是Webshell,大概率是Web应用有漏洞;如果是SSH爆破登录,那日志里一定有痕迹。先动脑,再动手。

第三步:逐项排查,记录留痕。 建议操作全程录屏,防止误操作后无法回溯。

//04 账号安全:入侵的第一道门

3.1 先看两个核心文件

攻击者进入系统后,最常做的事就是创建后门账号。排查首先从账号文件入手:

/etc/passwd  用户信息文件,格式为:

用户名:密码:UID:GID:用户说明:家目录:Shell

注意:无密码的账号只允许本机登录,远程是不允许的。

/etc/shadow  影子文件,存储加密后的密码和密码有效期策略,格式为:

用户名:加密密码:最后修改日期:最小修改间隔:密码有效期:到期警告天数:宽限天数:失效时间:保留

其中的"最后修改日期"是从1970年1月1日起算的天数,可以用来判断账号密码最近是否被篡改。

3.2 常用排查命令

who        查看当前登录用户(tty本地/pts远程)w          查看系统信息及用户行为uptime     查看登录时长、用户数、负载last       查看历史登录记录lastlog    查看每个用户最后一次登录时间
3.3 入侵排查三板斧
1.查特权用户(UID为0的都是root权限)awk -F: '$3==0{print $1}' /etc/passwd2.查可以远程登录的账号awk '/\$1|\$6/{print $1}' /etc/shadow3.查非root账号是否有sudo权限more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

发现可疑账号后,立即处理:

usermod -L user     禁用账号(/etc/shadow第二栏会变成!开头)userdel user        删除用户userdel -r user     删除用户并清除其home目录

//05 历史命令:攻击者留下的痕迹

攻击者在服务器上的每一步操作,都可能留在历史命令里。

4.1 看哪些地方

root的历史命令history每个普通用户的历史命令cat /home/用户名/.bash_history

注意:history -c只能清除当前会话的内存记录,并不会清除 .bash_history文件。所以即使攻击者执行了清除命令,文件里的记录可能还在。

4.2 建议:加固历史命令记录

默认的历史命令只记录了命令本身,无法看到执行时间、来源IP。建议在 /etc/profile中增加以下配置:

保存1万条命令sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile在 /etc/profile尾部添加,让历史命令显示时间和来源IPUSER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]; then USER_IP=`hostname`fiexport HISTTIMEFORMAT="%F %T $USER_IP `whoami` "shopt -s histappendexport PROMPT_COMMAND=”history -a”

执行source /etc/profile生效后,每条命令会带上时间戳和来源IP,溯源时一目了然。

//06 异常端口和进程:找出藏在暗处的后门

5.1 查看网络连接

netstat -pantule | more

重点关注:

  • 监听在非常规端口的服务
  • 对外发起大量连接的进程
  • 陌生IP的 ESTABLISHED连接

5.2 反查进程文件路径

发现可疑端口后,记下对应的PID,然后查看该进程的可执行文件位置:

ls -l /proc/$PID/exe#或file /proc/$PID/exe

如果发现一个叫nginx的进程,可执行文件却在/tmp/.hidden/下,那基本就是伪装的木马了。

5.3 查看所有进程

ps aux | grep 可疑关键字

重点关注:

  • 进程名带奇怪字符的(如空格、点号前缀)
  • 父进程是 init/systemd 但路径可疑的
  • CPU/内存占用异常高的

//07 结尾

上篇我们梳理了应急响应的通用原则,以及账号安全、历史命令、异常端口和进程的排查方法。这些是应急响应的"基本功",任何一个环节发现异常,都值得深挖下去。

下篇预告:我们将继续深入,覆盖开机启动项、定时任务、异常文件、系统日志分析,以及一套可以直接上手的排查脚本和工具推荐。

END 


作者 | 剁椒Muyou鱼头

I like you,but just like you.

我喜欢你,仅仅如此,喜欢而已~

点赞在看不迷路哦!

最新文章

随机文章