lunes, 31 de octubre de 2011

Wikileaks: Antecedentes históricos y alternativas actuales.


Hace unos días el famoso creador de Wikileaks,Julian Assange, informaba que esta organización suspendía sus actividades por la situación de asfixia financiera consecuencia del bloqueo desde empresas como Visa y Mastercard. Estamos ante el más reciente capitulo, aunque seguramente no el ultimo de la rocambolesca historia de Wikileaks. Una historia que incluye los problemas legales de su creador por supuestos delitos sexuales,  las criticas por parte de antiguos colaboradores,  o haber sido la motivación justificadora del cyberactivismo  de colectivos como Anonymous.

Muchos han sido los cambios desde que Wikileaks apareció en internet allá por el año 2006. En sus inicios Wikileaks era en un sitio editable, de ahí el “wiki” de su nombre. En su concepción original se suponía que los documentos filtrados debían ser analizados de forma colaborativa, poniéndolos dentro de contexto de forma similar a como se edita un artículo de la Wikipedia.

En este énfasis comunitario  Assange y sus colaboradores se mantenían en el anonimato. Si uno consultaba en la página de preguntas frecuentes quien estaba detrás de Wikileaks se encontraba con esto: “Wikileaks ha sido fundado por disidentes chinos, matemáticos y técnicos de empresas start-up, de los EE.UU., Taiwán, Europa, Australia y Sudáfrica”

Durante los primeros  años las actualizaciones eran regulares e incluían todo tipo de documentos, aunque acabaron sobresaliendo los de un carácter más técnico que afectaban a las fuerzas armadas norteamericanas. Estos documentos normalmente manuales de técnicas, tácticas y procedimientos carecían del impacto mediático de las revelaciones que posteriormente llevaron a Wikileaks a la fama, pero ofrecían un resquicio abierto a la operativa de las fuerzas armadas y agencias de seguridad norteamericanas.

Una gran duda sobre Wikileaks es como en los primeros tiempos cuando era una iniciativa escasamente conocida pudo hacerse con una masa crítica de documentos que le proporcionaron su tirón mediático inicial. Se llego a rumorear que durante los inicios Wikileaks hizo acopio de documentos secretos, no filtrados desde fuentes humanas internas, si no mediante una red de monitorización de nodos de salida de TOR. Según la teoría más extendida muchos documentos de este tipo son movidos por dicha red anonimizadora por hackers que buscan ocultar su origen (quien sabe si intrusos a sueldo del gobierno chino o de otros países) y así acababan en las manos de los colaboradores de Wikileaks. Según otros estudios Wikileaks también habría hecho uso sus inicios de la explotación de filtraciones involuntarias en redes P2P, una tema que ya hemos tratado desde este blog.

No sería hasta mucho tiempo después, noviembre de 2009, cuando aparecería en escena Bradley Manning y las filtraciones de alto nivel que dieron fama a Wikileaks, estas si con un importante calado político. Al tiempo tambien hubo cambios en la concepcion de Wikileaks del anonimato inicial se paso al protagonismo de sus creadores y especialmente de Julian Assange , mientras que de la idea de trabajo abierto y colaborativo se paso a la filtración selectiva a la prensa. Aunque esa es otra historia, una ampliamente conocida y documentada.

En la actualidad existen una serie de sitios, que comparten aquella visión inicial de Wikileaks y que son visita obligada para cualquier estudioso: Ya sea el simple aficionado a las temáticas de seguridad y defensa. Los responsables de oficinas de protección de material clasificado, por si alguno de los documentos bajo su control hubiera sido divulgado. O incluso el personal dedicado a tareas inteligencia o el avezado periodista, ante la posibilidad de la aparición de una ocasional pepita de oro informativa.

Estas alternativas actuales son fieles al concepto inicial de Wikileaks, alejadas de la imagen de lugar de filtración de documentos clasificados de alto nivel, hecho que ocurre solo muy ocasionalmente. Su actividad se nutre principalmente de la publicación de material se que se mueve en la frontera entre lo público y lo secreto. Datos que no se estima conveniente que sean accesibles al público general y sin embargo no son tan críticos como para ser clasificados. Este tipo de documentos  suelen estar marcados con identificadores como FOUO (solo para uso oficial), LE SENSITIVE (material sensible policial) o ser información propietaria de empresas de defensa. Estas páginas también exponen a la luz pública material en peligro de desaparecer de la red, de ser clasificada a posteriori,  o que en su opinión no ha recibido la atención adecuada.

Cryptome (www.cryptome.org) es un sitio web creado en 1996 por la pareja de arquitectos John Young y Deborah Natsios,  funciona como un repositorio de información acerca de la libertad de expresión, la criptografía, el espionaje y la privacidad. Poco o nada ha cambiado a lo largo de los años el diseño de esta web que podría calificarse, siendo benévolos,  de minimalista. En su larga trayectoria cryptome ha sido amenazada por diversas empresas por publicar información que ellos consideraban propietaria, e incluso ha recibido la visita ocasional del personal del FBI.

Public Intelligence (www.publicintelligence.net) fundado en el verano de 2009 se define como un proyecto internacional destinado a la agregación de un trabajo colectivo de investigadores independientes de todo el mundo que quieren defender el derecho del público a acceder a la información.

Cryptocomb (www.cryptocomb.org)  es en cambio un recién llegado a la escena de las las web de activismo en la apertura de la información, poco o nada se sabe de su creador o sus intenciones. Su estética y contenidos imitan a Cryptome e incluso su declaración de intenciones copia directamente la de este.

Muy por detrás en contenidos o actividad quedan los múltiples imitadores de wikileaks, si bien algunos merecen una visita ocasional, como son Wikispooks o el aparentemente abandonado DODleaks.

Como no podía ser de otra manera en los tiempos actual muchas de las revelaciones mas recientes de estos sitios tienen que ver con la ciberguerra. Así estos dias cryptome hacia publica una revista interna del fabricante de defensa Raytheon[1] sobre sus cyber servicios, cryptocomb publicaba una conferencia reciente de Aaron Barr (famosa victima de anonymous) sobre ciberguerra y social media[2]. Mientras que Public intelligence hacia pública una nota interna del Homeland Security sobre los últimos desarrollos de herramientas por parte del colectivo Anonymous[3].

Documentos destacados:

[1] Cryptome Raytheon Technology Today: Raytheon’s Cyberdomain Technologies 
[2] Cryptocomb: Aaron Barrs SSAS PPT Presentation "Social Media and Evolving Cyber Threats" given in Washington, D.C. on Sep 12, 2011
[3] Public Intelligence: (U//FOUO) DHS Bulletin: “Anonymous” and Associated Hacker Groups Deploying New Cyber Attack Tools



lunes, 24 de octubre de 2011

Uso táctico de Metasploit Framework

En respuesta a mi post anterior un lector pedía un ejemplo práctico del uso de Metasploit. Y como el blog es de temática militar vamos a empezar por ahí. En futuros artículos intentaré explicar a con más detalles técnicos cómo podemos utilizar Metasploit en la práctica.

Decíamos metafóricamente que Metasploit sería el equivalente en ciberguerra a lo que es un destructor a nivel naval; ¿Pero qué características tiene en común con un destructor?

Que me corrijan los expertos en tecnología naval, pero a groso modo los destructores son buques rápidos y versátiles pero con gran potencia de fuego.

Metasploit como decíamos cumple estas características: Es una herramienta flexible (de código libre), de uso simple (aunque para especialistas por supuesto) y que puede ser equipada con múltiples exploits (potencia de fuego) para atacar objetivos importantes.

El escenario

Por ejemplo supongamos que tenemos un escenario donde nuestro objetivo es conseguir acceso a la correspondencia de un alto directivo (este será nuestro objetivo primario).

Analizado el escenario, con información obtenida de fuentes públicas en Internet, decidimos que la forma más sencilla de conseguir este objetivo es infiltrar un troyano en el equipo de algún colaborador directo de ese directivo (estos serán los objetivos intermedios). Ya que hemos averiguado que se utilizan habitualmente en la compañía sistemas Windows antiguos sin parchear.

Para conseguir infectar estos equipos necesitaremos aprovechar una vulnerabilidad que nos permita introducir un malware en el sistema. Aquí es donde entra en juego Metasploit.

Tenemos 2 formas principales de lanzar un exploit contra el equipo que queremos infectar:
• Enviar el exploit directamente a la víctima. Por ejemplo dentro de un email.
• Que la víctima recoja el exploit. Por ejemplo dejándolo en un servidor web y convenciendo a la víctima para que visite la página donde está.

Optamos por la segunda opción ya que los clientes de correo habituales como Outlook o Thunderbird pueden ser difíciles de explotar y los antivirus de correo podrían parar el ataque (aunque hay formas de saltárselos).

El exploit

Así que lo que haremos será configurar un servidor en Internet en el que instalaremos:
• Un pequeño servidor web que al recibir una conexión detectara la versión del navegador que conecta, seleccionara el exploit más adecuado y le pasara la orden a Metasploit.
• Una instancia de Metasploit framework que generara el exploit adecuado y que en caso de tener éxito se encargará de ejecutar el payload en el equipo atacado.

El exploit a utilizar dependerá de varios factores: La versión del navegador, el tipo de sistema operativo, si el usuario utiliza antivirus, etc. Podremos incluso lanzar varios a la vez para aumentar las probabilidades de éxito. Todo ello será necesario programarlo en Metasploit.

Podremos también utilizar los exploits que ya vienen programados con Metasploit o desarrollar los nuestros propios. Esto nos llevara más tiempo, pero reducirá las posibilidades de ser detectados.

También necesitaremos que el usuario visite nuestro servidor web “trampa”. Para hacerlo necesitaremos algo de ingeniería social para convencer a los usuarios de que visiten con su navegador la dirección de una página cebo.

Para ello podremos por ejemplo publicar una nota en un foro que sabemos es frecuentado por los trabajadores de la empresa a atacar, con la esperanza de que alguno visite nuestra página.

El payload

Como el objetivo es instalar un troyano en el equipo atacado. La función del payload será sencilla, consistirá en descargar y ejecutar el instalador del malware.

El propio Metasploit ya incorpora un payload con esta funcionalidad (download_exec) de forma que no necesitaremos desarrollo adicional.

Aunque también podríamos añadirle funciones avanzadas, como por ejemplo que el payload desactive el antivirus del equipo antes de descargar el instalador.

La infección

Una vez esta todo montado solo tenemos que esperar a que alguien visite la dirección de nuestra página y ver si el exploit ha funcionado.

Para ello utilizaremos una herramienta de control remoto o RAT (como por ejemplo PoisonIvy o el propio módulo Meterpreter de Metasploit) configurada para conectar a otro equipo que tendremos conectado en Internet con el software de control.

Si todo ha ido bien y se han conseguido infectar algunos equipos, habrá que comprobar si los sistemas infectados corresponden a los usuarios que eran nuestro objetivo intermedio.

El objetivo final

Si hemos tenido suerte y alguno de los equipos infectados es de un colaborador directo del usuario a monitorizar, tendremos acceso a los segmentos internos de la red de la empresa. Y si el equipo infectado comparte el mismo segmento de red que el equipo del objetivo primario podremos utilizar un sniffer para espiar su correo.

Un sniffer es un programa que se encarga de recoger y analizar el tráfico de una red. En las redes que habitualmente encontraremos en una empresa (de tipo Ethernet) un sniffer normalmente solo puede ser utilizado dentro del segmento local de red.

Conseguido

Si todo sale según lo previsto tendremos acceso al correo del directivo capturando el tráfico con su servidor de email.

Además lo habremos conseguido sin atacar directamente su equipo, reduciendo la probabilidad de ser detectados. Y todo gracias a la versatilidad y potencia de Metasploit.

jueves, 6 de octubre de 2011

Metasploit Framework

Si como dice mi compañero Leo, un exploit 0-day es el equivalente digital a un “puto tomahawk”, Metasploit sería el equivalente digital a un destructor.

Un pequeño glosario para empezar:

Vulnerabilidad: Error en el software que permite a un atacante comprometer su seguridad.

Exploit: Código que aprovecha una vulnerabilidad.

Payload: Carga útil de un exploit. La acción que ejecuta el exploit una vez la vulnerabilidad ha sido aprovechada con éxito.

Shellcode: Conjunto de ordenes en un lenguaje de bajo nivel (normalmente ensamblador) que son inyectados en un programa para conseguir que se ejecute una operación para la que ha sido programado.

Los payloads que se utilizan normalmente para aprovechar vulnerabilidades de corrupción de memoria (desbordamientos de búfer, errores de manejo de punteros, etc.) se construyen en forma de shellcode.

Post-explotación: Acciones que se ejecutan una vez el exploit ha tenido éxito. Por ejemplo: robar credenciales, abrir puertas traseras, ocultar la presencia del intruso, etc.


A groso modo Metasploit es una herramienta para desarrollar y lanzar exploits. Pero no solo es un framework de desarrollo, también es una plataforma unificada de explotación y hacking.

Suministra al programador y al hacker entre otras cosas:
• Una gran colección de exploits ya desarrollados y probados.
• Payloads (shellcodes) para varias plataformas y con multitud de funcionalidades.
• Scripts de post-explotación para tareas habituales de hacking.
• Multitud de módulos auxiliares para realizar distintas pruebas de seguridad.
• Funciones de red y procesado de múltiples protocolos.
• Conectividad con otras herramientas de ataque.
• Un interfaz de ataque uniforme.
• Un payload multipropósito con funcionalidades de rootkit (Meterpreter) que se instala en los sistemas explotados para interactuar remotamente sobre los mimos.



Esto convierte a Metasploit en la plataforma de lanzamiento ideal para cualquier exploit, ya que no solo le ofrece al programador una gran variedad de utilidades para mejorar su exploit sino que también le ofrece a la persona que va a lanzar los exploits una plataforma unificada y de uso sencillo.

Antes de Metasploit la programación y el uso de exploits era un proceso artesanal. El programador tomaba una vulnerabilidad de partida y empezaba a desarrollar un pequeño programa para aprovecharla. El programador tenía que desarrollar a medida los payloads y adaptarlos manualmente a cada plataforma.

Cada desarrollador además utilizaba un lenguaje de programación diferente. Y el estilo del código cambiaba mucho. La mayoría de exploits eran desarrollados para consumo del propio desarrollador y eran difíciles de utilizar y modificar para otros hackers.

Con la aparición de Metasploit la mayor parte de la comunidad de desarrolladores de exploits cuenta con una herramienta común en la que programar sus herramientas y ofrecérselas al resto de hackers.

Esto ha hecho que el uso de exploits se haya convertido en una tarea mucho más simple y al alcance de muchos usuarios no especialistas en seguridad.

Metasploit no es la única herramienta de este estilo, existen otros frameworks de explotación similares en cuanto a potencia pero de carácter comercial. Los más conocidos:
• Immunitysec Canvas
• Core Impact

Es difícil realizar una comparativa rápida entre ellos, pero a grandes rasgos:
• Las ventajas principales de Metasploit son su versión gratuita y el soporte de una gran comunidad de usuarios y desarrolladores.
• Canvas ha sido tradicionalmente considerado el más puntero. Entre sus desarrolladores se encuentran algunos de los considerados como números uno en el mundo de la programación de exploit.
• Core Impact es tal vez el más corporativo y menos underground de los tres. Su funcionalidad estrella son los agentes que se instalan en los equipos comprometidos y facilitan el realizar la labor de metástasis de la intrusión (conseguir acceso a otros equipos no accesibles de la red aprovechando el sistema comprometido).

Existen otros frameworks de explotación, algunos comerciales y otros de código libre, pero todavía no tienen la madurez de estos tres.

Cualquiera de estos frameworks podría servir como base para que una organización construya su propia plataforma de lanzamiento de exploits. Implementando sus propios exploits 0-day o payloads y sin tener que hacerlos públicos; obviamente.