macOS Perl Applications Injection
PERL5OPT
およびPERL5LIB
環境変数を介して
PERL5OPT
およびPERL5LIB
環境変数を介して環境変数PERL5OPTを使用すると、perlが任意のコマンドを実行することが可能です。 たとえば、次のスクリプトを作成します:
test.pl
次に環境変数をエクスポートしてperlスクリプトを実行します:
別のオプションは、Perlモジュールを作成することです(例:/tmp/pmod.pm
):
/tmp/pmod.pm
その後、環境変数を使用します:
依存関係を介して
Perlを実行している依存関係フォルダの順序をリストアップすることができます:
次のように返されます:
いくつかの返されたフォルダは存在しない場合がありますが、/Library/Perl/5.30
は存在し、SIPによって保護されていません。また、このフォルダはSIPによって保護されているフォルダよりも前にあります。したがって、誰かがそのフォルダを悪用してスクリプトの依存関係を追加し、高特権のPerlスクリプトがそれを読み込むことができます。
ただし、そのフォルダに書き込むにはroot権限が必要であり、現在ではこのTCCプロンプトが表示されます:
たとえば、スクリプトが**use File::Basename;
をインポートしている場合、/Library/Perl/5.30/File/Basename.pm
**を作成して任意のコードを実行させることが可能です。
参考文献
Last updated