<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>François Lelièvre, Auteur</title>
	<atom:link href="https://www.riskinsight-wavestone.com/en/author/francois-lelievre/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/author/francois-lelievre/</link>
	<description>The cybersecurity &#38; digital trust blog by Wavestone&#039;s consultants</description>
	<lastBuildDate>Thu, 03 Jun 2021 10:20:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/Blogs-2024_RI-39x39.png</url>
	<title>François Lelièvre, Auteur</title>
	<link>https://www.riskinsight-wavestone.com/author/francois-lelievre/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Invoke-CleverSpray &#8211; Jamais 1 sans 3</title>
		<link>https://www.riskinsight-wavestone.com/en/2019/06/invoke-cleverspray-jamais-1-sans-3/</link>
		
		<dc:creator><![CDATA[François Lelièvre]]></dc:creator>
		<pubDate>Mon, 24 Jun 2019 13:44:58 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[cleverspray]]></category>
		<category><![CDATA[invoke]]></category>
		<category><![CDATA[mot de passe]]></category>
		<category><![CDATA[utilisateur]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15509</guid>

					<description><![CDATA[<p>Avant l&#8217;existence du niveau fonctionnel Windows Server 2003, lorsqu&#8217;un utilisateur tentait de s&#8217;authentifier à l&#8217;aide d&#8217;un mot de passe n&#8217;étant pas le sien, son nombre de tentative d&#8217;authentification échouée (représenté par l&#8217;attribut &#8220;badPwdCount&#8220;) se voyait automatiquement incrémentée. Depuis l&#8217;introduction du...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2019/06/invoke-cleverspray-jamais-1-sans-3/">Invoke-CleverSpray &#8211; Jamais 1 sans 3</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15929 media-15929" class="align-center"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-15929" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header.png" alt="" width="640" height="268" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header-437x183.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header-71x30.png 71w" sizes="(max-width: 640px) 100vw, 640px" /></figure>
</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: justify;">Avant l&#8217;existence du niveau fonctionnel Windows Server 2003, lorsqu&#8217;un utilisateur tentait de s&#8217;authentifier à l&#8217;aide d&#8217;un mot de passe n&#8217;étant pas le sien, son nombre de tentative d&#8217;authentification échouée (représenté par l&#8217;attribut &#8220;<b>badPwdCount</b>&#8220;) se voyait automatiquement incrémentée.</div>
<div style="text-align: justify;">Depuis l&#8217;introduction du niveau fonctionnel Windows Server 2003, lorsqu’un utilisateur essaie de s&#8217;authentifier à l&#8217;aide d&#8217;un de ses deux précédents mots de passe, l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; n&#8217;est plus incrémenté. D&#8217;une part, cette fonctionnalité permet de limiter les verrouillages de comptes utilisateurs dues à des tentatives de connexion émises par des applications suite à une modification de mot de passe non répercutée sur ces dernières (Exchange, Skype, etc.).  D&#8217;autre part, cette évolution a pour objectif de limiter le nombre de verrouillages de comptes utilisateur et ainsi les interventions futiles des équipes de support. En effet, les mauvaises tentatives d&#8217;authentification émanant d&#8217;utilisateurs légitimes sont plus susceptibles d&#8217;être la cause de tentatives d&#8217;authentification à l&#8217;aide de mots de passe précédemment valides.</div>
<h3>Fonctionnement du mécanisme de verrouillage de compte utilisateur</h3>
<div style="text-align: justify;">Différents paramètres interviennent au sein du mécanisme de verrouillage de compte utilisateur :</div>
<div style="text-align: justify;"></div>
<style type="text/css">
    .w-table {<br />        width: 100;<br />        border-spacing: 0;<br />        border-collapse: collapse;<br />    }</p>
<p>    .w-table td {<br />        text-align: center;<br />        border: 1px solid rgb(80, 48, 120);<br />        padding: 5px;<br />    }</p>
<p>    .w-table thead td {<br />        background: rgb(80, 48, 120);<br />        font-weight: bold; color: white;<br />        border-left: 1px solid white;<br />        border-right: 1px solid white;<br />    }</p>
<p>    .w-table thead td:first {<br />        border-left: 1px solid rgb(80, 48, 120);<br />    }</p>
<p>    .w-table thead td:last {<br />        border-right: 1px solid rgb(80, 48, 120);<br />    }<br /></style>
<table class="w-table">
<thead>
<tr>
<td>Attribut Active Directory</td>
<td>Propriété PowerShell</td>
<td>Paramètre de la stratégie de groupe</td>
<td style="width: 15%;">Périmètre</td>
</tr>
</thead>
<tbody>
<tr>
<td>lockoutThreshold</td>
<td>LockoutThreshold</td>
<td>Seuil de verrouillage</td>
<td>Domaine</td>
</tr>
<tr>
<td>lockoutDuration</td>
<td>LockoutDuration</td>
<td>Durée du verrouillage</td>
<td>Domaine</td>
</tr>
<tr>
<td>lockoutObservationWindow</td>
<td>LockoutObservationWindow</td>
<td>Fenêtre d’observation du verrouillage</td>
<td>Domaine</td>
</tr>
<tr>
<td>pwdHistoryLength</td>
<td>PasswordHistoryCount</td>
<td>Nombre de mots de passe antérieurs à conserver</td>
<td>Domaine</td>
</tr>
<tr>
<td>lockoutTime</td>
<td>AccountLockoutTime</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>logonCount</td>
<td>&#8211;</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>pwdLastSet</td>
<td>PasswordLastSet</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>pwdProperties</td>
<td>ComplexityEnabled</td>
<td>Mot de passe doit respecter des exigences de complexité</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>badPwdCount</td>
<td>BadLogonCount</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>badPasswordTime</td>
<td>LastBadPasswordAttempt</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
</tbody>
</table>
<div style="text-align: justify;"></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">La majeure partie de ces attributs disposent d&#8217;un nom autoporteur. Néanmoins, il convient de préciser que la fenêtre d&#8217;observation du verrouillage (&#8220;<b>lockoutObservationWindow</b>&#8220;) ne représente pas la durée pendant laquelle les tentatives d&#8217;authentification infructueuses doivent avoir lieu pour verrouiller un compte, ni le temps nécessaire à la réinitialisation de l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; si aucune tentative infructueuse de connexion n&#8217;est conduite. Au contraire, c&#8217;est la durée nécessaire à la réinitialisation de l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; depuis la dernière mise à jour de l&#8217;attribut &#8220;<b>badPasswordTime</b>&#8220;.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Par ailleurs, les attributs &#8220;<b>badPwdCount</b>&#8221; et &#8220;<b>badPasswordTime</b>&#8221; ne sont pas répliqués au sein du domaine mais seulement sauvegardés sur le contrôleur de domaine sur lequel l&#8217;utilisateur essaye de s&#8217;authentifier. Néanmoins, ces attributs sont synchronisés sur le contrôleur de domaine disposant du rôle FSMO d’émulateur de contrôleur principal de domaine (ou PDCe).</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Seuls les protocoles Kerberos et NTLM utilisés lors d&#8217;une authentification via mot de passe ou Smart Card bénéficient de cette fonctionnalité (sous réserve que le PDCe soit joignable par le contrôleur de domaine gérant la demande d&#8217;authentification).</div>
<h3>Jamais un sans trois</h3>
<div style="text-align: justify;">Du point de vue d&#8217;un attaquant, cette nouvelle fonctionnalité offre la possibilité d&#8217;attaquer non seulement le mot de passe actuel d&#8217;un utilisateur mais aussi ses deux précédents via la vérification de l&#8217;incrémentation de l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; sur le PDCe suite à une tentative d&#8217;authentification. En effet, si la tentative d&#8217;authentification échoue mais que l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; ne se voit pas incrémenter, alors un mot de passe précédemment valide vient d&#8217;être découvert.</div>
<div style="text-align: justify;">La découverte d&#8217;un mot de passe précédemment utilisé par un utilisateur permet à un attaquant d&#8217;identifier une éventuelle structure de création de mot de passe employée par cet utilisateur, pouvant parfois conduire à la découverte de son mot de passe actuel.</div>
<div style="text-align: justify;">D&#8217;autre part, il est fréquent que des utilisateurs réutilisent leurs anciens mots de passe ; un précédent mot de passe découvert pourrait donc être réemployé par la suite par ce même utilisateur.</div>
<div style="text-align: justify;">Enfin, les anciens mots de passe de domaine découverts peuvent parfois être encore valides sur certains applicatifs se reposant sur un référentiel n&#8217;imposant aucun changement de mot de passe.</div>
<h3>Invoke-CleverSpray &#8211; Script PowerShell automatisant la découverte de mots de passe (actuel, N-1 et N-2)</h3>
<div style="text-align: justify;">Un script a été développé dans le but d&#8217;identifier, outre les mots de passe actuels des utilisateurs d&#8217;un domaine Windows, les mots de passe présents dans les historiques des mots de passe utilisateur :</div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15931 media-15931" class="align-center"><img decoding="async" class="aligncenter size-full wp-image-15931" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1.png" alt="" width="640" height="482" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1-254x191.png 254w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1-52x39.png 52w" sizes="(max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: center;"><a href="https://github.com/wavestone-cdt/Invoke-CleverSpray"><i><span style="font-size: x-small;">https://github.com/wavestone-cdt/Invoke-CleverSpray</span></i></a></div>
<div style="text-align: justify;">Le schéma de fonctionnement de ce dernier est le suivant :</div>
<div style="text-align: justify;">
<ul>
<li>Récupération de la liste des utilisateurs du domaine Windows ou au sein d&#8217;un fichier passé en paramètre ;</li>
<li>Pour chacun des utilisateurs, le contrôleur de domaine disposant du rôle de PDCe va être contacté afin de connaître la valeur initiale de l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; de l&#8217;utilisateur, puis, si cette dernière est inférieure à un seuil défini par l&#8217;attaquant, une tentative de connexion à l&#8217;aide d&#8217;un mot de passe spécifié en paramètre au script (ou présent au sein d&#8217;une liste de mot de passe passée en paramètre) va être tentée ;</li>
<li>Si l&#8217;authentification est réussie :
<ul>
<li>Le mot de passe correspond au mot de passe actuel de l&#8217;utilisateur ciblé ;</li>
</ul>
</li>
</ul>
<ul>
<li>Si l&#8217;authentification échoue :
<ul>
<li>La valeur de l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; va alors être analysée :</li>
<li>Si cette dernière n&#8217;a pas été incrémentée, le mot de passe essayé correspond à un des deux mots de passe précédemment défini par l&#8217;utilisateur</li>
<li>Si cette dernière a été incrémentée, alors le mot de passe ne correspond ni au mot de passe actuel ni a un précédemment mot de passe de l&#8217;utilisateur ciblé. Le script va donc passer à l&#8217;utilisateur suivant afin de poursuivre l&#8217;attaque.</li>
</ul>
</li>
</ul>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<p>Il est à noter que le seuil de verrouillage d&#8217;un compte utilisateur ne peut être collecté par un utilisateur standard du domaine. De fait, il convient par sécurité d&#8217;exécuter le script avec une valeur limite de l&#8217;attribut &#8220;<b>badPwdCount</b>&#8221; faible afin d&#8217;éviter tout verrouillage de compte utilisateur.</p>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2019/06/invoke-cleverspray-jamais-1-sans-3/">Invoke-CleverSpray &#8211; Jamais 1 sans 3</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
