macOS Perl Applications Injection
Através das variáveis de ambiente PERL5OPT
e PERL5LIB
PERL5OPT
e PERL5LIB
Usando a variável de ambiente PERL5OPT, é possível fazer o perl executar comandos arbitrários. Por exemplo, crie este script:
Agora exporte a variável de ambiente e execute o script perl:
Outra opção é criar um módulo Perl (por exemplo, /tmp/pmod.pm
):
E então use as variáveis de ambiente:
Através de dependências
É possível listar a ordem da pasta de dependências do Perl em execução:
O seguinte é o conteúdo de um livro sobre técnicas de hacking. O conteúdo a seguir é do arquivo macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md. Traduza o texto em inglês relevante para o português e retorne a tradução mantendo exatamente a mesma sintaxe markdown e html. Não traduza coisas como código, nomes de técnicas de hacking, palavras de hacking, nomes de plataformas de nuvem/SaaS (como Workspace, aws, gcp...), a palavra 'leak', pentesting e tags markdown. Além disso, não adicione nada extra além da tradução e da sintaxe markdown.
Algumas das pastas retornadas nem mesmo existem, no entanto, /Library/Perl/5.30
existe, não é protegida pelo SIP e está antes das pastas protegidas pelo SIP. Portanto, alguém poderia abusar dessa pasta para adicionar dependências de script nela, para que um script Perl de alto privilégio as carregue.
No entanto, observe que você precisa ser root para escrever nessa pasta e hoje em dia você receberá este prompt TCC:
Por exemplo, se um script estiver importando use File::Basename;
seria possível criar /Library/Perl/5.30/File/Basename.pm
para executar código arbitrário.
Referências
Last updated