IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

qui est le coupable : php ou debian ?


Sujet :

Administration système

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 39
    Points
    39
    Par défaut qui est le coupable : php ou debian ?
    Bonjour,

    J'ai fait executé par php le shell suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $adresse_mac = $_REQUEST['adresse_mac'];
    system('etherwake -i eth0 '.$adresse_mac );
    ?>
    Sa ne fonctionne pas, la commande est bonne, j'ai testé la même commande par print et copier coller vers un shell debian, la machine se réveille bien

    J'ai testé depuis php ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $file=$_REQUEST['file'];
    system ('touch '.$file);
    sa fonctionne très bien..

    Je ne comprend pas pourquoi il ne veut pas executer etherwake ??
    j'ai cru qu'il s'agissait d'un problème de droit ..
    Mais j'ai mis www-data avec les droits root et c'est identique
    sa ne fonctionne pas mieux , j'ai essayé shell_exec , exec de php ect..
    IDEM

    Merci pour votre aide.

  2. #2
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut
    Je suppose que touch, étant une commande système de base, il n'y a aucun problème quant à l'exécution. Cela peut-être la cause de ton soucis.
    As-tu essayé de mettre le chemin absolu de ton binaire etherwake?

    Pour connaître sa localisation:

    Donc tu auras quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $adresse_mac = $_REQUEST['adresse_mac'];
    system('/usr/sbin/etherwake -i eth0 '.$adresse_mac );
    ?>
    Si etherwake est situé dans /usr/sbin.
    Près des cîmes, loin des cons...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 39
    Points
    39
    Par défaut
    Hélas , oui j'ai mis le path du binaire..
    J'en avais tiré la même conclusion que toi , j'ai l'impression qu'il ne sait pas executé d'autre binaire que ceux du systeme debian..

  4. #4
    Membre averti Avatar de Vespasien
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 383
    Points : 434
    Points
    434
    Par défaut
    Que donnes:
    ls -all etherwake

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 39
    Points
    39
    Par défaut
    sa donne cela :

    debian#: ls -all /usr/sbin/etherwake

    - rwxr - xr - x 1 root root 11020 jun 19 2007 /usr/sbin/etherwake

    , Comme je disait , j'avais deja mis www-data en gid 0 , dans le meme groupe que root
    c'est idem

  6. #6
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut
    Un test comme ça:
    Peux-tu essayer de positionner le bit SETUID sur le binaire etherwake?

    En root tape:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chmod 4755 /usr/sbin/etherwake
    Cela te permettra d'exécuter etherwake avec les droits de l'user root.
    Près des cîmes, loin des cons...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 39
    Points
    39
    Par défaut
    Bien joué !!!

    Ça marche !!

    Donc un programme doit avoir le bit SUID pour être lancé en tant qu'utilisateur ?

  8. #8
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut
    Donc un programme doit avoir le bit SUID pour être lancé en tant qu'utilisateur ?
    Non, pas nécessairement, cela dépend.

    Pour qu'un utilisateur lambda puisse exécuter un binaire appartenant à root avec les droits de root (comme les commandes passwd ou mount par ex), il faut positionner soit le bit SETUID, soit le bit SETGID.

    Sinon le binaire sera exécuté mais avec les droits de l'utilisateur, d'où des éventuels soucis de non fonctionnement.
    Par ex, pour terminer un processus, on utilise la commande kill.
    Un utilisateur ne peut "killer" que les processus qui lui appartiennent (et heureusement).
    Par contre, si l'on positionne le bit SETUID sur le binaire kill, un utilisateur lambda pourra tuer les processus appartenant à root.

    Attention cependant à ne pas en coller de partout
    Près des cîmes, loin des cons...

  9. #9
    Membre confirmé Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Points : 477
    Points
    477
    Par défaut
    Il me semble qu'utiliser sudo serait plus judicieux. Comme ça pas tous les utilisateurs peuvent lancer etherwake.
    Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Le plus judicieux, c'est d'arrèter de faire exécuter ce genre de commande par php. Parce qu'à moins d'être dans un intranet de 5 personnes de confiance, il risque de se faire méchamment hacker ton serveur web. Les droits de root directement dans un php, c'est quand même un peu la fête du hacker.

  11. #11
    Membre confirmé Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Points : 477
    Points
    477
    Par défaut
    Disons que 'etherwake' c'est plutôt dans un intranet d'une entreprise. De plus les droits root ne sont pas donnés au serveur Apache.
    Et pour faire de l'administration réseau depuis une interface web, il faudra bien commencer à exécuter des commandes plus sensibles.
    Finalement, en suivant ce raisonnement, des outils d'administration comme SWAT ou Webmin ne devrait jamais être utilisé en entreprise ?
    Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Pour un intranet, ca peut rouler. Mais d'une manière générale, donner les droits suid sur un programme exécuté via php, c'est courir au carton. Ca fait partir des règles classiques de sécurité. Après, bien sur, il y a des évaluDès qu'on fait passer des paramêtresations à faire sur le risque. Un intranet d'entreprise n'est effectivement pas une jungle, dans la majorité des cas.

    Quand à webmin, les méthodes mises en place pour assurer la sécurité sont tout de même globalement évaluées par la communauté d'utilisateurs .

  13. #13
    Membre confirmé Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Points : 477
    Points
    477
    Par défaut
    C'est pourquoi j'ai recommandé sudo au lieu de setuid.
    Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/

Discussions similaires

  1. Mon XLS ne traite pas le XML qui est dans du php
    Par Marc22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/05/2010, 09h48
  2. [RegEx] recuperer des mots dans un texte qui est un code php
    Par hendrix67 dans le forum Langage
    Réponses: 1
    Dernier message: 25/05/2010, 16h11
  3. Réponses: 6
    Dernier message: 16/01/2006, 15h24
  4. Imprimer une autre page qui est en PHP
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/08/2005, 19h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo