macOS Perl Applications Injection
Dowiedz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Dowiedz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Przez zmienną środowiskową PERL5OPT
i PERL5LIB
PERL5OPT
i PERL5LIB
Korzystając z zmiennej środowiskowej PERL5OPT, można sprawić, że perl będzie wykonywał dowolne polecenia. Na przykład, stwórz ten skrypt:
Teraz wyeksportuj zmienną środowiskową i wykonaj skrypt perl:
Kolejną opcją jest utworzenie modułu Perl (np. /tmp/pmod.pm
):
Następnie użyj zmiennych środowiskowych:
Poprzez zależności
Możliwe jest wyświetlenie kolejności folderów zależności Perl:
Który zwróci coś w stylu:
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ć zależności skryptu, dzięki czemu skrypt Perl o wysokich uprawnieniach go załaduje.
Jednakże zauważ, że musisz być rootem, aby móc pisać w tym folderze i obecnie otrzymasz ten komunikat TCC:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-ca4f55331df2750af3428efbba41f63b22f62725%252Fimage%2520%2828%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=ced7fb20&sv=1)
Na przykład, jeśli skrypt importuje use File::Basename;
, byłoby możliwe utworzenie /Library/Perl/5.30/File/Basename.pm
, aby wykonać arbitralny kod.
Referencje
Dowiedz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Dowiedz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated