Linuxでユーザーパスワードをプレーンテキストで表示するには?

Linuxでユーザーパスワードをプレーンテキストで表示するには?

ユーザーのパスワードはに保存されていますが、暗号化された/etc/passwd方法で保存されているため、ルートもこれを見ることができないことを知っています。

jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash

上記のように:x:パスワードを示します。

/etc/passwdルートが表示されるようにパスワードをプレーンテキストとして保存する方法(可能な設定)はありますか?

答え1

他の2つの答えが正しく知られています!これは悪い考えです™。しかし、その人たちもあなたに言った。硬いそのためには多くの手順を変更する必要があります。

これは本当ではありません。それは簡単です。 1つまたは2つの構成ファイルを変更するだけです。自分が制御できないシステムにログインするときは、この点を知っておく必要があるため、この点を指摘することが重要だと思います。これは実際にはプレーンテキストパスワードを/etc/passwd保存する/etc/shadowか、またはに保存せずに他のファイルに保存します。プレーンテキストでパスワードを提供したくないので、まだテストしていません。

  1. 編集/etc/pam.d/common-password(パスワード変更キャプチャ)または/etc/pam.d/common-auth(ログインキャプチャ)と追加… pam_exec expose_authtok log=/root/passwords /bin/cat

  2. これら2つのファイルを編集し、.pam_unixを使用してpam_userdbに切り替えますcrypt=none。または、通常のパスワード(pam_unixも保持)に入れて、パスワードが変更されたときに記録することもできます。

  3. shadowpam_unixから(強力なハッシュオプションとともに)オプションを削除して、シャドウファイルを無効にし、既存の暗号化パスワードに戻ることができます.プレーンテキストではありませんが、John the Ripperが代わりに処理します。

詳しくはご確認くださいPAMシステム管理ガイド

PAMのソースコードを編集したり、独自のモジュールを書くこともできます。 PAM(またはモジュール)のみをコンパイルするだけです。

答え2

あ、まあ、最初から始めよう…

ユーザーのパスワードは/ etc / passwdに保存されていますが、暗号化された方法で保存されていることを知っています。

いいえ保存済み/etc/passwd、それは非常に長い前のものです。今日パスワードが保存されましたいわゆるシャドウファイルから、ほとんどの場合/etc/shadow

ただし、暗号化された方法なので、ルートも表示できません。

たまに同じ意味で使われることがわかるけどハッシュいいえ暗号化。暗号化は定義上元に戻すことができます。つまり、暗号化されたコンテンツをプレーンテキスト形式に戻すことができます。ハッシュは次のように設計されています。いいえ何らかの方法で元に戻すことができます(暴力を除く)。元のハッシュされたプレーンテキスト形式は回復しないでください。

シャドウファイルのパスワードはハッシュとして保存されます。

上記のように:x:パスワードを示します。

この場合は、前のパスワードフィールドのプレースxホルダーのみです。これはx、シャドウファイルでパスワードを見つけることができることを意味します。

ルートが見えるようにプレーンテキストで/ etc / passwdにパスワードを保存する方法(可能な設定)はありますか?

はい、実際に可能です。しかし、何らかの理由でこれは良い考えではありません。DeRobertの答えは非常に簡単なアプローチを説明しています。

しかし、なぜこれが良い考えではないのですか?シンプルだが非常に重要な理由が1つあります。まさに安全です。次の質問を読むことをお勧めします。

しかし、まとめると、会社にサーバーがあり、すべてのユーザーアカウントがパスワードで保護されており、そのユーザーアカウントのデータが同じパスワードで暗号化されているとします。外部クラッカーはサーバーにアクセスできますが、機密データはユーザーアカウントに暗号化されているためアクセスできません。

今、パスワードがプレーンテキストとして保存されているとします。クラッカーは突然アクセスできますすべて、パスワードを読むことができるからです。しかし、ハッシュとして保存されると、無差別代入攻撃を実行できるリソースが多い人を除いて、誰にも事実上役に立たない。

答え3

まず、暗号化されたパスワードはありません/etc/passwdがです/etc/shadow。 1つの理由は、/etc/passwd一般的に読むことができ(たとえば、他のユーザーのGECOSフィールド情報を見つけることができる)、特に古い暗号化スキームを使用すると、暗号化されたパスワードに対する無差別代入攻撃が許可される可能性があるためです。

パスワードをプレーンテキストとしてのみ保存する必要はなく、/etc/shadow有効なパスワードを確認するために情報を読み取るパスワードプログラムとライブラリを更新する必要があります。その後、プレーンテキストのパスワード保存を理解できないものに静的にリンクするのではなく、すべてのユーティリティが共有ライブラリを使用してその情報にアクセスすることを願っています。

これが設定構成のオプションであれば、それを不適切にオンにする愚かな人がいつもいるでしょう。情報を見ながら、CRT画面で作業し、建物の外で簡単に聴けるように放送しています。

さらに、人々は複数のシステムで同じまたは類似のパスワードを使用する傾向があるため、人間が読めるパスワードを使用することはお勧めできません。一部のシステム管理者は他のシステムでシステムを再試行できるため、ユーザーにアカウントがあることを知っています。

システムがどのように機能するかを調べるために、システムで実行できるより興味深い作業がはっきりしています。

答え4

これが悪い考えである基本的な理由は、どのユーザー(root、admin、またはその他)も他のユーザーのユーザーパスワードにアクセスできないことです。

パスワードは認証手段だからです。他のユーザーのパスワードを知っている場合は、その人の資格情報(ユーザー名+パスワード)を知っているので、ログインできます。このユーザーとして、その人(または彼女またはそれ)を詐称します。

そのユーザーとしてログインしている間に行ったすべての行動は、他のユーザーが責任を負います。これは認証が機能する方法ではありません。

これらのタスクは、重要なファイルの削除、ハードドライブの削除、バックアップの削除、原子力プログラムの終了などの災害を招く可能性があります。

または単に違法です。私(管理者)がすべてのパスワードにアクセスできる銀行機関を想像してください。窓口職員のパスワードを使用して、大統領銀行口座から窓口清掃部の銀行口座に百万ドルを振り込むよう命令することができました。その後、計算元の高度なパスワードを使用して取引が承認されます。次に、窓口清掃部の口座から私の海外銀行口座に小切手を承認します。

それからバハマで長期休暇に行きましたが…


この観点から見ると、パスワードハッシュとは別のシャドウファイルを使用することは、この規則を強制する手段として見ることができます(他のユーザーを偽装することはできません)。

@Miralのコメント*suのように偽装(および上記でスローされたさまざまな引数)を許可しながら使用ログも保持する例外があります(したがって、ルールは「管理者だけが他人を偽装することができますが、ログは保持します」に変更されます)。 。

*銀行事例が最善ではない場合があります。セキュリティが重要な環境では、単純なパスワードよりも多くの認証および承認手段が必要な場合が多い。

関連情報