应急响应之账户排查 + 计划任务排查 + 进程排查

摘要: 本文系统梳理服务器被入侵后的应急响应排查思路,按 PDCERF 六阶段给出标准流程,并围绕账户、计划任务、进程三大持久化与活跃后门载体,分别给出 Linux 与 Windows 下的具体排查命令、危险信号识别方法及处置建议,帮助安全人员按"先易失后持久化、从外到内"的顺序快速定位并清除威胁。

个人认知有限,文中难免存在疏漏与冗余,如有不妥之处,欢迎大家交流指正,还望海涵。

一、应急响应基本流程

应急响应不是"上来就杀进程",而是按固定套路走,避免破坏现场、漏掉关键证据。业界通用 PDCERF 六阶段:

阶段 英文 核心动作
准备 Preparation 工具、预案、人员分工
检测 Detection 确认是否被入侵(告警、异常现象)
遏制 Containment 隔离主机、断网,防止扩散,但先取证
根除 Eradication 清除后门、恶意文件、恶意账户
恢复 Recovery 恢复业务、修复漏洞、改密码
跟踪 Follow-up 复盘、写报告、加固

实战口诀(顺序很重要):

  1. 先看后动:取证/快照 → 记录时间 → 收集易失数据(进程、网络连接)→ 再动磁盘文件。

  2. 易失优先:内存/进程/网络连接会随重启消失,所以先采集这些,再查持久化的东西(账户、计划任务、服务、文件)。

  3. 从外到内:网络连接 → 进程 → 服务/计划任务 → 账户 → 文件/日志。

  4. 保存现场psnetstat 等输出要导成文件并计算哈希,防止事后"我没动过"说不清。

补充:易失数据 指一关机/重启就没了的数据(进程、内存、网络连接);持久化指写进磁盘、重启后仍生效的后门手段(账户、计划任务、服务、自启动项),攻击者靠这些"稳住"权限。


二、账户排查

攻击者拿到权限后,第一件事常是创建/克隆账户留后门。排查目标:找可疑账户、异常高权限、隐藏账户。

2.1 Linux 排查

复制代码
# 查看当前登录用户
who
​
# 查看所有用户的登录历史(从 /var/log/wtmp 读)
last
​
# 查看登录失败记录,可发现爆破(从 /var/log/btmp 读)
lastb
​
# 查看所有用户(重点关注 uid=0 的,正常只有 root 是 0)
cat /etc/passwd
# 说明:每行格式 = 用户名:x:uid:gid:描述:家目录:shell
# 攻击者常用 uid=0 伪造一个"看起来普通"的高权限账户
​
# 查看密码/账户锁定状态(只有 root 能看 /etc/shadow)
cat /etc/shadow
# 说明:每行第二个字段是加密密码,!! 或 * 表示该账户被锁定/无法登录
​
# 列出所有 uid=0 的账户(正常应只有 root)
awk -F: '($3==0){print $1}' /etc/passwd
​
# 查看哪些账户能免密 sudo(/etc/sudoers 或 /etc/sudoers.d/)
cat /etc/sudoers | grep -v '^#' | grep -v '^$'
​
# 检查 SSH 免密登录后门:有没有被塞入公钥
cat ~/.ssh/authorized_keys
cat /root/.ssh/authorized_keys
find / -name "authorized_keys" -type f 2>/dev/null
​
# 查看最近添加/修改的账户相关文件
ls -lt /etc/passwd /etc/shadow /etc/sudoers

2.2 Windows 排查

复制代码
# 查看本地所有用户
net user
​
# 查看某个用户的详细信息(重点看"账户启用/禁用"、"本地组成员")
net user 用户名
​
# 查看管理员组成员(看有没有混进去的账户)
net localgroup administrators
​
# 列出所有用户及其状态(命令行,Win7+)
wmic useraccount get name,sid,status,disabled
​
# 查看当前登录会话(找可疑远程登录)
query user

为什么要这样做 :攻击者拿下服务器后的第一目标是"留后门"以便日后还能再进来,而账户是最稳的持久化手段------漏洞会被修复、进程会被杀掉,但**一个高权限账户或一条 SSH 公钥能一直保留访问权。**因此:

  • uid=0 / 管理员组:Linux 权限看 uid、Windows 看本地组,攻击者造"高权限马甲账户"等于给自己配了把万能钥匙,普通名字 + root 权限最隐蔽。

  • authorized_keys:SSH 公钥登录免密码,攻击者塞入自己公钥后能随时无感登录,且不改原密码、用户难察觉。

  • 查 sudoers:sudo 免密项等于留了一条"普通用户 → root"的提权通道。

  • last/lastb/query user:还原攻击者何时、从哪个 IP 登录,判断是爆破还是正常访问。

2.3 关键要点

  • 危险信号 :出现 uid=0 的陌生账户、authorized_keys 里有陌生公钥、管理员组里多出陌生用户、某个正常账户突然"最近登录"异常。

  • 克隆/隐藏账户 (进阶):Windows 上攻击者会在注册表 SAM 里把账户的 F 键值克隆,让 net user 看不到。遇到"删了又回来"的账户要怀疑注册表层面后门。

  • 兜底动作 :确认被入侵后,改掉所有账户密码 、删除陌生账户、检查 authorized_keys 和 sudoers。


三、计划任务排查

攻击者常用计划任务/定时任务做持久化,让恶意程序定时运行、或定时"复活"后门。

3.1 Linux 排查

复制代码
# 查看 root 的 crontab(最常见后门位置)
crontab -l
​
# 查看所有用户的 crontab 文件
cat /var/spool/cron/* 2>/dev/null
cat /var/spool/cron/crontabs/* 2>/dev/null
​
# 系统级定时任务
cat /etc/crontab
ls -l /etc/cron.d/
ls -l /etc/cron.daily/
ls -l /etc/cron.hourly/
ls -l /etc/cron.weekly/
ls -l /etc/cron.monthly/
​
# 一次性定时任务 at(有的攻击者用 at 定时执行)
atq
​
# systemd 定时器(systemctl 计划的"定时版")
systemctl list-timers --all
​
# 查看 cron 日志,找执行痕迹
grep -i cron /var/log/cron 2>/dev/null
grep -i cron /var/log/syslog 2>/dev/null

补充:crontab 每行格式 分 时 日 月 周 命令。重点看命令指向的路径 是否可疑,如 /tmp/xxx/dev/shm/xxx/var/tmp/xxx 或随机字符串文件名。

3.2 Windows 排查

复制代码
:: 列出所有计划任务(可加 /v 看详细)
schtasks /query /fo LIST /v
​
:: 只查指定任务
schtasks /query /tn "任务名" /v

图形界面:taskschd.msc 打开任务计划程序,逐条看"操作"里指向的程序路径。

为什么要这样做:计划任务的价值在于"定时 + 自动"。攻击者用它做两件事:

① 持久化------恶意进程被杀、服务被停后,下个周期任务会自动把它重新拉起来;

② 维持控制------定时反弹 shell、定时下载并执行新命令。所以排查核心是看任务执行的程序路径是否可疑(临时目录、随机名、异常时间)。

3.3 关键要点

  • 危险信号计划任务执行的程序在临时目录(/tmp%TEMP%)、名字随机、执行时间异常(如凌晨)、或被反复修改。

  • 排查重点 :先看最近修改时间 ls -lt,新出现的任务优先排查。

  • 处置:删除可疑任务,并找到它执行的恶意文件一并删除,否则任务会"重建"。


四、进程排查

进程是"当前正在跑的东西",排查它能直接定位正在作恶的木马/挖矿/后门。

4.1 Linux 排查

复制代码
# 查看所有进程(含 CPU/内存占用,排序看最占资源的)
ps aux
​
# 树状展示进程父子关系(后门常挂在合法进程下"装孙子")
pstree -p
​
# 实时动态查看
top
​
# 按名字找进程
ps -ef | grep 关键字
​
# 查看进程对应的可执行文件路径(关键!看它从哪来的)
ls -l /proc/<PID>/exe
ls -l /proc/<PID>/cwd     # 进程当前工作目录
​
# 查看进程打开的文件/网络连接(后门常监听端口)
lsof -p <PID>
lsof -i          # 所有网络相关进程
​
# 查看监听端口及对应进程
netstat -antlp
​
# 查看可疑进程的启动命令完整信息
cat /proc/<PID>/cmdline | tr '\0' ' '

4.2 Windows 排查

复制代码
:: 列出所有进程
tasklist
​
:: 列出进程及其可执行文件路径(看是不是从临时目录启动)
wmic process get name,processid,executablepath,commandline
​
:: 查看监听端口对应的进程 PID
netstat -ano
:: 再用 PID 找进程
tasklist | findstr <PID>

图形界面:任务管理器(Ctrl+Shift+Esc);更推荐 Process Explorer(微软 Sysinternals),能看到进程的父进程、签名、加载的 DLL。

为什么要这样做:进程是"正在进行的犯罪现场",查它能直接让恶意程序现形并锁定它的真实文件:

  • /proc/<PID>/execwd:进程名可以随意伪装(甚至叫 sshd),但 exe 指向的真实可执行文件路径骗不了人,能确定恶意文件到底放哪、好去删除。

  • pstree 父子关系:后门常挂在合法进程(Web 服务、系统进程)下面"装孙子",看父进程能发现"这个孩子不该有"。

  • lsof -i/netstat -antlp把端口和进程一一对应,找到正在监听或外连的后门本体。

4.3 关键要点

  • 危险信号 :进程从 /tmp/dev/shm%TEMP% 等临时目录启动;进程名是随机字符串或伪装成系统进程(如 sshd 多一个空格);CPU 占用异常高(挖矿);父进程异常(如 bash 的父进程是 nginx)。

  • 挖矿特征 :进程名常为 kdevtmpfsikinsingxmrig,或高 CPU 占用 + 大量外连。

  • 处置 :记录 PID、可执行路径 → 先 kill 或结束进程 → 找到并删除文件 → 再排查它是怎么被拉起来的(计划任务/服务/自启动),否则重启又回来。


本篇小结

排查顺序建议:先看网络连接/进程(易失)→ 再查计划任务/服务(持久化)→ 再查账户 → 最后翻文件与日志

相关推荐
0xBADCODE1 小时前
CTF Writeup 合集
安全·web安全·网络安全·系统安全·密码学·php·ctf
数据知道3 小时前
恶意软件分析实验室搭建——沙箱、快照、网络隔离
网络·安全·web安全·网络安全
奔跑的卡卡8 小时前
线上Web异常发现为什么总是滞后?一套自研Web实时异常分析监控系统整体架构拆解
前端·web安全·架构
Sagittarius_A*8 小时前
【好靶场】SQL 注入-布尔盲注-2
sql·web安全·网络安全·sql注入
lightningyang10 小时前
第一届全国技能大赛网络安全(模块A)-密码安全策略配置
安全·web安全·天枢一体化虚拟仿真平台·全国节能大赛网络安全赛项
网安蟹佬霸1 天前
2026网络安全每日学习计划:每天学多久?学什么?怎么安排?照着做就行!
网络·学习·安全·web安全·学习路线·网安
递归尽头是星辰1 天前
微服务安全体系:身份认证、授权与访问控制
web安全·安全架构·访问控制·微服务安全·服务身份认证
网安小学生(兼顾数据库版)1 天前
CRA漏洞通报义务倒计时:9.11生效要求深度解读
网络·安全·web安全