Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/08/2008, à 13:22

Christophe C2

Problème pour compiler un script avec SHC

Bonjour,

J'essaie de compiler un script, mais sans succès. Détails de mon opération :

- je met dans mon script son.sh une unique ligne echo mon-mot-de-passe | sudo -S alsa force-reload
- pour tester, je lance ce fichier script sans compilation : ça marche, et il ne me demande pas le mot de passe, comme souhaité.
- C'est pas top de laisser son mot de passe lisible dans un script, donc je  compil par la commande (dans le terminal) : shc -f /home/christophe/Grolier/références/son.sh (j'ai téléchargé shc auparavant, bien sur). Voila ce que le système me répond :

christophe@christophe-desktop:~$ shc -f /home/christophe/Grolier/références/son.sh
shc: invalid first line in script: echo mon-mot-de-passe | sudo -S alsa force-reload
shc: Success
christophe@christophe-desktop:~$

Effectivement, je n'ai pas de fichier son.sh.x sur mon ordi.

Apparemment, shc refuse la seule ligne de mon script, alors même que celui-ci s'éxécute sans pb quand il n'est pas compilé.

A quel endroit me suis-je trompé ?

Cordialement.

#2 Le 25/08/2008, à 13:47

Totor

Re : Problème pour compiler un script avec SHC

Essaie en mettant ceci en 1ère ligne de script :

#!/bin/bash


-- Lucid Lynx --

Hors ligne

#3 Le 25/08/2008, à 18:54

Link31

Re : Problème pour compiler un script avec SHC

Christophe C2 a écrit :

- C'est pas top de laisser son mot de passe lisible dans un script, donc je  compil par la commande (dans le terminal) : shc -f /home/christophe/Grolier/références/son.sh (j'ai téléchargé shc auparavant, bien sur).

Et tu t'imagines peut-être que shc va rendre le mot de passe plus difficile à trouver ? Dans tous les cas il sera visible en clair dans ps aux par tous les utilisateurs du système.

La bonne méthode pour faire ça s'appelle /etc/sudoers, et est décrite dans la documentation.

Hors ligne

#4 Le 25/08/2008, à 20:22

Christophe C

Re : Problème pour compiler un script avec SHC

Dans tous les cas il sera visible en clair dans ps aux par tous les utilisateurs du système.

Heu.. tu peut expliquer ? il y a une faute de français, je pense. Je comprend l'idée, mais ce n'est pas clair pour moi. Tu veux parler d'une décompilation ?


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#5 Le 25/08/2008, à 20:27

Totor

Re : Problème pour compiler un script avec SHC

non, Link31 ne parle pas d'une décompilation.
Lorsque ton script sera lancé, l'exécution de l'instruction "ps aux" fera ressortir ton pwd. Enfin, c'est ce que je comprend.


-- Lucid Lynx --

Hors ligne

#6 Le 25/08/2008, à 20:49

Christophe C

Re : Problème pour compiler un script avec SHC

Hargll !

Bon, ceci dit, la compilation ne marche toujours pas.

J'ai modifié le script comme tu l'a dit :

#!/bin/bash
echo mon-mot-de-passe | sudo -S alsa force-reload

Ca me crache une page d'erreur, une source C son.sh.x.c, mais pas de fichier exécutable. Ceci dit, si vous pensez que cela ne sert à rien....
Reste alors la solution de sudoers, mais qui plantait aussi (je suis damné). Je vais ouvrir un autre fil sur cette question, c'est un autre pb. Et pas le bon forum, je pense.

Ceci dit, rien que pour le principe, j'aimerais bien trouver pourquoi mon script plante à la compilation, et quel est le risque d'interception du mot de passe dans un script compilé.

Et merci pour votre aide, c'est sympa !


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#7 Le 25/08/2008, à 21:34

Totor

Re : Problème pour compiler un script avec SHC

Bon, j'ai téléchargé et installé shc via apt-get.
j'ai créé un fichier toto.sh contenant :

echo mon-mot-de-passe | sudo -S alsa force-reload

j'ai lancé la génération du binaire :

shc -f ./toto.sh

et j'ai eu le même message que toi :

shc: invalid first line in script: echo mon-mot-de-passe | sudo -S alsa force-reload
shc: Success

puis, j'ai modifié le fichier et ajouté la ligne que je t'avais indiqué. mon fichier devient donc :

#!/bin/bash
echo mon-mot-de-passe | sudo -S alsa force-reload

Je n'ai pas eu d'erreur ...

Ensuite, j'ai exécuté le binaire : ./toto.sh.x dans un terminal, et j'obtiens  :

[sudo] password for monuser:
Sorry, try again.
[sudo] password for monuser:
sudo: 1 incorrect password attempt

(normal, le script était tel quel !)
le script se termine tout seul.

je le relance et en parallèle, je fais un "ps aux |grep sudo" (donc je liste les processus que je filtre sur le critère sudo). Voici le résultat  :

#!/bin/bash?echo mon-mot-de-passe | sudo -S alsa
root      7542  0.0  0.1   3704  1320 pts/1    S+   21:29   0:00 sudo -S alsa force-reload
monuser    7544  0.0  0.0   3012   760 pts/2    R+   21:29   0:00 grep sudo

comme quoi, c'est pas paske c'est du binaire que c'est pas en claire !


-- Lucid Lynx --

Hors ligne

#8 Le 25/08/2008, à 21:36

Link31

Re : Problème pour compiler un script avec SHC

Eh bien, un attaquant peut :
- surveiller la liste des processus pour surprendre le echo
- ralentir volontairement le système pour avoir plus de chances de pêcher le echo
- copier le script compilé et l'examiner tranquillement chez lui
- ouvrir le fichier dans un éditeur de texte
- utiliser la commande strings
- créer son propre programme nommé "alsa" qui lui renverra gentiment le mot de passe sur la sortie standard
...

Ce n'est pas pour rien que les mots de passe ne sont jamais stockés clair dans un système UNIX (passons sur les failles de sécurité à répétition de certaines versions d'Ubuntu).

Il existe une méthode dédiée à ce genre de chose, utilise la. D'ailleurs, c'est justement le fichier /etc/sudoers qui est la raison d'être de la commande sudo.

edit : en plus, comme tu le vois, sudo n'acceptera probablement pas que tu lui passes ton mot de passe de cette façon, à moins de vraiment vouloir passer par un hack...

Dernière modification par Link31 (Le 25/08/2008, à 21:40)

Hors ligne

#9 Le 26/08/2008, à 11:29

Totor

Re : Problème pour compiler un script avec SHC

Link31 a écrit :

- créer son propre programme nommé "alsa" qui lui renverra gentiment le mot de passe sur la sortie standard
...

sudo fourni le pwd à alsa ?


-- Lucid Lynx --

Hors ligne

#10 Le 26/08/2008, à 13:00

Christophe C2

Re : Problème pour compiler un script avec SHC

Pour totor : c'est bizarre que cela marche chez toi et pas chez moi, quand même. C'est peut-être le stockage dans mon répertoire "référence". Je vois que tu lance la compil sans indiquer de répertoire. Tu a mis ton script dans quel répertoire ? Home ?

Pour Link31 : merci pour avoir attiré mon attention sur ce pb de mots de passe. Je vais donc revenir à la solution sudoers, la 1er que j'ai testé, mais qui ne marchait pas non plus mad. Je posterais un message dans le bon forum (quoique après vérif, je me demande si ce n'est pas celui-ci, en fait. Puisque cela touche à l'exécution des commandes).

Encore merci à tous les deux.

#11 Le 26/08/2008, à 13:05

Christophe C2

Re : Problème pour compiler un script avec SHC

Pour totor : c'est bizarre que cela marche chez toi et pas chez moi, quand même. C'est peut-être le stockage dans mon répertoire "référence". Je vois que tu lance la compil sans indiquer de répertoire. Tu a mis ton script dans quel répertoire ? Home ?

Pour Link31 : merci pour avoir attiré mon attention sur ce pb de mots de passe. Je vais donc revenir à la solution sudoers, la 1er que j'ai testé, mais qui ne marchait pas non plus mad. Je posterais un message dans le bon forum (quoique après vérif, je me demande si ce n'est pas celui-ci, en fait. Puisque cela touche à l'exécution des commandes).

Encore merci à tous les deux.

#12 Le 26/08/2008, à 18:53

Link31

Re : Problème pour compiler un script avec SHC

Totor a écrit :

sudo fourni le pwd à alsa ?

Oui, sauf s'il le lit depuis l'entrée standard, mais ça m'étonnerait. Même dans ce cas, il suffit de créer un exécutable sudo.

Hors ligne

#13 Le 26/08/2008, à 22:26

Totor

Re : Problème pour compiler un script avec SHC

Link31 a écrit :

Oui, sauf s'il le lit depuis l'entrée standard, mais ça m'étonnerait.

ça ma parait étrange comme mécanisme ! Je pensais (probablement à tords) que sudo permettait juste de "créer" (après vérification de l'identité) l'environnement utilisateur pour lequel on souhaite utiliser la commande puis de l'exécuter ! Le changement d'identité était pour moi transparent pour l'intruction à exécuter ...:rolleyes:

Link31 a écrit :

Même dans ce cas, il suffit de créer un exécutable sudo.

oui, c'est sûr !


-- Lucid Lynx --

Hors ligne

#14 Le 26/08/2008, à 22:33

Link31

Re : Problème pour compiler un script avec SHC

C'est vrai que j'utilise rarement sudo, mais s'il n'utilise pas l'entrée standard (celle du pipe) pour lui-même, ça me  semblerait logique qu'il passe son contenu à la commande.

Hors ligne

#15 Le 12/07/2009, à 18:14

teke

Re : Problème pour compiler un script avec SHC

pour répondre à la question initiale... il manque les librairies pour "compiler" :

sudo apt-get install build-essential

#16 Le 22/10/2013, à 15:57

andykimpe

Re : Problème pour compiler un script avec SHC

j'ai moi même remarquer des problème avec shc il suffi de l'utilisez avec les option suivante pour les résoudre

shc -v -r -T -f nomdufichier.sh

Hors ligne