
2026年3月3日,近期卓越e网异常被黄色网页拦截,后期部分用户卡顿无法进入
在宝塔进行安全检测时发现高危风险,宝塔出现后门用户,此时说明服务器已经被入侵
首先我们检测系统用户,排查找到可疑用户将其删除
列出所有用户 + UID + 注释(最直观)
终端执行
cat /etc/passwd | awk -F: ‘{print “用户名:”$1,” UID:”$3,” 注释/用途:”$5}’
✅ 重点区分:
- 系统默认用户(绝对不能删):root (0)、bin (1)、daemon (2)、adm (3)、lp (4)、sync (5)、shutdown (6)、halt (7)、mail (8)、nfsnobody (65534) 等;
- 可疑后门用户:UID≥1000、用户名陌生(如 hack、xmr、miner、admin123 等)、注释为空 / 乱码的用户。
但博主在列出用户之后并没有找到除了必要用户之外的异常用户,博主反复多次列出,最终通过细心观察,发现一个数字的异常
‘’bin(0)””
Omg这是什么鬼啊,本该为1权限的bin却拥有了和root相同的0最高权限
在服务器当中,拥有0最高权限的有且只有一个root(0)
说明黑客通过伪装代替bin并且修改bin为最高权限控制了我们的服务器,由此便可随意修改删除服务器中的任何信息,修改服务器的数据
发现除了root外,bin用户的 UID 也为 0,这是严重的安全异常!bin本应是 UID=1 的系统用户,被篡改为 UID=0(等同于 root 最高权限),这大概率是后门篡改的结果,我马上给出安全、可操作的修复步骤:
正常 Linux 系统中,只有root的 UID=0(超级管理员权限),bin用户默认 UID=1。现在bin的 UID 被改为 0,意味着:
- 任何以bin用户执行的操作,都拥有和root一样的最高权限;
- 攻击者可通过bin用户随意操控服务器,这是典型的后门篡改手段。
1. 先备份关键文件(防止操作失误)
终端执行
cp /etc/passwd /etc/passwd.hack.bak
cp /etc/shadow /etc/shadow.hack.bak
2. 修正bin用户的 UID(改回默认值 1)
考虑到某些用户没有安装vim或者nano,博主推荐用 sed 一键修正 bin 用户的 UID
终端执行:
# 一键将bin用户的UID从0改为1(核心修复命令)
sed -i ‘s/^bin:x:0:/bin:x:1:/’ /etc/passwd
# 立即验证修改结果(必须执行)
awk -F: ‘$3==0{print $1}’ /etc/passwd
命令解读:
- sed -i:直接修改文件内容(无需手动编辑);
- s/^bin:x:0:/bin:x:1:/:精准匹配以bin:x:0:开头的行,把第三个字段(UID)的0替换为1;
- 验证命令执行后,仅输出root 即为修改成功。
若 sed 命令执行后仍有问题(极端情况)
如果执行上述命令后,验证结果仍显示root和bin,说明bin行的格式异常,可执行以下命令手动重建bin行:
# 先备份原文件(防止出错)
cp /etc/passwd /etc/passwd.bak2
# 删除异常的bin行,再重新添加正确的bin行
sed -i ‘/^bin:/d’ /etc/passwd
echo ‘bin:x:1:1:bin:/bin:/sbin/nologin’ >> /etc/passwd
# 再次验证
awk -F: ‘$3==0{print $1}’ /etc/passwd
修复后必做的收尾检查
- 确认bin用户的登录 Shell 不可登录(防止被利用):
grep “bin:” /etc/passwd | awk -F: ‘{print $7}’
✅ 正常输出:/sbin/nologin(若不是,执行usermod -s /sbin/nologin bin修正)。
检查bin用户的进程(杀死异常进程):
ps -u bin
# 若有陌生进程,执行 kill -9 进程号 终止
—最后的安全加固步骤(必做)
1. 锁定关键系统文件(防止被再次篡改)
/etc/passwd 和 /etc/shadow 是用户配置核心文件,设置只读权限并锁定:bash
# 设置基础权限(shadow仅root可读,passwd所有用户可读)
chmod 644 /etc/passwd
chmod 600 /etc/shadow
# 用chattr锁定文件(禁止修改,需解锁时执行 chattr -i 文件名)
chattr +i /etc/passwd
chattr +i /etc/shadow
2. 检查其他系统用户的 UID 是否被篡改
避免除bin外还有其他系统用户被改 UID=0,执行以下命令:
# 列出核心系统用户的UID,对比正常值
cat /etc/passwd | grep -E “root|bin|daemon|adm|lp|sync|shutdown|halt|mail” | awk -F: ‘{print $1,”UID=”$3}’
✅ 正常参考值(必须和这个一致):
root UID=0
bin UID=1
daemon UID=2
adm UID=3
lp UID=4
sync UID=5
shutdown UID=6
halt UID=7
mail UID=8
如果有任何用户的 UID 不符,用同样的sed方法修正(比如daemon被改 UID=0,执行 sed -i ‘s/^daemon:x:0:/daemon:x:2:/’ /etc/passwd)。
3. 检查定时任务(后门常用藏身地)
# 查看当前用户定时任务
crontab -l
# 查看系统级定时任务
ls /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/ -l
如果发现陌生的定时任务文件(比如名称乱码、非系统默认文件),直接删除(删除前可备份:cp 文件名 文件名.bak)。
4. 重启关键服务(清除临时残留)
# 重启SSH服务(防止后门进程驻留)
systemctl restart sshd
# 重启crond定时任务服务
systemctl restart crond
















暂无评论内容