Conferencia 27 de DEFCON. Beneficios de los productos hacker para macOS. Parte 2

Conferencia 27 de DEFCON. Beneficios de los productos hacker para macOS. Parte 1

Habiendo recibido un archivo con código malicioso de un servidor C&C de hackers remotos, el exploit procede a ejecutarlo. Utiliza el mismo método SDF cuando el archivo de malware se desempaqueta usando el comando ídem incorporado y luego se ejecuta a través de la API NS. Por lo tanto, Windtall utiliza un gestor de arranque incorporado estándar.



Además, la puerta trasera está equipada con una lógica de autoliquidación, por lo que cada vez que se inicia el malware, se pone en contacto con el servidor hacker y le pregunta si debe desinstalarse. Si el servidor C&C responde con el código "1", el programa se elimina a sí mismo, deteniendo así la actividad de spyware.



Esta es una característica muy útil que permite a un atacante "desinfectar" remotamente un objetivo sin dejar rastros de su intervención. Ahora mostraré cómo rehacemos este virus para nuestras propias necesidades.



Primero, hablemos de reprobar un exploit. Crear una página web de hackers que descargue automáticamente un archivo ZIP que contenga una aplicación maliciosa es bastante simple. Como mencioné, Safari descomprimirá automáticamente los archivos ZIP de manera predeterminada, por lo que si colocamos una aplicación maliciosa en este archivo que implemente algunos controladores de URL, Mac OS lo registrará automáticamente antes de que el usuario inicie la aplicación.

Una página web maliciosa puede solicitar esta URL de usuario ya registrada, lo que conducirá al lanzamiento de la aplicación. Por lo general, aparece una ventana de advertencia, pero el usuario hace clic en el botón sin prestarle atención.

Entonces, ¿ves una demostración del exploit rediseñado y una ventana de advertencia de que "Final_Presentation" es una aplicación descargada de Internet, preguntando si el usuario está seguro de querer abrirla en la computadora?

Hacer clic en el botón "Abrir" es la segunda solicitud que causa una ventana emergente, y si el usuario hace clic en el icono de la aplicación que se muestra en él, veremos que el malware se instaló automáticamente en el sistema.



Hay una falla lógica en Apple donde no es necesario parchear el sistema operativo para infectar el sistema, y ​​esto todavía funciona en la última versión de macOS. Ahora que hemos rehecho el exploit, hablemos de rehacer malware.



Nuestro primer paso es reemplazar la dirección integrada del servidor C&C para que el exploit se ponga en contacto con nuestro servidor y descargue el malware convertido. Lamentablemente, la dirección estaba encriptada, pero esto no nos molestó. Decidimos hacer que el malware siempre cargara la biblioteca dinámica. Luego, tan pronto como nuestra biblioteca se lanzó en el espacio de direcciones del proceso malicioso, podríamos, en principio, modificar el malware para que intercepte las direcciones descifradas del servidor C&C durante la operación, incluso antes de usar este servidor para la conexión. Echemos un vistazo más de cerca a este proceso.

Permítame recordarle nuevamente: nuestro objetivo era volver a perfilar el malware especificando nuestro propio servidor de C&C para que el malware se conectara nuevamente a nuestra infraestructura.



Entonces, la biblioteca dinámica se cargó en el espacio de direcciones del malware y reemplazamos el procedimiento de descifrado o aplicamos Swizzle. Este eficiente y poderoso método de reemplazo de API se llama Yoop.

La diapositiva muestra que reemplazamos la función de descifrado de tal manera que cada vez que el malware lo llama, en realidad llama a nuestro método de descifrado en nuestra biblioteca. No tengo idea de qué es el algoritmo de descifrado y cómo funciona, y, francamente, no me importa, pero después de la sustitución puedo ver el resultado de este cifrado. Entonces, si el método de cifrado original me devuelve las direcciones descifradas del servidor C&C, simplemente puedo incrustar mi propio servidor C&C en la lógica del malware. Esto nos permite reemplazar de manera transparente el servidor C&C descifrado con nuestro servidor.

Ahora estoy agregando algunos mensajes de depuración a la biblioteca para que cuando ejecutemos el malware convertido, podamos ver cómo se reemplazan las direcciones del servidor C&C durante su ejecución. En la ventana de terminal de la línea de comandos, puede ver cómo nuestra biblioteca, que sigue el método de descifrado original, detecta que esta respuesta proviene del servidor C&C, cuya dirección ahora está descifrada.



Como no queremos que nuestro programa haga referencia a la lógica del malware original, simplemente descartamos esta función y volvemos a nuestro propio programa. Por supuesto, siempre debemos estar seguros de que la puerta trasera está accediendo a nuestro servidor de C&C, y no al servidor del grupo APT original.

Necesitábamos escribir nuestro servidor C&C, porque ahora el malware se conectará a él, y necesitamos proporcionar una "conversación" con el protocolo para confundir correctamente el malware.



La función principal de la puerta trasera Windtall es recopilar y extraer archivos de usuario, por lo que antes que nada necesitábamos agregar esta función a nuestro servidor de C&C. Los archivos se recuperan a través de una solicitud POST, por lo que acabamos de escribir algunas líneas de código Python para permitirnos guardar los archivos recuperados y enviados desde el host infectado.

Verá en la pantalla cómo nuestro servidor C&C recibe archivos extraídos de la computadora atacada.



A la izquierda, puede ver cómo entran las solicitudes de red, y a la derecha, cómo nuestro servidor las escribe en el sistema de archivos. Esto significa que ahora admitimos la capacidad del malware para extraer archivos de todo tipo de un host infectado.

También hemos adaptado nuestro servidor C&C para admitir las capacidades de descarga y ejecución de Windtall. Notamos que para este malware se realizan 2 solicitudes.



La primera solicitud se refiere a obtener el nombre del archivo para descargar, y la segunda solicitud debemos responder con bytes específicos del archivo que queremos descargar. El malware guarda todo esto en el archivo que especificamos, luego lo descomprime y lo ejecuta. Repito una vez más: nos tomó solo un par de líneas en Python, es simple, ya que utiliza muchas bibliotecas integradas.

Tan pronto como hicimos esto, tuvimos la oportunidad de "descifrar" el implante. Miremos en acción. Vemos cómo el malware se conecta a nuestro servidor de C&C, porque cambiamos con éxito la dirección del servidor original y realizamos la tarea que se le asigna: descarga la aplicación Calculadora.



La capacidad de descargar y ejecutar aplicaciones de forma remota significa que podemos instalar otras herramientas u otras muestras de malware en la computadora del usuario. Esto expande infinitamente el potencial para usar software hacker reutilizado.

Finalmente, demos a nuestro servidor la capacidad de eliminar el malware de forma remota. La función de autodestrucción es muy útil si los chicos del FBI entran por la puerta. Un clic en la tecla y el virus se eliminará de todos los sistemas infectados.



El software espía nos contacta periódicamente con una solicitud sobre si es necesario eliminarse y, si es necesario, simplemente respondemos con el código "1", después de lo cual se desinstala por completo del sistema.

Otra demostración mostrará esto en acción. Puede ver que nuestro malware tiene su propio logotipo naranja que imita un documento de Power Point, pero en realidad es un directorio oculto del sistema.



Después de que una vez más envió una solicitud de destrucción al servidor de C&C y respondimos en uno, el ícono naranja desapareció del directorio del programa, y ​​la aplicación en sí misma dejó de “hablarnos” porque se autodestruyó.



Entonces, hemos mostrado cómo algunas muestras de malware para macOS se vuelven a crear, y ahora analicemos cómo permanecer sin ser detectados. Dado que estamos rehaciendo los programas maliciosos conocidos que la protección incorporada de macOS y el software antivirus de terceros detectan y bloquean, debemos resolver este problema de alguna manera.

Cómo no ser detectado


Primero, hablemos sobre los programas de detección y control de virus que están integrados en macOS, como XProtect, la herramienta de eliminación de virus MRT y la verificación de revocación de certificados.



A primera vista, esto parece problemático, ya que estos programas pueden bloquear nuestro spyware convertido en cualquier Mac. Por lo tanto, debe pensar en cómo evitar la protección, porque si quedamos atrapados con nuestro malware cuidadosamente rediseñado y Apple lo bloquea, será un completo fracaso.

Echemos un vistazo a XProtect primero. Este es un escáner antivirus simple basado en bases de datos de firmas de virus e integrado en las últimas versiones de macOS.



Escanea los archivos descargados por el usuario en la computadora antes de su primer lanzamiento, guiado por las reglas de detección de virus. En la pantalla vemos un escaneo de la firma del virus OSX.KeRanger.A, cuyo nuevo perfil acabamos de examinar.

Escribimos una utilidad simple llamada UXProtect, que le permite examinar estas firmas a través de la interfaz de usuario de la interfaz de usuario, así como escanear archivos en cualquier momento en busca de firmas de virus. Debido a que XProtect usa solo el motor de detección de firmas, es extremadamente fácil moverse. Echemos un vistazo más de cerca a la firma del virus KeRanger.



Vemos una indicación de un grupo de firmas de malware que solo necesita reordenar o modificar cualquiera de estas instrucciones para omitirlas. Cambiar algunos bytes de una instrucción hace que la firma ya no coincida con los parámetros de detección. Por ejemplo, cambiamos el número de bytes a leer del búfer de 0x400 a 0x300. Esto no afectó la funcionalidad del virus, pero tan pronto como cambiamos la cantidad de bytes que el escáner verifica para que coincida con la firma, excluimos por completo la posibilidad de que XProtect reaccione a esta amenaza.

Es hora de otra demostración, donde verá dos ejemplos de KeRanger. Nuevamente estamos usando el cliente BitTorrent infectado. A la izquierda en la pantalla se encuentra la copia original del hacker del virus, y a la derecha está su versión reutilizada, que, para obtener la clave de cifrado, se comunica con nuestro servidor de C&C. Además, se modifica para eludir la protección XProtect.



Verá que el sistema bloquea una instancia del virus original sin la posibilidad de iniciarla, y la única operación permitida con ella es la eliminación.



Si lanzamos una versión rediseñada de KeRanger, el sistema simplemente informa que se ha descargado de Internet y pregunta si realmente queremos lanzarla.



Si hacemos clic en "Abrir", el ransomware se instala silenciosamente en el sistema e inmediatamente comienza a cifrar todos los archivos del usuario.



La siguiente forma de proteger su Mac es verificar las firmas de los certificados. La mayoría de los binarios macOS firmados no están bloqueados por la función de seguridad GateKeeper, por lo que los piratas informáticos proporcionan firmas para la mayoría del malware Mac moderno. Por otro lado, una vez que se detecta un virus firmado, Apple simplemente revoca su certificado de firma. Esto significa que este malware no se puede ejecutar en ninguna Mac.

Por ejemplo, tenemos un binario del virus Windtall cuyo certificado de firma ha sido revocado por Apple. Esto significa que incluso si modificamos el perfil y lo aplicamos en el nuevo sistema, aún no podremos comenzar. Por lo tanto, solo intentamos omitir el procedimiento de revocación de certificados eliminando el certificado de firma en sí.



Luego, usamos una copia sin firmar del malware convertido o le proporcionamos un certificado de firma legal diferente, que es bastante fácil de obtener.

Para eliminar realmente el certificado, Apple proporciona una utilidad llamada Code Sign que contiene el indicador de eliminación de firma indocumentado o "eliminar firma". Si realiza esta operación con su malware, Apple simplemente no prestará atención al certificado de firma revocado.

También podemos volver a firmar nuestra aplicación usando la misma utilidad usando el comando codeign -s "Developer ID Applikation:". Esto hará que macOS ya no bloquee el Windtall re-firmado.

Finalmente, pasamos a MRT, la herramienta de eliminación de virus incorporada disponible en las últimas versiones del sistema operativo Mac. Es similar a XProtect, pero analiza el malware que ya está instalado en el sistema y lo detecta automáticamente al detectarlo. A diferencia de XProtect, sus firmas están incrustadas en su propio archivo binario. Apple a menudo usa esta herramienta para eliminar aplicaciones legítimas que considera inseguras para su computadora. Suelen ser aplicaciones que contienen vulnerabilidades conocidas.



Dado que MRT, como XProtect, funciona con firmas, también se puede evitar. Usamos el volcado MRT, una vez más, porque las firmas están integradas en el binario en sí y pudimos verlas todas, incluida la firma del virus Fruitfly. Nos preguntamos si MRT podría detectar nuestra copia convertida de este malware.



Comenzamos a investigar la firma incorporada de Fruitfly y descubrimos que su detección se basa en dos cosas: la ruta para instalar el virus y el archivo .plist descargado. Esto significa que si cambiamos la ruta o el nombre del malware, MRT no podrá detectarlo. Como dije, como resultado, evitar esta protección resultó ser bastante simple.

Descubrimos que moverse por un software antivirus de terceros tampoco es difícil, ya que puede ejecutar un virus convertido incluso en un sistema en el que el usuario ya ha instalado un antivirus.



Se habló mucho sobre este tema, no quiero entrar en detalles, pero en general, los productos antivirus tradicionales se basan en la verificación de firmas, como el software antivirus de Apple, lo que significa que pueden eludirse con los mismos métodos.

Por ejemplo, tomé el mismo Fruitfly, recordé que también era un script de Perl y lo pasé a través de la utilidad en línea gratuita Perl Obfuscator, que fue diseñada para hacer que el script de Perl sea difícil de leer y reducir la probabilidad de su detección a cero. Naturalmente, funcionó. Pero puede ir de una manera más ingeniosa, especialmente si usa malware basado en binarios. Puede empaquetarlo en un archivo, usar un encriptador o incluso la ejecución en memoria, es decir, la descarga sin archivos y la ejecución de virus en la RAM.

Hace unos años, estas tecnologías se discutieron en la conferencia BlackHat y se concluyó que incluso si un usuario de Mac instaló un software antivirus de terceros en el sistema, todavía no era capaz de detectar malware reprogramado. Estas son malas noticias para los usuarios de macOS, ya que sabemos que los hackers experimentados usan malware convertido. A menudo, toda la alteración se reduce a cambiar algunos bytes de código o argumentos de línea de comando, y esto hace posible tomar el control de una computadora para usarla para sus propios fines. Además, la mayoría de las herramientas antivirus integradas de macOS y el software antivirus de terceros no pueden detectar amenazas convertidas.

Dado que este software reutilizado es solo un spyware original ligeramente conocido y rehecho, me pondré un "sombrero blanco" y le diré cómo aún puede encontrarlos.

Detección de software de reconfiguración


Es bien sabido que el software antivirus basado en firmas no hace frente al malware convertido. Por lo tanto, debemos prestar atención al comportamiento inusual, anormal y malicioso de dicho malware.

Debemos intentar detectarlo, no gracias a la conocida firma de virus, sino observando sus acciones en el sistema. Nos aseguramos de que cuando rehaces un spyware conocido, sus funciones básicas y su propósito no cambien.

Si rehacemos el troyano Ransomware ransomware, aún cifrará sus archivos, y la puerta trasera rediseñada continuará recolectando archivos y enviándolos al servidor espía.
En la diapositiva anterior, mostré las funciones o capacidades del sistema, que deberían ser monitoreadas y monitoreadas por su actividad. Estos incluyen la "persistencia" de aplicaciones, actividad inusual de micrófono o cámara, descarga o transferencia de archivos, captura de pantalla no autorizada, síntomas de interceptación de teclado, clickers sintéticos y cifrado de archivos. Esto detectará incluso malware reutilizado.

Hablemos de perseverancia. Cuando digo "perseverancia", quiero decir que tan pronto como el spyware esté instalado en la computadora, se iniciará automáticamente cada vez que reinicie el sistema. Esta es una característica de cualquier malware para macOS o Windows: esforzarse por lograr un objetivo malicioso.

Simplemente podemos controlar el sistema de archivos observando el comportamiento de la aplicación "persistente", y si algo cambia en él, notifique al usuario o al administrador del sistema.

Ahora quiero demostrar cómo puede detectar la actividad del virus Windtall original o remodelado, que se manifiesta en el acceso no autorizado a un micrófono o cámara web Mac.



Muchos programas maliciosos de Mac acceden a una cámara web o un micrófono para espiar a un usuario de un sistema infectado. Para detectar esta actividad de virus, podemos registrar cada vez que se enciende la cámara y el micrófono en el sistema macOS para que el usuario reciba automáticamente una notificación sobre este evento. , FruitFly, , Zoom, .

. , .



macOS – Event Taps. , . .

FruitFly, , , – «» .



, macOS, . . , macOS , . , .

Objective-See, - macOS. , . , , .



, – , , « ».



, Digita Security, . : . Apple, , .

, . , , , , macOS.

, . , Windtall, , Safari , .



, URL , - URL. Windtall, , .

FruitFly , , - . , , , Apple, - .

, FruitFly , . , . template . , .

Por lo tanto, si se producen varios eventos sospechosos conectados entre sí en el sistema, debemos observarlos de cerca. En los ejemplos anteriores, demostré cómo la heurística del comportamiento puede detectar incluso amenazas de seguridad macOS complejas y reutilizadas.

Antes de concluir, quiero anunciar la Conferencia anual de seguridad de Mac en febrero de 2020 en Hawai e invitarlos a asistir.




Un poco de publicidad :)


Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendando a sus amigos, VPS en la nube para desarrolladores desde $ 4.99 , un descuento del 30% para usuarios de Habr en un análogo único de servidores de nivel básico que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 Núcleos) 10GB DDR4 240GB SSD 1Gbps desde $ 20 o ¿cómo compartir un servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

Dell R730xd 2 veces más barato? ¡Solo tenemos 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV desde $ 199 en los Países Bajos! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ¡desde $ 99! Lea sobre Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

Source: https://habr.com/ru/post/474590/


All Articles