Linux Post-Exploitation
使用PAM嗅探登录密码
让我们配置一个PAM模块来记录每个用户用于登录的密码。如果您不知道什么是PAM,请查看:
PAM - Pluggable Authentication Modules有关更多详细信息,请查看原始帖子。这只是一个摘要:
技术概述: 可插拔认证模块(PAM)在管理基于Unix的系统上的认证方面提供了灵活性。它们可以通过自定义登录流程来增强安全性,但如果被误用也会带来风险。本摘要概述了使用PAM捕获登录凭据的技术,以及缓解策略。
捕获凭据:
编写一个名为
toomanysecrets.sh
的bash脚本,用于记录登录尝试,捕获日期、用户名($PAM_USER
)、密码(通过stdin获取)和远程主机IP($PAM_RHOST
)到/var/log/toomanysecrets.log
。使脚本可执行,并使用
pam_exec.so
模块将其集成到PAM配置(common-auth
)中,使用选项静默运行并将认证令牌暴露给脚本。该方法演示了如何利用受损的Linux主机秘密记录凭据。
PAM后门
更多详细信息请查看原始文章。这只是一个摘要:
可插拔认证模块(PAM)是Linux下用于用户认证的系统。它基于三个主要概念:用户名,密码和服务。每个服务的配置文件位于/etc/pam.d/
目录中,共享库处理认证。
目标:修改PAM以允许使用特定密码进行认证,绕过实际用户密码。这主要集中在pam_unix.so
共享库上,该库由common-auth
文件使用,几乎所有服务都用于密码验证。
修改pam_unix.so
的步骤:
pam_unix.so
的步骤:定位
common-auth
文件中的认证指令:
负责检查用户密码的行调用
pam_unix.so
。
修改源代码:
在
pam_unix_auth.c
源文件中添加一个条件语句,如果使用预定义密码,则授予访问权限,否则继续常规认证过程。
重新编译和替换修改后的
pam_unix.so
库到适当的目录。测试:
使用预定义密码跨各种服务(登录、ssh、sudo、su、屏幕保护程序)授予访问权限,而正常的认证过程保持不受影响。
您可以使用https://github.com/zephrax/linux-pam-backdoor自动化此过程。
最后更新于