Mostrando entradas con la etiqueta Vulnerabilidades. Mostrar todas las entradas
Mostrando entradas con la etiqueta Vulnerabilidades. Mostrar todas las entradas

jueves, 30 de agosto de 2018


Escalada de privilegios en Windows gracias a una vulnerabilidad en el planificador de Tareas.

 

En una época en la que es raro no encontrarnos con vulnerabilidades anunciadas a bombo y platillo incluso con web propia y hasta logo personalizado, la publicación el pasado 27 de agosto de una vulnerabilidad grave en Windows ha causado revuelo entre la comunidad de investigadores y la propia Microsoft.

Full disclosure vía Twitter

La forma por la que supimos de la existencia de esta vulnerabilidad fue a través de un tweet publicado por la investigadora SandboxEscaper en su Twitter (al cual ya no se puede acceder). De repente, se hacía pública una vulnerabilidad 0-day bastante grave que afectaba a un buen número de sistemas Windows, y además se acompañaba de una prueba de concepto que permitía demostrar su funcionamiento.

Esta vulnerabilidad permitiría a un usuario local sin permisos suficientes en un sistema vulnerable realizar una escalada de privilegios mediante un fallo en el planificador de tareas de Windows hasta obtener permisos de SYSTEM. Concretamente, el problema se encuentra en la interfaz del sistema ALPC (Advanced Local Procedure Call).

La prueba de concepto mostrada tan solo funciona en sistemas operativos Windows de 64 bits como Windows 10 o Windows server 2016, aunque en teoría también se podría hacer funcionar en sistemas de 32 bits modificando el exploit. Esta vulnerabilidad consigue tener éxito por un fallo en la manera en la la función API del planificador de tareas SchRpcSetSecurity revisa los permisos.

Este exploit utiliza de forma maliciosa esta función SchRpcSetSecurity para modificar los permisos de forma local por cualquier otro usuario sin privilegios, incluyendo las cuentas de invitados, abriendo así muchas posibilidades para un atacante.



Debido a que la vulnerabilidad y la prueba de concepto se publicaron sin haber avisado previamente a Microsoft, no existe aún un parche de seguridad que la solucione. Se espera que esta vulnerabilidad sea debidamente solucionada en el próximo boletín de actualizaciones de seguridad, previsto para el martes 11 de septiembre. Hasta entonces, aquellos usuarios y empresas preocupados por posibles ataques que se aprovechen de este agujero de seguridad deberán aplicar medidas preventivas.

Los puntos clave y básicos que cualquier organización debería tener en cuenta para minimizar el impacto de este tipo de vulnerabilidades pasan por contar con una solución de seguridad que sea capaz de detectar cuándo se está intentando ejecutar un exploit en un sistema vulnerable, segmentar las redes para limitar el alcance de una infección o intrusión en la red corporativa y, obviamente, no permitir que aquellos usuarios que no sean de confianza ejecuten código en el sistema, aunque utilicen cuentas con permisos limitados.

Por otro lado, desde la publicación de la vulnerabilidad y de la prueba de concepto, varios investigadores han estado trabajando en posibles soluciones temporales. Por ejemplo, debido a que en la prueba de concepto se utilizaba el servicio spoolsv.exe como ejemplo para colgar de él otros procesos, es muy probable que algunos atacantes con pocas ganas de modificar el código lo utilicen también. Sabiendo esto, si monitorizamos el servicio spoolsv.exe con herramientas como Sysmon, podremos buscar procesos extraños que aparezcan colgando de él.

Otras formas más avanzadas requieren del análisis de registros y correlación de eventos para detectar cuándo se está abusando de esta vulnerabilidad. En el post de Kevin Beaumont donde se habla de este tema se proporciona un script en PowerShell para distribuir a través de las políticas de grupo y así poder detectar cualquier suceso que afecte a la carpeta Tasks, desde la cual se puede realizar la escalada de privilegios.


Conclusión

Esta vulnerabilidad ha sido una de las más importantes descubiertas recientemente, no solo por su posible impacto en sistemas Windows, sino también por cómo se ha hecho pública de forma directa y sin informar previamente a Microsoft. Lo ideal hubiera sido que se hubiese informado previamente al fabricante para que le diese tiempo a desarrollar un parche de seguridad, pero, tal y como están las cosas, deberemos esperar hasta el próximo 11 de septiembre para poder aplicar los boletines de seguridad correspondientes.

Hasta entonces, podemos aplicar las medidas de mitigación comentadas, teniendo en cuenta que, con la prueba de concepto ya publicada, es relativamente fácil para un atacante aprovechar esta vulnerabilidad, en principio solo de forma local, aunque no se descarta que se utilicen otros exploits para conseguir ataques remotos.

Fuente:  Josep Albors




lunes, 13 de febrero de 2017

Kaspersky descubre un potente malware invisible que está infectando a bancos de todo el mundo


Los investigadores de Kaspersky Lab han vuelto a detectar un malware similar en apariencia al famoso Duqu 2.0 aparecido hace dos años. Según la investigación publicada las redes pertenecientes a 140 bancos y otras empresas han sido infectadas por este malware capaz de permanecer casi invisible.
En el año 2015 hacía su aparición Duqu 2.0, un virus que tenía la capacidad de infectar una red y permanecer únicamente en la memoria de las computadoras comprometidas. Como resultado de ello la infección permaneció sin ser detectada durante más de medio año.
El malware encontrado esta semana es muy similar. Según Kaspersky los hackers podrían tener una clara motivación financiera debido a los objetivos seleccionados. Además, podrían ser más de 140 bancos, ya que las infecciones son difíciles de detectar y los atacantes emplean herramientas legales para aprovechar alguna vulnerabilidad e inyectar el malware en la memoria del ordenador. Todo ello para finalmente sacar dinero de las cajeros… desde los propios bancos. Según la compañía de seguridad:
Lo que es interesante aquí es que estos ataques contra los bancos continúan en todo el mundo . En muchos casos los bancos no han sido adecuadamente preparados para lidiar con esto y las personas detrás de los ataques están sacando el dinero de los bancos... desde dentro de los propios bancos dirigiendo ordenadores que manejan los cajeros automáticos.
Las 140 organizaciones que han sido afectadas residen en 40 países diferentes, siendo Estados Unidos, Francia, Ecuador, Kenia y el Reino Unido los cinco países más afectados.
Un malware que se descubrió a finales del año pasado a través de un equipo de seguridad de un banco, en ese momento dieron con un controlador de dominio de Microsoft infectado aunque intacto, presumiblemente porque no se había reiniciado.
El análisis posterior encontró que los atacantes utilizaron herramientas para recopilar contraseñas de los administradores del sistema. Hoy los investigadores siguen sin saber la procedencia del ataque o incluso la manera en la que el malware se inicia, dudas que esperan resolver de aquí al mes de abril, momento en el que proporcionaran más detalles de la investigación en curso.

Fuente:  http://es.gizmodo.com/kaspersky-descubre-un-potente-malware-invisible-que-est-1792122617

viernes, 12 de febrero de 2016

Escalada de privilegios en Windows: Hot Potato

El equipo de Foxglovesecurity.com hace pocos días ha publicado en su blog un exploit el cual desde un usuario de nivel bajo puede elevar sus privilegios dentro de un sistema hasta el nivel más alto. Haciendo uso de una pequeña herramientas de comandos que estos denominaron como "Hot Potato".

Esto es posible a unos fallos de diseño de Windows bien gestionados en el que se realizan tres ataques en uno.NBNS Spoofing (NetBios sobre TCP/IP o NetBios Name Service), WPAP (Web Proxy Autodiscovery Protocol) y HTTP > SMB NTLM Relay (autenticación NTLM de HTTP a SMB).

Como ejemplo en una máquina virtual con Windows 7 PRO de 32bits el cual tiene las configuraciones por defecto. Haciendo uso de Potato intentaré escalar a un usuario raso y hacerlo formar parte del grupo Administradores del sistema en un Windows 7.
Nos descargamos a local Potato, abrimos una consola de comandos y comprobamos la dirección IP local y el usuario local de esa instancia el cual no tiene privilegios y es el usuario el cual queremos elevar sus permisos.

Figura 1: Comprobamos que el usuario no está como usuario administrador.

Dependiendo de ejecutar potato.exe en un sistema Windows 7/8/10/Server 2012 se aplicará de una u otra forma, dependiendo la técnica a aplicar.
Para más información consultar la web oficial del equipo de "Hot Potato"



Figura 2:  Sabiendo la dirección IP local y ejecutamos potato.exe para Windows 7.

Haciendo uso del modificador "-cmd" ejecutamos una cmd.exe y ejecutamos añadimos un usuario al grupo administradores (net localgroup administradores [user] /add).


Figura 3: Comprobamos que el usuario a sido agregado al grupo administradores.

¿Soluciones a estos tres ataques?

Lo que podemos hacer para solucionar esto sería revisar el tráfico NBNS de nuestra red, para WPAD detener el servicio de detección automática de proxy web WinHTTP, y para NTLM forzar la autenticación de Kerberos y NTLMv2 con esta solución de Microsoft y forzar la política para firmar comunicaciones SMB siempre.

Fuente: http://www.zonasystem.com/

domingo, 3 de mayo de 2015

Actualización de seguridad para Google Chrome

Google ha publicado una actualización de seguridad para su navegador Google Chrome para todas las plataformas (Windows, Mac y Linux) que se actualiza a la versión 42.0.2311.135 para corregir cinco nuevas vulnerabilidades.
Como es habitual, Google solo proporciona información sobre los problemas solucionados reportados por investigadores externos o las consideradas de particular interés. De igual forma Google retiene información si algún problema depende de una librería de terceros que aun no ha sido parcheada. En esta ocasión, aunque se han solucionado cinco vulnerabilidades, se facilita información de una de ellas.
Se corrige una vulnerabilidad de gravedad alta, con CVE-2015-1243, de uso después de liberar en DOM. Por otra parte, también del trabajo de seguridad interno, varias correcciones procedentes de auditoría interna, pruebas automáticas y otras iniciativas (CVE-2015-1250).
Esta actualización está disponible a través de Chrome Update automáticamente en los equipos así configurados.

Más información:
Stable Channel Update
Fuente:http://unaaldia.hispasec.com

lunes, 8 de diciembre de 2014

ZDI informa de vulnerabilidad en Internet Explorer existente desde hace 6 meses

Según el aviso de ZDI se requiere la interacción del usuario para explotar la vulnerabilidad de tal forma que el usuario debe visitar una página maliciosa o abrir un archivo específicamente manipulado. El aviso no especifica las versiones afectadas del navegador

La vulnerabilidad (con CVE-2014-8967) reside en la forma en que Internet Explorer gestiona en memoria la vida de los objetos que representan los elementos HTML (objetos CElement). Si se aplica a una página un estilo CSS con display:run-in y se realizan determinadas manipulaciones un atacante podrá provocar que la cuenta de referencias de objeto caiga a cero antes de tiempo, lo que provoca que el objeto sea liberado. Internet Explorer continuará usando este objeto después de haber sido liberado. Un atacante podrá aprovechar esta vulnerabilidad para lograr la ejecución de código arbitrario.

ZDI reportó a Microsoft este problema el pasado 3 de junio. El 19 de noviembre ZDI informó a Microsoft que iba a proceder a la publicación de la información, al haber transcurrido más de 180 días desde el anuncio a la compañía. Cumpliendo de esta forma la política de divulgación de información de la propia ZDI (actualmente el límite está en 120 días).

La recomendación pasa por el uso de cuentas de usuario, zonas de seguridad, Preguntar antes de ejecutar Active Scripting o desactivar Active Scripting y la instalación de EMET 5.1 (Enhanced Mitigation Experience Toolkit). Esta herramienta combate las técnicas de evasión de DEP y ASLR y otros métodos de "exploiting" conocidos. EMET es un programa de Microsoft gratuito, (solo disponible en lenguaje ingles) sencillo de manejar y de gran utilidad. No está confirmado si entre las actualizaciones de seguridad que Microsoft publicará el próximo martes se incluirá una solución para esta vulnerabilidad.

Fuente: http://zerodayinitiative.com/advisories/ZDI-14-403/  http://unaaldia.hispasec.com/



jueves, 13 de noviembre de 2014

19 años después Microsoft resuelve un error en Windows.

El gigante de la informática estadounidense Microsoft publicó un parche urgente para resolver un error de programación en su sistema operativo Windows y su paquete de aplicaciones Office que existió durante 19 años.

Parche: https://technet.microsoft.com/library/security/MS14-066
Investigadores de IBM descubrieron en mayo el "bug" -que algunos nombran como WinShock- y llevaban meses trabajando para resolver el problema, que hace vulnerables a las computadoras.
El problema ha estado presente desde la versión Windows 95, según IBM y facilitaría a un pirata aprovechar el error para controlar de manera remota una computadora.
Microsoft no había hecho público el problema hasta ahora, por eso pide a los usuarios que se apresuren a descargar e instalar el parche.

Vulnerabilidad

Microsoft enfrentó el problema en su actualización mensual de seguridad, con el lanzamiento de 14 parches y dos más a salir pronto.
En su blog, Robert Freeman, investigador de IBM, explica la vulnerabilidad del sistema: "El error puede ser usado por un atacante para acceder remotamente a la computadora de un usuario y asumir su control".
En seguridad de computadoras, semejante ataque significa hacer que los usuarios descarguen software malicioso.
La vulnerabilidad fue calificada como 9,3 sobre 10 en una escala de medidas sobre la severidad de tales ataques.

Seis cifras







Heartbleed
El error ha sido comparado con Heartbleed, un importante problema de seguridad que también afecta a la transferencia segura de datos.

El error también existe en las plataformas del servidor Windows de Microsoft, poniendo en riesgo la seguridad de los sitios web que manejan datos cifrados.
Específicamente, explica Dave Lee, reportero tecnológico de la BBC, se relaciona con el canal seguro de Microsoft, conocido como Schannel, empleado para implementar la transferencia segura de datos.
Schannel se suma a otros canales de seguridad, como Apple SecureTransport , GNUTLS, OpenSSL y NSS, a los que se les ha descubierto grandes errores este año.
Expertos en seguridad han comparado esta reciente falla a otros problemas significativos que salieron a relucir este año, como el llamado "Heartbleed".
Sin embargo, indican que aunque su impacto podría ser igual de importante, sería más difícil de aprovechar para los atacantes.
Es probable que el costo del "bug" probablemente sobrepasara las seis cifras si fuera vendido a piratas informáticos, señalaron los investigadores.

Fuente: http://www.bbc.co.uk/mundo/ultimas_noticias/2014/11/141112_ultnot_tecnologia_microsoft_parche_windows_office_az

lunes, 24 de febrero de 2014

¡¡Peligro¡¡ Actualiza ya¡¡ a Adobe Flash Player 12.0.0.70 para Windows¡, vulnerabilidad 0-Day

Ha aparecido un nuevo 0-day de Flash Player relacionado con el 0-day en IE 9 y 10 publicado hace unos días. Adobe se ha visto obligado a publicar una actualización para corregir esta vulnerabilidad (junto con otras dos).

El ataque 0-day ha sido identificado por FireEye (al igual que el que analizamos ayer a través de Internet Explorer). En esta ocasión la vulnerabilidad (identificada con CVE-2014-0502) afecta a la última versión de Flash Player (12.0.0.4 y 11.7.700.261) y se explotaba a través de la página web de tres organizaciones sin ánimo de lucro (www.piie.comwww.arce.org ywww.srf.org), desde donde a través de un iframe oculto se redireccionaba al usuario a un servidor que alojaba y lanzaba el exploit propiamente dicho.

El exploit emplea técnicas para evitar la protección ASLR (Address Space Layout Randomization) en sistemas Windows XP, Windows 7 con Java 1.6 y Windows 7 versiones no actualizadas de Microsoft Office 2007 o 2010. La vulnerabilidad podría permitir a un atacante sobrescribir el puntero "vftable" de un objeto Flash para provocar la ejecución de código
arbitrario.

Para corregir esta vulnerabilidad Adobe ha publicado una actualización para Flash Player, que además soluciona otros dos problemas. Las vulnerabilidades afectan a las versiones de Adobe Flash Player 12.0.0.44 (y anteriores) para Windows y Macintosh y Adobe Flash Player 11.2.202.336 (y anteriores) para Linux.

Esta actualización, publicada bajo el boletín APSB14-07, resuelve la vulnerabilidad detectada por FireEye con CVE-2014-0502, un desbordamiento de búfer que podría permitir la ejecución de código arbitrario (CVE-2014-0498) y una fuga de memoria que podría permitir evitar la protección ASLR (CVE-2014-0499).

Adobe ha publicado las siguientes versiones de Adobe Flash Player destinadas a solucionar las vulnerabilidades, y se encuentran disponibles para su descarga desde la página oficial:

  • Adobe Flash Player 12.0.0.70 para Windows y Macintosh.
  • Adobe Flash Player 11.2.202.337 para Linux.
Fuente: Fuente: http://unaaldia.hispasec.com/2014/02/nuevo-ataque-0-day-obliga-publicar.ht

jueves, 20 de febrero de 2014

El 70% de los Android son vulnerables a un exploit que lleva meses sin solucionarse

La seguridad en Android es un tema muy importante. Más sabiendo que millones de personas en todo el mundo lo utilizan todos los días. Hoy nos llega la noticia de un exploit que lleva meses sin solucionarse. En concreto Metasploit añadió un módulo para aprovecharse de una vulnerabilidad crítica con tan solo visitar una página web diseñada especialmente para hackear el sistema.

Vulnerabilidad crítica que afecta a millones de personas

La vulnerabilidad fue anunciada por un grupo chino en wooyun.org y el exploit en concreto ha sido desarrollado por los investigadores Joe Vennix (@joevennix) y Josh Drake (@jduck). Y afectaría en principio a aquellos con versiones anteriores a Android 4.2 Jelly Bean, que si nos atenemos al informe Android de Febrero, es más del 70% de los Android actuales.

Lo peor del caso es que esta vulnerabilidad lleva casi 100 días sin que nadie haya creado un parche para solucionarlo. Un problema que al ser a través de un módulo no forma parte del núcleo Android pero sí puede poner en riesgo nuestra seguridad.

Que las nuevas versiones Android sean invulnerables a este exploit en concreto no significa que no puedan serlo a otro tipo de vulnerabilidades. Aunque precisamente por eso siempre se recomienda también tener el dispositivo lo más actualizado posible.




Un parche que nunca llega


Repetimos, este tipo de problemas de seguridad deberían ser vigilados por Google más a fondo, pero claro, no solo a ellos les corresponde proteger al sistema operativo de ataques que aprovechan agujeros que no forman parte del propio código Android.

Los fabricantes deben tomar su parte de responsabilidad también en vigilar que sus dispositivos no contengan vulnerabilidades y sobretodo actualizar cuanto antes sus dispositivos para asegurarse así de que se han introducido todos los parches necesarios que Google sí ha introducido en las versiones matriz. Casi 3 meses de espera para encontrar una solución es inadmisible cuando está en juego nuestra seguridad.

¿Quién es el responsable de tomar cartas en el asunto? Dejando apartado el tema de los virus, ¿Está en peligro la seguridad de Android a través de estos añadidos?

Fuente: http://www.elandroidelibre.com/2014/02/el-70-de-los-android-son-vulnerables-a-un-exploit-que-lleva-meses-sin-solucionarse.html


jueves, 4 de julio de 2013

Descubierto un fallo de seguridad que afecta al 99% de los terminales Android.

Está claro que no hay ningún sistema 100% seguro, y por desgracia hoy nos toca sufrir a los usuarios de Android tras la revelación por parte de un grupo de investigación de seguridad informática. Y es que nuestro apreciado sistema operativo sufre un fallo de seguridad que estaría afectando al 99% de los terminales, así que no es una cuestión para tomarse a la ligera.

El grupo de investigación de Bluebox ha descubierto que es posible manipular un APK (archivo de aplicación) sin romper su firma criptográfica, que es lo que la hace que el sistema “confíe” en ella. Así que es posible convertir una aplicación legítima en un troyano sin levantar sospechas tanto desde el propio sistema, como desde Google Play.  La cosa es muy seria, ya que este fallo está presente desde Android 1.6 Donut, con lo que el número de terminales afectados puede ser muy elevado.

Según cifras de la propia Bluebox la vulnerabilidad podría afectar a 900 millones de terminales y la afectación de este fallo podría suponer desde el robo de nuestros datos hasta la creación de redes de terminales “zombies” desde las cuales operar. Según advierten esto puede resultar potencialmente peligroso con aplicaciones de los fabricantes, puesto que estas tienen privilegios bastante elevados del sistema.

El fallo, que se reportó a Google en Febrero, y por el momento no existe ningún parche que corrija este problema. Consultada la compañía californiana al respecto, han declinado hacer comentarios, pero algunos cambios en el acceso de las aplicaciones de forma que se bloquearía el acceso a las apps con este agujero denota que Google está trabajando en ello. Desde luego esperamos tener más noticias positivas en breve, ya que se trata de uno de los fallos de seguridad más graves de Android hasta la fecha.

Fuente: http://www.elandroidelibre.com/2013/07/revelado-un-fallo-de-seguridad-que-afecta-al-99-de-los-terminales-android.html

jueves, 13 de junio de 2013

Un exploit de Linux ha sido portado a Android.

El pasado abril se alerto de una vulnerabilidad en el kernel Linux que permitiría a un atacante lograr una escalada de privilegios en el sistema. El agujero de seguridad fue rápidamente parcheado, pero, todavía nos aguardaba una sorpresa: el exploit que, valga la redundancia, explota dicha vulnerabilidad, ha sido portado a Andorid.
La fuente de la noticia la encontramos en el blog de Symantec, donde además de recomendar Norton Mobile Security como solución al problema, recuerdan una evidencia, que Android se basa en Linux, por lo que portar este tipo de malware es más bien sencillo. Aunque por el rango de versiones de Linux afectadas, de la 2.6.37 a la 3.8.9, algunos dispositivos se puedan quedar fuera.
Conviene señalar que la vulnerabilidad de la que se habla en este caso solo puede ser explotada mediante acceso local a la máquina, por lo que su gravedad es relativa. En cualquier caso, Google tiene un problema con la seguridad de Android que no termina de solucionar. Y no nos referimos a que el 90% del malware móvil esté diseñado para Android, que al fin y al cabo el la plataforma dominante.
El problema tiene dos cabezas: la permisividad de Google Play para con los desarrolladores, por la que te pueden colar un troyano desde la misma tienda de aplicaciones de Android; y la política de actualizaciones del sistema, a la que se ha llegado a calificar como una práctica de negocio fraudulenta y engañosa.

martes, 16 de abril de 2013

Hugo Teso muestra como Hackear un avion usando un dispositivo Android.


Cuando viajamos en avión, además de los tediosos controles de seguridad a la hora de embarcar, en las maniobras de despegue y aterrizaje nos hacen apagar nuestros dispositivos electrónicos "para no interferir" los sistemas del avión. Cualquier avión dispone de sistemas electrónicos (conocidos como aviónica) y sistemas de transmisión por radio, computadoras embarcadas en el aparato que controlan todo lo que pasa a bordo y en los que no solemos pensar cuando realizamos un viaje pero ¿hasta qué punto estos sistemas pueden ser vulnerables? A esta pregunta ha respondido Hugo Teso, un experto en seguridad, que durante una conferencia impartida en el día de ayer asombró a los asistentes mostrando cómo era posible atacar los sistemas de un avión valiéndose, entre otras cosas, de un dispositivo Android.

Teso, que además de trabajar en el ámbito de la seguridad tiene también formación como piloto comercial, mostró a los asistentes a la Hack In The Box Conference de Amsterdam cómo podría ser posible interferir en los sistemas de un avión con tecnología que está alcance de nuestra mano y que, por ejemplo, podemos comprar a través de Internet. Dicho de otra forma, mostró cómo podría ser posible hackear un avión y controlarlo a distancia.

Teso se centró en dos de los sistemas que hay a bordo de cualquier avión, el ADS-B (Automatic Dependent Surveillance-Broadcast), un sistema que se encarga de emitir información sobre la identificación del avión, su posición o datos sobre su altitud para que los controladores aéreos mantengan localizados los aviones en el espacio aéreo y para que las aeronaves reciban por este canal información sobre el tráfico aéreo en la zona o la información climatológica. El otro sistema en el que se centró es el ACARS (Aircraft Communications Addressing and Reporting System) que es el sistema que utilizan los pilotos para intercambiar mensajes e información con otros aviones o con el control de tierra usando enlaces vía satélite o bien por ondas de radio.

¿Y qué fue lo que hizo? Según comentó este experto durante su ponencia, ambos sistemas son bastante vulnerables y, por tanto, susceptibles de ser atacados. Concretamente, se valió de la información del ADS-B (que es una señal de broadcast) para obtener información de aviones y, por tanto, seleccionar objetivos y, por otro lado, usó el ACARS para obtener información sobre el sistema del avión para aprovechar sus vulnerabilidades y enviar "mensajes malintencionados" que pudieran afectar al comportamiento del avión.

Teso desarrolló un framework que era capaz de insertar información en los planes de vuelo de la computadora de un supuesto avión (lo ha realizado sobre una maqueta) y desarrollando una aplicación Android que se apoyaba sobre este framework podía transformar un teléfono móvil o un tableta en una especie de "clon" del famoso Flight Simulator de Microsoft puesto que se podían visualizar parámetros de la aviónica del avión e, incluso, controlarlos a distancia.

Aprovechando la información de servicios como Flightradar24, que monitoriza la posición de los vuelos comerciales, esta aplicación Android era capaz de mostrar vuelos que estaban dentro del rango de influencia de este sistema de intercepción (algo que en un escenario real dependerá fuertemente de la estación emisora de broadcast que se utilice) y, sobre el vuelo seleccionado, obtener la información del plan de vuelo, su identificador unívoco y, en el caso de ser susceptible de poder atacarse, obtener una alerta que indique que se puede interferir en los sistemas del avión.

¿Interferir en los sistemas? Aunque pueda sonar inquietante, este experto en seguridad mostró algunos de los detalles que podía hacer esta aplicación en su entorno de pruebas: cambiar el plan de vuelo, fijar condiciones de "disparo" para programar un evento cuando el avión sobrevuele una zona concreta, estrellar el avión, lanzar alarmas o aprovechar el acelerómetro del smartphone para transformarlos en los mandos y controlar el avión.

Es justo decir que todo lo que presentó es un trabajo de investigación y, por tanto, es una interesante llamada de atención a la industria aeronáutica puesto que Teso ha replicado el escenario real en una "maqueta de laboratorio" y ha trabajado sobre ésta, de hecho, todo el software que ha desarrollado funciona únicamente sobre la maqueta para que no pueda extrapolarse a un escenario real.

De todas formas, aunque todo este planteamiento sea bajo un escenario simulado, he de confesar que es bastante inquietante que los sistemas básicos de comunicación de los aviones puedan presentar vulnerabilidades que permitan ejercer, de manera remota, el control de un avión y, llevándolo al extremo, ponen sobre la mesa que muchas de las medidas de seguridad que se toman no sirven de mucho si la aviónica del avión es tan vulnerable y se sigue basando en estándares de comunicación fijados en la década de los años 70 aunque, eso sí, según comentó Teso este tipo de vulnerabilidades se producen en los casos en los que el avión vuela con el piloto automático.

Aún así, la presentación, en mi opinión, no tiene desperdicio alguno.

Fuente: http://alt1040.com/

domingo, 27 de enero de 2013

Evasión de Antivirus: ¿Por qué vulnerabilidades conocidas y antiguas siguen siendo peligrosas?.


Antes de entrar en la parte técnica y llegar a la programación, donde seguramente muchos lectores dejen de leer, quiero hacer una pequeña introducción para todos los públicos.

En este artículo voy a escribir un poco sobre lo fácil que es burlar la protección de un antivirus sin tener que recurrir a técnicas complejas y algoritmos "vanguardistas" como encoders, polimorfismos, metamorfismos y demás ingenios, que muchas veces nos llevan a la falsa creencia de que un posible intruso o creador de malware debe ser un genio de los ordenadores, y como hay pocos genios es difícil que nos toque. De hecho un gran porcentaje de incidentes de seguridad se produce aprovechando vulnerabilidades o malware antiguos, que a priori todo antivirus detectaría fácilmente de no haber sido modificados.

Eso, sumado a la falsa seguridad que nos proporciona el software como los antivirus o firewalls hace que la gran mayoría de la gente no preste la atención que debiera a la seguridad de sus sistemas (ya no vamos a entrar en el recalcado tema de cómo escoger una buena contraseña).

Se invierten millones de euros en investigación de protecciones de seguridad informática y existe todo un gran mercado en torno a ello, pero al final del día el mejor antivirus, y la mejor protección que"podría" existir para nuestros ordenadores es el propio usuario (aunque desgraciadamente, todavía siga siendo lo contrario). Muchas veces me han pedido consejo para escoger un antivirus, o me han preguntado que antivirus utilizo, y cuando yo contestaba "ninguno" se quedaban un poco sorprendidos. Si bien hoy en día si utilizo, es verdad que he estado muchísimos años sin utilizarlos.

A lo que quiero llegar es que fuera del mundillo de la seguridad informática, se sigue confiando la seguridad un 100% a programas como los antivirus, la gente se siente protegida con ellos, lo cual es contraproducente. Pequeñas cosas como mantener actualizados todos nuestros programas, ser cuidadosos con las cosas que descargamos o controlar que servicios tenemos corriendo en nuestras máquinas en cada momento quedan relegados a un segundo plano (muchísima gente ni siquiera le da importancia a no actualizar), aunque no infalible, minimizan mucho los riesgos, convirtiendo un antivirus en una capa de protección más, y no en la más importante.

Dicho esto, y después de asustar un poco a los no iniciados (esa era la intención), entremos al lío.


De todos es sabido que los antivirus basan casi el 90% de su detección en la búsqueda de signatures, partes de código reconocibles como maliciosas o sospechosas se que van actualizando en sus bases de datos de firmas según se descubren nuevos virus o exploits.

Para camuflar este tipo de firmas en malware, una de las cosas que más se están utilizando son encoders de todo tipo, que manipulan ese código detectable convirtiendolo en otro diferente que hace la misma función, pero a la larga esos encoders se vuelven inefectivos porque siguen un patrón que puede detectarse con análisis heurístico. Incluso el famoso y polimórfico shikata ga nai es inefectivo hoy en día, por muchos pases que se apliquen.


Por regla general, un antivirus realiza el análisis de los archivos tanto cuando se escriben en disco como cuando son ejecutados, pero no monitoriza toda la ejecución del mismo, porque eso requeriría de unos recursos de los que una máquina normal hoy en día no dispone (imaginad que cada vez que se ejecutase un Photoshop u otro programa intensivo computacionalmente, el AV tuviese que monitorizar en todo momento todas las operaciones que realiza).

Sin embargo existen técnicas que le pueden poner las cosas muy difíciles a un antivirus, incluso a los análisis heurísticos, y que sólo un análisis exhaustivo por parte de un humano en un entorno sandboxpodría detectar (algo impensable para la detección en tiempo real).

Algo de lo que adolecen los antivirus es que analizan los archivos independientemente, y no como un conjunto de archivos que forman una pieza de software. Y desgraciadamente deben hacerlo así para evitar multitud de falsos positivos.

Por ejemplo, en uno de los últimos exploits Java (CVE-2012-1723), compuesto por varias clases empaquetadas en un jar, detectaba la firma sólo en dos de ellas, donde se ejecutaban las funciones sospechosas, con lo que separando esas firmas en clases diferentes se podía anular la detección muy fácilmente.

Sin entrar en detalles, este exploit se basa en type confusion, asignando una clase con funciones que requieren privilegios de sistema a otra clase de distinto tipo que no los requiere, saltándose el sandbox java de ese modo. El antivirus detectaba el exploit en la clase que forzaba la confusión (llamemosle confusor), y en un par de líneas de código de otra clase, donde se creaba la instancia del confusor (probablemente para detectar variantes del exploit donde el confusor fuese diferente).

No fue necesario utilizar ningún tipo de ofuscación de clases sobre el exploit:

Para el confusor bastó con cambiar un bucle for de 100 iteraciones por 110 para que el antivirus ya no lo marcase como peligroso.

En cuanto a la clase donde se creaba la instancia de forma reflectiva, el AV lo detectaba cuando estas dos líneas aparecían juntas en el mismo archivo, pero separandolas de una manera extremadamente trivial, neutralizamos totalmente lo que el AV daba por sentado como malicioso:




Como se puede apreciar, realizando pequeñas modificaciones al código, y sobretodo separando las partes del código sospechosas en diferentes lugares es muy sencillo desaparecer de la lista de firmas del AV. De este modo y con un poco de creatividad podríamos ocultar incluso ROP chains, heap sprays...,  pilares de muchos exploits modernos.

Para continuar, y ya que hemos utilizado el exploit java para demostrar cómo evadir el antivirus durante la fase de explotación, vamos a ver como ocultar también un payload, ya que las shellcode más comunes suelen ser detectadas per se como firmas.

Hemos modificado el código del exploit de java para evitar el antivirus, pero en cuanto añadiesemos a la ecuación nuestra shellcode (por ejemplo un meterpreter https reverso), volvería a ser detectado. Dado que el exploit en java no nos limita en tamaño a la hora de weaponizarlo con un payload, y como ya nos hemos saltado el sandbox java, ¿por qué ejecutar la shellcode directamente desde el exploit, cuando podemos volcar un ejecutable a disco y lanzar la shellcode desde allí? Podría parecer una estupidez hacer una escritura a disco dando al AV una oportunidad extra de análisis, pero como veremos más adelante evitar la detección de la explotación asumiendo ese riesgo tiene sus ventajas si nos encargamos de ocultarlo bien en la fase post-exploit, donde contamos con más flexibilidad para hacerlo.


Como se puede apreciar, hemos convertido los binarios en cadenas de texto (los he truncado por legibilidad), los hemos almacenado en variables (separados en dos mitades), y los recodificamos a binario antes de escribirlos a disco, consiguiendo que el AV no los detecte al analizar el paquete Java.

Con eso ya estamos separando el payload del propio exploit (recordad, separación es la clave), pero tendremos que conseguir que el payload sea también indetectable.

Para ello vamos a utilizar varios trucos. En primer lugar, cogeremos nuestra shellcode y la partiremos en 2 mitades (una vez más). Con eso ya sería suficiente, pero para este ejemplo, además, he creado un sencillo "encoder" que hace rotaciones de bits en cada byte de la shellcode y luego los invierte, con la intención de camuflarla un poco. Así que ya tenemos dos mitades de nuestro meterpreter, previamente scrambled con el miniencoder.


Si sólo utilizaramos el encoder sobre la shellcode entera, el antivirus podría reconocerla con algo de heurística, pero de este modo aunque aplique la heurística a cada mitad, no se encontrará con la shellcode completa, con lo que no la reconocerá como firma.

Podríamos crear un sencillo ejecutable que lanzase esa shellcode, pero aquí vamos a utilizar otro truco para engañar aún más.

Crearemos un ejecutable normal (payload.exe), con una función trivial que no haría saltar jamás al antivirus, porque no realiza ninguna acción sospechosa, pero utilizaremos unas librerías dinámicas para sobreescribir esa función trivial con nuestra shellcode en tiempo de ejecución, y ya en memoria:



Debemos configurar el compilador para que no utilice el NX/XD (DEP) ni base dinámica (ASLR), de este modo la dirección de memoria que sobreescribiremos en nuestro programa no variará en cada ejecución, ni la memoria estará desorganizada por el ASLR, lo cual sería un problema para escribir secuencialmente.

Como veis, y para esta demostración, la función inofensiva() está compuesta por una serie de NOPs (o cualquier otra cosa), para hacerla más fácil de encontrar en nuestro debugger, y debe tener el tamaño suficiente para albergar nuestra shellcode una vez la sobreescribamos.

Lo ejecutamos en el debugger para localizar la dirección donde comienza dicha función:


Dado que en este caso el programa comienza a ejecutarse en 400000, nuestro offset para comenzar a sobreescribir será 53F0, que es el punto de entrada de la función.

Un análisis por parte del antivirus sobre el ejecutable no revelaría nada ya que el código de la shellcode no sobreescribe la función inofensiva() hasta que cargamos las librerías.

Como hemos partido la shellcode en 2 mitades, crearemos dos DLL (shellcode1.dat yshellcode2.dat), una con cada mitad (una vez más, separación), de este modo el AV aunque analice cada DLL en disco, no encontrará nada.



En MY_OFFSET establecemos la posición de memoria en tiempo de ejecución donde debe empezar a sobreescribir. Decodificamos nuestra media shellcode anteriormente “revuelta”, y la escribimos donde estaba la función inofensiva().

VirtualProtectEx, así como otras que permiten API hooking, es una de las funciones más vigiladas por un antivirus dado que abre las puertas a escribir en memoria en tiempo de ejecución, pero como hemos dicho antes, solo estamos escribiendo media shellcode, y es por esa razón por la que no saltará la alarma, y es a lo que me refería con que un antivirus escanea archivos independientes, y no como un conjunto.


También habréis notado que utilizo sleeps para pausar la ejecución. Es solo una sospecha personal infundada, pero aunque retrasa la ejecución del payload creo que algunos antivirus (especialmente los que quieren vendernos que casi no comen recursos al ordenador) dejan de analizar si el proceso que monitorizan es lento, especialmente si es un bucle, para ahorrar recursos y no interferir en la experiencia del usuario. Y también para tratar de que el AV no “relacione” una función con la anterior, aunque supongo que eso ya es un raciocinio humano que no se aplica a una máquina ;)


Para la segunda DLL, solo tenemos que cambiar la segunda mitad de la shellcode y el offset para continuar escribiendo en la posición donde terminó la primer mitad.

Algo que podríamos hacer para enrrevesarlo aún más (aunque para no complicarlo demasiado no lo hemos hecho aquí), sería empezar escribiendo la segunda parte de la shellcode, y luego la primera (simplemente invirtiendo el orden en el que hacemos el LoadLibrary), con lo cual nos curamos en salud ante un posible análisis secuencial de lo que estamos escribiendo en memoria.

Ya para terminar, vamos a añadir una capa más de separación, utilizando un ejecutable (spawner.exe) , el cual es el verdadero ejecutado por nuestro exploit java y que será el encargado de lanzar el payload (Nota: he hecho esto porque a día de escribir el código, el reverse https terminaba el proceso al cabo de unos minutos si no se establecía una conexión):




Este pequeño programa también es inofensivo a los ojos del AV, y lo único que hace es monitorizar si existe el proceso de nuestro payload, y si no es así, lo relanza.

Además, como hemos creado una entrada en el autorun del registro (lo cual podría resultar sospechoso para el AV), siempre es mejor que el "sospechoso" sea este nuestro spawner inofensivo, y no el que carga las librerías del payload.


Resumiendo:

  • Hemos lanzado nuestro exploit en java, ya modificado, con lo cual el antivirus no lo ha detectado. 

  • El exploit ha volcado 4 archivos al directorio temporal de Windows. El AV los analiza en el momento en que se escriben a disco. Dos de ellos son ejecutables inofensivos, con lo cual no los detecta. Los otros dos son las librerías donde está la shellcode, pero son dos archivos independientes, el AV tampoco detectará una shellcode completa. 

  • Se ejecuta nuestro lanzador inofensivo, el AV no lo detecta en la ejecución. Se ejecuta el payload lanzado, y el AV analiza qué trata de hacer (una función inofensiva), también analiza las DLL al cargarlas (pero cada una realiza la sobreeescritura por separado, tampoco las detecta). Llegado ese punto la shellcode ya está reemplazando la función inofensiva(), pero el AV ya no puede detectarlo, ya que para ello tendría que volver a analizar la ejecución completa del programa en memoria y darse cuenta que el código fue sobreescrito, algo que requeriría muchos más recursos, y que en un programa más complejo sería demasiado intensivo. 


Hemos engañado al antivirus sin rompernos la cabeza con algoritmos imposibles, simplemente separando código malicioso en diversos trozos y lugares, y ejecutandolo de una forma poco convencional (sobreescribiendo una función ya existente). Podríamos haber utilizado otros trucos sencillos, como crear un programa con un overflow deliberado y explotarlo para lanzar la shellcode (algo que el antivirus jamás se "imaginaría"), en lugar de integrarla en el propio programa como una función más.

En el hipotético caso de que esto fuese un malware real, ya conocido, y con las firmas añadidas a un antivirus, bastaría con partir en más trozos todavía el código para que el AV dejase de detectarlo, y se convertiría en el juego del gato y el ratón.


¿Soluciones? Pues es bastante complicado. Para que los antivirus pudiesen conseguir una detección robusta no basada en firmas conocidas deberían ser capaces de monitorizar todos los procesos que ocurren en una máquina en todo momento, de relacionar esos procesos entre si de forma racional, tendrían que ser capaces de descubrir automáticamente vulnerabilidades en los programas (sin saber de antemano que las tienen); en definitiva, ser una inteligencia artificial que a día de hoy solo es ciencia ficción. Y necesitarían utilizar prácticamente la totalidad de los recursos de la máquina dejando una pequeñísima parte para el resto de procesos.

Fuente: http://www.securitybydefault.com/2013/01/evasion-de-antivirus-por-que.html

viernes, 18 de enero de 2013

Vulnerabilidad crítica en Java 7u10.


Java
Oracle está pasando por momentos incómodos durante estas últimas semanas, la última actualización de Java(7 u10) contenía una grave vulnerabilidad, tanto así que los expertos en seguridad informática recomendaban desinstalar el software por completo. El 13 de enero Oracle anunció una nueva actualizaciónque se suponía solucionaría todos los problemas pero no fue así, en tan solo 24 horas encontraron una nueva vulnerabilidad y el exploit se encuentra a la venta por $5.000 USD.
El día lunes, el administrador de un foro dehackers publicó un mensaje a su comunidad asegurando que vendería el nuevo exploit a dos afortunados compradores por la modesta cantidad de $5.000 USD.
Una parte del mensaje que dió el vendedor:
Hay otra vulnerabilidad en la última versión de Java 7. No voy a entrar en detalles, excepto con los compradores seriamente interesados. ¿Qué obtendrás? los archivos sin encriptar para crear el exploit, el código fuente y una versión lista para ejecutarse.
El problema es grave, el vendedor ha prometido versiones del código fuente del exploit y toda la asesoría para ejecutarlo a los posibles dos compradores, que al parecer ya fueron encontrados, ya que el mensaje ha desaparecido del foro del cual se desconoce su nombre. Esta situación no es aislada, ya había ocurido ante en el mes de octubre del año pasado y también fue monetizado el exploit por el mismo sitio.
Oracle aún no da una declaración al respecto sobre la nueva vulnerabilidad en Java, ni se espera un nuevo parche, así que aún se recomienda desinstalar el software para no sufrir ningún tipo de ataque por parte de los hackers o bien, tener mucho cuidado en los sitios web que visitas. Lamentablemente para muchos usuarios será imposible omitir del uso de Java en sus navegadores y sólo queda esperar a que Oracle ponga manos a la obra y solucione todos los problemas que tienen con el software.

Fuente: http://alt1040.com/2013/01/vulnerabilidad-en-java

sábado, 22 de diciembre de 2012

Blackhole kit 2.0. El kit de exploits del momento.

Blackhole es el kit del momento. Lo usan los profesionales para infectar de forma cómoda a los navegantes. La herramienta se encarga de elegir el exploit adecuado según navegador, plugins instalados, sistema operativo... Y por supuesto, ese exploit hará lo que el atacante haya elegido (normalmente robar los ahorros del banco de la víctima). Se ha creado la versión 2.0, que trae importantes mejoras para el atacante, y malas noticias para los analistas.

Nació en 2010, después de desbancar a Eleonore. Según Sophos, el 28% de todas las amenazas web están basadas en Blackhole. Para AVG, son el 91%. En realidad, estas cifras tan dispares no dicen nada, solo que realmente es popular. Podemos asegurarlo por experiencia propia.

Uno de los creadores ha escrito en un foro ruso (cómo no), que ya está disponible la versión 2.0, destinada principalmente a eludir a los antivirus y mejorar el control del que usa el kit. Han reescrito desde cero una buena parte del código. Veamos funciones que nos parecen interesantes.

Ahora las URLS desde donde se descargan los payloads, son dinámicas y válidas solo por unos segundos. Luego desaparecen. Consiguen así que los cazadores de malware lo tengan muy complicado para recopilar muestras (jar y exe) de forma automática, o recuperarlas después de una infección, en los forenses. También permite elegir el formato de la URL de descarga del payload. Incluso tomar palabras de un diccionario, como una especie de firma del que lo use. En la versión 1, se usaba esta estructura:

http://domnioblackhole.com/xxx/main.php?page=0123456789abcdef
  
para la descarga del payload. Este esquema era ya reconocible (adiós a las reglas de los IDS) y han decidido que sea personalizable.
  
1-Han mejorado la detección de las versiones de Java vulnerables, la joya de la corona del kit (el programa que más víctimas le reporta).
Han hecho limpieza de exploits, eliminando los más antiguos, que reportaban poco. También los que no siempre funcionaban y podían causar que el navegador se colgase (con el objetivo de pasar aún más desapercibidos). Sin embargo, parece que dejan algunos para el obsoleto IE6, que todavía es "común", como el MDAC.  Además, usarán (cómo no) un pack para explotar Java y la vulnerabilidad LibTiff para los lectores PDF (de 2010). Por supuesto, esto es ampliable.
    
2-Si uno de los exploits es detectado por más de un número configurable de antivirus, será descartado y reemplazado automáticamente.
    
3-Para los usuarios de Chrome (los únicos a los que no ataca), Blackhole 2.0 permitirá crear una página HTML estática en la que se indicará que esa URL debe ser visitada con cualquier otro navegador. Chrome no interesa a los atacantes porque la ejemplar implementación de su sandbox les hace difícil que los exploits de los plugins funcionen.
  
4-También mejora la seguridad. Ahora el panel permite bloquear el tráfico que les llegue sin referer. Significa que rechazará las peticiones directas. Estas suelen ser de las personas que conocen su existencia y no vienen redirigidas de ningún sitio. Además permite prohibir tráfico TOR, los referer que se deseen, etc.
    
5-Con respecto al panel de control, añaden nuevos sistemas operativos como Windows 8, Android y iOS. Los móviles parece que están ahí para estimar el tráfico generado por los nuevos dispositivos. También mejora la visibilidad de las versiones de Adobe y Java que poseen las visitas, para afinar los exploits de forma cómoda. Por último, lo protegen con CAPTCHA, para que alguien obtenga acceso al panel por fuerza bruta.
Dicen además que han incluido otras mejoras, que prefieren mantener ocultas para no alertar a las casas antivirus.

¿Cuánto cuesta?

El creador mantiene los precios, a pesar de las mejoras.

Alquiler: 50 dólares al día (con 50.000 hits como límite). Al mes son 500 dólares de alquiler. La licencia para uso libre, va desde los 700 dólares por tres meses, a los 1.500 por usarlo un año. Se ofrecen posibilidades como cambios de dominio del panel de administración por 20 dólares. Existe otro servicio de "limpieza" por 20 dólares. Creemos que se refiere a eliminar de la base de datos de infectados las direcciones IPs conocidas de investigadores, casas antivirus, honeypots, etc.

Nuestra experiencia es que Blackhole es muy sofisticado, mucho más que el panel de Zeus, que tanto nos sorprendió en 2006. Además, vulnerabilidades recientes son incorporadas al kit de forma rápida. Se encuentra muy distribuido y ha conseguido posicionarse en todo tipo de páginas, legítimas o no, de forma que cualquier usuario puede infectarse si es vulnerable a alguno de sus exploits, aun manteniendo una rutina de navegación "higiénica". Por ejemplo, Blackhole es el kit más usado actualmente para infectar con Zbots, y el famoso "virus de la policía". El éxito de difusión de ambas familias habla por sí solo.

Fuente: http://unaaldia.hispasec.com/2012/09/blackhole-kit-20-facilidades-en-la.html