
特定の RHEL マシンへのルートアクセス権を持つユーザーは、他のユーザーのパスワードを取得できますか?
答え1
TL;DR: いいえ、パスワードはハッシュとして保存され、(一般的に)復元できません。
Linuxはプレーンテキストのパスワードをどこにも保存しないデフォルトでさまざまなアルゴリズムによってハッシュ化または暗号化されます。したがって、一般的に、保存されたデータではこれは不可能です。
データベース以外の場所にパスワードを保存している場合/etc/passwd
、このようなことが起こり得る方法で保存されている可能性があります。 htpasswd
ファイルには脆弱な暗号化パスワードが含まれている可能性があり、他のアプリケーションではさまざまな (通常は悪い) 理由により、より弱いハッシュまたはプレーン テキスト パスワードが保存されている可能性があります。
また、ユーザー設定ファイルには、さまざまな理由 (fetchmail が別のサービスからコンテンツを取得する、単純な自動化機能でパスワードが含まれるなど) により、暗号化されていないパスワードや保護が弱いパスワード.netrc
が含まれている場合があります。
パスワードがハッシュ化または古い弱いアルゴリズム(3DES、MD5)で暗号化されている場合、変換を元に戻すのではなく、データを攻撃することで、かなり効率的かつ安価にパスワードを解読することが可能です。(例:http://project-rainbowcrack.com/またはhttp://www.openwall.com/john/)
あなたは root なので、別のレベルでユーザー パスワードを攻撃することも可能です。つまり、ログイン バイナリ、sudo、PAM の一部などを、入力時にパスワードをキャプチャするものに置き換えます。
つまり、具体的にはそうではありませんが、一般的にはルートアクセス権があれば、さまざまなサイドチャネルを通じてユーザーの詳細にアクセスしやすくなります。
答え2
ここでの他の回答とは対照的に、この質問や「ルート権限を持っている場合」で終わる他の多くの質問に対する簡単な答えは「はい」であると私は言います。
基本的に、root はシステム自体が実行できるすべてのことをマシン上で実行できます。システムはパスワードを受け入れることができるため、root は十分な努力をすれば、あなたのパスワードを受け入れることも、あなたのパスワードの代わりに自分のパスワードを受け入れることもできます。さらに重要なことは、root はあなたのパスワードを変更したり、あなたになったりできるということです。
具体的には、パスワードは通常暗号化されています。これは通常、いわゆる「一方向」アルゴリズムの一種で、パスワードの確認に使用できる数値 (ハッシュ) を生成しますが、通常は数値を逆にしてパスワードを復元することはできません。したがって、ファイルを読み取って誰かのパスワードを取得するだけでは十分ではありません。
そうは言っても、シェル履歴やログイン履歴を読むことは可能です。おそらく、ユーザー名の代わりにパスワードを入力したか、パスワード プロンプトではなくシェルで入力したのでしょう。その場合、プレーン テキストになります。これはテキスト ベースの端末では驚くほど一般的ですが、私が知る限り、良い解決策はありません。
しかし、その問題を別にしても、「一方向」の暗号化は実際には一方向ではありません。パスフレーズのさまざまな組み合わせを調べ、同じ一方向のプロセスで暗号化して、一致するものを見つけるツールはたくさんあります。一致するものを見つけると、アクセスするためのパスワードがわかります (ただし、ルートとして、そのマシンにはすでにアクセス権があります)。
さらに悪いことに、レインボー テーブルがあります。これは、上記のプロセスに対する事前に計算された答えです。つまり、与えられた暗号化されたパスワードから元のパスワードがすでに生成されています。これを使用すると、検索は簡単です。時間のかかるクラッキングの試行は必要ありません。
繰り返しますが、ルート レベルのアクセスこそが保護すべきものです。これが侵害されると、マシン全体とマシン上のすべてのものが侵害されます。すべてのユーザーに、あなたの会社がプライバシー保護に関して信頼できなくなったことを通知するなど、やり直す必要があります。そして、それは廃業を意味する可能性もあります。
答え3
持っている場合はroot
、パスワード クラッカーを実行できます/etc/shadow
(LDAP や Kerberos などではなく、ローカル パスワードを想定)。適切なパスワードが選択され、システムが強力なパスワード ハッシュを使用するように構成されている場合、これは効果がない可能性があります。ただし、システム パスワードはプレーンテキストで保存されていないため、 であってもパスワードを直接使用することはできませんroot
。
答え4
すべてのパスワードはファイルに保存されます。ルート アクセスを使用してこのファイルを開き、各ユーザー (ルート ユーザーも含む) のパスワード/etc/shadow
を確認できます。hash value
何らかのパスワード復号化ソフトウェアがない限り、これらのハッシュ値を通常のテキストに戻すことはできません。
ただし、root ユーザーにアクセスできる場合は、次のコマンドを使用して通常のユーザーのパスワードを変更し、そのアカウントにアクセスできます。
root@localhost$ passwd pradeep
これにより、ユーザーに設定する新しいパスワードの入力を求められますpradeep
。この方法で、pradeep のパスワードを変更できます。
今、彼のアカウントからアクセスするには、次の手順に従ってください:
root@localhost$ su pradeep
これにより、pradeep ユーザーに切り替わり、次のようなターミナルが表示されます。
pradeep@localhost$