Linux PAM后门:窃取ssh密码及自定义密码登录
目录
警告
本文最后更新于 2020-12-12,文中内容可能已过时。
PAM是Linux默认的ssh认证登录机制,因为他是开源的,我们可以修改源码实现自定义认证逻辑,达到记录密码、自定义密码登录、dns带外等功能。
# 环境
- CentOS Linux release 7.8.2003 (Core)
- pam-1.1.8-23.el7.x86_64
centos需要关闭selinux,临时关闭setenforce 0
。永久关闭需要修改/etc/selinux/config
,将其中SELINUX设置为disabled。
# 自定义ssh密码
查看PAM版本rpm -qa|grep pam
下载对应源码:http://www.linux-pam.org/library/
|
|
安装gcc编译器和flex库
|
|
修改Linux-PAM-1.1.8/modules/pam_unix/pam_unix_auth.c
源码实现自定义密码认证
|
|
编译生成so文件
|
|
生成的恶意认证so路径在./modules/pam_unix/.libs/pam_unix.so
。用它来替换系统自带的pam_unix.so。
因为系统不同位数不同,pam_unix.so的路径也不一样,尽量用find找一下。
然后替换,注意先备份,万一恶意的so文件不可用就GG了。
|
|
此时先别急着断开ssh,先试一下能不能用我们设置的fuckyou
密码登录。
成功登录,后门也就留好了。为了隐蔽,修改下pam_unix.so的时间戳。
|
|
# 记录密码
同样编辑modules/pam_unix/pam_unix_auth.c
文件
|
|
ssh密码会被记录到/tmp/.sshlog中。编译并替换so
|
|
此时登录ssh会记录密码
文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。
如果你觉得这篇文章对你有所帮助,欢迎赞赏或关注微信公众号~