miércoles, noviembre 30, 2016

Y de aquí a fin de año...

Mañana comienza el mes de Diciembre, y todo está ya organizado y planificado para llegar a 2017. Quedan reuniones, algunos actos, pero mi agenda de actividades está bastante cerrada ya y no creo que se mueva mucho, así que lo único que añadiré será algo de deporte y tiempo libre, que ya va tocando. Os hago un resumen de las cosas que quedan.

Figura 1: Y de aquí a fin de año...

Hoy es un día ajetreado, porque yo tengo primero que estar en una vídeo conferencia en el evento Reinvéntate en Girona, y luego entraré también por vídeo conferencia en el foro empleo de mi Escuela Universitaria de la UPM y veré si puedo pasarme por la Gala de los premios One Magazine que tiene lugar esta noche. Además, hoy estarán mis compañeros en el Forum F5 hablando de Faast y Virtual Patching.

Para mí, las actividades de hoy, con casi total seguridad, serán lo último que haga públicamente hasta el año que viene. Sin embargo, hay actividades que puedes hacer Online aún hasta que se vaya el 2016 que os dejo por aquí.

ElevenPaths Talks

Tenemos tres sesiones - totalmente gratuitas - que hemos dejado para el final que además son de lo más interesante. La primera de ellas de nuestro compañero Diego Espitia que hablará el día 1 de Diciembre sobre (IN)Seguridad en iOS para ver cuáles son los principales problemas de seguridad, privacidad y la forma en la que se dan en los terminales iPhone e iPad. Si te has leído nuestra 2ª Edición del libro de Hacking iOS seguro que te haces una idea. Será mañana por la tarde.
La segunda de las sesiones la impartirá la semana que viene nuestro compañero Claudio Caracciolo y hablará el día 8 de Diciembre de Software Define Radio y las posibilidades que se abren con estas tecnologías para atacar sistemas de todo tipo, desde Satélites hasta el IoT, y por supuesto son muy útiles en el hacking de comunicaciones móviles. Merece la pena que aprendas de ellas. Más info en: ElevenPaths Talks SDR

Figura 3: ElevenPaths Talks sobre SDR

La última sesión del año estará a cargo de Pablo González, que hablará el día 15 de Diciembre de los ataques de Network Packet Manipulation de los que hemos hablado ya por aquí. Desde Ownear un WordPress, hasta hackear cualquier aplicación que trabaje con SQL Server o MySQL simplemente por no haber hecho un hardening adecuando del sistema, como por ejemplo un Moodle. Por supuesto, hablará de nuestros papers dedicados al Hardening WordPress.

The Security Sentinel

Las otras tres actividades que quedan online tienen que ver con el comienzo de tres cursos en The Security Sentinel en los que se va a entregar como material los libros de 0xWord. El primero de ellos comienza esta misma tarde y está dedicado a las Auditorías Móviles, así que es un buen complemento para las dos primeras ElevenPaths Talks de este mes. Los alumnos recibirán como material el citado libro de Hacking iOS 2ª Edición. En este curso se ve desde el análisis forense, hasta la auditoría de seguridad de las apps del sistema. Tienes más información en la web del mismo: Curso Online de Auditorías Móviles.
El segundo de los cursos online, que dará comienzo el próximo día 8 de Diciembre, está centrado en la Seguridad de Redes. En este curso - que dura 8 semanas - se entrega como material de apoyo nuestro libro de Ataques en Redes de Datos IPv4&IPv6, donde entre otras materias se aprende a manejar en detalle la Evil FOCA que presentamos hace ya varios años en DefCON 21. Tienes más información de este curso en la web: Curso Online de Seguridad en Redes.


Figura 5: Fear the Evil FOCA - DEFCON 21

Por último, hasta el día 21 de Diciembre tienes la oportunidad de comenzar un curso online de 8 semanas dedicado al mundo del hacking ético. Como material de apoyo aquí se entregan los libros de Metasploit para Pentesters y Pentesting con FOCA, para que puedas conocer los principios, las herramientas y cómo sacarles partido, en proyectos de hacking ético. Tienes más información en la web del curso: Curso Online de Hacking Ético.
Y esto será todo. Yo no creo que haga nada más este año, salvo descansar un rato si la vida me deja, así que si queréis formaros lo máximo para comenzar 2017 un poco más preparados, aquí tenéis oportunidades para ello.

Saludos Malignos!

martes, noviembre 29, 2016

My SSH in Paranoid Mode: Port-knocking + Latch + Latch Cloud TOTP (+ Latch + Touch ID)

Fortificar un sistema puede ser algo difícil hoy día. Seguir buenas prácticas, cumplir con los requisitos de Mínimo Privilegio Possible, Mínima Superficie de Exposición, y Defensa en Profundidad proteger la confidencialidad, la integridad y la disponibilidad de la información exige mucho trabajo, que va desde proteger las identidades digitales, utilizar segundos factores de autenticación a un largo etcétera de condiciones que debemos cumplir para constituir un ecosistema lo más seguro posible. Los SysAdmin lo tienen difícil, pero la protección de activos es un trabajo interesante, a la par de constructivo.

Figura 1: My SSH in Paranoid Mode: Port-Knocking + Latch + Latch Cloud TOTP ( + Latch)

En muchas ocasiones, los servicios deben estar expuestos, es decir, éstos tienen que estar disponibles en cualquier instante. Por ejemplo, un servidor web debe encontrarse 24x7 disponible. Por otro lado, los denominados servicios de gestión o de administración pueden tener una exposición menor, aunque, generalmente, los tengamos expuestos el mismo número de tiempo. Por ejemplo, un servicio SSH, FTP o, incluso, una VPN, pueden ser servicios críticos para la gestión de una compañía que no deberían estar expuestos el 100% del tiempo, y sí solo cuando se utilicen, ya que su exposición pone en riesgo gran parte de la organización. Este hecho puede quedar confirmado con SSHowDown Attack y las repercusiones mundiales que esto tuvo.

Figura 2: Ataques contra SSH en un log de una semana

Tal y como se puede ver en el artículo SSH Brute Force – The 10 Year Old Attack That Still Persists, no es nueva la existencia de bots que se encargan de realizar ataques de fuerza bruta sobre servicios SSH expuestos en Internet, ya sea para conseguir el acceso al sistema o simplemente para extraer una lista de usuarios en base a un bug, como vimos con el ejemplo del Time-Based Info-Leak de OpenSSH. Todo esto se reduciría, si el servicio de gestión solo estuviera expuesto durante el tiempo necesario, es decir, que se levante o cierre a petición para conseguir aplicar la Mínima Superficie de Exposicíon.

Port-Knocking & Latch

El Port-Knocking es una solución conocida, la cual permite minimizar el tiempo de exposición de un servicio. Imagina que un administrador de sistemas quiere acceder al menos una vez al día por SSH a sus sistemas para comprobar que todo está correctamente o realizar cualquier otra gestión. El administrador no quiere que el servicio SSH esté expuesto constantemente. Las técnicas de Port-Knocking le permiten configurar la posibilidad de utilizar un puerto no Well-Known para "tras golpear" el puerto conseguir que el servicio SSH esté accesible desde Internet.

Figura 3: Descripción del proceso de Port-Knocking

En otras palabras, el puerto 22 de SSH se encontrará cerrado, pero cuando el administrador envíe, por ejemplo, un paquete TCP a un puerto concreto será la señal necesaria para activar el servicio SSH en el puerto 22. El puerto 22 de SSH solo estará abierto mientras dure la conexión del administrador de sistemas. Una vez se cierre dicha conexión, de nuevo el puerto quedará oculto. Esto es interesante, ya que el nivel de exposición queda rebajado al mínimo.

El pasado mes de Enero, escribí un artículo en el blog de ElevenPaths explicando e implementando esto integrado con Latch como factor de autorización, lo que llamamos SSH en Modo Paranoia. El Port-Knocking era utilizado como un primer factor de autenticación para la habilitación del servicio SSH. Para ello, se utiliza el valor de la dirección IP de origen y el valor del puerto como si fueran una sola clave. En otras palabras, crearemos una aplicación que estará sniffando todo el tráfico que llega a la máquina y cuando la dirección IP origen y el puerto sean iguales a lo buscado se habrá pasado correctamente el primer factor.

Figura 4: Descripción del proceso de Port-Knocking & Latch

Una vez es validado que la dirección IP y el puerto son los esperados, por ejemplo, dirección IP 8.8.8.8 y puerto 9000, se activa el servicio SSH. Pero esto dejaba a merced de cualquier usuario malintencionado que quisiera jugar con nuestro SSH, la posibilidad de capturarnos el paquete de IP Spoofing y poder levantar nuestro servicio. Por esta razón, se decide meter un segundo factor de autorización, basado en Latch.

Figura 5: Demo de Latch protegiendo la apertura de un proceso de port-knocking

Cuando el sistema que estamos montando recibe un paquete TCP con las condiciones apropiadas, nuestro sistema consultará el estado del cerrojo o del Latch asociado a la aplicación. En caso de que el cerrojo esté cerrado, el sistema no levantara el servicio SSH, pero si el cerrojo está abierto, significa que estamos autorizando el arranque del servicio SSH, ya que se han cumplido estas dos condiciones.

SSH y Latch Cloud TOTP

Aún podemos fortificar un poco más el uso del servicio SSH. Nuestro compañero Diego Samuel Espitía escribió un artículo sobre Cómo integrar Latch Cloud TOTP en un servicio SSH. En primer lugar, es importante tener instalado en el sistema la librería libpam-google-authenticator, la cual puede instalarse a través de apt-get install. El proceso para llevar a cabo el intercambio de semilla es fácil: ejecutar la instrucción google-authenticator en el terminal. Esto generará un gran QRCode, el cual debe ser leído con la aplicación de Latch.

Figura 6: Google Authenticator en Terminal

Desde Latch hay que ir a añadir servicio y pulsar sobre ‘Proteger con Cloud TOTP’. Esto hará que tengamos que leer el QRCode anterior, con la aplicación de Latch. Una vez es reconocido el QRCode, se tendrá listo Latch Cloud TOTP para utilizarlo con nuestro servicio SSH.

Figura 7: Latch Cloud TOTP para SSH configurado

Una vez, se generó el QRCode, se puede leer la siguiente información, dónde se almacenará el secreto, el tiempo de refresco, las limitaciones de login, etcétera.

Figura 8: Configuración final de Authenticator

Ahora, hay que configurar la autenticación con el TOTP en el servicio SSH. Para ello, vamos al fichero de configuración de PAM y añadimos esta línea auth required pam_google_authenticator.so. El fichero de configuración se encuentra en /etc/pam.d/sshd.

Figura 9: Autenticación en SSH con Latch Cloud TOTP como 2FA

Hay que tener en cuenta que la línea debe ser introducida en la primera línea. Una vez hecho esto, hay que modificar una directiva del servicio SSH, por lo que para ello debemos editar el fichero /etc/ssh/sshd_config. Buscamos la directiva ChallengeResponseAuthentication y la ponemos a yes. Veremos algo así. Primero nos pide el TOTP y, posteriormente, la clave del usuario.

PoC: Ejemplo final

Al final en este entorno tenemos lo siguiente:
1. Un servicio escrito en Ruby, el cual monitoriza cualquier paquete que llega al equipo y busca una serie de circunstancias en un paquete, como son la dirección IP de origen, el puerto destino y que el flag TCP de SYN esté habilitado. Esto provoca que el sistema sepa que se quiere levantar el servicio SSH, a modo de Port-Knocking.
2. Una vez llega el paquete “clave”, nuestro servicio escrito en Ruby comprobará el estado de Latch. Si el cerrojo se encuentra abierto, se levantará el servicio SSH de cara al exterior, comenzando el tiempo de exposición del servicio de gestión.
3. El usuario se tendrá que conectar por SSH al servicio y se le solicitará el usuario y contraseña, o autenticación de clave pública, en función de lo que esté configurado y, además, un token TOTP, el cual estaremos generando con Latch Cloud TOTP.
Figura 10: Demo de Port-Knocking + Latch Cloud TOTP & Aut + Lath como 2FA

Y aún podríamos ir más allá. Por supuesto, una vez autenticado el usuario con su clave y su Latch Cloud TOTP, aún podríamos añadir Latch para SSH (UNIX) para autorizar el proceso de Login, lo que dejaría el sistema con un proceso de autorización extra después de autenticar al usuario correctamente. Esto, que parece una vuelta de tuerca excesiva, sería útil para entornos en los que se estuviera controlando el uso de cuentas administrativas para mejorar la seguridad.

Figura 11: Latch para SSH (UNIX)

Paso 1: Por ejemplo, el Latch del sistema de Port-Knocking podría ser controlado por un daemon que verificara los horarios de trabajo y que abriera o cerrara el Latch en función de si es horario de trabajo o no, para permitir que el servicio SSH estuviera expuesto o no en Internet para todos los administradores.

Paso 2: Después, un administrador del sistema pediría conexión mediante una petición de Port-Knocking y se autenticaría con sus credenciales y el segundo factor de autenticación basado en Latch Cloud TOTP.

Paso 3: Por último, el supervisor del sistema autorizaría o no esa conexión concreta para ese usuario administrador concreto con un Latch en SSH asociado a la cuenta, lo que permitiría establecer procesos de Verificación de cuatro ojos o Activación con dos llaves.


Figura 12: Configuración Latch para UNIX & SSH en GNU/Linux

Como se puede ver, a la hora de fortificar un sistema, tenemos múltiples elementos de seguridad y distintas capas, que nos pueden ayudar a  que la Superficie de Exposición sea Mínima y que tengamos Defensa en Profundidad, lo que hacemos utilizando varios factores de autenticación, tanto en el propio servicio SSH, como en el levantamiento del servicio.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell

lunes, noviembre 28, 2016

Cybermonday 2016 en @0xWord

El lunes día 28 de Noviembre, desde las 00:00 hasta las 23:59 durante todo el lunes, estará funcionando el último código descuento que vas a poder utilizar este año 2016 para adquirir material de 0xWord, así que si quieres que lleguen algunos de estos libros antes del 25 de Diciembre o 6 de Enero con algún descuento, es tu momento.

Figura 1: Cybermonday en 0xWord

El código es CYBERMONDAY2016 - no nos hemos complicado mucho - y vale para cualquier libro de 0xWord, para cualquier novela de 0xWord Pocket, para el Cómic de Hacker Épico Deluxe Edition y hasta para el pendrive 3D de Cálico Electrónico edición coleccionista.

Figura 2: El cómic de Hacker Épico Deluxe Edition sería un gran y original regalo...

Además, como siempre, también es válido para los packs oferta de 0xWord, por lo que puedes ahorrar aún más. También puedes comprar y solicitar la opción de recoger en tienda - solo en Móstoles - por lo que lo no tendrías ningún costo de gastos de envío. 

Saludos Malignos!

domingo, noviembre 27, 2016

Un Ataque David Hasselhoff a Microsoft.com...con Faast

En el reporte de agradecimiento de Microsoft, a diferencia del de Apple donde se hace un reconocimiento por cada bug, se aglutinan varios bugs en un agradecimiento genérico al "finder" independientemente del número de bugs que se hayan reportado. En el caso del agradecimiento de estos meses de Septiembre y Octubre, nosotros reportamos varios bugs en diferentes expedientes de investigación. 

Figura 1: Un Ataque David Hasselhoff a Microsoft.com con Faast

Esta semana os he hablado del bug de Open Proxy en Microsoft.com, pero también hubo varios reportes más comunes de inyecciones de código en webs del dominio de la compañía. Entre ellas varios XSS (Cross-Site Scripting) descubiertos por nuestro motor de pentesting persistente Faast.

Figura 2: Reconocimiento a los finders de Septiembre y Octubre en Microsoft.com

Al final, con una infraestructura expuesta a Internet tan grande como la que tiene una empresa como Microsoft, la posibilidad de que algún código en algún rincón de todo el dominio se vea afectado por un bug es muy alta.

Figura 3: XSS Reflejado por GET en My Trending Hub de Microsoft.com

Al final, una actualización de un developer que no pasa por un escaneo de vulnerabilidades, un cambio en la configuración de un sistema, el descubrimiento de una nueva forma de hacer un ataque o el cambio en algún componente del software base que es actualizado, hacen que puedan aparecer los fallos. Es por eso que la visión que yo tenía hace tres años era que el pentesting debía ser persistente y contemplado desde la fase de diseño del sistema.

Figura 4: XSS Reflejado por POST en My Trending Hub de Microsoft.com

En el caso de Microsoft.com han aparecido varios XSS Reflejados, por POST y por GET, algunos HTML Injection que probamos con este precioso Ataque David Hasselhoff, pero a estos hay que sumar el SSRF (Server-Side Request Forgery) que consideraban una feature, o una gran cantidad de "debilidades" de seguridad que van desde ficheros perdidos hasta copias de backup de URLs, sistemas de login sin HTTPs, Apache Tomcat por defecto expuestos a Internet o bugs de IIS Short name en sus dominios.

Figura 5: HTML Injection con Ataque David Hasselhoff en My Trending Hub de Microsoft.com

Reportar a Microsoft un bug de HTML Injection con un Ataque David Hasselhoff es solo porque en ElevenPaths es una de las "bromas" más utilizadas para concienciar a la gente de que debe cerrar sesión cuando se levanta de su puesto. Aquí tenemos a nuestro compañero Sergio de los Santos aleccionando a uno de sus compis hace mucho tiempo en Hispasec.... Y esperamos que al ingeniero de Microsoft que tuvo que investigar esto se le escapara una sonrisa }:)

Figura 6: Ataque David Hasselhoff. Si no lo grabas, no tiene la misma gracia }:)

Es muy complicado en infraestructuras grandes gestionar las vulnerabilidades en base a proyectos de personas que están haciendo hacking ético puntual, esto debe ser permanente y los pentesters deben focalizarse en los bugs que no sean descubiertos de manera automática, por plataformas como Faast, para que la seguridad sea un poco más alta. Al final, un XSS reflejado por GET o un SSRF debería ser descubierto de forma automática, salvo singulares excepciones que deberán caer en manos de pentesters expertos. En el libro de Hacking Web Technologies tratamos estos temas a fondo.

Saludos Malignos!

sábado, noviembre 26, 2016

"Internet es Genial: Usémoslo bien" en Lo que de verdad importa #LQDVI

Ayer viernes participé en uno de los eventos de Lo que de verdad importa, en su edición en Madrid. Se trataba de una participación muy pequeña, de solo cinco minutos durante la que debía dar una charla, así que para no salirme del tiempo trabajé durante horas - sí, me llevó como tres horas - cerrar el "discurso", pero no quería tener que improvisar otra vez como cuando me hicieron Embajador Honorífico de mi Universidad y tuve que inventarme El discurso de la servilleta.

Figura 1: "Internet es Genial. Usémoslo bien"

Primero lo escribí en un documento como si fuera un artículo, luego lo leí en voz alta como si lo fuera a pronunciar así para cronometrarme. Cuando estuve satisfecho con el tiempo en que lo hacía, lo pasé a un formato presentación con fondo blanco, texto en mayúsculas y letras grandes para poder hacer un PDF y enviarlo a mi smartphone. Así podría, en el caso de tener atril, leerlo con miradas esporádicas. Para que fuera más fácil destaqué en rojo algunas palabras para que me recordaran de qué iba esa frase fácilmente.

Figura 2: El discurso en 19 páginas para llevar de "chuleta"

Después se lo envié a un compañero de comunicación para que me validara el mensaje y cuando lo hizo, me fui para el evento con una hora de tiempo para verificar el escenario, las medidas técnicas y el orden en que iba a entrar. Cuando llegué descubrí que no tenía atril, así que me hice una lista esquema del orden de los temas en que tenía que contar las diapositivas y la memoricé. Y luego di la charla en el auditorio del Palacio Municipal de Congresos de Madrid Sobre el escenario se pierde la vista con el tamaño que tiene, lo que hace que también se pierda la noción de la realidad y hasta cualquier cosa.

Figura 3: Esquema para recordar el contenido de las 19 "chuletas"

No la di exactamente igual a como la escribí, y cambié un poco el orden al final de las cosas, pero conseguí contar lo que quería contar en el tiempo más o menos que tenía listo. Eso sí, al final tuve que trabajar mucho más para una charla de 5 minutos que para una de una hora, pero ya sabéis que si breve... Este es el texto que escribí para dar la conferencia, y cuando la tenga la subiré a mi canal Youtube.

Figura 4: Comienzo de la charla en Lo que de verdad importa

Internet es Genial: Usémoslo bien
"Nací en el siglo pasado, y aunque me han invitado varias veces a charlas para Millennials, por supuesto, no soy uno de ellos. Fui niño en una época en que la tecnología prometía cosas que entonces sólo eran ciencia ficción, como poder hablar por un teléfono que estuviera desconectado o teletransportarse. Sí, a día de hoy teletransportarse es ciencia ficción para todos, pero para mí, hablar por un teléfono móvil era igual de ciencia ficción entonces.

Un tiempo en el que para elegir la película que queríamos ver en el cine al día siguiente, hacíamos una comitiva con los chicos mayores del parque para andar los kilómetros que nos separaban del lugar de proyección y descubrir qué había en la cartelera. Tomábamos nota de las películas y horarios y volvíamos al parque para decidir la película.
Me enamoré de la informática siendo un niño de más o menos once o doce años, con una película de Disney llamada TRON en la que los personajes eran programas dentro de una Unidad Central de Procesos que adoraban a sus creadores: Los Programadores. Decidí que quería ser un programador y convencía a mis padres de que me ayudaran a aprender.

Tuve un ordenador personal de 8bits, un AMSTRAD, con el que aprendí a programar en BASIC y con el que jugaba en mis ratos libres. Descubrí que en aquellos tiempos la tecnología y la imaginación se mezclaban de forma mágica, pues el muñeco en un juego de fútbol era apenas unos cuantos píxeles de colores que, con los ojos entre-guiñados, te imaginabas que era Butragueño o Maradona.

Entré en mi adolescencia al mismo tiempo al que me conectaba a Internet, primero conectándome por teléfono y discutiendo con mis padres por el dinero de las llamadas y dejar a la familia incomunicada, y luego discutiendo por el tiempo que pasaba conectado mediante InfoVía.

Y descubrí un nuevo mundo. Un nuevo mundo donde para ver la cartelera ya no había que hacer un camino de dos kilómetros el día antes. Donde se podía acceder a tutoriales escritos por hackers que enseñaban cómo configurar de forma segura un servidor o cómo programar una herramienta.

Era un mundo en el que el conocimiento cruzaba los océanos y en el que charlar, jugar o intercambiar ideas estaba a golpe de conectarse a un IRC. Era un mundo genial y divertido en el que el cerebro no paraba de estar estimulado con nuevas cosas. Cosas que cambiaban diariamente. Era genial.

Recuerdo que, gracias a esos tutoriales, monté un servidor RRAS (Remote Access Server) para configurar mediante DHCP (Dynamic Host Configuration Protocol) una red con el ordenador de mi compañero y amigo Rodol que hacía que su equipo – que su cabezón - llamara al mío por teléfono. Una vez que la montábamos, jugábamos juntos al Quake durante horas. Era genial.

Además, era un mundo no para todos en aquellos entonces. Aún habrían de nacer Facebook, Twitter, Youtube, Instagram, y llegar los populares Angry Birds, Candy Crash, Clash of Clans, League of Legends o Pokemon Go. Aún, Internet era solo para unos pocos porque la tecnología no se había popularizado lo suficiente como para estar al alcance de todos.

Pero tenía que lograrse. Internet era genial, y todo el mundo debería y debe disfrutar de lo que ofrece al ser humano. La hiperconectividad, los grandes servicios de contenido, las redes sociales, los juegos online, las plataformas educativas, las vídeo conferencias para hacer los deberes juntos a distancia, la compra online o la información en tiempo real de todo lo que está pasando en el mundo es algo que debe ser para todos. Es imposible no volver atrás la mirada en el tiempo y darse cuenta de que la tecnología es GENIAL.

Por desgracia también hemos traído algunas de las peores cosas del ser humano a la red, y con la llegada de avances como la  Inteligenica Artifical y los Sistemas Predictivos estamos acercándonos a una frontera que sabíamos que llegaría. La de crear sistemas que tomen decisiones en base a su aprendizaje, y deberemos enseñarles bien, o si no las decisiones que puede tomar pueden acabar siendo nocivas para el ser humano.

Tendremos que crear sistemas que conduzcan vehículos que se enfrentarán a decisiones morales cómo el modo de actuar ante una colisión inevitable o los sistemas de inteligencia artificial que gestionen los recursos humanos de una empresa. ¿Qué valores deberemos inducir en estas nuevas tecnologías?

También hemos traído a Internet cosas malas, no inherentes tanto a los avances de la tecnología, pero que vienen por desgracia asociadas al ser humano. Hemos traído conductas abusivas, crimen organizado, hemos traído la guerra cibernética, o el acoso. Conductas nocivas y cosas malas hechas por mala gente que han utilizado la tecnología para transformar la forma en la que se presentan y se ejecutan.

Es una parte pequeña de todo lo bueno que nos han dado los avances tecnológicos en general e Internet en particular, pero debemos reducir al máximo el impacto de estos en la vida de las personas y hacer que los nuevos avances, como el Big Data, los sistemas de Machine Learning o los sistemas Cognitivos nos ayuden a que las personas vivan mejor gracias a las tecnologías.

Las empresas que hacemos tecnología, debemos poner estos valores en cada uno de los servicios que creamos. Debemos dotarlos de toda la transparencia que nos requieran los usuarios, de unos niveles de seguridad que ayuden a que la experiencia del mismo sea confortable y que garantice que todo lo bueno del servicio recaiga en los usuarios y no se vuelva en contra suya.

Para todos los que hoy son niños, pre-adolescentes o adolescentes, la tecnología es natural. Han/Habéis nacido con ella y está en vuestro día a día. No os da miedo probar o experimentar con ella. Tenéis unos superpoderes innatos de gran valor. Pero yo os voy a pedir dos cosas:

La primera es que, uséis la tecnología para el bien de todos. Que no seáis tolerantes con las acciones nocivas en Internet. Que no consintáis el acoso en los grupos privados de WhatsApp o Redes Sociales en los que por desgracia se produce cyberbullying muchas veces, y que aprendáis a gestionar vuestra privacidad y seguridad en la red. No se lo pongáis fácil a los malos.

La segunda es que seáis hackers. Hackers en el sentido en que lo entendemos nosotros, en el sentido de llevar la tecnología más allá. Hackers en el sentido de crear nuevas cosas con la tecnología. Que no seáis meros consumidores y queráis ser creadores de tecnología. Aprended cómo es la tecnología, entendedla y hacerla vuestra. Transformad vuestro mundo como los que crearon Internet transformaron el suyo."

Os he querido dejar el texto, una captura de las diapositivas, el esquema de la charla y los enlaces al contenido para que tengáis toda la información. Preparar una charla lleva trabajo por detrás, y lo que parece natural es mucha veces solo consecuencia de haberla preparado. Ya os dejé tiempo atrás la historia de todo lo que hice para preparar mi primera BlackHat. Para que te hagas una idea, a mí también me daba pánico hablar en público antes.

Saludos Malignos!

viernes, noviembre 25, 2016

Hoy es el Black Friday también en @0xWord: 10% OFF

Si tenías intención de comprarte alguno de los libros nuevos que hemos lanzado en 0xWord como el de Hacking Web Technologies, la 2ª Edición de Hacking iOS: iPhone & iPad, la novela de Got Root o el recién salido del horno Máxima Seguridad en WordPress, hoy es un buen día para hacerlo. Desde las 00:00 de esta noche, hasta las 23:59 de la noche del 25 de Noviembre comienza el Black Friday en 0xWord.

Figura 1: Black Friday 2016 en 0xWord

Todo el material en la tienda de 0xWord, incluidos los packs oferta, los libros de 0xWord Pocket y el pendrive de coleccionista de Cálico Electrónico, tendrán un 10% de descuento durante las 24 horas del día de hoy. Para ello, debes introducir durante el proceso de compra el Código Descuento BLACKFRIDAY2016.

Si tenías algún libro pendiente de la colección, o si querías adquirir un pack oferta con cinco libros por menos del precio de cuatro, hoy es el día perfecto para acumular los descuentos. Y si querías preparar algunos regalos para navidades, e incluso llegar a tiempo para la llegada de Papá Noel... o los Reyes Magos. ¡Qué mejor que una FOCA rosa!

Saludos Malignos!

jueves, noviembre 24, 2016

La historia del bug de "Open Proxy" en Microsoft.com

Durante el mes del verano estuvimos haciendo unas pruebas con Faast sobre varios sitios hacking friendly para ver cómo se comportaba la nueva versión de nuestro motor. Los resultados fueron espectaculares, y por el camino localizamos varias vulnerabilidades y debilidades en Microsoft y en Apple. Alguna de las debilidades las he comentado por aquí, como fue el caso de HPP (HTTP Parameter Pollution) en Apple.com, los certificados digitales en su CDN o el SSRF en Microsoft.com, por poner algunos ejemplos de lo que íbamos encontrando.

Figura 1: La historia del bug de "Open Proxy" en Microsoft.com

Aparte de las debilidades, localizamos varias debilidades más serias, que por supuesto reportamos a los equipos de seguridad de las empresas para que los corrigieran, y uno de ellos fue este Open Proxy que Microsoft ha solucionado ya, y nos ha agradecido en el último paquete de créditos.

Figura 2: Agradecimiento de Microsoft a los Security Researchers en Septiembre-Octubre

El bug fue descubierto por el motor de pentesting persistente de Faast, en una de las URLs de Microsoft.com. Un bug de Open Proxy permite a un atacante utilizar un servidor publicado en Internet para ocultar su dirección en un ataque o para navegar a servidores internos de la DMZ

Figura 3: Bug de Open Proxy descubierto en Microsoft.com con Faast

También se pueden hacer cosas más sutiles, dependiendo de la implementación concreta, como cachear peticiones DNS, conseguir descargar ficheros maliciosos para hacer saltar las protecciones de seguridad, o algún que otro sutil escenario.

Figura 4: Conexión a Facebook a través del Open Proxy de Microsoft.com
En nuestro caso, como PoC para reportar el bug, hicimos un par de pruebas. La primera de ellas fue con una dirección de Internet, como el caso de Google.com, y como se puede ver el servidor de Microsoft.com hace de Proxy y trae la información solicitada.

Figura 5: Conexión a Google a través de Open Proxy

El segundo de los casos, algo más sencillo, una petición a Localhost para ver si se podía acceder a la información de servidores en la DMZ no publicados.

Figura 6: Conexión a Localhost a través del Open Proxy de Microsoft.com

A partir de ahí hicimos alguna prueba, para ver si podíamos acceder con direcciones locales escritas en IPv4, en IPv6 o codificadas en hexadecimal, para ver el impacto total de este bug.

Figura 7: Conexión a localhost codificada en hexadecimal

Al final, Microsoft lo corrigió y ya está resuelto, y nosotros nos quedamos contentos y felices por haber ayudado y comprobar que nuestro Faast cada día mejora un poco más.

Saludos Malignos!

miércoles, noviembre 23, 2016

Conferencia "You Are: Where You Are" disponible Online

Hace no demasiado os dejé un artículo en el que hablaba de la importancia de los datos de la localización. El artículo se llamo Tú eres: donde tú estás (o cómo tu ubicación dice quién y cómo eres) y explicaba cómo se puede conseguir la ubicación de una determinada persona utilizando los sensores en los terminales móviles. Desde permisos GPS, hasta patrones de descarga de baterías, pasando por técnicas de Wardriving usando información WiFi o las direcciones IP de conexión a Internet.

Figura 1: Conferencia "You Are: Where You Are" disponible online

Como explicaba en ese artículo, el conocer la ubicación de una persona tiene un gran valor para conocer datos de esta persona, por lo que hay que tener mucho cuidado con a quién se va a compartir este dato, y sobre eso versaba la charla que di en los Premios CINCO días que podéis ver en este vídeo.


Figura 2: "You Are: Where You Are" en los PREMIOS CINCO DÍAS

Como la grabación se centra en mí y en el discurso, os he subido a SlideShare las diapositivas que utilicé como soporte, así que podéis seguir la retransmisión con las diapositivas al mismo tiempo y ver lo que había en pantalla mientras hablaba.


En próximos artículos continuaré con la serie de "Tú eres" pues es fundamental que la gente entienda que hay muchas formas de saber que eres tú y qué estás haciendo en cada momento, ya que para tomar una decisión es mejor hacerlo informado.

Saludos Malignos!

martes, noviembre 22, 2016

Actividades para la última parte de Noviembre de 2016

Si te pones a mirar el calendario, el año casi ya se nos ha ido. Aún no me aventuro a decir que no vaya a participar en ninguna actividad en Diciembre, que nunca se sabe cómo va a girar el mundo en las próximas semanas, sí que os puedo decir que por ahora no tengo muchas actividades. Como ha habido algunos cambios en la configuración de actividades de Noviembre, os traigo una actualización para que veáis lo que tenemos por delante los próximos siete días.

Figura 1: Actividades para la última parte de Noviembre 2016

Cómo sabéis, hoy da comienzo LibreCON en Bilbao, y aunque inicialmente yo iba a dar una charla el día 22, finalmente la daré el día 23 de Noviembre a las 12:30. El formato con el que acordamos que yo iba a participar será por vídeo conferencia, con una pequeña charla de 20-25 minutos y una sesión de Q&A de unos 15-20 minutos. Allí, además, tenemos un stand de 0xWord para que puedas comprar nuestros libros.

Figura 2: LibreCON con 0xWord

Hoy también da comienzo en Argentina el TIC Forum, que durará dos días, y donde Claudio Caracciolo nuestro compañero de ElevenPaths participará con una charla sobre seguridad. Su ponencia será mañana día 23 y podéis ver la lista completa de ponentes en la web de TIC Forum Argentina 2016.

También los días 23 y 24 hay otra novedad respecto a la última actualización que os pasé. Se trata de la participación de nuestro compañero Gabriel Bergel, CSA de ElevenPaths, en la agenda del segundo día del Foro de Medios de Pagos en Bogotá, donde hablará de cómo se atacan los Point of Sales. Algo de lo que ya habló en una de las ElevenPaths Talks Season 2.

Figura 3: Fraude en PoS

El día 24 tenemos otro cambio, ya que la sesión de la ElevenPaths Talk gratuita que damos los jueves por la tarde, será sobre Conceptos TOTP, para aprovechar y explicar el funcionamiento de los sistemas OTP, TOTP y Cloud TOTP. Con ella nuestro compañero Claudio Caracciolo explicará cómo funcionan las protecciones de Latch Cloud TOTP que puedes poner en los servicios de Internet.

El día 25 hay otra actividad nueva, ya que tendrá lugar el congreso en Madrid de Lo que de verdad importa, donde esta vez voy a participar. Es un evento muy especial y durará todo el día para hablar se superación personal, de valores y de cosas que realmente importan en la vida de las personas.
Ese mismo día comienza la SEC Admin en Sevilla, tal y como estaba previsto, con todos los ponentes anunciados. Además, como ya os dije, ese día podréis adquirir los libros de 0xWord durante el evento para aprovechar la ocasión.

Por último, para terminar el mes de Noviembre, el día 30 dará comienzo el Curso Online de Auditorías Móviles que imparte durante 6 semanas The Security Sentinel. En este curso, focalizado en hacer auditorías de seguridad y análisis forenses a dispositivos smartphone y apps móviles, se entrega nuestro nuevo libro de Hacking iOS: iPad & iPhone (2ª Edición).
Y esto es todo lo que nos deparará por delante lo que nos queda del mes de Noviembre, que como podéis ver ha cambiado mucho con respecto a la última información que os dejé. Nos vemos en aquellas actividades en las que participéis.

Saludos Malignos!

lunes, noviembre 21, 2016

Fortifica tu SSH para evitar un SSHowDowN Attack!!!

El pasado mes de octubre salió a la luz una nueva debilidad en SSH y las configuraciones por defecto que millones de dispositivos IoT tienen que fue aprovechado por la botnet Mirai. Este fue uno de los vectores que se han utilizado en diferentes ataques DDoS alrededor del mundo y que ha llegado a afectar a empresas tecnológicas tan importantes como Twitter, WhatsApp o Netflix. Hoy en día, se siguen investigando todas las causas del incremento de los ataques en los que se utilizan dispositivos IoT. Una de las vías utilizadas ha sido la debilidad conocida como SSHowDown Proxy.

Figura 1: Fortifica tu SSH para evitar un SSHowDowN Attack!!!

¿Dónde se encuentran los servicios SSH? La respuesta es fácil de entender, en la mayoría de los sistemas conectados a Internet y, es más, en la gran mayoría de los dispositivos IoT. El servicio de SSH nos lo encontramos en televisiones, circuitos de televisión, routers, vídeos, neveras, puntos de acceso y un largo etcétera de dispositivos.

Figura 2: SSHowDownN Proxy

La debilidad de las configuraciones de estos servicios críticos hace que SShowDown Proxy pueda ser utilizado para enviar tráfico a través de dichos dispositivos. El problema radica en los dispositivos y en su configuración por defecto. En como salen de las fábricas y, por supuesto, en la dificultad que tendremos para actualizar firmwares a posteriori. El artículo de hoy no pretende hacer un repaso a SSHowDown, ya que para ello tenemos un artículo interesante de la gente de Akamai, donde se explica en detalle la vulnerabilidad y el riesgo. Aunque a modo de resumen, debemos tener en cuenta:
• Siempre cambiar configuración por defecto del servicio. Por ejemplo, no utilizar contraseñas por defecto, sobretodo en dispositivos conectados a Internet. 
• No permitir el reenvío de tráfico TCP, es decir, directiva del fichero sshd_config AllowTcpForwarding a “No”. 
• Configurar reglas de tráfico entrante en el firewall para prevenir acceso a SSH en dispositivos IoT. Esto se puede considerar. 
• Considerar reglas salientes en el firewall para prevenir la creación de túneles. 
• Deshabilitar el servicio SSH a no ser que sea absolutamente necesario. 
• Autenticación basada en clave pública en entornos críticos. No permitir usuario y contraseña.
En el artículo de hoy, queremos hablar de una herramienta que debe ser una obligatoria de uso en los equipos de pentesting, y sobre todo en las pruebas de la gente de seguridad que podemos encontrar en un equipo de QA. Se debe revisar que las configuraciones, los algoritmos y las implementaciones utilizadas sobre los dispositivos que salen son seguras.

SSH Audit

Hace unos meses hablamos de herramientas que automatizan la auditoría básica sobre un sistema, una serie de verificaciones que permiten ver potenciales fallos de configuraciones o de utilización de software obsoleto. Esta herramienta que podíamos lanzar sobre sistemas GNU/Linux se llamaba Lynis como parte de un proceso completo de fortificación de servidores GNU/Linux, y que permitía hacer ciertas labores de auditoría sobre el sistema.

Figura 3: SSH Audit en GitHub

En esta ocasión, ssh-audit nos permite hacer la auditoría y pasar un listado de buenas prácticas de configuración e implementación sobre un servicio SSH. La herramienta ssh-audit puede encontrarse en su Github. Las verificaciones, que a día de hoy, se encuentran disponibles en la herramienta son:
• Soporte para protocolo 1 y 2 de SSH. Se puede forzar a la herramienta a intentar conectar a través de la versión 1 del protocolo, lo cual no es seguro. 
• Banner Grabbing e identificación de dispositivo y software. Además, de verificar la compresión. 
• Recopilación del intercambio de claves, host-key, evaluación del cifrado y de los algoritmos que se pueden utilizar. 
• Proporciona información sobre la calidad del algoritmo disponible, indicando si se debe eliminar, si no está disponible, si es débil, si no es seguro, etcétera. 
• Proporciona información sobre el listado de CVE relacionados, como el Time-Based Info Leak que permite enumerar usuarios en servidores SSH.
• Analiza las implementaciones más comunes como son OpenSSH, Dropbear SSH y libssh.
Lanzamos la herramienta para que conecte a través del protocolo versión 2 de SSH y podemos ver cómo se empiezan a lanzar diferentes pruebas basadas en lo enunciado anteriormente:

Figura 4: Ejecución de SSH Audit

Los apartados que la herramienta va cubriendo con las diferentes pruebas son:
• Información general sobre la aplicación, dispositivo o sistema operativo. 
• Algoritmos del intercambio de clave. Como puede verse en la imagen anterior, la herramienta comienza a darnos información de que algoritmos debemos mirar con lupa, para ver si deberíamos quitarlos de lo que ofrece nuestro servicio. 
• Algoritmos de Host-Key. Como se puede ver en la imagen, nos indican si estamos utilizando pocos bits.
Figura 5: Análisis de sistemas criptográficos
• Calidad de los algoritmos de cifrado que se pueden utilizar con el SSH. Además, nos indican información tan interesante como a partir de que versión se dejó de utilizar el algoritmo. 
• Recomendaciones sobre los algoritmos que nuestro servicio está ofreciendo. En este caso, la versión de OpenSSH es la 6.6.1 y podemos obtener un listado de cosas a mejorar.
Figura 6: Recomendaciones de seguridad para este SSH

Las opciones de la herramienta permiten configurar el nivel de verbose que podemos lograr, mediante el uso del parámetro -v o –verbose, podemos indicar el nivel de información (info, warn o fail) con el parámetro –level, el puerto en el que se encuentra el servicio, si el servicio se encuentra en IPv4 o IPv6, lo cual es algo interesante para los servicios que están ya en el direccionamiento IPv6. A continuación, os dejamos una imagen dónde podemos ver la ayuda de la herramienta.

Figura 7: Ayuda de la herramienta SSH Audit

Esta herramienta es realmente útil para los equipos de seguridad de las organizaciones, para la gente de IT y los de QA, ya que en estos ámbitos cada uno necesitará monitorizar la seguridad de los servicios SSH antes de que vayan a ser publicados, comprobar la seguridad de terceros o probar los propios desarrollos y dispositivos que se realizan “in house”. Herramienta que debemos tener a mano, ya que nos permitirá auditar un servicio crítico y de actualidad hoy día.

Figura 8: Configuración de Latch para SSH

Por último, recuerda que si eres responsable de un servicio SSH lo suyo es que pongas medidas extras en la protección de los usuarios. Puedes configurar Latch para SSH o Cloud Latch TOTP para SSH tal y como se explican en esos artículos, y si además te gustan las protecciones de portknocking, puedes configurar un sistema basado en Latch para que el puerto de tu servidor SSH no sea tan fácil de localizar.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell