Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pipe, setuid, cron éclaissisement

    21 août 2022 à 5:48:47

    Bonjour à tous je faisais un peu de overthewire mais honnêtement il y a encore des chose qui ne sont pas très claire pour moi du coup si on peut m'aider c'est top ^^.

    Déjà le piping si j'ai bien compris par exemple "cat date | cut -d " " -f 1" ici par le biais de la commande je dis : affiche la commande date en le coupant avec un délimiteur espace en ne prenant que la premiere colonne, sa permet donc d'assembler plusieurs commande en 1 ligne si j'ai bien compris ? j'ai un peu de mal à le réappliquer pour le moment ^^.

    Pour un des exo de overthewire il fallait faire sa : ssh -l banditXX -p 2220 bandit.labs.overthewire.org cat readme sa c'est bon sa marche mais sa non : "ssh -l banditXX -p 2220 bandit.labs.overthewire.org | cat readme" et je vois pas pourquoi dans les deux cas je dois afficher le fichier readme non ?

    Ensuite le setuid si j'ai bien compris c'est une commande qui permet de crée une connexion avec le localhost dans un port spécifique ?.

    Pour le cron et "/etc/cron.d/" c'est bien l'emplacement ou les programme tourne automatiquement de niveaux régulière c'est un peu comme les processus dans le gestionnaire de tâche de windows ?

    Merci a ceux qui répondront.

    • Partager sur Facebook
    • Partager sur Twitter
      21 août 2022 à 13:51:14

      GD97 a écrit:

      Déjà le piping si j'ai bien compris par exemple "cat date | cut -d " " -f 1" ici par le biais de la commande je dis : affiche la commande date en le coupant avec un délimiteur espace en ne prenant que la premiere colonne, sa permet donc d'assembler plusieurs commande en 1 ligne si j'ai bien compris ? j'ai un peu de mal à le réappliquer pour le moment ^^.

      Le principe est très simple, la sortie standard de date est « transmise » à l'entrée standard de cut. Aussi simple que ça. C'est la même chose avec grep, par défaut s'il n'y a pas d'argument ça lit l'entrée standard ainsi. Taper juste grep et ne rien entrer ne finira jamais (tant qu'il n'y a pas d'entrée).

      Par exemple tu peux essayer ça :

      $ grep bonjour
      
      tu tapes du texte maintenant
      hello
      salut
      bonjour # hop, ici ça réapparaitra car grep l'aura lu
      puis tu finis avec ctrl+d

      GD97 a écrit:

      Pour un des exo de overthewire il fallait faire sa : ssh -l banditXX -p 2220 bandit.labs.overthewire.org cat readme sa c'est bon sa marche mais sa non : "ssh -l banditXX -p 2220 bandit.labs.overthewire.org | cat readme" et je vois pas pourquoi dans les deux cas je dois afficher le fichier readme non ?

      Les deux commandes ne sont pas du tout pareil, ssh accepte en argument une commande à appeler sur la machine distante et là tu en envoies aucune. En gros c'est comme si ssh faisait pour toi :

      ssh -l ...
      cat readme

      Par contre, tu peux bien piper le retour mais ce sera en local. Exemple, tu veux faire un grep sur le fichier qui est à distance :

      ssh foo cat readme | grep coucou

      Mais ici, il faut bien comprendre que le grep sera exécuté en local (et donc sur la sortie standard de ssh). Si tu veux piper à distance, je suppose qu'il faut faire ceci (pas testé).

      ssh foo "cat readme | grep coucou"

      GD97 a écrit:

      Ensuite le setuid si j'ai bien compris c'est une commande qui permet de crée une connexion avec le localhost dans un port spécifique ?.

      Absolument pas. C'est une permission spéciale et dangereuse qui permet d'obtenir pendant la durée d'un programme l'utilisateur du dit programme. Par exemple, tu as peut-être déjà utilisé la commande passwd qui te permet de changer de mot de ton compte UNIX, cette commande édite le fichier /etc/shadow, mais as-tu vu que tu peux pas l'éditer avec ton utilisateur ? Essaye par exemple vim /etc/shadow.

      Ce problème est géré grâce à la permission setuid. Comme le binaire passwd est usuellement root:wheel et qu'il est en setuid, au moment où tu exécute ce programme tu deviens root pendant la durée de son exécution. Évidemment, c'est une permission dont il ne faut pas abuser car une compromission dans le programme et c'est la faille assurée.

      GD97 a écrit:

      Pour le cron et "/etc/cron.d/" c'est bien l'emplacement ou les programme tourne automatiquement de niveaux régulière c'est un peu comme les processus dans le gestionnaire de tâche de windows ?

      Il y a beaucoup d'implémentations de cron différente. Ça dépend vraiment de chacune. Certains offrent un répertoire /etc/periodic* pour ne pas à avoir à écrire de règles cron.










      -
      Edité par markand 22 août 2022 à 9:06:12

      • Partager sur Facebook
      • Partager sur Twitter

      git is great because Linus did it, mercurial is better because he didn't.

        21 août 2022 à 14:39:54

        je ne sais pas si, sans guillemets/apostrophes, même le cat ne sera pas réalisé en local, s'il existe un fichier readme sous le répertoire courant...

        -
        Edité par dantonq 22 août 2022 à 12:55:25

        • Partager sur Facebook
        • Partager sur Twitter

        Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

          22 août 2022 à 9:01:30

          Non ça il n'y a pas de souci, car ssh prends les argument de la ligne de commande et les exécute sous un shell distant. On peut le voir dans la documentation.

          markand@lotus ~ $ touch test.txt
          markand@lotus ~ $ ssh tomate.local cat test.txt
          cat: test.txt: No such file or directory
          



          • Partager sur Facebook
          • Partager sur Twitter

          git is great because Linus did it, mercurial is better because he didn't.

            26 août 2022 à 8:51:50

            D'accord merci à tous pour les réponse j'ai mieux compris pour le pipe
            • Partager sur Facebook
            • Partager sur Twitter

            Pipe, setuid, cron éclaissisement

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown