Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1954 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Bash - ssh - location clé privé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bash - ssh - location clé privé

n°2009578
ffomnislas​h
Posté le 16-07-2010 à 16:47:37  profilanswer
 

Bonjour,
 
J'ai un petit problème. J'exécute un script avec setuid afin de me faire passer pour USER2, ensuite mon script exécute un ssh "USER2@machin.com". Mon problème est que ssh n'utilise pas la clé privé de USER2. Il doit y avoir un problème d'environnement.
 
Vous avez une idée de comment résoudre ce problème ?

mood
Publicité
Posté le 16-07-2010 à 16:47:37  profilanswer
 

n°2009669
Sve@r
Posté le 17-07-2010 à 10:02:53  profilanswer
 

ffomnislash a écrit :

Bonjour,
 
J'ai un petit problème. J'exécute un script avec setuid afin de me faire passer pour USER2, ensuite mon script exécute un ssh "USER2@machin.com". Mon problème est que ssh n'utilise pas la clé privé de USER2. Il doit y avoir un problème d'environnement.
 
Vous avez une idée de comment résoudre ce problème ?


 
Salut
 
Déjà le setuid sur un script ne fonctionne pas. En effet, dans un script (par exemple shell), c'est le programme /bin/bash qui exécute ton script et donc il faudrait que ce soit /bin/bash qui ait le setuid. Essaye, par exemple, de faire créer par ton script un fichier quelconque dans le home de USER2, ça m'étonnerait que ça marche.
 
Sinon pour ton problème, tu peux encapsuler ton ssh dans un su - USER2 -c "ssh 'USER2@machin.com'" (le petit "-" signifie que le su doit aussi récupérer l'environnement de USER2) ou bien sudo USER2 "ssh 'USER2@machin.com'" (le sudo récupère l'environnement par défaut) et comme ça, plus besoin de setuid...


Message édité par Sve@r le 17-07-2010 à 10:04:06

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2009872
ffomnislas​h
Posté le 19-07-2010 à 08:15:36  profilanswer
 

Désolé j'ai manqué de précision. Le setudi est sur un binaire (écrit en C) qui va exécuter un script qui va faire un ssh.
 
Pour su et sudo il est nécessaire de saisir un mot de passe et je n'ai pas accès à la configuration de la machine. L'avantage du setudi est que je peut le mettre en place sans demander d'autorisation )

n°2011436
Sve@r
Posté le 23-07-2010 à 19:32:21  profilanswer
 

ffomnislash a écrit :

Désolé j'ai manqué de précision. Le setudi est sur un binaire (écrit en C) qui va exécuter un script qui va faire un ssh.
 
Pour su et sudo il est nécessaire de saisir un mot de passe et je n'ai pas accès à la configuration de la machine. L'avantage du setudi est que je peut le mettre en place sans demander d'autorisation )


 
Ok. Impossible d'appeler su ou sudo.
 
Donc tu crées un exécutable qui va appeler un script qui fait appel à ssh. Le problème, c'est que si tu exécutes cet exécutable, il sera exécuté avec ton environnement. Le setuid change le uid mais ne change pas l'environnement général et ne permet pas de te "faire passer" pour quelqu'un d'autre.
 
Tu vas donc modifier ton exécutable pour que le début ressemble à ceci

Code :
  1. int main(int argc, char *argv[], char *envp[])
  2. {
  3.     char **pt;
  4.     for (pt=envp; *pt; pt++)
  5.     {
  6.          if (strncmp(*pt, "LOGNAME=", 8) == 0)
  7.          {
  8.               strcpy(*pt, "LOGNAME=user2" )
  9.          }
  10.          printf("%s\n", *pt);
  11.     }
  12.     <...la suite reste la même...>
  13. }


 
"Normalement" ça devrait fonctionner. Pour être vraiment béton il faudrait parser tout l'environnement et remplacer partout où il y a "user1" par "user2" (et non pas se contenter de LOGNAME) mais je pense que juste ça, ça suffit...


Message édité par Sve@r le 23-07-2010 à 19:34:37

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Bash - ssh - location clé privé

 

Sujets relatifs
[Résolu] utilisation de onclick et location.hrefscript shell bash
[Résolu] bash - grep et expressions régulièresExo en bash ^^
Compter en bash[bash] wait pour n'attendre qu'un seul fils
[resolu]lire un attribut prive (poo)Fichiers a rendre public ou prive sur site web genre .htaccess
[BASH] automatisation de copie de CDCorrection script bash
Plus de sujets relatifs à : Bash - ssh - location clé privé


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)