macOS Perl Applications Injection
Przez zmienną środowiskową PERL5OPT
& PERL5LIB
PERL5OPT
& PERL5LIB
Korzystając z zmiennej środowiskowej PERL5OPT, można sprawić, że perl będzie wykonywał dowolne polecenia. Na przykład, stwórz ten skrypt:
Teraz wyeksportuj zmienną środowiskową i wykonaj skrypt perl:
Kolejną opcją jest utworzenie modułu Perl (np. /tmp/pmod.pm
):
Następnie użyj zmiennych środowiskowych:
Przez zależności
Możliwe jest wyświetlenie kolejności folderów zależności uruchamiania Perla:
Który zwróci coś w stylu:
Niektóre z zwróconych folderów nawet nie istnieją, jednak /Library/Perl/5.30
istnieje, nie jest chroniony przez SIP i znajduje się przed folderami chronionymi przez SIP. Dlatego ktoś mógłby nadużyć tego folderu, aby dodać zależności skryptu, tak aby skrypt Perl o wysokich uprawnieniach mógł je załadować.
Należy jednak zauważyć, że musisz być rootem, aby móc pisać w tym folderze, a obecnie otrzymasz ten komunikat TCC:
Na przykład, jeśli skrypt importuje use File::Basename;
, byłoby możliwe utworzenie /Library/Perl/5.30/File/Basename.pm
, aby wykonać arbitralny kod.
Referencje
Last updated