一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何用Find全局盘点并拦截系统中伪装成普通账号的UID后门

时间:2026-07-23 08:54:04 编辑:袖梨 来源:一聚教程网

Linux系统中UID 0账户必须唯一,仅root合法;发现admin、syncx等非root UID 0账户即为高危后门,需通过awk筛选、shadow校验、登录日志及useradd -o痕迹联动排查。

直接用 find 扫描 UID 后门并不现实——UID 是账户属性,存在 /etc/passwd 里,不是文件权限位。所谓“伪装成普通账号的 UID 后门”,核心是:攻击者创建了 UID 0 的非 root 账户(如 adminbackupsyncx),藏在合法用户堆里,规避仅查 root 的简单筛查。

一、精准定位所有 UID 0 账户

运行这条命令,只输出用户名、UID、家目录和登录 Shell:

awk -F: '$3 == 0 {print $1 ":" $3 ":" $6 ":" $7}' /etc/passwd

正常系统应仅返回一行:root:0:/root:/bin/bash。若出现多行,比如:

  • admin:0:/home/admin:/bin/bash
  • syncx:0:/tmp:/usr/bin/python3

这些就是高危 UID 0 后门账户,需立即人工确认来源。

二、识别伪装特征:不只是 UID,还要看字段异常

后门账户常通过以下方式降低存在感:

  • 家目录异常:设为 /tmp/dev/shm/var/tmp 或空字段(::),而非标准路径
  • Shell 异常:使用 /bin/sh/usr/bin/python3/usr/sbin/nologin(但实际可绕过)甚至空字段
  • 注释字段(第 5 字段)为空或含可疑字符串:如 system backuplog syncdaemon service
  • 密码占位符为 *!:表示被锁定,但不影响 UID 0 权限;若为 !! 或空(::),则可能无口令或弱口令

三、联动校验,确认是否为合法账户

发现可疑 UID 0 账户后,不能只看 passwd,要交叉验证:

  • /etc/shadow 对应行:sudo awk -F: '$1=="admin" {print $2}' /etc/shadow,看密码哈希是否为空、过期或使用老旧算法(如 $1$
  • 查登录记录:lastlog -u adminlast -n 20 | grep admin,确认是否有真实登录行为
  • 查创建痕迹:history | grep "useradd.*admin"journalctl --since "2 weeks ago" | grep -i "useradd|adduser" | grep -i "0|-o"
  • 查进程归属:ps -eo uid,comm,args | awk '$1==0 && $2 !~ /^(systemd|kthreadd|sshd)$/ {print}',看是否有该用户启动的异常进程

四、拦截与加固动作

确认为后门后,不要仅删用户,要阻断其残留能力:

  • 禁用登录:sudo usermod -s /sbin/nologin admin(先锁再查)
  • 清空密码哈希:sudo sed -i '/^admin:/s/:[^:]*:/::/' /etc/shadow
  • 删除家目录(谨慎):sudo rm -rf /home/admin(若家目录在非标准路径,更需清理)
  • 检查 sudo 权限:sudo -lU admin,防止其通过 sudo 提权绕过限制
  • 审计所有 useradd -o 行为:该参数允许重复 UID,是植入 UID 0 后门最常用手法,日志中往往有迹可循

热门栏目