macOS Perl Applications Injection
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
PERL5OPT
と PERL5LIB
環境変数を使用して環境変数 PERL5OPT を使用すると、perl が任意のコマンドを実行することが可能です。 例えば、このスクリプトを作成します:
今、env変数をエクスポートし、perlスクリプトを実行します:
別のオプションは、Perlモジュールを作成することです(例:/tmp/pmod.pm
):
そして、env変数を使用します:
Perlが実行されている依存関係フォルダーの順序をリストすることが可能です:
どのように返されるかというと:
いくつかの返されたフォルダは存在しませんが、/Library/Perl/5.30
は 存在 し、SIP によって 保護されていません し、SIP によって 保護されたフォルダの前 にあります。したがって、誰かがそのフォルダを悪用してスクリプトの依存関係を追加し、高権限のPerlスクリプトがそれを読み込むことができます。
ただし、そのフォルダに書き込むには root である必要があり、現在ではこの TCCプロンプト が表示されます:
例えば、スクリプトが use File::Basename;
をインポートしている場合、/Library/Perl/5.30/File/Basename.pm
を作成して任意のコードを実行させることが可能です。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)