攻撃者がmkdirを使用してシステムを損傷する方法はありますか?

攻撃者がmkdirを使用してシステムを損傷する方法はありますか?

ricardo私のシステムに問題を引き起こしているユーザーであるユーザーに制限されたユーザーアカウントを設定しています。私は彼にsudo時々必要な本番ディレクトリのアクセス許可を与えたいと思います。私は私のファイル/etc/sudoersで次の規則を検討しています。

ricardo   ALL=(root) NOPASSWD: /bin/mkdir

このルールだけを使用すると、リカルドは意図的にまたは意図せずにシステムを壊すことができますか?

ベストアンサー1

私はこのような攻撃がうまくいくと思います。ここで「何か」は、rootfsがインストールされた後にロードしようとするカーネルモジュールです。

$ sudo mkdir -m 777 /lib/modules/`uname -r`/a
$ cp evil.ko /lib/modules/`uname -r`/a/«something».ko

また、モジュールで宣言されたエイリアスによって異なる名前を使用できます。私は次のカーネルアップデートで発生するdepmodが実行されるまでロードされないと思います。したがって、mkdir最近のsudoログには表示されません。

/ etcには、ディレクトリ内のすべてのファイルを読むことがたくさんあり、時には再帰的に実行されます。さらに悪いことに、これらのディレクトリのいくつかは基本的に存在せず、これについて学ぶ唯一の方法は、そのディレクトリを使用するプログラムのマンページ、初期化スクリプトなどを読むことです。さらに悪いことには、以前のバージョンとの互換性が使用されなくなり、文書化されなくなる可能性があります。

編集する:より多くのディレクトリが浮上します。次の場所にあります/usr/local

  • /usr/local/lib/perl/5.14.2(Perlのバージョンによって異なりますので、perl -Vご確認ください。)Fileそこにサブディレクトリを作成しますFind.pm。誰かがそれを使用するたびにFile::Find攻撃者のバージョンを使用するようになります。同様に、同じことを行いますGetopt::Long。システムユーティリティは通常Perlで書かれているため、root権限を提供できます。 (努力するack-grep --color -a 'use.+::' /usr/sbin | less -R
  • Python、Rubyなどにも同様のディレクトリがあると思います。システムユーティリティもPythonで書かれています。
  • 一部の人々は/usr/local/include

おすすめ記事