<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>#moindre-privilège — Blog d'Ange Bonkoski</title><link>https://journal.ange-bonkoski.fr/tags/moindre-privil%C3%A8ge/</link><description>Journal de mon homelab et write-ups de labs de cybersécurité.</description><language>fr</language><copyright>Ange Bonkoski, licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.fr)</copyright><lastBuildDate>Mon, 19 Oct 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://journal.ange-bonkoski.fr/tags/moindre-privil%C3%A8ge/index.xml" rel="self" type="application/rss+xml"/><item><title>En installant un simple partage de fichiers, j'ai trouvé trois portes de côté</title><link>https://journal.ange-bonkoski.fr/journal/trois-portes-de-cote/</link><pubDate>Mon, 19 Oct 2026 10:00:00 +0200</pubDate><guid>https://journal.ange-bonkoski.fr/journal/trois-portes-de-cote/</guid><category>homelab</category><category>smb</category><category>zimaos</category><category>sécurité</category><category>moindre-privilège</category><description>&lt;p&gt;La veille, j&amp;rsquo;avais fini de durcir l&amp;rsquo;accès SSH à mon serveur : connexion par&#10;clé uniquement, mots de passe interdits, un seul compte autorisé. J&amp;rsquo;en&#10;étais assez fier.&lt;/p&gt;&#10;&lt;p&gt;Le lendemain, je voulais quelque chose de beaucoup plus banal : regarder&#10;mes vidéos depuis le Mac et l&amp;rsquo;iPhone, via un partage de fichiers SMB. En&#10;le configurant proprement, je suis tombé sur &lt;strong&gt;trois portes&lt;/strong&gt; que je&#10;n&amp;rsquo;avais jamais notées nulle part. L&amp;rsquo;une d&amp;rsquo;elles rendait mon travail de la&#10;veille inutile.&lt;/p&gt;&#10;&lt;h2 id="porte-n1--le-partage--admin--qui-voyait-tout"&gt;Porte n°1 : le partage « admin » qui voyait tout&lt;/h2&gt;&#10;&lt;p&gt;Mon serveur tourne sous ZimaOS. Son interface crée automatiquement un&#10;partage SMB pour le compte d&amp;rsquo;administration. Je ne m&amp;rsquo;en étais jamais&#10;soucié : je l&amp;rsquo;utilisais pour transférer des fichiers depuis mon PC.&lt;/p&gt;&#10;&lt;p&gt;En le regardant de près, j&amp;rsquo;ai découvert qu&amp;rsquo;il donnait accès &lt;strong&gt;à tous les&#10;disques, en écriture&lt;/strong&gt;, y compris la partition qui contient les données des&#10;conteneurs, les fichiers de configuration… et le fichier &lt;code&gt;authorized_keys&lt;/code&gt;,&#10;celui qui liste les clés SSH autorisées.&lt;/p&gt;&#10;&lt;p&gt;J&amp;rsquo;ai vérifié en le listant avec &lt;code&gt;smbclient&lt;/code&gt; et le seul mot de passe du&#10;compte d&amp;rsquo;administration. Il était bien là, lisible et modifiable.&lt;/p&gt;&#10;&lt;p&gt;Autrement dit : quelqu&amp;rsquo;un qui connaissait ce mot de passe pouvait&#10;&lt;strong&gt;ajouter sa propre clé&lt;/strong&gt; par SMB, puis se connecter en SSH. Mon « SSH par&#10;clé uniquement » se contournait par la porte d&amp;rsquo;à côté.&lt;/p&gt;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&lt;div class="encadre encadre-lecon" role="note"&gt;&#10; &lt;p class="encadre-titre"&gt;&#10; &#10; &#10; &lt;svg aria-hidden="true" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M9 18h6"/&gt;&lt;path d="M10 22h4"/&gt;&lt;path d="M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.1V17h6v-.2c0-.8.4-1.6 1-2.1A7 7 0 0 0 12 2z"/&gt;&lt;/svg&gt;&#10; &#10; &lt;span&gt;Leçon&lt;/span&gt;&#10; &lt;/p&gt;&#10; &#10; &lt;div class="encadre-contenu"&gt;&#10; &lt;p&gt;Un durcissement ne vaut que si &lt;strong&gt;toutes&lt;/strong&gt; les portes vers la même&#10;ressource sont fermées. Protéger SSH ne sert à rien si un autre service&#10;permet de modifier les clés de SSH.&lt;/p&gt;&#10;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 id="porte-n2--les-lecteurs-réseau-toujours-branchés"&gt;Porte n°2 : les lecteurs réseau toujours branchés&lt;/h2&gt;&#10;&lt;p&gt;Sur mon PC Windows, deux lecteurs réseau étaient connectés en permanence&#10;avec ce même compte d&amp;rsquo;administration : l&amp;rsquo;un vers le disque externe, l&amp;rsquo;autre&#10;vers la partition de données du serveur.&lt;/p&gt;&#10;&lt;p&gt;C&amp;rsquo;est exactement le scénario qu&amp;rsquo;exploitent les &lt;strong&gt;rançongiciels&lt;/strong&gt; : ils&#10;chiffrent tout ce qu&amp;rsquo;ils trouvent, y compris les lecteurs réseau. Un&#10;simple fichier piégé ouvert sur le PC aurait pu chiffrer le serveur, et&#10;avec lui… les données de mes sauvegardes.&lt;/p&gt;&#10;&lt;h2 id="porte-n3--un-deuxième-accès-distant-que-je-navais-pas-choisi"&gt;Porte n°3 : un deuxième accès distant que je n&amp;rsquo;avais pas choisi&lt;/h2&gt;&#10;&lt;p&gt;En nettoyant les identifiants mémorisés sur mon PC, j&amp;rsquo;en ai trouvé un pour&#10;une adresse que je ne connaissais pas. En remontant la piste : &lt;strong&gt;ZeroTier&lt;/strong&gt;,&#10;un réseau privé virtuel installé et activé par ZimaOS pour son application&#10;« Zima Client ».&lt;/p&gt;&#10;&lt;p&gt;J&amp;rsquo;utilisais déjà Tailscale comme unique accès distant, volontairement.&#10;ZeroTier était un &lt;strong&gt;deuxième&lt;/strong&gt; chemin vers le serveur, géré par l&amp;rsquo;éditeur,&#10;que je n&amp;rsquo;avais jamais décidé d&amp;rsquo;ouvrir.&lt;/p&gt;&#10;&lt;h2 id="ce-que-jai-fait"&gt;Ce que j&amp;rsquo;ai fait&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Des comptes dédiés, avec le minimum de droits.&lt;/strong&gt; Au lieu du compte&#10;d&amp;rsquo;administration, deux comptes de partage, sans accès SSH ni shell :&lt;/p&gt;&#10;&#10;&lt;div class="tableau" role="region" aria-label="Tableau" tabindex="0"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th class="aligne-left"&gt;Compte&lt;/th&gt;&#10; &lt;th class="aligne-left"&gt;Accès&lt;/th&gt;&#10; &lt;th class="aligne-left"&gt;Usage&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td class="aligne-left"&gt;Lecture&lt;/td&gt;&#10; &lt;td class="aligne-left"&gt;un seul dossier (les vidéos), &lt;strong&gt;lecture seule&lt;/strong&gt;&lt;/td&gt;&#10; &lt;td class="aligne-left"&gt;mémorisé sur le PC, le Mac et l&amp;rsquo;iPhone&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td class="aligne-left"&gt;Dépôt&lt;/td&gt;&#10; &lt;td class="aligne-left"&gt;le dossier de sauvegarde, lecture-écriture&lt;/td&gt;&#10; &lt;td class="aligne-left"&gt;connecté &lt;strong&gt;seulement pendant un transfert&lt;/strong&gt;, mot de passe jamais mémorisé&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Le compte de lecture peut rester branché en permanence : un rançongiciel&#10;ne peut rien chiffrer avec. Le compte de dépôt, lui, n&amp;rsquo;existe sur le PC que&#10;quelques minutes à la fois.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Désactiver le compte SMB d&amp;rsquo;administration.&lt;/strong&gt; Une commande suffit :&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo smbpasswd -d admin &lt;span class="c1"&gt;# -d : désactive le compte Samba, sans le supprimer&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Mais ZimaOS &lt;strong&gt;le réactive à chaque redémarrage&lt;/strong&gt;. J&amp;rsquo;ai donc écrit un petit&#10;script, lancé par un timer systemd 3 minutes après le démarrage puis toutes&#10;les 10 minutes. Il redésactive le compte si besoin, vérifie que c&amp;rsquo;est bien&#10;fait, et me prévient sur Discord quand il a dû intervenir.&lt;/p&gt;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&lt;div class="encadre encadre-attention" role="note"&gt;&#10; &lt;p class="encadre-titre"&gt;&#10; &#10; &#10; &lt;svg aria-hidden="true" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/&gt;&lt;path d="M12 9v4"/&gt;&lt;path d="M12 17h.01"/&gt;&lt;/svg&gt;&#10; &#10; &lt;span&gt;Les systèmes qui se « réparent » tout seuls&lt;/span&gt;&#10; &lt;/p&gt;&#10; &#10; &lt;div class="encadre-contenu"&gt;&#10; &lt;p&gt;Sur un système qui régénère sa configuration au démarrage, une correction&#10;faite à la main peut disparaître sans prévenir. Il faut soit la rendre&#10;persistante, soit la réappliquer automatiquement, et surtout le&#10;&lt;strong&gt;vérifier après un redémarrage&lt;/strong&gt;.&lt;/p&gt;&#10;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;p&gt;&lt;strong&gt;Débrancher les lecteurs du PC&lt;/strong&gt;, et ne plus jamais connecter le compte&#10;d&amp;rsquo;administration depuis un poste.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Retirer ZeroTier&lt;/strong&gt; : le serveur a quitté le réseau, et le service a été&#10;masqué pour qu&amp;rsquo;il ne puisse plus redémarrer, même par erreur.&lt;/p&gt;&#10;&lt;h2 id="vérifier-avec-des-tests-écrits"&gt;Vérifier, avec des tests écrits&lt;/h2&gt;&#10;&lt;p&gt;J&amp;rsquo;ai ensuite déroulé une série de tests, notés un par un : chaque compte&#10;voit-il seulement ce qu&amp;rsquo;il doit voir ? Le compte de lecture peut-il écrire ?&#10;Les partages sont-ils joignables depuis Internet sans Tailscale ? Le compte&#10;d&amp;rsquo;administration est-il bien désactivé après un redémarrage ? Tous les&#10;tests sont passés, depuis le PC, le Mac et l&amp;rsquo;iPhone.&lt;/p&gt;&#10;&lt;h2 id="ce-que-jen-retiens"&gt;Ce que j&amp;rsquo;en retiens&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Inventorier les accès, pas seulement les sécuriser.&lt;/strong&gt; On ne peut pas&#10;fermer une porte qu&amp;rsquo;on ne sait pas exister.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Le moindre privilège, concrètement :&lt;/strong&gt; un compte par usage, et le&#10;minimum de droits pour cet usage.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Se méfier de ce qu&amp;rsquo;une plateforme active « pour vous ».&lt;/strong&gt; Une&#10;fonctionnalité pratique est aussi une surface d&amp;rsquo;attaque.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Penser comme un attaquant :&lt;/strong&gt; « si j&amp;rsquo;avais ce mot de passe, jusqu&amp;rsquo;où&#10;irais-je ? » C&amp;rsquo;est cette question qui a fait apparaître la porte n°1.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item></channel></rss>