La semana pasada se publicó que vulnerabilidades en mDNSResponder afectaban a sistemas de Apple. Existían múltiples vulnerabilidades en el software open source de mDNSResponder, el cual está implementado por Bonjouren Apple. Las vulnerabilidades descubiertas podrían permitir a un atacante ejecutar código arbitrario en las máquinas dónde se encontrase instalada la aplicación. El protocolo mDNSse puede leer bajo el RFC 6762 y está implementado por AppleBonjour y servicios del sistema operativo Linux nss-mdns.
Las vulnerabilidades que afectan al producto no son del año 2016, si no del año 2015. La comprobación errónea del tamaño de un buffer, CVE-2015-7987, en las funciones GetValueForIPv4Addr(), GetValueForMACAddr(), rfc3110_import()yCopyNSEC3ResourceRecord(). Otra vulnerabilidad del año pasado y que se encuentra en este software es la CVE-2015-7988, la cual es una referencia a null pointer. Ambas podrían permitir a un potencial atacante ejecutar código arbitrario o provocar una denegación de servicio provocando el crasheo en memoria. Ambos problemas afectan a las versiones de mDNSResponder 379.27y superiores, aunque inferiores a la versión 625.41.2.
Figura 1: Security Update for mDNSResponder
Appledecidió anunciar y publicar un aviso de seguridad para indicar estos problemas. Tal y como se puede ver en su anuncio, las versiones actuales de productos Appleutilizan una versión de Bonjour sin estos problemas, pero versiones anteriores sí estaban afectadas. Las versiones afectadas de OS Xson:
Versiones anteriores a OS X El Capitan 10.11.1.
Versiones anteriores a OS X Yosemite 10.10.5.
Versiones anteriores a OS X Mavericks 10.9.5.
Las versiones anteriores a iOS 9.1, watchOS 2.1 y AirPort Base Station Framework anteriores a 7.7.7 y 7.6.7. Se recomienda que los usuarios actualicen sus sistemas operativos, tanto OS X como iOS, watchOSy AirPortcon el objetivo de no ser vulnerable a estas vulnerabilidades de mDNSResponder.
Uno de los plugins que participaron en el concurso de Latch era Lockifi, un plugin que permitía al usuario habilitar y deshabilitar el acceso WiFi en el router. El objetivo es claro, cuando no vaya a utilizar la WiFirestrinjo el tiempo de exposición y la deshabilitóde forma automática gracias a la autorización con Latch. La idea nos gustó y decidimos migrar este plugin a un sistema OS X. Al principio nuestra idea fue migrar el plugin, por ejemplo a un lenguaje como Ruby, y crear un ítem en el inicio de sesión del usuario para que la aplicación estuviera preguntando automáticamente al iniciar sesión por el estado de Latch.
Tras echarle un poco de tiempo obtuvimos un código en Rubyque realizaba la misma operación que Lockifipara Windowsy preparamos el entorno para que autoarrancara. Aquí tenéis el vídeo de Lockifi para que veáis su propuesta. El código de este plugin está disponible en GitHub: Lockifi.
FIgura 1: Plugin Lockifi para Windows
Paso 0: El código
Como se ha mencionado esto es una migración del plugin Lockifi, escrito por Samuel Rodriguez. Migrar el código a otro lenguaje no era tarea difícil y decidí utilizar Ruby. El objetivo era que se ejcutara de forma sencilla en OS X. La versión deOS Xutilizada en este artículo ha sido El Capitan. Para llevar a cabo la migración se ha utilizado tres archivos más el SDK de Latch para Ruby. Además, debemos disponer de una cuenta de Latch en el área de desarrolladores, lo cual es gratuito. Deberemos crearnos una app dentro del área de desarrolladores. Como se puede ver en la siguiente imagen creamos una app con el nombre Lockifi OS X.
Figura 2: Creación de App Lockifi OS X en el área de desarrolladores
Nos tenemos que fijar en dos valores de la appque se acaba de crear: el Application ID y el secret. Estos valores serán necesarios para que nuestra aplicación Rubypueda comunicarse con Latchy nuestra cuenta de usuario. Pulsando el botón con el icono del lápiz se puede editar y visualizar estos dos parámetros.
Figura 3: VIsualización de Application ID y Secret
Los archivos son los siguientes:
main.rb. Este fichero se encarga de pedirnos un token para parear nuestra appde Latch con nuestra aplicación Ruby. El resultado que devolverá el main.rb es elAccount ID. Este Account ID deberá ser utilizado también por nuestra aplicación Rubypara comunicarse con Latch.
ssh_latches.rb. Este fichero implementa cuatro métodos que podrán ser utilizados para interactuar con Latch. El método statusdevolverá el estado de Latchpasándole el Account ID. El método pairnos facilita el pareo y será utilizado por main.rb. Esta clase se basa en el SDK de Latchpara implementar sus métodos.
ssh.rb. Este fichero implementa la lógica que proponemos para cada X tiempo consultar el estado de Latch y en función de éste habilitar o deshabilitar laWiFiprevia conexión al router.
Paso 1: main.rb
En primer lugar hay que echar un vistazo al código del main.rb. El objetivo es sencillo, un pequeño programa que nos pida un token y haga el paircon la app de Latch. El resultado será el Account ID, si todo va bien.
Figura 5: Código de main.rb
El programa mainnecesita del Application IDy el Secretpara poder llevar a cabo su acción de parear. El método pairestá invocado a través del SDK de Latch. En la imagen se puede ver un pequeño ejemplo de su invocación. Al introducir el token que generamos desde Latch, mainnos devolvería el Account ID que necesitaremos utilizar en ssh.rb.
Figura 6: Obtención del Account ID
Paso 2: Lógica de ssh.rb
El archivossh.rb implementa toda la lógica necesaria para llevar a cabo el control sobre la WiFidel router. La estrategia o algoritmo es sencilla. Mediante la realización de consultas periódicas al estado de nuestro Latchpodremos detectar cuando éste ha cambiado de estado. En el momento que se detecte que se ha cerrado el Latch el fichero ssh.rb lanzará una conexión al routerpor medio del protocolo SSH y "tumbará" la interfaz. El algoritmo quedaría algo como así:
Mientras true Compruebo estado de Latch Si Latch está Abierto Indico que está abierto Levanto la interfaz WiFi del router Si no Indico que se cerrará Apago interfaz WiFi del router Fin Si Fin Mientras
Como se puede ver es un algoritmo realmente sencillo. Haciendo una pequeña prueba antes de crear una aplicación con Automatory configurarla para que arranque al inicio de sesión del usuario. Cuando abrimos el cerrojo de Latch en Lockifi OS Xy visualizamos las peticiones que hacessh.rbobservaremos que nos indica "Open" y la WiFi seguirá operativa.
Figura 7: Lockifi OS X abierto
Para esta prueba hemos mostrado el texto en un terminal bashen OS X. El mensaje es claro, cuando comprueba el estado, cada 20 segundos por ejemplo, y detecta el cerrojo abierto nos indica "Open". Cuando cerramos el cerrojo y la aplicación detecta esto nos indicará "No Open" y llevará a cabo el proceso de deshabilitar la WiFidel routera través de una conexión SSH al dispositivo.
Figura 8: Mensajes que proporciona Lockifi OS X
Antes de pasar al siguiente paso, vamos a hacer hincapié en una zona del código de ssh.rbimportante. Cuando se comprueba el estado de Latchy no se encuentra abierto nos iremos por la rama elsede nuestro algoritmo. Esta parte es realmente la importante, la que deshabilitará a través del routerla posibilidad de conectarnos a nuestra WiFi de casa u oficina.
Observando el código se ve que se crea un objeto SSH cuya configuración para la conexión es la dirección IP del router, el segundo parámetro es el usuario y el tercer parámetro es la contraseña. La conexión por SSH se lanza a través del métodoexec!y ejecuta un ifconfigpara "tumbar" la interfaz WiFi. Hay que tener en cuenta que esto en otros modelos de routerspuede cambiar, pero no la estrategia.
Figura 9: Snippet de código de ssh.rb que deshabilita el WiFi del router
Paso 3: Automatizando la ejecución del programa en OS X
Ahora que tenemos el programa funcional decidimos hacerlo autoejecutable al comienzo de la sesión del usuario. De este modo, cuando nuestro OS X inicie sesión podremos comprobar si queremos que la WiFiesté disponible para otros usuarios o no.
Para llevar a cabo esta tarea utilizamos Automator, el cual viene con OS Xy permite automatizar tareas y flujos de trabajo de manera muy sencilla. El primer paso es arrancar la herramienta, la cual puede ser fácilmente localizada a través de Spotlight. Una vez arrancada debemos elegir, entre sus opciones, "Ejecutar el Script Shell". Esto nos abrirá un recuadro a la derecha dónde podremos escribir un script de shell, por ejemplo para bash.
Figura 10: Creando script de shell para automatizar con Automator
Es importante invocar, dentro del scriptde shell, a Rubycon su path completo. Una vez escrito el scriptse puede probar con el atajo CMD + R. Esto ejecutará el contenido del script. Ahora debemos convertir este scripten una app. Para esto,Automator, proporciona la posibilidad de guardarlo directamente como una aplicación, tal y como puede verse en la siguiente imagen.
Figura 11: Creación de aplicación
Una vez creada la aplicación debemos ir a "Preferencias del sistema" -> "Usuarios" y en este apartado seleccionar "Ítems de Inicio". Aquí podremos añadir, fácilmente, la aplicación generada con Automator, tal y como se puede ver en la imagen.
Figura 12: Adición como Ítem de Inicio
Paso 4: Comprobación final
Ahora, solo falta comprobar que al iniciar sesión se está ejecutando nuestra aplicación correctamente. Para esta prueba dejamos el cerrojo abierto e iniciamos sesión en nuestro OS X. Si tenemos habilitado en nuestra aplicación de Latchque nos avise cuando haya un intento de acceso cuando el Latchesté abierto nos llegará una notificación, como la que se muestra a continuación.
Figura 13: Acceso al servicio Lockifi OS X
Para verificar que nuestra aplicaciónRuby Lockifi OS X está corriendo, lo mejor es abrir un terminal en nuestro OS X y ejecutar, por ejemplo, ps aux | grep ruby. Debemos observar que la instrucción que introdujimos cuando creamos el script de shell con Automatorse encuentra levantada. En este caso se puede ver de forma sencilla y nuestro programa está en ejecución y realizando consultas a Latchpara comprobar si tiene que deshabilitar la WiFio habilitarla.
Figura 14: Comprobación de proceso ssh.rb
En el siguiente artículo realizaremos modificaciones para integrar en casa una Raspberryque levante un punto de acceso WiFi. La Raspberryla conectaremos al routerde casa mediante un cable Ethernet. Nuestro programa no se ejecutará en nuestro equipo, si no que se ejecutará en la Raspberry. Cuando desde la Raspberrynuestro programa detecte que se ha bloqueado el acceso a la WiFi"tirará" la interfaz WiFi. Lógicamente, el routerde casa tendrá que tener deshabilitado la WiFipara que esto tenga sentido. El esquema es sencillo, los usuarios de casa se conectarán al punto de acceso de la Raspberry y está hará forwardingde paquetes hacia el router, el cual nunca tendrá habilitado la interfaz Wireless. Es un esquema con el que cualquier usuario de casa podría desbloquear y bloquear la WiFicon Latch y lo tienes publicado aquí:Bloquear la WiFi con Latch desde Raspberry Pi.
El crecimiento y cuota de mercado de los equipos de Apple es innegable. La gente de Rapid7 ha decidido sacar un instalador oficial de Metasploit para los equipos de Apple. En su wiki de Github la gente de Rapid7 presenta el instalador oficial para OS X con unas breves y sencillas instrucciones. Se puede llevar a cabo una instalación rápida a través de consola o utilizar una instalación con entorno gráfico. Hay que recordar que un entorno de Metasploit tiene una fuerte dependencia de un entorno Ruby y PostreSQL para el almacenamiento de la información.
Hace unos días pude ver la siguiente imagen en Twitter, esto es lo que me alertó de la novedad de los instaladores en OS X. Hay que tener en cuenta que hasta hace poco la instalación de Metasploit se realizaba de manera no oficial como ya vimos. Sin duda es un avance hacia la comodidad y el saber que Rapid7 se encuentra detrás del soporte en OS Xayuda.
Figura 1: Tuit publicando el instalador oficial de Metasploit en OS X
La instalación rápida
La instalación rápida se lleva a cabo a través de la invocación o ejecución de un script proporcionado por Rapid7. Este script puede ser obtenido de la siguiente manera:
Por último, la instalación gráfica puede ser llevada a cabo a través de la descarga y ejecución del paquete metasploitframework-latest.pkg. El historial de estos paquetes se puede encontrar en el dominio que Rapid7 ha preparado para OS X.Con la instalación gráfica todas las dependencias se instalarán y se llevará a cabo una instalación sencilla y limpia. El framework quedará instalado en /opt/metasploit-framework/ y su binario de consola se encontrará en bin/msfconsole dentro del directorio anterior.
Hace unos días se libero un conjuntos de actualizaciones para OS X El Capitan, Yosemite y Mavericks. En el boletín se describían vulnerabilidades relacionadas, en su mayoría, con el kernel e IOKit. Uno de los problemas de seguridad que se solventan trata de un problema de corrupción de memoria en syslog, el cual podría provocar la ejecución de código arbitrario, es decir, ejecución de un payloadque permita realizar acciones sobre la máquina vulnerable. Estas acciones o código ejecutado sería con permisos de root, lo cual hace que se ponga aún más interesante.
En el blog de Reverse Engineering Mac OS X han publicado un artículo en el que se lleva a cabo la ingeniería inversa de la vulnerabilidad. La excusa para llevar a cabo la prueba de concepto es que Appleno informa mucho de sus actualizaciones de seguridad, no dicen si es explotable en instalaciones OS Xpor defecto o requiere condiciones particulares. Tras la lectura del artículo se puede ver como el error no es explotable en instalaciones OS X por defecto. La herramienta Diaphoracreada por Joxean Koret permite obtener las diferencias entre un binario vulnerable y la actualización. El binaio de syslogdse encuentra en /usr/sbin/syslogd. En la imagen se puede ver como difiere en poco código.
Figura 1: Diferencias en los binarios syslogd vulnerable y actualizado
El código fuente de syslogd para OS X El Capitan 10.11.2 puede descargarse desde el dominio opensource.apple.com. El parche se encuentra realizado en el tamaño de asignación de reallocf(). El detalle del proceso de ingeniería inversa puede ser observado en el artículo, el cual recomendamos la lectura con una taza de café.
El lenguaje C es poderoso, pero pequeños errores pueden suponer la ejecución de código arbitrario, e incluso la escalada de privilegio. El programador de la pieza de código cometió un pequeño error, y su arreglo puede ser tan simple como el añadir un conjunto de parentésis. La función vulnerable se encuentra en add_lockdown_session(), y para llegar a ella se puede visualizar este árbol de funciones.
Figura 2: Árbol de llamadas en syslogd
Cómo se puede visualizar el proceso de ingeniería inversa puede ser una tarea altamente compleja. La vulnerabilidad en syslogdse encontraba en una función, la cual con la configuración por defecto de OS X no es vulnerable, pero que dicha vulnerabilidad estaba ahí. Como se menciona anteriormente se recomienda la lectura de todo el proceso de reversingllevado a cabo y estar atentos al mínimo detalle.
Cuando Applese pone a liberar actualizaciones una cosa está clara y es que libera en volumen. Hoy nos despertamos. Casi 30 vulnerabilidades han sido resueltas con este packde actualizaciones a diferentes tecnologías de la empresa de Cupertino. Tanto el sistema operativoOS X El Capitan, como iOShan sufrido actualizaciones, las cuales detallaremos a continuación. Por último, también hay que tener en cuenta la actualización que ha sufrido el navegador Apple Safari.
En primer lugar, se han corregido 9 vulnerabilidades críticas en OS X El Capitan 10.11.3, a través del Security Update 2016-001, el cual como indica la nomenclatura es el primero del año. Estas vulnerabilidades permitían a un usuario malicioso conseguir ejecutar código arbitrario en la máquina. Esto podía permitir a un usuario conseguir el control remoto de una máquina, y en algunos casos realizar una elevación de privilegios dentro de ésta.
Figura 1: 9 vulnerabilidades parcheadas con OS X El Capitan 10.11.3 y Security Update 2016-001
Otra de las actualizaciones que debemos tener muy presente es la de iOS, el cual llega a su versión 9.2.1. En esta actualización se han solventado 13 vulnerabilidades, de las cuales la mayoría permitía la ejecución de código arbitrario en el dispositivo. Los elementos afectados en esta actualización han sidoDisk Images, IOKit, el propio Kernel de iOS, el webkit, libxslty syslog.
Figura 2: 13 vulnerabilidades resueltas en la actualización a iOS 9.2.1
Por último hablar de la actualización a Safari 9.0.3. La actualización del navegador presenta el parcheo de 6 vulnerabilidades. Las vulnerabilidades de Safari afectaban a los siguientes sistemas operativos: OS X Mavericks 10.9.5, OS X Yosemite 10.10.5, OS X El Capitan 10.11.2e inferiores.
Figura 3: 6 vulnerabilidades resueltas con la nueva versión de Safari 9.0.3
Se recomienda que se actualicen los sistemas lo antes posible y que se disponga de software actualizado para una mejor experiencia en Internet. Para realizar la actualización se puede utilizar la Mac App Store, en el caso de Safariy OS X El Capitan, o desde el propio iOSen Ajustes - General - Actualización de Software.
Diciembre está siendo un mes cargado de novedades. Han sido muchas las noticias relevantes que han ocurrido en el sector de la seguridad informática, así que tal vez sea buena idea detenerse por un instante para recapitular lo visto durante las últimas dos semanas. Como solemos hacer en Seguridad Apple, os presentamos el mejor resumen de las publicaciones de este blog, así como los mejores contenidos de otros sitios de referencia.
Un par de días después de hablar de iNetTools, os presentamos otra herramienta similar denominada Joe's Network Diagnostics Analyzer Monitor Scanner, disponible en iTunes para dispositivos iPhone y iPad.
El viernes os contamos las novedades de la actualización iOS 9.2, que resuelve más de 50 bugs de seguridad, evitando así diversos ataques de ejecución de código arbitrario y escalada de privilegios en dispositivos iOS.
El día 14 os detallamos las novedades incluidas en otras tres actualizaciones, esta vez dirigidas a sistemas operativos OS X El Capitan, Yosemite y Mavericks. Además se liberó la versión 9.0.2 de Safari, solventando 12 vulnerabilidades.
La liberación de la versión beta de iOS 9.2.1 por parte de Apple fue la noticia de nuestro post del viernes. Dicha beta ya está disponible para descarga en el Apple Developer Center.
En el mundo de la seguridad informática hemos podido disfrutar con otras noticias que no dejan indiferente a nadie. A continuación se muestra un listado de noticias que recomendamos que leáis desde Seguridad Apple:
Una vulnerabilidad crítica afectó a Grub2, el gestor de arranque de un número incalculable de sistemas Linux. La prueba de concepto muestra que explotar la vulnerabilidad era ridículamente sencillo, introduciendo 28 veces la tecla de retroceso. Se recomienda actualizar de versión lo antes posible o modificar un par de ficheros que corrigen el fallo.
Y esto fue todo. Esperamos veros dentro de otras dos semanas en esta misma sección y cada día en los artículos que publicamos en Seguridad Apple. Bueno domingo para todos.
Más de 50 vulnerabilidades han sido parcheadas con la liberación de OS X 10.11.2y los diferentes Security Updatespara OS X Yosemite y OS X Mavericks. Toda la información referente a estas nuevas versiones de los sistemas operativos de Applepuede encontrarse en su sitio web. Casi la mitad de las vulnerabilidades permitían la posibilidad de ejecutar código arbitrario, lo cual ponía en riesgo los sistemas. Además, Appleha decidido liberar Sarafi 9.0.2, el cual parchea 12 vulnerabilidades.
En el documento de Security Update se puede encontrar las diferentes aplicaciones y componentes del sistema que han sido actualizadas. Por ejemplo, el módulo de PHPpara Apacheha sido actualizado ya que presentaba 2 vulnerabilidades. La Sandbox, el Bluetooth, la herramienta Disk Images, EFI, Hypervisor, iBooks, etcétera. Han sido parcheados. Como se ha comentado anteriormente, la mitad de las vulnerabilidades prácticamente eran de ejecución de código arbitrario, con todo el riesgo que ello conlleva.
Figura 1: OS X El Capitan 10.11.2 y Security Updates
Por otro lado, 3 vulnerabilidades presentaban la posibilidad de que el sistema cayera, es decir, quedará sin posibilidad de dar servicio. La aplicación del sistema con más parches y que tiene un documento propio para sus actualizaciones es el navegador Safari. La actualización del navegador es importante, ya que presenta vulnerabilidades críticas que permiten la ejecución de código arbitrario en la máquina, tal y como puede verse en la imagen.
Figura 2: CVE de Safari 9.0.2 de ejecución de código
El componente afectado en Safaries el Webkit, el cual tiene 11 vulnerabilidades que permiten ejecutar código y una que permite revelar información sobre la navegación del usuario, es decir, afecta a la privacidad de éste. Se recomienda que se actualicen los sistemas lo antes posible y que se disponga de software actualizado para una mejor experiencia en Internet.
Apple esta semana ha lanzado al mercado una buena cantidad de actualizaciones de seguridad, y si tienes la última versión de OS X en tu Mac, debes ponerte todas las que te afectan, que son varias. Hoy os traemos las que tienen que ver con OS X El Capitan, que llega a us versión 10.11.1 arreglando un total de 60 CVEs de seguridad, muchos de ellos de severidad crítica. Para las versiones anteriores de OS X se ha puesto en circulación la Security Update 2015-007 que trae los parches para OS X Yosemite y OS X Mavericks. Recordad que los sistemas anteriores ya están sin soporte. Todos los bugs los tienes descriptos en le Security Advisory asociado.
También Apple ha actualizado Apple Safari 9.0.1 con un total de 9 CVEs de seguridad de severidad crítica, así que hay que actualizar lo antes posible. La lista de bugs corregidos está descrita en el siguiente Security Advisory:
Por último Apple iTunes también viene en su nueva versión con bugs de seguridad. Un total de 12 CVEs han sido corregidos en la nueva versión en el mercado Apple iTunes 12.3.1, que ya tienes disponible vía Mac App Store.
Aún ha puesto Apple más actualizaciones de seguridad, así que este fin de semana te traeremos la lista completa para que puedas dejar todos tus sistemas al día. La verdad es que esta forma de actualizar todo el software de Apple al mismo tiempo nos hace trabajar, pero hay que tener los sistemas protegidos y al día.
Applesigue liberando nuevas versiones. Siempre que hay un salto de dígito en el sistema operativo móvil de iOSnos encontramos con versiones que van arreglando pequeños desajustes. La semana pasada tuvimos el iOS 9.0.1 y esta semana contamos ya con la versión 9.0.2 del sistema operativo. La nueva versión, según indica su Security Advisory indica que se parchea una vulnerabilidad que permitía acceder a contenido multimedia, por ejemplo fotografías, incluso con la lock screen habilitada.
El componente afectado por la actualización, como hemos comentado es el lock screen o pantalla de bloqueo del dispositivo. La actualización se encuentra disponible para dispositivos iPhone 4S y superiores. La vulnerabilidad permite a un potencial atacante con acceso físico al dispositivo acceder a los contactos y fotografías desde esta pantalla de bloqueo.
Figura 1: Security Advisory de iOS 9.0.2
Por otro lado tenemos el Security Advisory de Safari 9 con 45 vulnerabilidades que se parchean sobre el navegador. Un gran número de vulnerabilidades permitían la ejecución de código arbitrario, por lo que es importante que se actualice lo antes posible. Safari 9 está disponible para OS X Mavericks 10.9.5, OS X Yosemite 10.10.5yOS X El Capitan 10.11.
Como se puede ver los equipos de TI tienen mucho trabajo actualizando sistemas operativos de Macy de iPhone & iPad, además de actualizar componentes o software base como el navegador del sistema operativo OS X.
Homebrew permite al usuario de OS X instalar gran cantidad de paquetes que Apple no proporciona a sus usuarios. Para poder instalar Metasploit en OS X utilizaremos paquetes que podemos obtener con Homebrew de manera sencilla. Es importante que para llevar a cabo la instalación de Metasploit en OS X no se disponga de MacPorts instalado en el equipo, ya que seguramente se tenga problemas con ellos y las dependencias. La instalación de Metasploit puede resumirse en los siguientes pasos que se muestran a continuación:
Instalación de Command Line Development Tools Xcode 5 en Mavericks
Instalación de Java
Instalación de Homebrew
Instalación de Ruby 2.1
Instalación del escáner Nmap
Instalación de la base de datos de PostgreSQL y su configuración
Instalación de Metasploit Framework
Como se puede ver la lista de acciones a realizar es grande, pero si seguimos esto paso a paso no deberíamos tener problemas para instalar el framework en OS X Mavericks. En primer lugar hay que asegurarse de que se encuentran instaladas las Command Line Developer Tools y para ello se puede abrir un terminal y ejecutar la siguiente instrucción xcode-select –install, instalándose las herramientas automáticamente.
Figura 1: Instalación de las Command Line Developer Tools
Hay que asegurarse de tener la última versión de Java, en este caso Java JDK 8. Esto puede ser descargado desde el sitio web de Oracle. Para asegurarse de que se tiene la versión adecuada se puede ejecutar en un terminal la siguiente instrucción java –version. Además, si se quiere comprobar dónde está instalado se puede utilizar el comando whereis.
Ahora, instalaremos Homebrew pudiéndose descargar desde su sitio web. En este punto, y tras instalar Homebrew hay que asegurarse de que los binarios instalados por éste son los primeros que se encuentran en la variable de entorno $PATH. Por ello se ejecutan las siguientes instrucciones echo PATH=/usr/local/bin:/usr/local/sbin:$PATH >> $HOME/.bash_profile; source $HOME/.bash_profile; brew tap homebrew/versions.
Para instalar Ruby 2.1 utilizaremos Homebrew, y es tan sencillo como ejecutar la siguiente instrucción brew install homebrew/versions/ruby21. Una vez ejecutada la instrucción se comprueba la versión ejecutando la orden ruby –v en la terminal. Existen otras formas de instalar Ruby en OS X, pero quizá está es una de las más sencillas para los usuarios.
Para instalar Nmap también utilizaremos Homebrew. Con este proceso su instalación es trivial y muy rápida. La instrucción que debe ser ejecutada es brew install nmap en la terminal. Nmap puede ser utilizado desde la consola de Metasploit por lo que es importante su correcta instalación y Homebrew simplifica y mucho el proceso.
La instalación del motor de base de datos PostgreSQL y su configuración es un paso también crítico, ya que después será utilizado por la consola de Metasploit. La instalación se llevará a cabo desde Homebrew con la instrucción brew install postgresql –without-ossp-uuid. Una vez instalado se debe configurar. Para ello hay que inicializar el motor de base de datos con la siguiente instrucción initdb /usr/local/var/postgres. Para configurar PostgreSQL se lanzarán varias instrucciones cuyo objetivo es copiar una configuración al entorno de usuario. Las instrucciones son:
Una vez realizado esto debemos crear un usuario para la base de datos llamado msf que utilizaremos con Metasploit. Para realizar esto ejecutamos la instrucción createuser msf –P –h localhost. Además, se debe crear la base de datos con la instrucción createdb –O msf msf –h localhost.
Ahora toca descargarse el framework con Git. Para obtener la copia del repositorio ejecutaremos la instrucción git clone https://github.com/rapid7/metasploit-framework.git. En este punto ya estaríamos cerca de poder arrancar la consola de Metasploit. Creando el directorio /usr/local/share/metasploit-framework y copiando todo lo que se descarga desde Git podemos crear un enlace simbólico para poder utilizar día a día con facilidad Metasploit. Para todos los binarios que empiezan por msf* de la carpeta de Metasploit se hace un enlace simbólico a la ubicación /usr/local/bin y de este modo aparecen en $PATH y son fácilmente invocables. Una instrucción sencilla sería ejecutar lo siguiente for file in $(ls msf*); do ln –s /usr/local/share/metasploit-framework/$file /usr/local/bin/$file; done.
Ahora damos permisos al resto de usuarios de escritura sobre el fichero /etc/profile, por ejemplo con chmod go+w. Por último hay que configurar la base de datos para que se integre con Metasploit y para ello añadimos al fichero /etc/profile la siguiente instrucción sudo echo export MSF_DATABASE_CONFIG=/usr/local/share/metasploit-framework/config/database.yml >> /etc/profile.
Figura 2: Metasploit en OS X
Utilizamos bundle install para instalar las versiones de las gemas soportadas por el framework. Editamos el fichero /usr/local/share/metasploit-framework/config/database.yml con la siguiente información:
Production: adapter: postgresql database: msf username:msf password: host: 127.0.0.1 port: 5432 pool: X (un número que se quiera dar, por ejemplo 75) timeout: 5
Ejecutamos source /etc/profile y source $HOME/.bash_profile para que todo quede actualizado y podremos lanzar msfconsole. No es un proceso rápido y puede resultar costoso, pero disponer del framework de explotación de Metasploit en tu OS X Mavericks merece la pena.
Appleha liberado nuevas versiones de su navegador Safaripara las distintas versiones de OS X, como son Mountain Lion, Mavericksy Yosemite. En esta actualización se resuelven 5 bugs de seguridad, 3 de los cuales fueron descubiertos o reportados por el propio Apple. La actualización puede descargarse desde la Mac App Store o desde el sitio web de Safari. Se puede obtener más información sobre las vulnerabilidad en el sitio web de Apple.
Figura 1: Actualización de Safari y vulnerabilidades
A continuación se listan los CVE que se han resuelto en esta actualización y una breve descripción de lo que un atacante podría realizar si explotase la vulnerabilidad:
CVE-2015-1152. Visitando un sitio web malicioso se puede provocar el crasheo de la aplicación o la ejecución de código arbitrario.
CVE-2015-1153. Un atacante puede preparar un sitio web malicioso con el que provocar la caída de Safari.
CVE-2015-1154. Un atacante puede preparar un sitio web y cuando el usuario lo visite provocar una excepción no controlada que provoque el cierre inesperado del navegador. En este caso se puede llegar a provocar la ejecución de código arbitrario, por lo que la criticidad es grande.
CVE-2015-1155. Descubierta por Joe Vendix de Rapid7. Un atacante puede configurar un sitio web malicioso y extraer información del sistema de archivos a través del navegador. Afecta a la confidencialidad y privacidad de los usuarios. No se conoce forma de ejecutar código arbitrario en esta vulnerabilidad.
CVE-2015-1156. Visitando un sitio web malicioso, un atacante puede realizar spoofing sobre la interfaz de usuario.
Desde Seguridad Apple recomendamos que se actualice cuanto antes el navegador Safari, sobretodo si es el que se utiliza en su navegación diaria.
Hace unas semanas se publicó algunos fallos de seguridad que afectaban, entre otras cosas, al fontdaemonde los sistemas OS X, tanto en sus versiones Yosemite, Mavericks y Mountain Lion. Con estas vulnerabilidades un atacante podía ejecutar código arbitrario con privilegios de root, por lo que los bus podían ser tomadas como críticas. Los CVE publicados referentes a estas vulnerabilidades se enumeran a continuación:
CVE-2015-1131: descubierta por Ian Beer de Google Project Zero.
CVE-2015-1132: descubierta por Ian Beer de Google Project Zero.
CVE-2015-1133: descubierta por Ian Beer de Google Project Zero.
CVE-2015-1134: descubierta por Ian Beer de Google Project Zero.
CVE-2015-1135: descubierta por Ian Beer de Google Project Zero.
Figura 1: Tuit publicado sobre el exploit y la vulnerabilidad
El pasado 30 de abril se publicó un código escrito en C, con el que el demonio que se encarga de gestión de fuentes puede crashear debido a un buffer overflow. Nosotros lo hemos encontrado en pastebin dónde se muestra el código para poder llevar a cabo la prueba de concepto.
Figura 2: OS X 0day Buffer Overflow
No existe mayor detalle sobre el exploit, ya que no se indica a qué versión afecta, solo podemos encontrar un mensaje que dice que funciona sobre la última versión, sin detallar el número exacto de Yosemite. Por esta razón, aconsejamos actualizar en cuanto sea posible. El exploitprovoca el crasheo de fontd, por lo que se puede entender como una prueba de concepto, pero según indica su autor podría ejecutar un payload.
Esta semana ha sido la elegida por Apple para desplegar gran cantidad de actualizaciones, tanto de iOSy OS Xcomo de otras aplicaciones. Además, el Security Update2015-004 proporciona un gran número de actualizaciones de seguridad, que viendo el número de CVEs, era algo inminente. Más de 100 CVEs parcheados en esta ocasión vuelve a dejar claro que Applesigue ganando en interés, y que cada día más gente investiga y prueba sus productos encontrando fallos de seguridad.
OS X 10.10.3 con iCloud Photo Library y la nueva app photos
El pasado martes Apple liberó OS X 10.10.3 con iCloud Photo Library y la nueva app photos. Como se comentaba anteriormente, más de 100 vulnerabilidades son parcheadas en el nuevo Security Update de Apple. Gran cantidad de estas vulnerabilidades permitían ejecutar código arbitrario, tanto en el sistema como en aplicaciones del propio sistema. Lo que llama la atención es que algunos CVEs son del año 2013, lo cual vuelve a indicarnos que hay softwarenativo en el sistema operativo que utiliza librerías antiguas. Se puede ver el detalle de las vulnerabilidades a través de la lista de email de Apple con el asunto Apple-SA-2015-04-08-2 OS X 10.10.3 and Security Update 2015-004.
Figura 1: Vulnerabilidades solucinonadas en OS X 10.10.3
Actualiza a Yosemite, en Mountain Lion y Mavericks sigue Rootpipe
Una novedad interesante que trae iOS 8.3, es que en la nueva versión se podrá reportar a un remitente como Spam directamente desde la app de iMessages, cuando el contacto no esté en nuestra agenda.
Figura 4: Reporte de Spam en iMessages de iOS 8.3
Apple Safari también se actualiza
El navegador de Appletambién ha sido actualizado, en este caso a la versión 8.0.5 en OS X Yosemite, a la versión 7.1.5 en OS X Mavericks y a la versión 6.2.5 en OS X Mountain Lion. En este caso se han parcheado 10 vulnerabilidades, de las cuales la mayoría permitían crashearel navegador, y en algunos casos afectaban a la confidencialidad de las comunicaciones. El detalle completo de las vulnerabilidades puede verse en el sitio web de Apple.
Figura 5: Vulnerabilidades corregidas en las nuevas versiones de Apple Safari
Os animamos a que actualicéis todos vuestros dispositivos de Apple, ya que como podéis comprobar tenéis trabajo por delante. Los departamentos de IT tendrán trabajo esta semana poniendo a tono a los sistemas OS X e iOS de los directivos y otros empleados de la empresa, todo sea por estar lo más seguro posible.
Revisando un poco como se encuentran los exploits públicos de ámbito local de los sistemas OS X queríamos hacer hincapié en este que fue publicado a finales del mes de Enero, aunque Applefue notificado mucho antes. El CVE-2014-8826 detalla la posibilidad de bypassearel mecanismo de protección Gatekeepervía un JAR malicioso. Esta vulnerabilidad ha sido reportada a Applea mediados del año pasado por la empresa Amplia Security. Cómo funciona GateKeeper en OS X
Gatekeeperes una característica que se encuentra disponible desde la versión OS X Lion 10.7.5 y versiones posteriores. Gatekeeper realiza chequeos sobre archivos y aplicaciones descargados desde Internet para prevenir la ejecución de código malicioso o no firmado. Por defecto, Gatekeepersolo se pueden ejecutar aplicaciones que provienene de la Mac App Store y desarrolladas por desarrolladores identificados. La vulnerabilidad que la empresa Amplia Security descubrió sobre Gatekeeper afecta a los siguientes sistemas operativos, aunque de acuerdo con la propia AppleOS X Mountain Lion 10.8.5 también sería vulnerable:
OS X Lion.
OS X Mavericks.
OS X Yosemite.
Si un usuario descarga una aplicación desde una fuente no segura y la ejecuta, Gatekeeperevitará su ejecución mostrando un mensaje de alerta, como el siguiente:
Figura 1: Alerta de protección de Gatekeeper para OSX
Un atacante puede hacer un bypassde esta característica y ejecutar código malicioso no firmado por un desarrollador, incluso si Gatekeeperestá configurado para ejecutar sólo aplicaciones que vengan de la Mac App Store. La técnica no es difícil y tiene como condición que Java se encuentre instalado en el equipo de la víctima.
¿Cómo realizar el bypass?
Lo primero de todo es crear un fichero JARque contenga el código que se quiere ejecutar. La gente de Amplia Security nos proporciona un código de ejemplo para esta PoC.
Figura 2: Código clase AmpliaTest
Hay que asegurarse de que el código está compilado con una versión menor o igual a la que se encuentra en el equipo de la víctima. Una vez realizado esto hay que crear una imagen de disco en formato DMG, ejecutando la siguiente instrucción:
Ahora hay que montar la imagen DMGy renombrar el UnsignedCode.jar a UnsignedCode, es decir, eliminar la extensión. Copiar el fichero UnsignedCode a PoC, y desmontamos la imagen. Una vez hecho esto, debemos subir el fichero DMGa un servidor web y probar a descargarlo con Apple Safariy abrirlo. Si todo ha ido bien se habrá realizado el bypassde Gatekeeper.