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

Sécurité Discussion :

Difference d'execution selon l'emplacement


Sujet :

Sécurité

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut Difference d'execution selon l'emplacement
    Bonjour


    Je ne suis pas sur de poster dans la bonne catégorie mais c'est un peu un problème de sécurité :

    J'ai codé un petit programme tout simple qui prend le paramètre entré par l'utilisateur et qui l'exécute via system() afin de voir s'il était possible d'exécuter des commandes root en tant qu'utilisateur standard (Oui, je sais system() c'est le mal )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h>
    #define NOM_SOFT "rootadit"
     
    int main(int argc, char* argv[])
    {
        if(argc < 2)
        {
            fprintf(stdout, "Usage : $ %s \"commande\"", NOM_SOFT);
            return 1;
        }
     
        system(argv[1]);
        return 1;
    }


    Puis, je le compile et je le "chown" en root

    distopia@dallas:/media/dallas$ gcc -o rootadit rootadit.c
    distopia@dallas:/media/dallas$ sudo chown root:root ./rootadit
    [sudo] password for distopia:
    distopia@dallas:/media/dallas$ ./rootadit "whoami"
    distopia
    distopia@dallas:/media/dallas$ sudo chmod u+s rootadit
    distopia@dallas:/media/dallas$ ls -l
    -rwsr-xr-x 1 root root 7217 2011-11-17 21:56 rootadit
    -rw-r--r-- 1 distopia distopia 689 2011-11-17 19:08 rootadit.c
    distopia@dallas:/media/dallas$ ./rootadit "whoami"
    root

    Comme vous le voyez, un simple utilisateur pourrait utiliser ce soft pour faire des bêtises...
    Mais si je tente la même chose à partir d'une clé USB :

    distopia@dallas:/media/RutherfordUSB$ gcc -o rootadit rootadit.c
    distopia@dallas:/media/RutherfordUSB$ sudo chown root:root ./rootadit
    [sudo] password for distopia:
    distopia@dallas:/media/RutherfordUSB$ ./rootadit "whoami"
    distopia
    distopia@dallas:/media/RutherfordUSB$ sudo chmod u+s rootadit
    distopia@dallas:/media/RutherfordUSB$ ls -l
    -rwsr-xr-x 1 root root 7217 2011-11-17 21:59 rootadit
    -rw-r--r-- 1 distopia distopia 689 2011-11-17 19:08 rootadit.c

    distopia@dallas:/media/RutherfordUSB$ ./rootadit "whoami"
    distopia

    Le système comprend que je veux le duper alors que les deux dossiers (le disque et le clé ont les même droits)

    distopia@dallas:/media/RutherfordUSB$ ls -l /media/
    drwxrwxrwx 6 root root 4096 2011-11-17 21:56 dallas
    drwxrwxrwx 7 root root 4096 2011-11-17 21:59 RutherfordUSB


    Quelque part c'est rassurant car si on pouvait exécuter ce soft à partir d'une clé USB, çe serait une faille énorme.
    Mais je me demandais, pourquoi ça marche sur le disque dur ( /media/dallas/ ) et pas sur la clé?


    Merci de votre attention

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    ton programme doit s'exécuter les commandes comme utilisateur pas comme root, si il a besoin de toucher aux périphériques ou de modifier des libs ou fichiers dans /usr tu dois utiliser les setuid sur les commandes concernées.

    mais lancer un sudo dans system().... ça limite pas le programme et c'est déjà moins porcasse que system(...sudo -c "commandes");

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Problème résolu :

    la clef USB est effectivement montée avec l’option nosuid, qui rend inopérant le bit set-user-id mais pas "/media/dallas/

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par distopia Voir le message
    la clef USB est effectivement montée avec l’option nosuid, qui rend inopérant le bit set-user-id mais pas "/media/dallas/
    Faut pas croire, mais les guignoles qui ecrivent les systemes d'exploitations s'y connaissent un peu en securite
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. [XL-2003] VBA difference d'execution de macro selon si on est en pas à pas
    Par sharox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2015, 16h04
  2. Réponses: 7
    Dernier message: 30/08/2006, 16h38
  3. [ADO.Net][C#/DataSet] Comment différer l'exécution de méthodes ?
    Par Invité dans le forum Accès aux données
    Réponses: 4
    Dernier message: 26/04/2006, 17h14
  4. difference d'affichage selon windows XP
    Par firejocker dans le forum MFC
    Réponses: 9
    Dernier message: 03/02/2006, 19h24
  5. [GUI] Conception différent de exécution
    Par kourdou59 dans le forum JBuilder
    Réponses: 1
    Dernier message: 27/06/2005, 10h54

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