Linux est la plateforme de serveurs et d'infrastructure dominante, et sa surface d'attaque locale découle du modèle de privilèges Unix : un unique super-utilisateur root, des règles de permissions et de propriété de fichiers, et quelques mécanismes qui accordent délibérément une exécution élevée. Une fois que du code s'exécute en tant qu'utilisateur non privilégié, le travail consiste à trouver l'un de ces mécanismes mal configuré et à s'en servir pour atteindre root, puis à récolter les secrets que l'hôte détient.
La surface locale#
- Élévation de privilèges : binaires SUID/SGID (et les GTFOBins qui en abusent), règles
sudopermissives, capabilities de fichiers trop larges, unitéscronet systemd inscriptibles, détournement duPATHet des bibliothèques (LD_PRELOAD/LD_LIBRARY_PATH), et fichiers sensibles inscriptibles (/etc/passwd,/etc/shadow, sudoers). - Accès aux identifiants et secrets : fichiers d'historique, configurations et clés lisibles par tous, clés et agents SSH, identifiants de services, et secrets en mémoire.
- Frontières de conteneurs et de namespaces : s'échapper d'un conteneur vers son hôte est un domaine approfondi à part entière dans Containers ; les primitives de namespace, de cgroup et de capability dont il abuse sont les mêmes que celles qui gouvernent les privilèges ici.
- Noyau : exploitation locale du noyau (les primitives classiques d'écrasement et d'élévation) pour l'étape finale vers
root.
Jonctions#
L'évasion de conteneur est couverte dans Containers, et l'évasion d'invité à hôte d'un hyperviseur dans Virtualization ; les deux sont référencées. Ce domaine porte sur l'hôte Linux lui-même.