27 feb 2014

ERD Commander MsDaRT




Dentro del Microsoft Optimization Pack for Software Assurance  (MDOP https://www.microsoft.com/en-us/windows/enterprise/products-and-technologies/mdop/default.aspx) nos encontramos con una gran suite de herramientas para el diagnóstico y recuperación de sistemas Windows. MsDART, como lo han llamado, es una mejora del antiguo ERD Commander de Winternals, empresa que Microsoft compró en 2006.

Este toolkit basado en un liveCD, permite a un administrador de sistemas o técnico, recuperar o trastear con el sistema operativo, ya sea con una de las muchas herramientas que trae incorporadas o bien desde una consola de comandos, con la que podremos modificar, crear o borrar ficheros sin ningún tipo de limitación. Al instalarlo en el equipo, podremos personalizar nuestra ISO seleccionando las herramientas que queremos incluir y añadiendo drivers específicos si fueran necesarios.



Al arrancar el equipo desde MsDART Boot CD nos encontraremos con una pantalla similar a esta. En este primer menú disponemos de varias opciones para diagnosticar y restaurar el sistema así como la consola de comandos. Como es lógico para restaurar el equipo ya sea mediante un punto de restauración o bien un backup completo deberemos tener esa copia en un disco duro, dispositivo extraíble o dispositivo de red accesible desde el ordenador. 

Aunque esas primeras opciones sirven para reparar o diagnosticar nuestro ordenador, las opciones realmente interesantes y jugosas se encuentran en la última opción, Microsoft Diagnostic and Recovery Toolset.



Dentro de este nuevo menú nos encontramos con las siguientes herramientas:

  • ERD Registry Editor
  • Locksmith
  • Crash Analyzer
  • File Restore
  • Disk Commander
  • Disk Wipe
  • Computer Management
  •  Explorer
  • Solution Wizard
  • TCP/IP Config
  •  Hotfix Uninstall
  • SFC Scan
  • Search
  • Standalone system Sweeper

Si bien es cierto que existen muchas otras distribuciones LiveCD que nos permiten editar y trastear con un sistema operativo Windows, no está de más conocerla y saber qué podemos hacer con ella por si algún día nos es de utilidad. Por supuesto existen muchas otras soluciones (sobretodo basadas en unix) y probablemente más productivas para trastear entre los archivos del disco o realizar un escaneo en busca de virus, pero quizás no hay tantas opciones para editar el registro de Windows o restaurar el sistema a un punto anterior creado previamente desde Windows.

Personalmente me gusta por la sencillez que tiene y la posibilidad de tocar el registro. Aunque también tiene algunos contras… el explorador de archivos suele quedarse colgado si tratamos con directorios repletos de ficheros y no siempre reconoce los medios extraíbles. Aún así, creo que es bastante útil y nunca está de más llevarla en nuestro kit de herramientas.

Artículo cortesía de Jordi Vázquez (@jordisk)

26 feb 2014

Reto de seguridad: Concurso de ISACA

El otro día hablando con mi compañero de trabajo y  amigo Rafael Sánchez me comentó esta iniciativa que ha tenido ISACA dentro de su ámbito de los jóvenes. El concepto, el concurso en sí, el objetivo y también, porque no decirlo, los premios que se dan me parecen interesantes para la comunidad de la seguridad. Por ello no he dudado en difundir el mensaje de Rafa y los jóvenes de ISACA. Toda la información del concurso en el sitio web de los jóvenes de ISACA

El Comité Jóvenes Profesionales de ISACA Madrid se enorgullece de presentar la primera edición del Concurso de temática de Auditoría, Seguridad Informática y Gobierno de las TIC, orientado a jóvenes (profesionales y no-profesionales) menores de 35 años. Este concurso tiene como objetivo principal incentivar la innovación y fomentar la cultura de los mencionados aspectos entre jóvenes menores de 35 años.

ISACA Madrid anima a los participantes a presentar trabajos relacionados con Auditoría, Seguridad Informática y Gobierno de las TIC, tales como trabajos de divulgación, estudio/análisis de actuales amenazas, desarrollo de herramientas, análisis de nuevas técnicas de ataques en diversos entornos, etc.

PARTICIPA

"Para participar en el evento, los candidatos deberán acceder al formulario de participación y seguir las instrucciones, antes del 15 de abril de 2014.

Se notificará a los autores mediante un correo electrónico si su propuesta ha sido aceptada o rechazada, en un plazo no superior a 10 días laborales.

Un Jurado compuesto por reconocidos expertos del sector determinará los proyectos elegidos para entrar en concurso. Los participantes cuyos proyectos hayan sido seleccionados por el Jurado procederán a enviar sus propuestas finales facilitando la mayor cantidad de información posible, de nuevo a través de la plataforma habilitada (enlace).

PARTICIPANTES

Podrá participar en el concurso cualquier persona con edad comprendida entre 18 y 35 años residente en España. El concurso está abierto tanto a profesionales, estudiantes, aficionados, y a cualquier persona que le apasione el mundo de la Seguridad, Auditoría y Gobierno de las TIC.

PREMIOS Y RECONOCIMIENTO

El ganador del concurso obtendrá un premio en metálico de 1.000 €, además de un curso completo de preparación a una de las certificaciones de ISACA (CISA, CISM, CGEIT, CRISC o COBIT5) más el pago de la tasa de examen. Habrá finalistas y menciones especiales que obtendrán reconocimiento especial por parte de reconocidos profesionales de la industria de la Seguridad Informática.

EVENTO

ISACA Madrid realizará un Evento público de primer nivel donde se hará público el fallo del Jurado. En este evento se presentará el proyecto ganador del concurso así como los proyectos finalistas. Los participantes finalistas y el ganador presentarán su proyecto ante el público asistente al evento. Este evento tendrá lugar la última quincena de junio de 2014, en Madrid.

BASES

Puedes consultar las Bases del I Reto de ISACA Madrid para Jóvenes Profesionales (PDF).

25 feb 2014

Promociona tu blog - Parte 3

Buenas a todos, en el post de hoy os traemos la tercera parte de nuestra cadena "Promociona tu blog", en la que ayudamos a nuevos bloggers del mundo de la seguridad a dar a conocer sus nuevos rincones de la red, donde comparten con el resto del cibermundo sus investigaciones en el campo del hacking ético.
Hoy os traemos el blog "The Hacker Way" (http://thehackerway.com), de Daniel, y del cual nos informó con el siguiente email:

Hola!
Antes que nada, quería felicitaros por el estupendo trabajo que estáis realizando en flu-project.com, es un sitio realmente interesante (y sobre todo útil) el que estáis llevando a cabo y espero que siga siendo así por mucho más tiempo.
Actualmente tengo un blog que aunque lleva algún tiempo, creo que le falta un poco más de difusión para que llegue a más gente interesada en la seguridad informática, he visto vuestra iniciativa sobre "promocionar blogs" y por ese motivo os escribo este correo. El sitio web del que os hablo es http://thehackerway.com y allí redacto artículos técnicos sobre seguridad y hacking en general. Actualmente se esta comenzando a publicar una serie de vídeos sobre hacking con python y explotación de software vulnerable que creo que pueden ser útiles para otros profesionales.

Muchas gracias,
Saludos.
 
El blog de Daniel es altamente recomendable, publica artículos técnicos de exploiting, python-hacking, etc., acompañados de videos que facilitan su comprensión:


Otro blog para vuestro RSS :)
 
Saludos!

24 feb 2014

Python más allá con The Hacker Way

En los últimos años, la comunidad de Python ha crecido exponencialmente y  cada vez son más las personas que deciden utilizar Python para el desarrollo de sus proyectos. Sin embargo, no solamente los desarrolladores de software valoran muy positivamente este potente lenguaje de programación, también lo hacen profesionales y entusiastas de la seguridad informática en todo el mundo. Un claro ejemplo de este hecho es la cantidad proyectos, herramientas y librerías que se han desarrollado en Python con un alto nivel de madurez y estabilidad. El objetivo de este corto artículo, es simplemente listar algunas de las librerías y herramientas escritas en Python que han tenido un fuerte impacto en la forma en la que hoy en en día, se desarrollan las herramientas enfocadas a la seguridad informática.

ENTORNOS WEB

1.                  urllib, urllib2, httplib, httplib2, urllib3 y requests:
Librerías que permiten realizar conexiones a servidores HTTP utilizando los métodos disponibles en el protocolo. Cuando hablamos de urllib, urllib2 y httplib, nos encontramos con librerías que han sido utilizadas ampliamente por una enorme cantidad de proyectos, sin embargo en la actualidad, la librería requests implementa mejoras sustanciales para crear clientes HTTP, soportando íntegramente las características que deben soportar tanto clientes como servidores que implementan el protocolo HTTP1.1. Ademas, se trata de una librería que es fácil de usar para cualquier desarrollador, requiere muy pocas lineas de código y es compatible con las versiones de Python 2 y 3.

urllib:                          http://docs.python.org/2/library/urllib.html
urllib2:                        http://docs.python.org/2/library/urllib2.html
httplib:                                    http://docs.python.org/2/library/httplib.html
httplib2:                      https://github.com/jcgregorio/httplib2
urllib3:                        http://urllib3.readthedocs.org/en/latest/
requests:                     http://docs.python-requests.org/en/latest/


2.                  Mechanize, Selenium Python Binding:
Librerías útiles cuando necesitamos crear un programa que pueda interactuar con un sitio web del mismo modo que lo hacemos con un navegador web. Mechanize y Selenium son las principales librerías  para llevar a cabo la interacción con sitios web ya que permiten activar botones, recuperar datos de formularios, mantener el estado de las cookies enviadas por el sitio web, activar enlaces, seguir redirecciones, entre otras cosas.

Mechanize:                 http://wwwsearch.sourceforge.net/mechanize/
Selenium:                    http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html


3.                  BeautifulSoup:
XML, JSON, HTML y prácticamente todos los contenidos web, son elementos que siguen un esquema concreto y que deben ser parseados para poder extraer información útil. BeautifulSoup en una reconocida librería en Python que permite analizar contenidos web y generar una estructura de datos fácil de manejar por un desarrollador. Altamente recomendada para realizar tareas de extracción de datos.

BeautifulSoup:           http://www.crummy.com/software/BeautifulSoup/


4.                  Scrapy:
Framework que permite realizar labores de web crawling sobre sitios web y extraer datos estructurados de las páginas analizadas.

Scrapy:                       http://scrapy.org/


5.                  Django:
Django es uno de los frameworks para desarrollo web más conocidos en el mundo de Python. Cuenta con múltiples herramientas y librerías que permiten el desarrollo ágil de sitios web robustos y escalables. Muchas de las utilidades incluidas en este framework, son utilizadas por herramientas enfocadas a la seguridad informática.

Django:                       https://www.djangoproject.com/


ENTORNOS DE RED

6.                  Dpkt, Scapy
Librerías que permiten la captura y el tratamiento de paquetes en un segmento de red. Se utilizan en herramientas enfocadas a la detección de intrusos y maleware, así como también en herramientas que permitan automatizar ataques contra ordenadores conectados en un segmento de red. Scapy es probablemente, la librería más utilizada dado que soporta una considerable cantidad de protocolos de red y cuenta con una API que es fácil de utilizar.

Dpkt:                          http://code.google.com/p/dpkt/
Scapy:                         http://www.secdev.org/projects/scapy/


7.                  Twisted:
Framework que permite implementar soluciones de red robustas utilizando Python. Con twisted es posible crear clientes, servidores y librerías que sigan con los estándares de protocolos de red tales como HTTP, SMTP, POP, IMAP, FTP, SSL/TLS, entre otros.

Twisted:                      https://twistedmatrix.com/trac/


8.                  FTPLib, SMTPLib, Paramiko:
Protocolos como FTP, SMTP o SSH evidentemente también tienen cabida en Python. En este caso, las librerías FTPLib (soporte clientes/servidores FTP), SMTPLib (soporte clientes/servidores SMTP) y Paramiko (soporte clientes/servidores SSH) implementan todas las características indicadas en cada uno de los protocolos mencionados.

FTPLib:                      http://docs.python.org/2/library/ftplib.html

SMTPLib:                   http://docs.python.org/2/library/smtplib.html
Paramiko:                   http://www.lag.net/paramiko/

FUZZING, MALEWARE ANALISYS Y REVERSING

9.                  Cuckoo:
Se trata de un sandbox que permite analizar maleware, exploits y virus en un entorno virtual independiente y separado de otras máquinas en el segmento de red, con lo cual es posible monitorizar elementos potencialmente peligrosos de una forma segura.



10.              Sulley Framework:
Framework destinado al desarrollo de casos de prueba (Fuzz Files) para la detección de vulnerabilidades en Software. Permite la ejecución de una máquina virtual que funciona como víctima y una máquina que funciona como atacante. En la máquina de la víctima, permite iniciar monitores de procesos y red, con el fin de detectar y registrar cualquier tipo de vulnerabilidad, así como reiniciar el software objetivo de forma automática para continuar con la ejecución de las pruebas.
11.              PyDBG:
Librería que permite implementar procesos de depuración y “hooking” de funciones. Es posible utilizar esta librería para detectar de forma automática, cualquier tipo de violación de acceso o fallo general sobre el programa analizado. Del mismo modo que cualquier depurador de software (como por ejemplo, WinDBG o Immunity Debugger) permite establecer puntos de interrupción ante un evento determinado.

PyDBG:                                             https://github.com/OpenRCE/pydbg


12.              Python API Immunity Debugger.
Immunity Debugger es un potente depurador para sistemas windows que permite, entre otras cosas, crear scripts en Python que permitan automatizar muchas de las tareas de depuración que frecuentemente se deben llevar a cabo de forma manual. Un ejemplo del uso de esta librería es el conocido script Mona.py desarrollado por el equipo de CoreLan.

Python API Immunity Debugger:     https://www.immunityinc.com/products-immdbg.shtml


13.              PyDASM:
Se trata de un wrapper de la librería LibDasm que permite desensamblar programas y recuperar los opcodes correspondientes a un programa de forma automatizada.

PyDASM:                                          https://code.google.com/p/libdasm/  


14.              PeFile:
Los ficheros ejecutables (.exe y .dll) en sistemas windows, siguen el formato PE (Portable Executable) que permite la compatibilidad del ejecutable en cuestión sobre diferentes versiones de Windows. Esta librería incluye todos los elementos necesarios para extraer información sobre cada una de las secciones incluidas en un fichero con formato PE.

PEFile:                                               https://code.google.com/p/pefile/


15.              PaiMei:
Framework  para realizar tareas de ingeniería inversa que esta conformado por  varios componentes extensibles (entre los que se incluye PyDBG) y que permite la detección de vulnerabilidades y el desarrollo de pruebas de concepto rápidas. 
 
PaiMei:                                               http://www.openrce.org/downloads/details/208/PaiMei


Se trata de una lista no exhaustiva de librerías, frameworks y herramientas que son ampliamente utilizadas en proyectos de software enfocados a la seguridad informática. La intención de este articulo ha sido simplemente enumerar dichas librerías y explicar brevemente en qué consisten y su importancia.
Estas y muchas otras, las puedes conocer en detalle en la serie de vídeos sobre Hacking con Python que comienzan desde aquí: http://thehackerway.com/2014/02/04/hacking-con-python-parte-1-banner-grabbing/

Saludos y Happy Hack!


Autor: Adastra
Blog: http://thehackerway.com

23 feb 2014

Informe Flu - 164


Buenas a todos, como cada domingo compartimos con vosotros nuestros “Enlaces de la semana”: 

Lunes 17 de Febrero
Martes 18 de Febrero
Miércoles 19 de Febrero
Jueves 20 de Febrero
Viernes 21 de Febrero
Sábado 22 de Febrero
  • Ayer estuvimos junto con Angelucho, Blanca Tulleuda y Josep Albors en Alcorcón, impartiendo unas mini-jornadas sobre Seguridad en la red para padres.Una experiencia muy gratificante, acercándoles Internet y ayudandoles a conocer de antemano los peligros que encierra para que puedan evitarlos.

Saludos!

22 feb 2014

Hoy volvemos al cole con X1RedMasSeguridad

Buenas a todos, hoy a las 17:00h nos vamos parte del equipo de X1RedMasSegura, encabezado en esta ocasión por nuestros compañeros de fatigas, Angelucho, Blanca Tulleuda y Josep Albors, al colegio San Juan de Mata de Alcorcón (Madrid), para impartir unas Jornadas de concienciación sobre seguridad en Internet para los padres de los alumnos del colegio.

A continuación os dejo con la agenda de las jornadas:

17:15
  • Ponente:  Josep Albors.
  • Duración: 30 minutos.
  • Título: Ordenador infectado. Beneficio asegurado.
  • Descripción: A pesar de que se ha ido concienciando a los usuarios sobre lo peligrosas que son las amenazas informáticas, aun hay mucha gente que no se preocupa en proteger sus sistemas porque no consideran que sean un objetivo lo suficientemente atractivo para los cibercriminales. En esta charla veremos que se puede hacer con un ordenador infectado, sin importar que se trate de una multinacional o de un usuario medio para que nos concienciemos de una vez de que se pueden obtener muchos y valiosos datos y recursos hasta del ordenador considerado como más insignificante.
17:45
  • Ponente:  Juan Antonio Calles.
  • Duración: 30 minutos.
  • Título: Claves para una navegación segura.
  • Descripción: Durante la ponencia se analizarán algunas de las claves más importantes para navegar seguro en Internet, a través de ejemplos y con varias experiencias de casos reales.
18:15
  • Ponente: Ángel Pablo Avilés.
  • Duración: 30 minutos.
  • Título: Menores y su cibermundo.
  • Descripción:
    • Nociones generales sobre Internet y los menores.
    • Bondades y Virtudes de la red en su cibermundo.
    • Peligros que les acechan y como identificarlos.
    • El Ciberacoso en el ámbito escolar (Ciberbullying, sexting, ciberbaiting)
    • El Grooming ( Fases y consecuencias)
    • Perfil de un ciberdepredador
18:45
  • Ponente: Blanca Tulleuda.
  • Duración: 30 minutos.
  • Título: Soy feo, fuerte y formal.
  • Descripción: El concepto de familia es actualmente amplio y no existe escuela de cómo educar a nuestros hijos en esta nueva sociedad donde el estrés, la globalización, y la rutina pueden hacernos perder el foco sobre el por qué, cuándo y cómo usan y se enfrentan al mundo digital y virtual nuestros pequeños. Debemos fortalecer el compromiso como familia con la escuela y la sociedad también en lo relativo al uso de las nuevas tecnologías. Y nunca parar de esforzarnos por aprender esto que para nosotros es solo una herramienta en un ordenador, y que para ellos es su forma de vida: viven conectados. Nuestra experiencia vital como adultos les ayudará a conocer y evitar caer en los peligros de la Red que les acechan constantemente. Y que lo evitemos garantizara que le saquen el mayor provecho de uno de los mayores “inventos” de la historia de la humanidad. Recorramos este camino en una breve charla.
19:15
  • Turno de preguntas
En principio la entrada al evento está limitada exclusivamente a los padres de los alumnos, porque las plazas del salón de actos del colegio son escasas, pero si alguno tenéis mucho interés en asistir podemos intentar haceros un hueco (aunque se de pie :) )

Saludos!

21 feb 2014

Publicada la agenda final para el URJC TechFest 2014


Buenas a todos, ya ha sido publicada la agenda final para el evento URJC TechFest 2014. Serán dos días muy intensos de interesantes charlas relacionadas con el mundo de la robótica, la seguridad, las impresoras 3D y el Internet de las cosas.

Por parte de Flu Project estarán Pablo y nuestro amigo y compañero de oficina Carlos, para hablar sobre la seguridad en el Internet de las Cosas.

A continuación os dejamos con la agenda final del evento:

--- Miércoles 26  ---
  • 09:30 - Presentación
  • 10:00 - Investigador del Datcia : Introduccion a las placas de Desarrollo
  • 10:50 - Break
  • 11:00 - Carriots , el internet de las cosas
  • 12:00 - //Descanso
  • 12:10 - Impresoras 3D - BQ**
  • 13:00 - Break
  • 13:10 - Hardware libre
  • 14:00 - //Comida
  • 16:00 - Francisco Javier Zorzano : Telefonica I+D
  • 16:50 - Break
  • 17:00 - Cooking Hacks - e-Health
  • 17:50 - //Descanso
  • 18:10 - Proyectos de Sistemas Empotrados..

--- Jueves 27 ---
  • 10:00 - David rios ,Introduccion a la robotica
  • 10:50 - Break
  • 11:00 - Robots - BQ **
  • 12:00 - //Descanso
  • 12:10 - RoboCup
  • 13:00 - Break
  • 13:10 - Robo Earth Universidad de zaragoza
  • 14:00 - //Comida
  • 16:00 - Masteres URJC
  • 16:50 - Break
  • 17:00 - Personal Robotics como construir un robot
  • 17:50 - //Descanso
  • 18:10 - Robotica Aerea : Drones
  • 19:00 - Break
  • 19:10 - Flu Project - IoT: Hello World! bye privacy?
  • 20:00 - Acto de clausura


El evento está patrocinado por empresas de la talla de bq, cooking hacks o nuestros amigos de Carriots. Si tienes oportunidad de asistir no te lo pienses, la entrada es gratuita, pero las plazas son limitadas.

Saludos!



20 feb 2014

Simulacro de: Ataque Distribuido de Denegación de Servicio (DDoS) mediante reflección NTP, desde y contra una red científica

INTRODUCCION

Uno de los puntos débiles en la securización y monitorización de redes es  la aparición de alguna vulnerabilidad en nuestra infraestructura vinculada al protocolo UDP, ó un servicio que se sirva de él para la capa de transporte, pues es complicada la detección. Esto es debido a: 

1. Como bien comentó Ramón Pinuaga de s21sec [1],  el proceso de funcionamiento clásico de un scanner de red se fundamenta en: 
  • Explorar los puertos abiertos.
  • Determinar el tipo de servicio y la versión del software utilizado (normalmente a través del banner).
  • Determinar si el servicio o la versión del software está afectado por alguna vulnerabilidad.
  • Presentar un informe de lo encontrado.
Y frente a este modo de funcionamiento encontramos la oposición por la ambigüedad con la que responde UDP (“ICMP_PORT_UNREACHABLE”), para los estados filtrado y cerrado, y la dificultad que implica para la identificación que solo responda a peticiones especificas del protocolo de aplicación específico que escucha en él.

2. Por otro lado el análisis del tráfico UDP, del rango de direcciones públicas en una red científica, como la que vuelve a ocupar mi jornada laboral, omitiendo la restricción que he comentado en otras ocasiones de lo comprometido de analizar ó no el tráfico de los usuarios, es que alcanza un volumen ingente.

Coincido con Ramón Pinuaga en que algunos, entre ellos administradores en mi opinión, piensen: "bueno, los servicios UDP son marginales". En mi experiencia UDP es la chica fea del baile frente a TCP, y es posible que no esté en el recuerdo de los administradores de redes al establecer las reglas de configuración del cortafuegos en los routers, o de los administradores de sistemas al securizar las configuraciones de los servicios que lo utilizan para transporte.

Pero si algo me enseñan los atacantes en el día a día, es que siempre se nos pasa algo hermosamente simple  y elemental de explotar por alto. Porque la belleza en la seguridad informática, desde mi punto de vista, no está siempre en explotar una enrevesada vulnerabilidad a través de un puerto, haciendo uso de un desbordamiento de pila o de buffer en el servicio que se comunica a través de él, originado por estar implementado con una librería que usa un vector estático en la línea 2 millones de su código, y oportunamente lanzado por el “super-usuario” durante el arranque. Cuando un usuario con conocimientos básicos se descarga un script kiddie, lo lanza con una simple instrucción, a ser posible con los mínimos parámetros, y “arde Roma”, esquivando las configuraciones de cortafuegos y securización del sistema, ahí es cuando me quito el sombrero y solo queda decir “touché”.
Por eso y motivado también por el artículo [5] de Pablo González @pablogonzalezpe, que dio la casualidad que se publicó mientras redactaba estas líneas, he decidido simular y comentar uno de los ataques más interesantes que ocupan algunas de las incidencias de seguridad que he llevado actualmente. Esto es la realización de denegación de servicios a terceros empleando equipos vulnerables de la red R.I.C.A a través del servicio NTP, y que por ir sobre UDP, ha pasado bastante desapercibida su detección.

¿QUE ES NTP?

Es un servicio y sirve información temporal, ¿fácil verdad?

¿Y dónde lo podemos localizar y con qué fin último?, pues por ejemplo:

1. En un sistema multiservidor, para no configurar a mano la hora del sistema de cientos de equipos, lo cual sería una locura. Además es interesante que dichas horas, no solo sean aproximadas a la real, sino que estén sincronizadas de cara a la coherencia en los logs generados a partir de distintas fuentes. O dicho de otra manera, en una “granja de servidores” para dar servicio web, o un cluster para dar servicio de supercomputación al personal investigador.

2 En servidores dedicados a virtualización, para sincronizar el anfitrión y los huéspedes. O dicho de otra manera, en servidores corriendo VMware esxi/esx para dar servicio de cloud o recursos virtualizados de otra naturaleza.

3 En routers empresariales, con la finalidad de obtener coherencia en la monitorización de tráfico de red. O dicho de otra manera, las gateway que unen entre sí y dan salida al exterior  a las distintas subredes.

4 En las transferencias de bases de datos de aplicaciones multired. O dicho de otra manera en una aplicación de gestión de recursos de personal que utilice el personal administrativo.

Como podemos ver, si nos ponemos a pensar, este servicio está muy presente en grandes redes para tareas monitorización, coordinación y configuración, pero curiosamente pasa desapercibido junto con el resto del tráfico que depende de UDP como protocolo de transporte.

FUNDAMENTO DE LA DENEGACION DE SERVICIO DISTRIBUIDA MEDIANTE REFLECCIÓN

Vamos con la “chicha”, y veremos lo tremendamente sencillo y peligroso del asunto. Hay tres términos claves en la referencia de estos ataques. Denegación de servicio, Reflección y Distribuida

Denegación de servicio: El fundamento es simple, un productor  de respuestas es colapsado por uno o varios consumidores (productores de preguntas). Si la relación mínima productor:consumidor para llegar al colapso es de 1:1, ya estamos ante una vulnerabilidad realmente peligrosa. 

En este caso la trama/pregunta de origen, da lugar a miles de tramas/respuestas, sin control en número de  peticiones de servicio e identidad de quien la solicita dichas respuestas.

El “principio activo” en concreto es el comando monlist, presente la versión 4.2.7 y anteriores de NTP. Este nos devuelve la lista de los 600 últimos hosts que conectaron con y el servicio.

 
Fig1: Salida del comando monlist al servicio NTP.

Si hacemos una prueba con wireshark podemos observar la relación entre el trafico UDP enviado y recibido.

 
Fig2: La trama 2 (pregunta) tiene un tamaño de 234 bytes, frente a 43958 bytes de la respuesta, de un total de 44192 bytes de tráfico generado por el dialogo UDP. Esto es una relación de 1 frente a 187.
 
Llegado a este punto, el ataque empieza a ser interesante, pero no deja ser una simple denegación de servicio, le falta cierta “gracia”. Por ejemplo:
  • La víctima puede “ver” directamente al atacante y se registran comunicaciones que vinculan atacante y víctima.
  • Estamos limitados a que la víctima este sirviendo NTP.
  • Sino necesitamos la colaboración de varios atacantes, es por lo que comentamos del tamaño de la respuesta. Esto no suele ser lo habitual.
Reflección y Distribuida: Varias respuestas de fuentes distintas, inciden en un solo punto, que para el caso no es quien realizo las preguntas (atacante), si no por quien se hizo pasar el atacante (víctima) falsificando su identidad, hizo “spoofing”. Es decir se busca proyectar la denegación de servicio utilizando de pasarela y amplificadores de tráfico a los servidores NTP, en equipos  no relacionados directamente con el servicio. Con el siguiente dibujo queda más claro, y ya de paso ejemplarizamos los escenarios del experimento que vendrá a continuación.

 Fig3: Escenarios 1,2 y3 planteados para el ejercicio de simulación.
 
Todo lo anterior unido es una bomba de relojería y si no está familiarizado con la seguridad en equipos y redes, en el análisis de riesgos al final lo comentaremos.

ACTORES DEL SIMULACRO

Atacante


Servidor NTP implicado en la denegación de servicio (150.214.x.y visto desde fuera).

~# nmap -sU -sS –A 150.214.n.m



MATERIAL BASICO

Para llevar a cabo la simulación del ataque vamos a necesitar de un

a lista de equipos susceptibles a ser empleados para el ataque de reflección NTP y una herramienta que nos facilite la explotación.

A. Las máquinas que utilizaremos para la reflección las encontraremos mediante nmap. Nmap tiene vida más hallá del escaneo de puertos y permite utilizar scripts desarrollados para el NSE (Nmap Scripting Engine), en este caso nos permite consultar la existencia del comando monlist en NTP y que nos devuelve.

~# nmap -sU -pU:123 -Pn -n --script=ntp-monlist 150.214.0.0/16
 
 
B. El método anterior requiere de tiempo y recursos, es elegante pero aún se podría hacer más a nivel de usuario básico. Si no buscamos involucrar equipos de una procedencia concreta, servicios de registro de incidentes en seguridad mal planteados comparten y nos dan todo el material de manera extremadamente simple. Por ejemplo el de skial.com[2] con hosting en CloudFare[3].
 

 Fig3: La información sobre ataques interceptados debe ser manejada con cuidado, pues expone equipos explotables. 
 

HERRAMIENTA DE DENEGACIÓN DE SERVICIO
 
Ntpdos.py [4] es un script en python, obra de vpnboy, que nos permite lanzar el ataque de manera simple y muy efectiva. No voy a entrar a analizarlo en profundidad, pero si hay que mencionar que permite lanzar hebras, una por servidor NTP vulnerable, de una lista en un fichero de texto, y que envía en bucle una trama a medida, ensamblada mediante la librería scapy, para el caso, UDP con origen la ip “spoofeada” y de payload el comando monlist.



Fig4: La primera trama (pregunta), de “ntpdc –c monlist <ip>”, capturada con wireshark permite obtener el payload que utiliza ntpdos.py.

data = "\x17\x00\x03\x2a" + "\x00" * 4
#BUILD IT
packet = IP(dst=ntpserver,src=target)/UDP(sport=48947,dport=123)/Raw(load=data)
#SEND IT
send(packet,loop=1) 
 
SIMULACRO
 
Manos a la obra, vamos a entrar en acción y replicar y/o comentar cada uno de los escenarios.
 
Escenario1
 
El primer ataque simula un ataque ideal, desde fuera de la red R.I.C.A, a través de host internos y hacia una víctima interna.
 
 
Para este escenario no se observaba actividad alguna en el tráfico de la víctima. Probando con “hping3 --udp 150.214.x.y --spoof 150.214.n.m”, confirmamos del lado de la víctima, que los routers del camino hacen su trabajo y no llega tráfico “spoofeado” a ella. Mala suerte.
 
Escenario2
 
El segundo escenario es desde un atacante interno, usando para la reflección hosts internos y contra una víctima interna de la red R.I.C.A.
 
 
 
Este escenario es muy interesante, si bien los routers hicieron su trabajo y no permitieron directamente el ataque NTP, obsérvese el mensaje “Communication Administratively Prohibited”. Si se genera tráfico de red ICMP, aunque no para todos los atacantes implicados, avisando de que el destino es inalcanzable. Esto dependiendo del número de servidores vulnerables que empleemos para el ataque y su ancho de banda puede llegar a ralentizar la red y la víctima de manera indirecta por tráfico ICMP. Potencialmente es factible hacer una denegación de servicio.
 
Escenario3
 
El tercer escenario es un ataque desde fuera de la red R.I.C.A, valiéndose de servidores NTP internos, haciendo reflección contra un host externo a dicha red. La información es la capturada por la víctima externa y que denunció en su día el incidente al correo abuse de Red-Iris.
 
 
Se puede observar como el ataque recibido, desde el exterior, utilizando servidores NTP internos y con reflección hacia fuera alcanza a su objetivo (lo que recibe la victima son respuestas). Si echamos un vistazo con instrucción monlist al servidor NTP involucrado confirmamos que solo se realizaron consultas externas, algunas muy insistentes, como muestra el valor count de las estadísticas.
 
 
ANALISIS DE RIESGOS
El ancho de banda puesto a disposición para los usuarios de las redes científicas es bastante elevado. 
Esto implica que una vulnerabilidad presente en un equipo conectado a la red y que permita emplearlo dentro de un escenario de denegación de servicio, se convierta en un arma bastante eficaz.




Fig5: Esto es lo que uno de “la vieja guardia” me definió como “estar pinchado al cable gordo”.
 
No lo he mencionado anteriormente pero es posible dar una vuelta de tuerca más a los escenarios planteados en el simulacro. Imaginemos que  alguno de los equipos que dan servicio NTP tiene lo que comúnmete se llama una “pata” en una red privada o en la zona militarizada (MZ) de la red, y que este por descuido tuviera activado el forwarding entre patas de dicha máquina en las dos redes, esto supondría una fractura en la seguridad perimetral, y permitiría atacarla indirectamente mediante flooding NTP.

Finalmente comentar la problemática que suponen estos ataques no ya por lo peligrosos sino también porque implican a terceros, lo cual en la legislación de algunos países se contempla como delito, incluso acto de guerra si los objetivos son militares.

Me despido dando las gracias al “amo” Pablo (“La Maldad” mi jefe del trabajo) que me dio la oportunidad de seguir jugando en la “cueva” (#cosasDeLaCueva) junto con @rgonza y @lone_chanero.


Artículo cortesía de Juan Luis Martin Acal.