Linux持久化—PAM后门

admin 2023年12月12日03:41:37评论33 views字数 1359阅读4分31秒阅读模式
Linux持久化—PAM后门

Tips +1

Linux持久化—PAM后门

实现原理

PAM(PAM 全称 Pluggable Authentication Modules,可动态加载验证模块)是一种用于在Unix系统上进行身份验证的框架,允许系统管理员通过简单地配置文件来选择和配置不同的身份验证方法。Linux 执行敏感程序时会对启动它的用户进行身份认证,通过后才会允许执行,如sudo,passwd,screen 等。在 Linux 中进行身份认证是依赖 PAM 来进行的,如使用谷歌身份验证器对 SSH 登录进行双因子认证。当然也可加载恶意模块,窃取 SSH 密码。C 语言版大致原理就是编译出一个动态链接库 so 文件,并配置到 PAM 配置文件中,在 SSH 登录时,记录密码发送到电报机器人,当然也可以保存到本地或是发送到任意 DNSLOG、钉钉机器人等.

操作步骤

PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的认证,简单来说就是一种用于Linux系统上的用户身份验证的机制。进行认证时首先确定是什么服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib/security)进行安全认证.简易利用的PAM后门也是通过修改PAM源码中认证的逻辑来达到权限维持

  1. 获取目标系统所使用的PAM版本,下载对应版本的pam版本
setenforce 0    ##关闭防火墙
rpm -qa | grep pam
https://github.com/linux-pam/linux-pam/releases/tag/Linux-PAM-1_1_8
  1. 解压缩,修改pam_unix_auth.c文件,添加万能密码

Linux持久化—PAM后门

  1. 编译安装PAM
cd linux-pam-Linux-PAM-1_1_8
./configure && make
  1. 编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即使用万能密码登陆,将用户名密码记录到文件中。
cp /usr/lib64/security/pam_unix.so /tmp/pam_unix.so.bakcp
cd modules/pam_unix/.libs
cp pam_unix.so /usr/lib64/security/pam_unix.so



如何排查

1、查看网络连接

netstat -e
netstat -anpt

2、检查pam_unix.so的修改时间,/lib64/security 下可以修改时间戳与正常文件一致

ls -alt | head -n 10
ls -la /etc/pam.d

stat /lib/security/pam_unix.so #32位
stat /lib64/security/pam_unix.so #64位

3、查看 /etc/pam.d/sshd 中是否加载了异常 so 文件。

ls -la /etc/pam.d
cat /etc/pam.d/sshd
strings 异常文件.so

4、清除 pam 后门

yum reinstall pam
参考链接:
https://mp.weixin.qq.com/s/lLwltMLqlkkKR69D__ULXA
https://mp.weixin.qq.com/s/xLn1iBSHh3THKz3K-j0P5w

End

原文始发于微信公众号(贝雷帽SEC):Linux持久化—PAM后门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月12日03:41:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux持久化—PAM后门http://cn-sec.com/archives/2288521.html

发表评论

匿名网友 填写信息