Retirer des droits d'un user chrooté root de sa prison ? [bash] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 11-06-2005 à 20:48:50
une idée pour récupérer juste le chemin et pas l'indication du lien ? y'a pas une commande ou une option pour ça ? (j'ai regardé l'aide de ldd mais y'a rien pour faire ca)
Marsh Posté le 11-06-2005 à 21:01:06
Ben c'est fait dans le script visiblement
ldd /bin/bash | awk '{print $3}' |
PS: library (anglais) = bibliothèque (français)
Marsh Posté le 11-06-2005 à 21:44:44
Oui je vois ça, et pourtant j'obtiens des:
Code :
|
En gros il a l'air de pas me prendre le $3 mais bien toute la chaine
edit: et pourtant à la main:
Code :
|
Marsh Posté le 11-06-2005 à 21:54:23
# bash: line 1: `cp /lib/libncurses.so.5 libncurses.so.5 => /lib/libncurses.so.5 (0xb7fa4000)/plop/lib/'
le premier /lib/libncurses.so.5 est bien le troisième mot de la chaine. C'est $REP qui n'a pas la bonne valeur, ce qui est parfaitement normal en fait.
Essaye :
ldd /bin/$I | awk -v "LOGIN=$LOGIN" -v "REP=$REP" '{ print "cp "$3 " "REP"/"LOGIN"/lib/" }' | bash |
Marsh Posté le 11-06-2005 à 22:42:02
ca marche
Maintenant deuxieme problème, en bas du script j'ai une partie qui crée le fichier chrootant l'utilisateur quand il se connecte:
Code :
|
Mais apparement le "cat" ne fonctionne pas et le script execute les commandes:
Code :
|
Marsh Posté le 11-06-2005 à 22:55:37
arf les boulets, ils ont inversé le symbole > en < alors évidemment ca fonctionne pas ...
Marsh Posté le 11-06-2005 à 23:05:44
Il ne faudrait pas préciser comment cat se termine?
cat > /bin/chroot << EOF |
Marsh Posté le 11-06-2005 à 23:14:06
Pillow a écrit : Il ne faudrait pas préciser comment cat se termine?
|
C'est ce que j'étais en train de chercher, mon programme arretait pas le cat et je me demandais pourquoi EOF faisait rien
merci bien
Marsh Posté le 11-06-2005 à 23:33:35
Par contre mon programme ben il se termine par "fi" (fin de la condition avec le cat dedans) et j'ai droit à un:
Code :
|
edit: apparement l'erreur est avant le fi car avec ceci:
Code :
|
Je n'ai pas mon "ok" et j'ai toujours l'erreur !
Marsh Posté le 11-06-2005 à 23:47:56
aspegic500mg a écrit : |
Ça veut juste dire que ton if...fi est dans le bloc non terminé...
Tu as problement un fi, un done, ou un guillemet qui manque plus haut. Tu peux essayer de supprimer des bouts de codes jusqu'à localiser le problème. Poste le script en entier si tu ne trouves pas
Marsh Posté le 12-06-2005 à 00:11:46
Ah, c'est le EOF qui doit être en début de ligne. Ou alors il faut mettre le même nombre d'espaces (ou une tabulation) devant les deux EOF. Sinon le shell ne le reconnait pas, évidemment
Exemples:
cat > /bin/chroot << EOF |
Ou:
cat > /bin/chroot << " EOF" |
Ou encore :
echo '#!/bin/bash |
C'était tout con en fait
Marsh Posté le 12-06-2005 à 01:45:11
J'ai viré les espaces devant EOF et ca fonctionne, j'aurai jamais trouvé tout seul
Mais bon, le script veut décidément pas me créer mon /bin/chroot, donc je l'ai crée à la main:
Code :
|
chmod 755 dessus
Puis:
Code :
|
Ensuite j'ai le gros script de création "automatisée" d'un shell chrooté:
Code :
|
Tout cela fonctionne très bien, j'ai testé et l'utilisateur est bien chrooté, il a accés à ses commandes ... MAIS une chose qui me gène, il a accés total à ses repertoires dev bin et lib, normal puisqu'il est root de sa prison !
Comment pourrais-je fais pour lui enlever les droits d'écritures sur ces repertoires dans sa propre prison ?
Tout cela dans un soucis de sécurité car j'ai lu un peu partout que quelqu'un root dans sa prison peut éventuellement s'en évader ?
Marsh Posté le 12-06-2005 à 15:57:51
tu rajoutes un peu de grsec par derriere et cela sera un peu plus difficile.
Marsh Posté le 12-06-2005 à 19:40:22
mikala a écrit : tu rajoutes un peu de grsec par derriere et cela sera un peu plus difficile. |
J'y ai pensé, mais en ce moment y'a le dévellopeur de grsec qui pète un peu son caca nerveux non ? (pas assez de sponsor, il veut arreter, etc..)
Marsh Posté le 12-06-2005 à 20:19:57
C'est malsain.
Root est celui qui a accès à tout. Ce n'est pas un compte utilisateur, seulement un pseudo-utilisateur à utiliser le moins souvent possible. Il n'a rien à faire dans une prison, et pourra toujours en sortir de toute façon (il a accès à tout).
Utiliser un autre utilisateur, et éventuellement lui donner des droits supplémentaires si nécessaire (en utilisant correctement les groupes et/ou sudo) est la seule solution.
Marsh Posté le 12-06-2005 à 20:52:03
Ce que je ne comprends pas, c'est que par le script auto c'est un simple "user" qui est crée, il est chrooté dans son repertoire /home/chroot/$USER. Mon script, executé en root, crée les repertoire /bin /dev /lib dans le rep du user, et les chmod 711 ou 755 par exemple.
Mais chose bizzare, une fois que l'utilisateur se connecte et est chrooté dans son répertoire, il a tout de même accés en écriture aux repertoires donc j'avais interdit l'écriture étant root, pouvez-vous m'expliquer ca (ca serait l'histoire du suid ..?)
Marsh Posté le 12-06-2005 à 21:34:47
aspegic500mg a écrit : J'y ai pensé, mais en ce moment y'a le dévellopeur de grsec qui pète un peu son caca nerveux non ? (pas assez de sponsor, il veut arreter, etc..) |
ca date un peu comme information là.
Marsh Posté le 12-06-2005 à 21:35:35
neostorm a écrit : C'est malsain. |
je ne suis pas sur du tout que root puisse sortir du chroot quand tu utilises grsec .
Marsh Posté le 13-06-2005 à 03:51:41
mikala a écrit : je ne suis pas sur du tout que root puisse sortir du chroot quand tu utilises grsec . |
Avec grsec les failles "connues" sont corrigées, reste les inconnues, mais là c'est la même chose pour tout le reste
Marsh Posté le 13-06-2005 à 15:20:46
Le chroot est très pratique pour installer un système ou ce genre de chose, mais n'apporte rien en sécurité.
Pour rappel, root à un accès complet sur le périphérique du disque dur (/dev/hda) et sur chaque partition (/dev/hdaX). Même si aucun fichier /dev/hdXY n'existe, rien ne l'empèche de les créer lui même.
Je ne connais pas "grsec", mais à moins que ce soit un fork du kernel linux, je ne pense pas que ce soit infaillible.
Je répète encore pour bien insister :
- root ne doit pas être utilisé comme un utilisateur normal, et
- Tout droit spécial que root possède peut être donné à n'importe quel autre utilisateur. Il n'est donc JAMAIS nécessaire d'utiliser root comme un utilisateur.
Marsh Posté le 13-06-2005 à 15:52:45
neostorm a écrit : Le chroot est très pratique pour installer un système ou ce genre de chose, mais n'apporte rien en sécurité. |
Donc il faut que ca soit un utilisateur qui chroot via sudo ? (ou je comprends rien )
Marsh Posté le 13-06-2005 à 16:09:28
neostorm a écrit : Le chroot est très pratique pour installer un système ou ce genre de chose, mais n'apporte rien en sécurité. |
grsec est un patch du kernel
cf notamment http://www.grsecurity.net/features.php
Marsh Posté le 16-06-2005 à 19:44:13
Non, si tu chroot via sudo, le résultat est le même : un shell root :-D
Il faut le laisser simple utilisateur, éventuellement faire un chroot (si c'est nécéssaire mais je vois pas pourquoi...) et si l'utilisateur a besoin de pouvoir faire quelquechose de précis en tant que root, il le fait via sudo (ca peut être transparent avec un alias ou un script)
Marsh Posté le 11-06-2005 à 10:55:40
edit: mon premier problème étant résolu, je passe à la suite:
J'ai un utilisateur qui est chrooté dans son repertoire /home/chroot/$USER, il a accés à ses commandes, il a ses repértoires /bin /dev et /lib, mais cela me gène qu'il est accés total à ceux là (normal il est root dans sa prison), comment lui retirer ses droits sur ces reps?
------------------------------
J'arrive à faire un shell chrooté avec la petite arborescence de base, à copier à la main les librairies des commandes (ls, dir, cp, mv...), mais dans un soucis d'automatisation, je teste un script que j'ai trouvé sur lea-linux: http://lea-linux.org/admin/admin_env/chroot.html, malheureusement il pose problème au niveau de la commande "ldd":
En effet lorsque je fais:
Ce que j'aimerai c'est juste le chemin complet de la librairie, et non le nom de la lib et la flèche indiquant le lien, voyez vous une solution ?
Message édité par aspegic500mg le 12-06-2005 à 01:48:08