特定の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 value
rootを含むすべてのユーザーのパスワードを表示できます。
ある種の復号化ソフトウェアがないと、これらのハッシュをプレーンテキストに戻すことはできません。
ただし、rootユーザーへのアクセス権がある場合は、次のコマンドを使用して一般ユーザーのパスワードを変更してそのアカウントにアクセスできます。
root@localhost$ passwd pradeep
ユーザーの新しいパスワードの入力を求められますpradeep
。これにより、pradeep のパスワードを変更できます。
これで、自分のアカウントにアクセスできます。
root@localhost$ su pradeep
これによりpradeepユーザーに切り替えられ、次の端末が表示されます。
pradeep@localhost$