Annonce

Réduire
Aucune annonce.

Prendre le contrôle de Linux (nécessite accès physique) - [chroot]

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Prendre le contrôle de Linux (nécessite accès physique) - [chroot]

    Bonjour,

    je vais vous parler d'une méthode, basique, sans doute connue, pour prendre le contrôle d'un ordinateur sous Linux (la première que j'ai apprise à faire) à l'aide d'un Linux Live.

    Le "soucis" de cette solution est qu'il faut avoir un accès physique au système.

    Au moment ou je rédige ces quelques lignes, j'utilise un Linux Debian amd64 Stretch.

    Commençons :

    Tout d'abord, il faut avoir une image Live de Linux. J'ai utilisé : Linux Debian x64 Live. Ensuite il faut pouvoir booter sur un support CD ou USB. Plusieurs logiciels permettent de le faire, par exemple sous Windaube il y a : LinuxLive USB Creator, et sous Linux on peut le faire en ligne de commande (insérer le support, le démonter, et utiliser la commande dd).

    Une fois le support près, il suffit de booter dessus.

    Information de connexion :
    • debian login: user
    • Password: live


    Pour continuer, il faut être "Super utilisateur" soit root.
    Pour ce faire :

    Code:
    [email protected]:~$ sudo -i
    Affichons les espaces de stockages présents dans le système :

    Code:
    [email protected]:~# fdisk -l
    ce qui me renvoie (de manière simplifiée):

    Code:
    Disk /dev/sda: 76.3 GiB <=> mon disque dur
    
    /dev/sda1 <=> ma partition EFI
    /dev/sda2 <=> mon swap
    /dev/sda3 <=> mon système de fichier
    
    Disk /dev/sdb : 7.3 GiB <=> ma clé USB contenant l'image Live de Linux
    Actuellement, nous nous trouvons dans /dev/sdb. Pour prendre le contrôle du disque dur nous allons "changer la racine", grâce à la commande :

    Code:
    chroot
    Avant de l'utiliser nous devons faire quelques petits préparatifs.

    Premièrement, nous allons monter la partition /dev/sda3 (qui contient mon root-fs) sur notre clé USB, dans /mnt/ par exemple.

    Code:
    [email protected]:~# mount /dev/sda3 /mnt
    Bien qu'on ai monté /dev/sda3 sur /mnt.. Trois dossiers restent vides, alors qu'ils ne devraient pas l'être.

    Pour vous en assurer, comparez :

    Code:
    [email protected]:~# ls /sys
    [email protected]:~# ls /mnt/sys
    Code:
    [email protected]:~# ls /dev
    [email protected]:~# ls /mnt/dev
    et

    Code:
    [email protected]:~# ls /proc
    [email protected]:~# ls /mnt/proc
    En réalité, ces répertoires sont peuplés par le kernel. Ils sont donc importants.

    Pour les répertoires /mnt/sys et /mnt/dev

    il suffit de faire :

    Code:
    [email protected]:~# mount --bind /sys /mnt/sys
    [email protected]:~# mount --bind /dev /mnt/dev
    L'option --bind permet de rendre accessible les répertoires /sys et /dev depuis /mnt/sys et /mnt/dev

    Pour le répertoire /mnt/proc c'est différent

    la commande :

    Code:
    [email protected]:~# mount -t proc none /mnt/proc
    ici de manière simple, on ne monte rien sur /mnt/proc, on mentionne juste, que le répertoire /mnt/proc est de type proc. (voir man pour plus d'explications).

    Et voilà ! Le système est fin près à pouvoir changer de racine !

    Code:
    [email protected]:~# chroot /mnt
    Vous êtes actuellement root, et avez accès à toute la partition /dev/sda3, autrement dit, vous pouvez tout faire.
    Vous pouvez, changer les mots de passes, créer des comptes, ect...

    Avec cette méthode, il est possible de faire d'autres choses que simplement changer des mots de passe. Elle peut être aussi utiliser pour réparer un système défectueux.

    J'espère que ce petit exemple vous aura plus, si vous avez des questions, ou remarques, je me tiens à votre entière disposition.

    Merci d'avoir pris le temps de lire ce post,
    Cordialement, root
    Cordialement, root

  • #2
    Méthode classique, qui reste assez efficace c'est sur.

    Cependant, si vous n'avez pas le temps de faire un liveCD, il y a une autre méthode.
    Avant de booter sur le kernel de linux, il y a toujours un bootloader, souvent grub, qui s'occupe de localiser l'emplacement du noyau, la racine du système, et qui va lancé le premier processus appelé init, qui sera chargé ensuite de lancer toute les autres services.

    L'idée est de remplacer ce init par autre chose : quand le bootloader s'affiche (le bel ecran noir qui ressemble à une console au début, avec le nom du système à lancer : ), vous pouvez éditer la commande envoyé au noyau, sous grub c'est la touche e.

    Sur la page suivante il y aura 3 ou 4 lignes, toute sur le même schema :
    Code:
    title Red Hat Linux (2.4.9-21)
      root (hd0,0)
      kernel /vmlinuz-2.4.9-21 ro root=/dev/hda6
      initrd /initrd-2.4.9-21.img
    Pour modifier le programme init lancé au démarrage, il suffit de rajouter à la fin de la ligne « kernel » l'instruction
    Code:
    init=/bin/bash
    puis d'appuyer sur la touche b pour booter avec le nouveau paramètre.

    Au final le kernel, au lieu de lancer le processus init habituel, va lancer un interpreteur bash, qui sera bien entendu en root.

    La méthode proposé ci-dessus est plus simple et apporte moins de problème que la mienne, notamment des partitions montées en lectures seules suivant le fstab du système, problème qui ne se pose pas avec la méthode de @root puisqu'il monte lui même les partitions.

    (Désolé, à la base je voulais juste apporter un précision, mais je me rend compte que ça tiens plus du tuto que de la simple précision)
    Dernière modification par T3hty, 23 juillet 2015, 14h32.

    Commentaire


    • #3
      Bonjour,

      effectivement, méthode intéressante aussi. J'ai eu l'occasion de la mettre en œuvre une fois sur un Linux Mint. Le propriétaire de l'ordinateur n'arrivait plus à se connecter ni en root ni en simple utilisateur.

      Merci pour ta participation, et cet ajout d'information !
      Cordialement, root

      Commentaire


      • #4
        pour prendre le contrôle d'un ordinateur sous Linux
        Étant un forum white, la question qu'on pourrait se poser ici serait plutôt comment éviter cela ?

        Commentaire


        • #5
          Je ne suis pas un expert.. Mais en dehors de chiffrer le disque dur, ou d'interdire de booter sur un support (CD/USB).. Je ne connais pas d'autres méthodes...

          Si quelqu'un connaît une autre solution, je suis preneur !
          Cordialement, root

          Commentaire


          • #6
            Bonjour, merci pour le tutoriel, mais si je prend le contrôle de la machine; pour moi même me connecter je doit refaire le même travail mais en suppriment l'instruction init=/bin/bash.
            Excuser moi je ne lès pas exécuté mais le principe est évident, je voudrais savoir si tel que stipuler je peux me connecter sans mot de passe ou il faut supprimer l'instruction précédente?

            Commentaire


            • #7
              Je vais commencer par la protection contre ma méthode, et rejoindrais celle de @root par un jeu de protection/contournement.

              Protection
              Contre l'attaque que j'ai expliqué plus haut, il est possible de mettre un mot de passe au bootloader, ou de désactiver la modification des arguments de boot.

              Contournement
              La méthode de @root fonctionne encore.

              Protection
              Il suffit de mettre un mot de passe au niveau du bios, et de retirer de la liste des support bootable tout ce qui est amovible, dont les CD, et le boot PXE.

              Contournement
              Il est hélas possible de faire sauter ce mot de passe en déchargeant totalement le bios, en retirant l'alimentation/la batterie, et la pile CMOS qui sert en temps normal à garder l'heure, puis d'attendre ou de provoquer un léger court circuit pour décharger le bios.

              Protection
              La seule façon de garder votre système hors d'atteinte des méthodes ci-dessus est de chiffrer le disque dur, ou au moins les informations sensibles, avec un algorithme résistant (ex. RSA, AES) et des clefs de chiffrements assez grandes (mini 2048 en asymétrique, 256 en symétrique).

              Contournement
              Bien que ça devienne plus technique, il est toujours possible de prendre la main sur le système.
              Données sensibles chiffrées : il suffit de récupérer le mot de passe, par un keylogger par exemple.
              Disque dur chiffré : On ne peut pas chiffrer totalement le disque, il faut au moins une partie chargé de déchiffrer le reste. L'attaque porte sur ce reste, qui est le kernel.
              Si on a accès au disque, il est possible de véroler le kernel de façon a ce que, par exemple, ne rechiffre pas le disque à la fermeture, ou stocke/envoi le mot de passe dans un endroit où on pourra le récupérer.
              Il est aussi possible, si on a accès à la machine tout de suite après l'extinction, de récupérer le mot de passe stocké dans la RAM, appelé Cold Attack (la RAM peut garder des données assez longtemps à basse température)

              Bref, un système n'est jamais protéger contre toutes les attaques, c'est un jeu de chat et de souris. Mais la sécurité ne sert pas à rien, plus un système est défendu, plus il faudra de la volonté et des moyens pour y entrer.
              Ce qui fait qu'un système est vraiment protégé est le coût en temps et en argent nécessaire à la compromission de ce système.
              Je conclurais juste avec ceci
              Dernière modification par T3hty, 23 juillet 2015, 16h45.

              Commentaire


              • #8
                Merci pour ses explications, vraiment intéressantes.
                La dernière partie me donne envie d'en découvrir plus à ce sujet, si tu as des liens montrant des exemples je suis preneur !
                Cordialement, root

                Commentaire


                • #9
                  Merci pour ce tuto qui m'a permis de sécuriser mon linux (au moins en partie)
                  pour le moment j'ai ajouté un mot de passe au mode recovery, et un autre pour modifier la config de grub
                  je dois encore en ajouter un au bios.

                  Il reste d'autres choses à sécuriser pour être tranquille?

                  Commentaire


                  • #10
                    @T3hty, merci !

                    Ce n'est pas que je suis contre ces explications, mais il est de bon ton d'exprimer les moyens de défense contre ce genre d'attaque...
                    Ensuite, il est certains, quand on est au courant des risques, de plus ou moins sécuriser son système ! Cela dit comment le faire, si on est pas au courant des moyens de le faire ? C'est pourquoi j'ai fais cette demande. Un tutoriel white doit prendre en compte les moyens protecteurs contre les moyens intrusifs.

                    Bonne soirée à tous

                    Commentaire


                    • #11
                      @fred, je comprends tout à fait, je n'avais parlé de moyen de protection, car je ne les maîtrisent pas, et donc je ne voulais pas dire de bêtises.
                      Cordialement, root

                      Commentaire


                      • #12
                        C'est sur qu'il est bien de savoir surtout comment s'en protéger (même s'il y a certaines limites).

                        A savoir qu'il existe des protections aux dernières attaques que j'ai cité, mais rien de vraiment tangible, comme des drivers qui vont simuler d'autres touches qui sont tapé, contre les keylogger, ou de la vérification d'intégrité, mais pareil, pas vraiment de solution qui soit stable encore.

                        @root, pour ce qui est de la dernière partie : https://fr.wikipedia.org/wiki/Torture !
                        Plus sérieusement, au niveau attaques, je t'invite à taper keylogger sur ton moteur de recherche préféré.
                        Et pour ce qui est de la modification du noyau, là tu peux essayer de télécharger la dernière version (https://www.kernel.org/) et de voir la complexité de modifier un kernel. (Rien que la configuration des options peut faire planter la compilation, alors une modification du code…).
                        Enfin l'article sur la Cold boot attack sur wikipedia (https://en.wikipedia.org/wiki/Cold_boot_attack) explique bien le mécanisme.

                        Si tu voulais des infos sur le chiffrement de disque tu peux regarder du coté de LUKS/cryptsetup, je ferais peut-être un tuto la dessus (quand j'aurais trouvé la motivation de le faire).

                        @oliver39, Comme je le dit toujours quand on me demande comment sécuriser au maximum un ordinateur : retire toutes les interactions avec l'extérieur et ton ordi sera sur (mais pas très utilisables).
                        Cependant si tu veux vraiment être tranquille, soit tu as besoin de kali-linux pour des tests, et là tu ne le lance qu'en liveCD, soit change de système. Kali-linux est avant tout une distro afin de tester un ordinateur ou un réseau et n'a pas pour vocation à être installé sur un pc de bureau.
                        Et si tu as besoin au quotidien de certains soft fourni par kali-linux, installe ceux-ci sur une autre distribution.

                        Commentaire


                        • #13
                          @T3hty, merci pour les liens et informations, et pour ce qui est du kernel, même si je ne connais pas trop, j'avais déjà essayé d'un peu le regarder, de modifier quelques options et de le compiler, et c'est vrai que j'avais eu pas mal de kernel panic juste en modifiant quelques options avec un make menuconfig, alors je me doute que modifier le code... Ça doit pas trop être la joie.

                          Merci, encore
                          Cordialement, root

                          Commentaire


                          • #14
                            Envoyé par T3hty Voir le message
                            C'est sur qu'il est bien de savoir surtout comment s'en protéger (même s'il y a certaines limites).

                            A savoir qu'il existe des protections aux dernières attaques que j'ai cité, mais rien de vraiment tangible, comme des drivers qui vont simuler d'autres touches qui sont tapé, contre les keylogger, ou de la vérification d'intégrité, mais pareil, pas vraiment de solution qui soit stable encore.

                            @root, pour ce qui est de la dernière partie : https://fr.wikipedia.org/wiki/Torture !
                            Plus sérieusement, au niveau attaques, je t'invite à taper keylogger sur ton moteur de recherche préféré.
                            Et pour ce qui est de la modification du noyau, là tu peux essayer de télécharger la dernière version (https://www.kernel.org/) et de voir la complexité de modifier un kernel. (Rien que la configuration des options peut faire planter la compilation, alors une modification du code…).
                            Enfin l'article sur la Cold boot attack sur wikipedia (https://en.wikipedia.org/wiki/Cold_boot_attack) explique bien le mécanisme.

                            Si tu voulais des infos sur le chiffrement de disque tu peux regarder du coté de LUKS/cryptsetup, je ferais peut-être un tuto la dessus (quand j'aurais trouvé la motivation de le faire).

                            @oliver39, Comme je le dit toujours quand on me demande comment sécuriser au maximum un ordinateur : retire toutes les interactions avec l'extérieur et ton ordi sera sur (mais pas très utilisables).
                            Cependant si tu veux vraiment être tranquille, soit tu as besoin de kali-linux pour des tests, et là tu ne le lance qu'en liveCD, soit change de système. Kali-linux est avant tout une distro afin de tester un ordinateur ou un réseau et n'a pas pour vocation à être installé sur un pc de bureau.
                            Et si tu as besoin au quotidien de certains soft fourni par kali-linux, installe ceux-ci sur une autre distribution.

                            Salut
                            Je suis tout à fait d'accord avec toi sur le fait de sécuriser un ordinateur au maximum
                            d'ailleurs je connaissais une citation qui disait que le seul ordinateur sécurisé était un ordinateur non relié au réseau, dans une pièce sécurisé et gardée, et même dans ces conditions on ne peut pas avoir entièrement confiance. (malheureusement je ne l'a retrouve pas et je ne sais plus qui avait dit ca si quelqu'un le sait ca m'interesse^^)

                            Mon kali est installé sur un pc portable que j'amène au boulot car les postes ne sont pas reliés à internet et j'ai le droit de faire des recherches avec mon téléphone mais ce n'est pas pratique. Certe sur un pc fixe ce n'est pas très utile^^
                            Personnellement j'utilise kali parce que je voudrais découvrir le monde du hacking (j'ai découvert ce forum il y a un peu plus d'1 semaine et je lis 1 ou 2 tutos par jour depuis)
                            Du coup cette distrib me permet d'avoir accès à pas mal d'outils facilement (même si je préfère chercher à comprendre le fonctionnement des différentes attaques pour essayer de créer mes propres codes après)

                            Si tu veux continuer cette discussion il faudrait peut être changer de post par contre? (vu que je viens de m'inscrire je sais pas trop comment les modos réagissent quand on discute sérieusement sur un post qui n'est pas créé pour ca au départ^^)

                            Commentaire

                            Chargement...
                            X