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
variável de ambienteUsando 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:
É possível listar a ordem da pasta de dependências do Perl em execução:
Que retornará algo como:
Algumas das pastas retornadas nem 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 lá, de modo que um script Perl de alta privilégio o carregue.
No entanto, note que você precisa ser root para escrever nessa pasta e hoje em dia você receberá este prompt do TCC:
Por exemplo, se um script estiver importando use File::Basename;
, seria possível criar /Library/Perl/5.30/File/Basename.pm
para fazer com que ele execute código arbitrário.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)