El mes pasado, investigadores de ESET escribieron sobre un nuevo malware para OS X llamado OSX/Keydnap, diseñado para robar el contenido del depósito de claves de Mac OS X para mantener un backdoor permanente. En ese momento del análisis, no estaba claro cómo las víctimas quedaban expuestas a la amenaza, aunque se consideraba la posibilidad de que fuera a través de adjuntos en mensajes de spam o descargas desde sitios desconocidos.
Pero durante las últimas horas OSX/Keydnap se distribuyó en un sitio de confianza, a través de una versión recompilada de Transmission, una aplicación open source que es un cliente legítimo de BitTorrent; esta versión maliciosa se distribuye en su sitio oficial, cuyo repositorio de archivos fue comprometido.
Respuesta instantánea del equipo de Transmission
Literalmente minutos después de ser notificado por ESET, el equipo de Transmission removió el archivo malicioso de su servidor web e inició una investigación para averiguar cómo había pasado esto. ESET también notificó a Apple sobre la firma de código comprometida.
Al momento de escribir nuestro artículo, era imposible señalar con exactitud cuándo se había puesto disponible para descarga este archivo malicioso.
Según la firma, el bundle de la aplicación fue firmado el 28 de agosto de 2016, pero parece que comenzó a distribuirse el día siguiente. Por lo tanto, recomendamos a cualquiera que haya descargado Transmission v2.92 entre el 28 y el 29 de agosto inclusive que verifique si su sistema está comprometido, buscando la presencia de cualquiera de estos archivos o directorios:
- /Applications/Transmission.app/Contents/Resources/License.rtf
- /Volumes/Transmission/Transmission.app/Contents/Resources/License.rtf
- $HOME/Library/Application Support/com.apple.iCloud.sync.daemon/icloudsyncd
- $HOME/Library/Application Support/com.apple.iCloud.sync.daemon/process.id
- $HOME/Library/LaunchAgents/com.apple.iCloud.sync.daemon.plist
- /Library/Application Support/com.apple.iCloud.sync.daemon/
- $HOME/Library/LaunchAgents/com.geticloud.icloud.photo.plist
Si alguno de ellos existe, significa que la aplicación maliciosa de Transmission se ejecutó y que Keydnap probablemente esté activo. Cabe destacar que la imagen de disco maliciosa se nombró Transmission2.92.dmg, mientras que la legítima es Transmission-2.92.dmg (nótese el guion).
Semejanza con KeRanger
Si este modus operandi te suena familiar, estás en lo correcto. En marzo de 2016 se reportó aKeRanger, un ransomware para Mac propagado vía Transmission. Palo Alto Networks publicó unartículo advirtiendo sobre esta amenaza y, efectivamente, Keydnap usó esta misma técnica para propagarse.
En ambos casos, se añade un bloque de código malicioso a la rutina principal de la aplicación de Transmission. Asombrosamente, este código, responsable de descargar y ejecutar el payload, es el mismo.
Tal como en el caso de KeRanger, se usó una clave legítima para firmar digitalmente el bundle malicioso de la aplicación Transmission. Es diferente del certificado legítimo de Transmission, pero también está firmado por Apple y evade la protección de Gatekeeper, diseñada para proteger a los equipos de aplicaciones maliciosas descargadas de Internet.
# Malicious Transmission.app $ codesign -dvvv /Volumes/Transmission/Transmission.app Executable=/Volumes/Transmission/Transmission.app/Contents/MacOS/Transmission Identifier=org.m0k.transmission Format=app bundle with Mach-O thin (x86_64) CodeDirectory v=20200 size=6304 flags=0x0(none) hashes=308+3 location=embedded Hash type=sha1 size=20 CandidateCDHash sha1=37ffe70260919ee70e9f2a601d5ad00e2dd5a011 Hash choices=sha1 CDHash=37ffe70260919ee70e9f2a601d5ad00e2dd5a011 Signature size=4255 Authority=Developer ID Application: Shaderkin Igor (836QJ8VMCQ) Authority=Developer ID Certification Authority Authority=Apple Root CA Signed Time=Aug 28, 2016, 12:09:55 PM Info.plist entries=38 TeamIdentifier=836QJ8VMCQ Sealed Resources version=2 rules=12 files=331 Internal requirements count=1 size=212
# Clean Transmission.app $ codesign -dvvv /Volumes/Transmission/Transmission.app Executable=/Volumes/Transmission/Transmission.app/Contents/MacOS/Transmission Identifier=org.m0k.transmission Format=app bundle with Mach-O thin (x86_64) CodeDirectory v=20200 size=6304 flags=0x0(none) hashes=308+3 location=embedded Hash type=sha1 size=20 CandidateCDHash sha1=a68d09161742573b09a17b8aef05f918a1cebcac Hash choices=sha1 CDHash=a68d09161742573b09a17b8aef05f918a1cebcac Signature size=8561 Authority=Developer ID Application: Digital Ignition LLC Authority=Developer ID Certification Authority Authority=Apple Root CA Timestamp=Mar 6, 2016, 3:01:41 PM Info.plist entries=38 TeamIdentifier=5DPYRBHEAR Sealed Resources version=2 rules=12 files=328 Internal requirements count=1 size=180
Aparte del método de distribución, Keydnap y KeRanger tienen similitudes en su código, tal como la ruta de acceso en la URL del C&C y los parámetros enviados:
- KeRanger: /osx/ping?user_id=%s&uuid=%s&model=%s
- Keydnap: /api/osx?bot_id=%s&action=ping&data=%s (parámetros como POST, cifrados con RC4)
Keydnap, ahora en versión 1.5
Si bien reporta al servidor de C&C, Keydnap incluye una versión interna. El que observamos en el nuevo binario es 1.5.
Sigue estando empaquetado con una versión modificada de UPX, descrito en nuestro primer artículo sobre Keydnap, por lo que el parche que publicamos en Github para desempaquetar el archivo ejecutable todavía funciona con la nueva variante.
Un cambio significativo en la nueva versión es la presencia de un cliente de Tor autónomo. Esto le permite a Keydnap alcanzar su servidor de C&C alojado en un dominio .onion sin la necesidad de un relay Tor2Web como onion.to.
Hay solo un comando adicional en compración con la versión anterior que analizamos. Este nuevo comando, con id 10, permite configurar al servidor de C&C en una URL diferente y guardarla en el disco.
La clave de RC4 es usada para cifrar los datos enviados a través de POST y descifrar la respuesta cambiada a “u-4&LpZ!6Kgu^=$a”.
La URL del C&C, incluida en el código (hardcoded), es ahorahxxp://t4f2cocitdpqa7tv.onion/api/osx.
Indicadores de sistemas comprometidos
Bundle de Transmission
SHA-1 | Nombre del archivo | Detección de ESET |
---|---|---|
1ce125d76f77485636ecea330acb038701ccc4ce | Transmission2.92.dmg | OSX/Keydnap.C |
Dropper de OSX/Keydnap
SHA-1 | Nombre del archivo | Detección de ESET |
---|---|---|
e0ef6a5216748737f5a3c8d08bbdf204d039559e | Transmission | OSX/TrojanDropper.Agent.A |
Backdoor de OSX/Keydnap
SHA-1 | Detección de ESET | C&C | Versión |
---|---|---|---|
8ca03122ee73d3e522221832872b9ed0c9869ac4 | OSX/Keydnap.C | hxxp://t4f2cocitdpqa7tv.onion | 1.5 |
Fuente:https://www.welivesecurity.com/
Entusiasta de la seguridad cibernética. Especialista en seguridad de la información, actualmente trabajando como especialista en infraestructura de riesgos e investigador.
Experiencia en procesos de riesgo y control, soporte de auditoría de seguridad, diseño y soporte de COB (continuidad del negocio), gestión de grupos de trabajo y estándares de seguridad de la información.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/.
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad