This commit is contained in:
parent
8c3ea223e5
commit
25aef1af17
54 changed files with 123 additions and 122 deletions
|
|
@ -14,7 +14,7 @@ privilégiés outrepassaient ces tests, tandis que les autres devaient passer le
|
|||
tests de l'*effective UID*, *effective GID*, et autres groupes
|
||||
supplémentaires...
|
||||
|
||||
Dans les années 90, ce système s'est rélévé être un peu trop basique et
|
||||
Dans les années 90, ce système s'est révélé être un peu trop basique et
|
||||
conduisait régulièrement à des abus, au moyen de vulnérabilités trouvées dans
|
||||
les programmes *setuid root*.
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ contient les hashs des mots de passe).
|
|||
C'est ainsi qu'est apparu le `suid-bit` parmi les modes de fichiers. Lorsque
|
||||
ce bit est défini sur un binaire exécutable, au moment de l'exécution, le
|
||||
contexte passe à celui du propriétaire du fichier (`root` si le propriétaire
|
||||
est `root`, mais cela fonctionne quelque soit le propriétaire du fichier : on
|
||||
est `root`, mais cela fonctionne quel que soit le propriétaire du fichier : on
|
||||
ne devient pas `root`, mais bien l'utilisateur propriétaire).\
|
||||
|
||||
|
||||
|
|
@ -158,7 +158,7 @@ Tout d'abord, il faut noter que chaque *thread* dispose de 5 ensembles de
|
|||
|
||||
- ***inheritable*** (I) : est utilisé au moment de la résolution des *capabilities*
|
||||
lors de l'exécution d'un nouveau processus. Il s'agit des *capabilities* qui
|
||||
seront transmises au processus fil. À moins d'avoir la *capability*
|
||||
seront transmises au processus fils. À moins d'avoir la *capability*
|
||||
`CAP_SETPCAP`, cet ensemble ne peut pas avoir plus de *capability* que celles
|
||||
présentent dans l'ensemble *permitted* ;
|
||||
|
||||
|
|
@ -331,7 +331,7 @@ struct vfs_cap_data {
|
|||
La valeur `magic` contient la version sur 1 octet, puis 3 octets sont réservés
|
||||
pour des *flags*. Actuellement un seul *flag* existe, il s'agit de
|
||||
`VFS_CAP_FLAGS_EFFECTIVE` qui détermine si la liste effective de *capabilities*
|
||||
du programme doit être remplie avec les *capabilities* *permitted* si elle doit
|
||||
du programme doit être remplie avec les *capabilities* *permitted* ou si elle doit
|
||||
rester vide (auquel cas ce sera au programme de s'ajouter les *capabilities* au
|
||||
cours de l'exécution).\
|
||||
|
||||
|
|
@ -698,5 +698,5 @@ Et de ces quelques articles :
|
|||
<https://forums.grsecurity.net/viewtopic.php?f=7&t=2522#p10271>
|
||||
* [Linux Capabilities on HackTricks](https://book.hacktricks.xyz/linux-unix/privilege-escalation/linux-capabilities) :\
|
||||
<https://book.hacktricks.xyz/linux-unix/privilege-escalation/linux-capabilities>
|
||||
- [POSIX Access Control Lists on Linux](https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html) :\
|
||||
* [POSIX Access Control Lists on Linux](https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html) :\
|
||||
<https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html>
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ La principale différence entre les deux est la fusion des différents
|
|||
sous-systèmes au sein d'une même arborescence. Dans la première version, chaque
|
||||
sous-système disposait de sa propre arborescence et il fallait créer les
|
||||
groupes et associer les tâches pour chaque sous-système. Avec la seconde
|
||||
version, une seule création est nécessaire, quelque soit le nombre de
|
||||
version, une seule création est nécessaire, quel que soit le nombre de
|
||||
sous-systèmes que l'on souhaite utiliser.
|
||||
|
||||
:::::
|
||||
|
|
@ -360,7 +360,7 @@ max
|
|||
```
|
||||
</div>
|
||||
|
||||
Chaque *cgroup*s définit de nombreux indicateurs et possède de nombreux
|
||||
Chaque *cgroup* définit de nombreux indicateurs et possède de nombreux
|
||||
limiteurs, n'hésitez pas à consulter la documentation associée à chaque
|
||||
*cgroup*.
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ d'avoir de quoi bidouiller : un shell sera amplement suffisant pour commencer.
|
|||
|
||||
### `busybox`
|
||||
|
||||
Queques mots, pour commencer, à propos du projet Busybox : c'est un programme
|
||||
Quelques mots, pour commencer, à propos du projet Busybox : c'est un programme
|
||||
couteau-suisse qui implémente tous les binaires vitaux pour avoir un système
|
||||
fonctionnel et utilisable : `ls`, `sh`, `cat`, mais aussi `init`, `mdev` (un
|
||||
`udev`-like, cela permet de découvrir les périphériques attachés afin de les
|
||||
|
|
@ -171,7 +171,7 @@ chroot newroot/ bash
|
|||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
tar xpf alpine-minirootfs-*.tar.xz -C newroot/
|
||||
tar xpf alpine-minirootfs-*.tar.gz -C newroot/
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Gestion de la mémoire
|
|||
Linux a une gestion de la mémoire bien particulière[^vm-overcommit] : en effet,
|
||||
par défaut, `malloc(3)` ne retournera jamais `NULL`. En se basant sur
|
||||
l'euristique qu'un bloc mémoire demandé ne sera pas utilisé directement et que
|
||||
de nombreux process ne feront pas un usage total des blocs qu'ils ont alloués,
|
||||
de nombreux processus ne feront pas un usage total des blocs qu'ils ont alloués,
|
||||
le noyau permet d'allouer plus de mémoire qu'il n'y en a réellement
|
||||
disponible. La mémoire est ainsi utilisée de manière plus efficace.
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ trouve dans l'impossibilité d'attribuer un bloc physiquement disponible, car il
|
|||
n'y en a tout simplement plus (y compris via le swap).
|
||||
|
||||
Puisque le noyau ne peut pas honorer sa promesse et qu'il n'a plus la
|
||||
possibilité de retourner `NULL` au programme qui réclamme sa mémoire (il s'agit
|
||||
possibilité de retourner `NULL` au programme qui réclame sa mémoire (il s'agit
|
||||
sans doute d'une simple assignation de variable à ce stade), il faut trouver
|
||||
une solution si l'on veut pouvoir continuer l'exécution du programme.
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ mémoire autorisée au sein du `cgroup` ?
|
|||
:::::
|
||||
|
||||
Eh oui, l'OOM-killer passe également lorsqu'un `cgroup` atteint la limite de
|
||||
mémoire qui lui est réservé. Dans ce cas évidemment, les processus pris en
|
||||
mémoire qui lui est réservée. Dans ce cas évidemment, les processus pris en
|
||||
compte sont ceux contenus dans le `cgroup`.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ Rendu
|
|||
|
||||
Est attendu d'ici le TP suivant :
|
||||
|
||||
- le rendu des exercice de ce TP ;
|
||||
- le rendu des exercices de ce TP ;
|
||||
- vos réponses à [l'évaluation du cours](https://virli.nemunai.re/quiz/14).
|
||||
|
||||
Pour les GISTRE (et en bonus pour les SRS), [un
|
||||
|
|
|
|||
|
|
@ -69,4 +69,4 @@ sur `rendu3`, ... ce qui vous permet d'avoir une arborescence
|
|||
correspondant à ce qui est demandé, sans pour autant perdre votre
|
||||
travail (ou le rendre plus difficile d'accès).
|
||||
|
||||
::::
|
||||
:::::
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue