macOS Perl Applications Injection
Μέσω των μεταβλητών περιβάλλοντος PERL5OPT
& PERL5LIB
PERL5OPT
& PERL5LIB
Χρησιμοποιώντας τη μεταβλητή περιβάλλοντος PERL5OPT είναι δυνατόν να κάνετε το perl να εκτελέσει αυθαίρετες εντολές. Για παράδειγμα, δημιουργήστε αυτό το σενάριο:
Τώρα εξαγάγετε τη μεταβλητή περιβάλλοντος και εκτελέστε το script perl:
Μια άλλη επιλογή είναι να δημιουργήσετε ένα Perl module (π.χ. /tmp/pmod.pm
):
Και στη συνέχεια χρησιμοποιήστε τις μεταβλητές περιβάλλοντος:
Μέσω εξαρτήσεων
Είναι δυνατόν να εμφανιστεί η λίστα των φακέλων εξαρτήσεων του Perl που εκτελείται:
Που θα επιστρέψει κάτι παρόμοιο:
Μερικοί από τους φακέλους που επιστράφηκαν δεν υπάρχουν καν, ωστόσο, το /Library/Perl/5.30
υπάρχει, δεν προστατεύεται από το SIP και βρίσκεται πριν από τους φακέλους που προστατεύονται από το SIP. Συνεπώς, κάποιος θα μπορούσε να εκμεταλλευτεί αυτόν τον φάκελο για να προσθέσει εξαρτήσεις σε scripts ώστε ένα Perl script υψηλής προνομιακής πρόσβασης να τις φορτώσει.
Ωστόσο, σημειώστε ότι χρειάζεστε root για να γράψετε σε αυτόν τον φάκελο και σήμερα θα λάβετε αυτό το TCC prompt:
Για παράδειγμα, αν ένα script εισάγει use File::Basename;
θα ήταν δυνατόν να δημιουργηθεί το /Library/Perl/5.30/File/Basename.pm
για να εκτελέσει αυθαίρετο κώδικα.
Αναφορές
Last updated