I truffatori non sono hacker: 4 backend analizzati, tutti compromessi con estrema facilità
Firebase · Supabase · Express.js · Drainer-as-a-Service · febbraio 2026

Avviso: si tratta di un’analisi, non di un attacco
Tutto ciò che viene presentato in questo articolo è il risultato di analisi passiva e dati accessibili al pubblico. Nessun sistema è stato violato. Nessuna procedura di autenticazione è stata aggirata. In ogni caso, è stata proprio una configurazione errata da parte dei truffatori a rendere accessibili la loro infrastruttura, i dati delle vittime e le identità operative a chiunque volesse semplicemente dare un’occhiata. Tutte le chiavi API sono state rinvenute in bundle JavaScript pubblici. Ogni database era completamente aperto per scelta degli stessi gestori. Documentiamo tutto questo non per attaccare, ma per dimostrare che chi ruba le vostre criptovalute non riescono nemmeno a custodire i propri attrezzi.
La tesi centrale: script kiddies con strumenti rubati
Nell'immaginario collettivo persiste il mito secondo cui i truffatori online siano "hacker", ovvero geni della tecnologia in grado di introdursi nei sistemi con abilità e sofisticatezza. Questo è sbagliato.
I truffatori del mondo delle criptovalute di oggi sono script kiddies che utilizzano toolkit acquistati. Acquistano pacchetti “Drainer-as-a-Service” al prezzo di 200–500 dollari, li installano su hosting gratuiti o a basso costo e sperano che le loro vittime non se ne accorgano. Non scrivono codice. Non capiscono nulla di reti. E di certo non capiscono nulla di sicurezza.
Lo sappiamo perché nel febbraio 2026 PhishDestroy ha analizzato 4 operazioni fraudolente indipendenti — e in ogni singolo caso avremmo potuto:
- Leggi tutti i dati delle vittime di furto (frasi di seed, indirizzi e-mail, indirizzi IP, tipi di portafoglio)
- Modificato o eliminato il database dei truffatori
- Identificato l'operatore tramite chiavi API esposte, indirizzi e-mail e impronte digitali dell'infrastruttura
- È stato riprodotto l'attacco contro il truffatore — sfruttando le stesse vulnerabilità che avevano lasciato scoperte
Non servono exploit. Niente vulnerabilità zero-day. Niente "hacking". Solo aprendo la porta d'ingresso che avevano lasciato aperta.
Caso 1: L'API fantasma — server0002.mn19indexpre.xyz
Express.js su Apache, sicurezza inesistente
| Parametro | Valore |
|---|---|
| Dominio | server0002.mn19indexpre.xyz |
| Indirizzo IP | 108.181.185.225 |
| Stack del server | Apache/2.4.58 (Ubuntu) → Express.js (Node.js) |
| Banner SSH | SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.11 |
| Emittente TLS | Let's Encrypt (E7), valido da gennaio ad aprile 2026 |
| Registrar DNS | GoDaddy (ns39/ns40.domaincontrol.com) |
| E-mail (MX) | mn19indexpre-xyz.mail.protection.outlook.com |
| Tenant Microsoft | NETORGFT19090185.onmicrosoft.com |
| Porte aperte | 22 (SSH), 80 (HTTP→301), 443 (HTTPS) |
"Autenticazione" — Una battuta
L'API viene fornita con un token Bearer predefinito: thisisakeyforsecureserver. Ma ecco il colpo di scena — il token non è stato effettivamente verificato:
Convalida senza input
Ogni payload di iniezione che abbiamo testato è stato accettato senza alcun avviso:
Impronta delle prestazioni
Tempo di risposta costante di circa 7,5 secondi per le richieste POST, indipendentemente dalle dimensioni del payload (si accettano valori da 10 byte a 10 MB), il che suggerisce l'utilizzo di un sistema di inoltro delle e-mail o di un webhook nel backend. Le richieste GET rispondono in 0,6 s. 10 richieste parallele vengono completate in 9,1 s — non viene applicata alcuna limitazione di frequenza.
Potenziale di deanonimizzazione
ID tenant di Microsoft 365 NETORGFT19090185 è un link diretto all'account dell'organizzazione che ha registrato questo dominio. Considerando anche i dati di registrazione di GoDaddy e un IP dedicato (non dietro un CDN), questo operatore è facilmente identificabile attraverso i canali legali. Il record SPF (include:secureserver.net) conferma che, per il servizio di hosting e-mail di GoDaddy, tutti i metadati delle e-mail sono accessibili tramite mandato di comparizione.
Caso 2: Firebase Wide Open — web3ledgar.com
Firestore senza regole di sicurezza
| Parametro | Valore |
|---|---|
| Dominio di phishing | web3ledgar.com (typosquat di "Ledger") |
| Dominio alternativo | web3.ledgerscore.ltd |
| Progetto Firebase | web3ledger-210ab |
| Chiave API | AIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8 |
| ID app | 1:1054258933515:web:9fb193fcd0093023f7fc0e |
| Pacchetto JS | /static/js/main.7a5ec2fa.js |
| Regole di Firestore | Completamente aperto — lettura/scrittura senza autenticazione |
| Numero totale di vittime | 12 record in users collezione |
| Collezioni trovate | users, transactions |
Dati sulle vittime — Completamente accessibili a chiunque
Una singola richiesta GET non autenticata all'API REST di Firestore ha restituito ogni frase di seed rubata:
Tra i 12 record ce n’era uno particolarmente significativo: qualcuno aveva già testato il sistema con fbi@fbi.gov come nell'e-mail. Il truffatore ha testato il proprio sistema (utile ai fini dell'identificazione) oppure qualcun altro lo aveva già sondato.
Il flusso dell'attacco
Il sito di phishing riproduce l'interfaccia del wallet di Ledger. La vittima clicca su "Connetti wallet" → inserisce la frase seed → il frontend React scrive direttamente su Firestore → il truffatore legge i dati dallo stesso database aperto. Non c'è proprio nessun server backend. L'intera operazione funziona grazie al piano gratuito di Google.
Potenziale di deanonimizzazione
ID del progetto Firebase web3ledger-210ab e ID dell'app 1:1054258933515 sono associato a un account Google. Google conserva i registri di fatturazione, i log degli indirizzi IP e i dati relativi alla creazione degli account per tutti i progetti Firebase. È sufficiente una singola richiesta da parte delle forze dell'ordine a Google per rivelare l'identità dell'operatore. Inoltre, il fatto che le regole di Firestore siano completamente aperte significa che avremmo potuto inserire i dati nel loro database, avvisava le vittime in tempo reale oppure cancellava l'intera raccolta.
Caso 3: CRUD completo con Supabase — web3safe-pal.com
Sicurezza a livello di riga disabilitata, GraphQL completamente aperto
| Parametro | Valore |
|---|---|
| Dominio di phishing | web3safe-pal.com (typosquat di "SafePal") |
| Progetto Supabase | gzqsadraigchwdhblavp |
| Chiave Anon | Pubblicato su /assets/index-b025f4a6.js (748 KB) |
| Tabella del database | seeds — lettura, inserimento, aggiornamento, cancellazione |
| GraphQL | Introspezione completa + mutazioni abilitate |
| Funzioni Edge | send-wallet-import-email, send-email |
| Servizio di posta elettronica | API di reinvio (RESEND_API_KEY nelle variabili d'ambiente) |
| Documentazione sulle vittime | ID 130–131 (129 precedentemente eliminati) |
| Lingua dell'interfaccia utente | Russo ("Portafoglio principale", "Il tuo portafoglio si sta caricando...") |
Accesso completo al database — Lettura, scrittura, cancellazione
La chiave "anon" di Supabase, presente nel bundle JavaScript minificato, garantisce accesso CRUD completo al seeds tabella:
Gli ID partono da 130 — il che significa che i record da 1 a 129 erano stati precedentemente cancellati dall'operatore. Almeno 131 frasi di seed sono passate attraverso questo sistema.
Funzioni Edge: la traccia delle e-mail
Sono attive due funzioni Supabase Edge. Abbiamo effettuato il reverse engineering del send-email il formato di input previsto dalla funzione, testando i payload:
Reinvia la chiave API (RESEND_API_KEY) è memorizzato nelle variabili d'ambiente di Supabase. Resend conserva i registri di verifica del mittente e i dati di fatturazione — un altro percorso diretto verso l'identità dell'operatore.
Potenziale di deanonimizzazione
La localizzazione dell'interfaccia utente in russo ("Основной кошелек", "Ваш кошелек загружается...") indica un Operatore di lingua russa. Il progetto Supabase (gzqsadraigchwdhblavp) è collegato a un account con dati di fatturazione. Il servizio "Invia nuovamente l'e-mail" dispone dell'indirizzo e-mail del destinatario. L'introspezione GraphQL rivela lo schema completo del database. Abbiamo dimostrato di disporre di pieno accesso in scrittura — avremmo potuto sostituire ogni frase di seed rubata con un messaggio di avvertimento rivolto alle vittime, oppure avrebbe cancellato l'intera tabella. L'operatore non avrebbe alcun modo di recuperare i dati.
Caso 4: Sgocciolatoio su scala industriale — aipolypredictor.xyz
19.000 frasi di seed in 5,8 giorni
| Parametro | Valore |
|---|---|
| Dominio front-end | aipolypredictor.xyz ("PolySniper | Le scommesse degli addetti ai lavori di Frontrun") |
| API C2 | api.yfhikblkhghdyteiuyf54.run |
| Indirizzi IP C2 | 172.67.168.147, 104.21.26.231 (Cloudflare) |
| Backend | Express.js (Node.js) v1.0.0 |
| Responsabile del registro (Frontend) | NiceNIC International Group Co. |
| Responsabile dell'anagrafe (C2) | PDR Ltd. (PublicDomainRegistry.com) |
| Tempo di attività | ~139 ore (inizio: ~10 febbraio 2026, ore 21:00 UTC) |
| Kit di scarico CDN | renderer-postcard.defex.cc (601 KB di codice JS offuscato) |
| Bot di Telegram | Attivo, integrato per le notifiche |
| Limite di frequenza | 10 richieste/60 s (unico limite rilevato) |
Scala evidenziata tramite ID sequenziali
L'errore più grave: ID sequenziali dei lavori. Ogni invio di una frase di seed restituisce un ID progressivo, consentendo a chiunque di calcolare il volume totale:
Architettura multi-chain
Il server C2 ricava le chiavi su tutte le principali blockchain utilizzando percorsi di derivazione di profondità 100:
Infrastruttura della campagna
11 domini confermati appartenenti a 2 gruppi di operatori, tracciati tramite gli ID bundle:
| ID pacchetto | Domini | Stato |
|---|---|---|
88ef78f5... | aipolypredictor.xyz | IN DIRETTA |
4446ea5d... | solana.onspace.app, solxjup.onspace.app | IN DIRETTA |
| Kit defex.cc | jup-v2.com, events-charizard.fun, events-llquid.fun, events-blackswan.fun, soljup.onspace.build | Misto |
Analisi del payload JavaScript
Tre payload JS offuscati alimentano il drainer:
- wallet-connect.js (46 KB) — Gestisce l'interfaccia utente per la connessione al portafoglio, intercetta l'inserimento del seed. Offuscamento tramite rotazione di array di stringhe.
- wallet-specific-modals.js (134 KB) — Contiene Elenco completo delle parole in inglese per BIP39 e Elenco di parole di Monero (1.626 parole). Protezione anti-debugging tramite sovrascrittura di console.log/trace. Supporto per finestre modali multi-portafoglio.
- defex.cc/index.js (601 KB) — Codice offuscato in Unicode con nomi di variabili in cinese. Logica di drainer specifica per Solana. Codificatore Base58, primitive per la derivazione delle chiavi crittografiche. Versione 3.0.0.
Potenziale di deanonimizzazione
Il CORS: * intestazione e mancanza di mezzi di autenticazione Chiunque può inviare richieste e osservare l'incremento degli ID dei lavori in tempo reale. L'integrazione con il bot di Telegram fa sì che l'account Telegram dell'operatore riceva notifiche — e i metadati di Telegram possono essere richiesti tramite mandato. NiceNIC (registrar per il frontend) è un registrar "bulletproof" ben noto che abbiamo già oggetto di indagine, ma PDR Ltd. (registrar del dominio C2) risponde alle richieste delle forze dell'ordine. Il defex.cc Il kit "drainer" serve oltre 255 domini: una violazione di defex.cc metterebbe a rischio l'intera operazione DaaS e tutti i suoi clienti.
A confronto: 4 operazioni, stesso schema
| Metrico | mn19indexpre Express.js | web3ledgar Firebase | web3safe-pal Supabase | aipolypredictor Sgocciolatoio C2 |
|---|---|---|---|---|
| Autenticazione | Nessuno (token ignorato) | Nessuno | Chiave "Anon" in JS | Nessuno (CORS: *) |
| Dati leggibili | Messaggi/inoltro | Tutte le frasi di seed | Tutte le frasi di seed | ID lavoro / scala |
| Dati scrivibili | Sì (illimitato) | Sì | Sì (CRUD completo) | Sì (invia) |
| Convalida dei dati inseriti | Zero | Zero | Zero | Minimale |
| Limitazione della frequenza | Nessuno | Nessuno | Nessuno | 10 richieste/60 s |
| Non anonimizzabile | tenant di MS365 | Account Google | Reinvio + Fatturazione Supabase | PDR + Telegram |
| Numero stimato delle vittime | Sconosciuto | 12 | 131+ | 19,000+ |
| Lingua dell'operatore | Sconosciuto | Inglese | Russo | Sconosciuto |
Perché i truffatori non sono hacker
Le prove sono schiaccianti. In tutte e quattro le operazioni si osserva lo stesso schema:
- Acquista kit di scolapiatti già pronti (da 200 a 500 dollari)
- Implementazione su piani gratuiti (Firebase, Supabase)
- Lasciare invariate le configurazioni predefinite
- Utilizza token hardcoded che non vengono verificati
- Non abilitare mai RLS, non limitare mai CORS
- Rivelare la propria identità nei metadati
- Utilizza ID sequenziali che ne rivelino la scala
- Scrivere strumenti personalizzati per l'esfiltrazione
- Utilizzare canali crittografati e autenticati
- Generare identificatori in modo casuale, alternare l'infrastruttura
- Attuare un adeguato controllo degli accessi
- Utilizzare Tor/catene di proxy, pagamenti anonimi
- Distinguere l'identità operativa dall'hosting
- Implementare tecniche anti-forensi
Il cliente tipo di Drainer-as-a-Service è un ingegnere sociale con una carta di credito, non sono tecnici. Sanno come registrare un dominio e incollare del codice nel pannello di controllo di un hosting. Non sanno però come:
- Configura le regole di sicurezza di Firestore (ci vorranno 2 minuti)
- Abilita la sicurezza a livello di riga di Supabase (ci vorranno 5 minuti)
- Convalidare e pulire i dati in ingresso (ci vorrebbero 30 minuti)
- Utilizzare gli UUID al posto dei numeri interi sequenziali (basterebbe una sola riga di codice)
- Limitare il CORS ai propri domini (basterebbe una sola riga di configurazione)
Non si tratta di avversari sofisticati. Si tratta di persone che non sono in grado di configurare un database.
Indicatori di compromissione (IOC)
Domini
Indirizzi IP
Chiavi API e ID progetto
Conclusione: L’imperatore è nudo
Il punto chiave
Ogni operazione fraudolenta che abbiamo analizzato potrebbe essere completamente compromesso, deanonimizzato e messo fuori uso utilizzando nient’altro che un browser web, curl e la documentazione disponibile pubblicamente. In ogni caso, gli autori degli attacchi hanno lasciato i propri database completamente esposti, le chiavi API nei file JavaScript pubblici, le proprie identità nei metadati e i dati delle vittime accessibili a chiunque si prendesse la briga di cercarli.
La lezione è semplice: I truffatori non sono hacker. Sono taccheggiatori che hanno acquistato un set di grimaldelli su AliExpress e si sono dimenticati di chiudere a chiave la porta di casa. Gli strumenti che utilizzano sono sofisticati — perché li ha realizzati qualcun altro. Gli stessi operatori sono dilettanti che espongono sistematicamente la propria infrastruttura, i dati delle loro vittime e la propria identità a chiunque possieda competenze tecniche di base.
Se hai inserito la tua frase di recupero su uno qualsiasi di questi siti, considera che il tuo portafoglio sia stato compromesso e trasferisci immediatamente i fondi.
Tutti i risultati sono stati comunicati ai fornitori di servizi interessati (Google/Firebase, Supabase, Cloudflare, registrar di domini) e documentati a fini di applicazione della legge. Gli IOC sopra indicati sono stati aggiunti al PhishDestroy elenco da eliminare.


