服务器被黑客入侵必要目录bin被修改为后门,如何应对并加固防御

服务器被黑客入侵必要目录bin被修改为后门,如何应对并加固防御

e82f17e3f58cee5a3afabd297ef4bc62

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

修复后必做的收尾检查

  1. 确认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

© 版权声明
THE END
喜欢就支持一下吧
点赞55 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容