rootアクセス権を持っていると、他のユーザーのパスワードを知ることができますか?

rootアクセス権を持っていると、他のユーザーのパスワードを知ることができますか?

特定のRHELシステムへのrootアクセス権がある場合は、他のユーザーのパスワードを取得できますか?

答え1

重要な要約:いいえ、パスワードはハッシュとして保存され(通常は)回復できません。

Linuxはどこにもプレーンテキストのパスワードを保存しません。基本的に。さまざまなアルゴリズムでハッシュまたは暗号化されます。したがって、一般的に言えば、保存されたデータでは不可能です。

パスワードがデータベース以外の場所に保存されている場合は、/etc/passwdそれを許可する方法で保存できます。 htpasswdファイルには弱く暗号化されたパスワードを含めることができ、他のアプリケーションではさまざまな(しばしば悪い)理由で弱いハッシュまたはプレーンテキストのパスワードを保存できます。

さらに、ユーザプロファイルには、様々な理由により暗号化されない、または弱く保護されたパスワードを含めることができる。 fetchmailは他のサービスのコンテンツをスクラップ.netrcしたり、簡単な自動化エントリにパスワードを含めることができます。

パスワードが以前の弱いアルゴリズム(3DES、MD5)を使用してハッシュまたは暗号化されている場合、変換を元に戻すのではなくデータを攻撃しても、パスワードはかなり効率的で安価に把握できます。 (例:http://project-rainbowcrack.com/またはhttp://www.openwall.com/john/)

あなたはルートなので、異なるレベルでユーザーパスワードを攻撃することもできます。ログインバイナリ、sudo、またはPAMの一部などを入力したパスワードをキャプチャするように置き換えます。

したがって、具体的にはそうではありません。しかし、通常、root アクセス権を持っていると、さまざまなサイド チャネルを通じてユーザーの詳細を簡単に取得できます。

答え2

ここにある他の答えの一部とは異なり、この質問と「根がある場合」で終わる他の多くの質問に対する簡単な答えは「はい」と言いたいと思います。

デフォルトでは、ルートはシステム自体で実行できるすべての操作をコンピュータで実行できます。システムはパスワードを承認できるため、ルートは十分な努力をしてパスワードを承認したり、パスワードを自分のパスワードに置き換えたりすることができます。さらに、その人はあなたのパスワードを変更したり、あなたになることができます。

特にパスワードは暗号化されることが多いです。これは通常、パスワードを確認するために使用できる数値(ハッシュ)を生成しますが、通常はその番号を反転してパスワードを再インポートしない、いわゆる「一方向」アルゴリズムです。したがって、誰かのパスワードを見つけるためにファイルを読むだけでは十分ではありません。

つまり、シェル履歴とログイン履歴を読み取ることができ、ある時点でユーザー名の代わりにパスワードを入力したか、パスワードプロンプトの代わりにシェルにパスワードを入力した可能性があります。この場合、プレーンテキストになります。これはテキストベースの端末で非常に一般的であり、私が知っている限り、良い解決策はありません。

しかし、これを控えていても、「一方向」暗号化は実際に行く方法ではありません。複数のパスワードの組み合わせを確認し、一致する組み合わせが見つかるまで、同じ一方向プロセスを使用して暗号化するツールがたくさんあります。その後、アクセス権を付与するパスワードを知っています(ルートとしてすでにそのシステムへのアクセス権がある場合でも)。

さらに悪いことに、上記のプロセスへの回答が事前に計算されたレインボーテーブルがあることです。人々はすでに与えられた暗号化されたパスワードから元のパスワードを生成しました。これにより、簡単な検索が可能になり、時間のかかるクラッキングの試みは不要です。

同様に、ルートレベルのアクセスも保護する必要があります。一度損傷すると、システム全体とその中のすべてが損傷します。お客様のビジネスがプライバシーを信頼できなくなったことをすべてのユーザーに通知するなど、再開が必要な場合です。はい、破産を意味する場合もあります。

答え3

可能であれば、rootパスワードクラッキングプログラムを実行できます/etc/shadow(LDAPやKerberosなどではなく、ローカルパスワードが使用されていると仮定)。良いパスワードを選択し、システムが強力なパスワードハッシュを使用するように設定されている場合、これは効果的ではない可能性があります。ただし、システムパスワードはプレーンテキストとして保存されず、直接アクセスすることもできませんroot

答え4

すべてのパスワードはファイルに保存されます/etc/shadow。 rootアクセスでこのファイルを開き、hash valuerootを含むすべてのユーザーのパスワードを表示できます。

ある種の復号化ソフトウェアがないと、これらのハッシュをプレーンテキストに戻すことはできません。

ただし、rootユーザーへのアクセス権がある場合は、次のコマンドを使用して一般ユーザーのパスワードを変更してそのアカウントにアクセスできます。

root@localhost$ passwd pradeep

ユーザーの新しいパスワードの入力を求められますpradeep。これにより、pradeep のパスワードを変更できます。

これで、自分のアカウントにアクセスできます。

root@localhost$ su pradeep

これによりpradeepユーザーに切り替えられ、次の端末が表示されます。

pradeep@localhost$

関連情報