Mostrando entradas con la etiqueta Seclabs. Mostrar todas las entradas
Mostrando entradas con la etiqueta Seclabs. Mostrar todas las entradas
Ya son las IV (4) Navidades juntos !!!!!

¡Cómo pasa el tiempo¡ , sigo y seguiré compartiendo los buenos momentos con todos vosotros a través del Blog y Twitter @seguridadxato2 @st2labs

Finalizo el año ilusionado con el nuevo proyecto de vigilancia de páginas WEB (webguardshield.com) y con la vista puesta en el lanzamiento de secnapsis.com | Si olvidarme de mis alumnos del Máster de Seguridad TIC que en su 2 edición habrá más Hacking, más Metasploit y algo de Python para Hackers, siempre con la ilusión de cada año, en cada edición intentamos superar sus expectativas y eso, genera la necesidad de renovarse en un ciclo constante!!!

Y por supuesto de cara a un nuevo año, ST2Blog renueva imagen más acorde con las actividades y contenido que nos espera! #HappyHacking2015

Esperemos que este nuevo año que va a dar comienzo, nos traiga a todos #ciberseguridad y buenas practicas!!

Nos vemos en 2015 !!! ah!! y por supuesto os deseo un Feliz Año Nuevo!

PD: Espero poder escribir algunos #post sobre los nuevos proyectos muy pronto!

Julian J. Gonzalez (@rhodius)
RECORDAMOS

En el artículo de ayer, se utilizo #Metasploit para explotar una vulnerabilidad de JAVA a través del navegador WEB, con este tipo de ataque se pudo comprometer un equipo de la red privada (192.168.3.0/24) del escenario propuesto para la demostración.


Además, una vez que se había comprometido al usuario A (USR-A)  se configuro #Metasploit para utilizar al usuario A como "pivote", y de esa forma poder explorar la red interna de la empresa como si el ATACANTE se encontrará directamente conectado en la red privada 192.168.3.0/24.


CONTINUACIÓN

La información de la que se dispone, tras las primeras averiguaciones dentro de la red privada (PRIVATE) donde se encuentra ubicado nuestro equipo comprometido, es que existe un equipo en otra red 192.168.2.0/24, concretamente se trata de la IP:192.168.2.3 y que tiene establecida una conexión con el equipo 192.168.3.3 por el puerto 445, habitualmente utilizado para compartir archivos en la red.

Para cerciorarnos, se va a utilizar nmap para escanear el equipo objetivo a través de nuestro pivote (USR_A), esto nos permitirá iniciar la exploración de la red interna como si el mismísimo equipo USR_A fuera quien ejecutará dichas acciones, es decir, la dirección IP detectada por el equipo 192.168.2.3 como origen de las conexiones (ataques) será la misma que la del usuario A (USR-A).

Pero para conectar el tráfico generado por la aplicación nmap en el equipo del atacante con la sesión de metasploit, se va a utilizar un módulo auxiliar que tiene "metasploit" muy útil para estos casos, se trata de un mini servidor proxy del tipo sock4a. Los proxy sock4 son capaces de redirigir todas las conexiones generadas en cualquier puerto.

A continuación se pueden ver los comandos utilizados para activar el servidor sock4a en metasploit:
Fase 2: Activando un proxy server sock4 para conectar el nmap a metasploit.

Una vez se haya iniciado (comando run) el servidor en metasploit, se configurar proxychains, que es un programa que enviará el tráfico generado por nmap al servidor proxy sock4a, para que a su vez éste, se lo envié a metasploit quien lo transmitirá al pivote (USR-A).



Antes de ejecutar el comando nmap, es necesario configurar el fichero de configuración de proxychains.conf que se puede encontrar en el directorio /etc del equipo Linux BT5.

Una vez configurado el proxychains, se procede a ejecutar en la consola de Linux, el comando de nmap que realizará un escaneado sencillo sobre la red interna, como si el propio atacante (BT-Linux) estuviera conectado a la red interna, esto gracias a la técnica de "pivoting" de #metasploit.

Fase 2: Exploración con NMAP y proxychains.
En el ejemplo, se ha utilizado el conjunto de puerto típicos para evitar realizar un escaneado completo de todos los puertos, ahorrando tiempo de ejecución y ancho de banda utilizado, así como minimizar el ruido generado en la red interna de la empresa.

Para demostrar que efectivamente, se esta realizando el pivoting, se realizo una captura de tráfico en el equipo 192.168.2.3 (objetivo).

Fase 2: Capturando tráfico en el equipo objetivo.
Como se puede observar en la imagen superior, el origen del tráfico capturado por el equipo objetivo procede del equipo comprometido 192.168.3.3 (pivote).

Tras examinar el resultado del scanning del equipo objetivo 192.l68.2.3 se puede sacar la conclusión que casi con toda seguridad ese equipo será un Windows XP con el servicio de carpetas compartidas en red activo.

Ahora solo queda probar suerte, a ver si el equipo detectado no tiene el sistema actualizado. Vamos por tanto a probar suerte con una vulnerabilidad publicada en el 2008 sobre el protocolo SMB. Para ello hacemos una búsqueda en #Metasploit hasta encontrar la ms08_067_netapi, la configuramos y se ejecuta ¿Qué pasará?

Fase 3: Atacando a nuestro Objetivo

A continuación, se deja unas capturas de pantalla, con el resultado de configurar y ejecutar dicha vulnerabilidad:

Fase 3: Explotando un equipo en la red DMZ a través del pivoting.
Una de las curiosidades, que se pueden observar en la imagen superior son:

  • Utilización del puerto 443
  • Utilización de bind_tcp
El utilizar el puerto 443, para conectar la shell remota con el equipo al que se va a intentar atacar, y bind_tcp, significa que la conexión la va a iniciar el atacante, que en este caso, y debido a la técnica del pivoting, será originada por el equipo USR-A comprometido.

Fase 3: Ataque a un equipo de la red interna utilizando el Pivoting.
Se ha tenido exito en el ataque, se ha logrado llegar a la red 192.168.2.0/24, al tener comprometido un equipo de la red, con una shel remota "meterpreter", que se encuentra activa mientras el "pivote" (USR-A) se mantenga conectado y comprometido.

Fase 3: Objetivo conseguido.
Una vez tenemos el control sobre el equipo objetivo se realizará la exploración del disco duro y del sistema en busca de información relevante.

Con meterpreter existe la opción de utilizar un script que automatiza todo el proceso, me estoy refiriendo a "winenum" es un script que vuelca en una carpeta de nuestro disco duro  (./msf4/logs/scripts/winenum/)toda la información que se puede obtener del ordenador comprometido, desde hash de las password, hasta los tokens, pasando por la políticas de dominio, etc. Incluso, detecta si el equipo comprometido es una máquina virtual o no.

Fase 3: Ejecutando script winenum de meterpreter para obtener información del equipo comprometido.

Hasta aquí, con el Taller de Hacking, y con el artículo.

El contenido de este artículo es meramente informativo y/o con fines educativos, no me hago responsable del uso que de él se pueda hacer.

Un Saludo, hasta el próximo evento.


Indice:

                                       
Indice:

-[Pivoting] Exploración de una Red remota utilizando un "pivote" con #Metasploit (I)
-[Pivoting] Exploración de una Red remota utilizando un "pivote" con #Metasploit (II)

                                                                               

Hace ya cierto tiempo publique un artículo donde jugaba con #Metasploit para reproducir la vulnerabilidad LNK que utilizó Stuxnet para propagarse e infectar otros equipos vía USB.

Ayer 4/Mar/2013 durante mi charla en el I Taller de Hacking Ético organizado por ACONSA y por la Universidad de Córdoba, prepare un escenario  (véase la imagen inferior) para demostrar como se puede realizar una intrusión a un Sistema que aparentemente se encuentra bien protegido.

En la demostración utilice la capacidad que ofrece metasploit de utilizar un equipo ya comprometido para usarlo como punto de entrada y/o ataque a otros elementos de la red a la que pertenece, es decir, utilizarlo de "pivote" para redireccionar el tráfico y atacar otros puntos de la red interna de una empresa.


ESCENARIO

Para que os podáis poner en situación os explicaré brevemente el contexto en el que se realizo el taller, para ello que mejor que una imagen para ilustrar el escenario.

Escenario charla "Vulnerabilidades vs Exploits"
Para el taller, prepare 4 máquinas virtuales:


  • ATACANTE: Un maquina virtual con BT5 instalada y actualizada. Especialmente con metasploit configurado.
  • USR_A: Un equipo WindowsXP SP3, con Java 6 update 13 instalado (sin actualizar por supuesto), y para facilitar la demostración sin antivirus instalado.
  • USR_ADMIN: Un equipo Windows XP SP3, sin antivirus y configurado con carpetas de red compartidas con el equipo USR_A.
  • ROUTER / FIREWALL: En esta ocasión utilice el router/firewall vyatta 6.0. Con la configuración que  aparece en la imagen superior, y os explico a continuación.


Configuración del Router / Firewall:

Con el objetivo de crear un entorno de trabajo "real", he utilizado un router/firewall para generar tres zonas diferentes: PUBLIC, PRIVATE y DMZ. La zona PUBLIC sería la zona de acceso público y simularía la conexión a Internet, la zona DMZ, es la Intranet de la empresa, mientras que la zona Private, es la zona destinada a la conexión de los usuarios de la empresa.

Cada zona, se encuentra configurada en el cortafuegos para controlar el flujo de tráfico entre las mismas, es decir:


  • DMZ: No se permite la conexión con Internet en ninguno de los sentidos, y se tiene limitado el acceso desde la zona PRIVATE, a los puertos 80, 443, 21, 22, 23, 139, 445, es decir, solamente se tiene permitido el tráfico a los protocolos: HTTP, HTTPS, TELNET, SSH, FTP, SMB (carpetas compartidas de Windows).
  • PRIVATE: Se permite la conexión con Internet al completo, al ser un ejemplo, didáctico he creído conveniente, ilustrar que ocurre cuando no se controla la salida de tráfico desde la red interna (PVT) a Internet (PUBLIC). 
*Por supuesto, no se permite establecer ninguna conexión desde la zona PUBLICA hacia la DMZ, o PRIVATE.

Con esta configuración, se sabe que la empresa no proporciona ningún servicio publico a Internet (WEB), y que sus empleados pueden navegar libremente por Internet. Además, tienen protegidos sus servidores internos (Intranet-DMZ) con unas reglas de cortafuegos "relativamente estrictas".

Una vez que nos encontramos en "situación" y tenemos claro cuál será nuestro objetivo (realizar una intrusión en la red interna de la empresa, a ser posible en la DMZ), estamos en condiciones de ver como se puede realizar esto en tres FASES:
  • F1: El engaño - Acceder a la red interna aprovechando el eslabón más débil de la cadena el usuario.
  • F2: Explorar la red interna, utilizando el equipo comprometido como un "pivote".
  • F3: Atacar nuestro objetivo y obtener la información.

DEMOSTRACIÓN - EJEMPLO PRÁCTICO


Para iniciar la intrusión, he utilizado una vulnerabilidad conocida de JAVA, ya que últimamente esta siendo activamente utilizada "in the wild", o lo que es lo mismo, en Internet. Es por ello que me ha parecido muy propio utilizar JAVA como el vector de entrada al Sistema, con lo que podría prepararse un email, enviado a contactos de la empresa, que se podría haber obtenido mediante las redes sociales, y/o otras técnicas de recolección de información.

El caso es que partimos, del punto en el que el USR_A recibirá un e-mail "malicioso" con una URL que explotará la vulnerabilidad que tiene en su Sistema, en especial JAVA 6 update 13 (CVE-2010-0886, CVE-2010-1423).

FASE 1: Creación de la URL para explotar la vulnerabilidad de JAVA.

¿Cómo preparamos metasploit para explotar esa vulnerabilidad de JAVA en el equipo de USR_A? 

Utilizando el exploit basado en "navegadores" denominado: java_ws_arginject_altjvm, este exploit iniciará en nuestro equipo ATACANTE un servidor que explotará la vulnerabilidad  JAVA anteriormente mencionada.

A continuación os dejo una captura de pantalla de la preparación de la URL maliciosa.
Fase 1: Preparación de JAVA exploit - URL maliciosa
Una vez que tenemos "preparado" nuestro equipo para recibir las conexiones de las posibles victimas, solo queda esperar a que "piquen" en nuestra trampa. En nuestro ejemplo practico, es el usuario A (USR_A) quién cae en nuestras redes, observen la siguiente imagen:

Fase 1: URL con JAVA - Ataque exitoso.
FASE 2: Utilizando el equipo comprometido para explorar la red interna de la empresa.

Una vez que se tiene el control del equipo USR_A, se realiza una pequeña investigación de la victima, como por ejemplo:

  • Información del Sistema.
  • Direccionamiento IP del equipo dentro de la red.
  • Conexiones que tiene el equipo con otros elementos de la red interna.
Esto se consigue fácilmente utilizando los comando básico de "meterpreter", que es la shell avanzada que se ha utilizado para ejecutar en el equipo remoto a través de la vulnerabilidad de JAVA.



meterpreter> sysinfo
meterpreter> netstat
meterpreter> arp

Con estos tres comandos de meterpreter, obtenemos información, con el comando arp y netstat, averiguamos:
  1. IP_USR_A: 192.168.3.3 
  2. Tiene una conexión 445 con 192.168.2.3
Hasta el momento es la información que se ha obtenido del equipo comprometido, ahora vamos a configurar "metasploit" para explorar la red interna a través de nuestra puerta de entrada , el usuario A.

Puesto que tenemos comprometido el usuario A, estamos en condiciones de utilizar dicho equipo como puerta de entrada, y scannear la red interna en busca de otros objetivos. Es lo que se conoce con el nombre de la técnica del "pivoting".

Para conseguir este efecto, necesitamos que "metasploit" rute (redirija)  los paquetes (nuestro tráfico de red) a través de la conexión que tiene establecida con el equipo remoto comprometido, en este caso USR_A. 

Para ello ejecutamos el siguiente comando:

metasploit> route add 192.168.2.0 255.255.255.0 1

donde:
  • 1 es el identificador de nuestra sesión de "meterpreter" activa.
  • 192.168.2.0/24 es la subred objetivo, dada la pista obtenida al realizar el netstat.


Ahora se tiene configurado "metasploit" para que el tráfico de red con destino 192.168.2.0/24 (subred interna de la empresa objetivo) sea enviado a través del equipo comprometido USR_A, ser por tanto utilizado como pivote.

En este punto, se tiene una ligera pista sobre un objetivo situado en otro segmento de red dentro de la empresa, se trata de 192.168.2.3, pero por el momento solo tenemos conocimiento de tener una conexión establecida en el puerto 445, normalmente utilizado en la conexión de carpetas compartidas en windows, bajo el protocolo SMB.

En el siguiente artículo, se utilizará al usuario A (USR_A) como "pivote" para realizar un scaneado de la IP objetivo 192.168.2.3 con nmap, y atacar con un exploit remoto ...

¿Te lo vas a perder?

DNSChef es una herramienta de seguridad especialmente orientada y destinada a profesionales de Seguridad dedicados a probar los limites de la seguridad de los Sistemas (Pentester) y/o aquellos investigadores que se dedican a analizar las muestras de "Malware".

En cualquiera de los contextos, DNSChef es un software capaz de ejecutar un DNS Proxy (también conocido como fake DNS), es decir, todo un sistema para manipular las tramas de peticiones / respuestas del protocolo DNS.

Con DNS Proxy puede interceptarse una petición DNS a un dominio ejemplo: www.miblog.com y redireccionar ese dominio a una IP local donde poder analizarla, o incluso inyectar una puerta trasera aprovechando alguna vulnerabilidad del navegador WEB.

La versión 0.2 ha introducido soporte para IPv6 por lo que hace de esta una herramienta muy interesante para probar la seguridad de los sistema con soporte IPv6.

Esta aplicación se encuentra desarrollada en Python por lo que puede ser ejecutada en cualquier plataforma que interprete dicho lenguaje de programación.

Cuando se ejecuta dnschef sin ningún tipo de parámetro esta funciona por defecto en el modo de proxy:

# ./dnschef.py

          _                _          __  
         | | version 0.2  | |        / _| 
       __| |_ __  ___  ___| |__   ___| |_ 
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |  
      \__,_|_| |_|___/\___|_| |_|\___|_|  
                   iphelix@thesprawl.org

[*] DNSChef started on interface: 127.0.0.1 
[*] Using the following nameservers: 8.8.8.8
[*] No parameters were specified. Running in full proxy mode


Por ejemplo, si se hace una simple consulta DNS tal que:
$ host -t A thesprawl.org
thesprawl.org has address 108.59.3.64



La aplicación mostrará una entrada tal que así:


[23:54:03] 127.0.0.1: proxying the response of type 'A' for thesprawl.org


Para más detalles, sobre la configuración y su utilización recomiendo visitar la página web del proyecto:

http://thesprawl.org/projects/dnschef/

Downloaddnschef-0.2.1.tar.gz
Size2.4 MB
DateJanuary 20th, 2013
Version0.2.1
No hace mucho que ha sido aprobado el borrador (Octubre 2012) sobre el nuevo protocolo HSTS como propuesta de estándar, y es justamente en este mes de Noviembre, el 19 de Noviembre 2012, cuando ha sido publicado el RFC 6797 que se corresponde con el estándar HSTS propuesto.

The IESG has approved the following document:
- 'HTTP Strict Transport Security (HSTS)' (draft-ietf-websec-strict-transport-sec-14.txt) as Proposed Standard[Info]
La iniciativa surge a raíz de los problemas que existen en la actualidad sobre la navegación segura en Internet, donde la negociación de la conexión segura (SSL o TLS) se deja en manos de la configuración del usuario (user-agent-client) y el servidor (server). 

Fruto de esta negociación basada en las preferencias del usuario y configuración del servidor, surgen situaciones en la que la conexión segura que requiere de un certificado, se permite interactuar con el servidor a pesar de que éste (certificado) se encuentre revocado o no pueda ser correctamente verificado. Pudiendo dejar cookies de sesión sin protección, es decir transmisión de cookies en un canal sin cifrar.

<< A passive network attacker using such tools can steal session identifiers/cookies and hijack the user's web session(s) by obtaining cookies containing authentication credentials >>

Para evitar esta situación se aparecieron algunas extensiones para los navegadores que forzaban la conexión HTTPS para conectarse a las web con objeto de establecer una conexión segura, con aquellas WEB soportadas, desde el inicio de la comunicación, proteger de ese modo el intercambio de cookies de sesión de forma segura.

Fruto de estas iniciativas surgió la propuesta HSTS, con objeto de eliminar los problemas en la negociación de las conexiones seguras entre user-agent-client y servidores web. 


¿Qué es HSTS?

HTTP Strict Transport Security (HSTS) es un protocolo que estandariza el mecanismo mediante el cuál las páginas web se "declaran" accesibles únicamente mediante conexión segura. 

Para ello el servidor WEB deberá habilitar mediante HSTS su política de seguridad, donde deberá indicar las obligación de establecer la conexión segura.

¿Cómo funciona?

Consiste en utilizar un campo del protocolo HTTP para indicar la política de seguridad de la página WEB, es decir, un usar la respuesta HTTP (HTTP Response) para incluir la política de seguridad denominada STS (Strict Transport Security), donde se especifica que se debe de iniciar la conexión segura con el servidor.

STS Policy 

La política de seguridad que se especifica en el campo STS esta formada siguiendo la sintaxis ABNF (Augmented Backus-Naur Form) tal y como se especifica en la RFC2616 HTTP.

A continuación se muestra la estructura del campo STS:

Strict-Transport-Security = "Strict-Transport-Security" ":"
                                 [ directive ]  *( ";" [ directive ] )

     directive                 = directive-name [ "=" directive-value ]
     directive-name            = token
     directive-value           = token | quoted-string


El valor que puede contener las directivas de seguridad son:
  • max-age: número de segundos máximos que se espera (HSTS Host - WEBSITE -) después de la recepción de la cabecera STS por el usuario (client).
  • includeSubDomains: si esta presente indica al "user-agent" que la politica STS aplica a cualquier subdominio que cuelge del dominio de la web. 
Ejemplo: 
Strict-Transport-Security: max-age=15768000 ; includeSubDomains

Si max-age=0, significará que el UA (user-agent) deberá eliminar la política HSTS asociada con el UA inmediatamente después de su recepción.

ALGUNAS CONSIDERACIONES


1.- Se debe tener en consideración que al utilizar HSTS, la conexión pasará de HTTP a HTTPS inmediatamente independientemente del puerto sobre el que se este operando.


... HSTS Policy applies to HTTP over any TCP port of an HSTS Host [Info]

2.- El estándar (HSTS) especifica que el UA (user-agent - navegador web) debe finalizar la conexión con el servidor si ocurre algún error durante el establecimiento de la capa segura (TLS), incluyendo cualquier error derivado de la validación de los certificados.[*]

3.- El UA no debe prestar atención alguna a las posibles etiquetas y/o elementos "HTTP-Equiv" y "<Meta>"  incluidos en el código HTML.


4.- La duración máxima para la asociación por parte de la UA de un website conocido como HSTS Host es de 90 días: "max-age value of 7776000 seconds is 90 days". Esto significa que si durante ese periodo de tiempo el UA se conecta con un Know HSTS Host, la UA no terminará la conexión al no recibir el campo STS en la conexión con el servidor mientras no haya expirado.


MEJORAS DE SEGURIDAD

El estándar HSTS previene a los usuarios del ataque SSL-Stripping (Hijacking) [ o firesheep]; el SSL_Strip es un ataque que convierte la conexión HTTPS en HTTP sin que el usuario se de cuenta utilizando la técnica de Man in the Middle. Esto puede ser utilizado por "atacantes" en redes inalambricas poco seguras y/o publicas. El HSTS evitaría este tipo de ataque ya que UA (user-agent - navegador) no permitirá una conexión no segura según lo establece la política STS.


SSL Strip Attack

No obstante aunque se implemente el estándar HSTS será tarea del desarrollador WEB evitar el contenido mixto en la páginas web, de forma que se evite la transmisión de cookies de sesión de forma no segura, en definitiva SIEMPRE se debe continuar tomando las mismas precauciones de seguridad al desarrollar como si no se tuviera el protocolo HSTS habilitado.

Para una mayor detalle en el estándar, véase la RFC 6797.

REFERENCIAS

[1] [RFC2616] Hypertext Transfer Protocol -- HTTP/1.1 
[2] [RFC6101] The Secure Sockets Layer (SSL) Protocol Version 3.0
[3] [RFC5246] The Transport Layer Security (TLS) Protocol Version 1.2


En el momento Windows 8 vio la luz oficialmente el 26 de Octubre 2012, no dude ni un instante en instalarlo y empezar a usarlo; un hecho objetivo fruto de la casualidad que coincidió con el típico ciclo de reinstalación de Windows.

Es por ello, que no tuve que "reflexionar" demasiado sobre la necesidad o no de instalar un nuevo sistema operativo, ! es que el ordenador me lo estaba pidiendo a gritos ¡. Sin embargo, en cuanto lo tuve instalado, apareció una nueva pantalla de inicio (METRO), y la verdad es que resulta muy poco útil en un equipo de escritorio. 

Efectivamente, es lo que esta pensando, la "odiosa" interfaz METRO, que en mi opinión, para un dispositivo portátil  como una tablet, donde su utilización principal esta destinada al manejo de las redes sociales y al consumo de información, la interfaz METRO es seguramente ágil y fácil de manejar, sobretodo gracias a la pantalla táctil. Sin embargo, en el equipo de sobremesa, se hace engorroso y confuso.

Seguramente a estas alturas habrás leído que Microsoft afirma que la ejecución de la aplicaciones en la interfaz METRO, se produce en un entorno seguro (sandbox) con restricciones de seguridad y un control exhaustivo de los permisos de la aplicación. Esto es cierto, ya que existe el AppContainer, el contexto donde se ejecutan las aplicaciones de METRO Store (la tienda de aplicaciones de Windows).

¿Qué es el AppContainer? 
Es el entorno seguro (sandbox) donde se ejecutan todas la aplicaciones que han sido desarrolladas para la interfaz METRO, y se mantienen bajo control.

Pero, seguro que ya tienes una idea rondándote la cabeza, ¿Qué ocurre cuando ejecuto una aplicación windows compatible? ¿Si se ejecuta desde la pantalla de inicio, ésta se ejecuta dentro del Sandbox AppContainer? 

AppContainer ¿Si o No?

Imaginemos por ejemplo, que descargamos de Internet la ultima versión de Mozilla Firefox, y la instalamos, en ese momento nos aparecerá un "bonito" icono en la pantalla principal (METRO), como puede verse en la siguiente imagen:

Pantalla inicio Windows 8 - METRO
Si lo ejecutamos,
¿Cómo sabemos si la aplicación se ejecuta dentro del entorno seguro o no?

La mejor forma para saberlo es analizar el proceso que se esta ejecutando, para éste análisis es necesario utilizar el Process Explorer , esta herramienta, es cómo el administrador de tareas del sistema operativo pero con funcionalidad avanzadas, es decir, el Process Explorer muestra información acerca de los procesos y archivos DLL que se han abierto o cargado en el sistema.

Una vez instala la aplicación, se tiene que activar el campo "Integrity" en la barra para saber con que contexto (nivel de integridad) se esta ejecutando la aplicación y/o proceso correspondiente.

Process Explorer - Integrity column.
Una vez activado la columna "Integrity", se podrá observar el contexto de ejecución de la aplicación, siguiendo con nuestro ejemplo, si iniciamos el navegador "firefox" desde la pantalla de inicio "METRO", y lo examinamos con la herramienta process explorer, se puede observar que en el contexto "Integridad" aparece : "Nivel obligatorio medio".

Process Explorer: Windows 8 - Integrity Level - Win32 Apps.
Pero seguramente ahora te estés preguntando,
¿Qué son los niveles de Integridad (Windows Integrity Levels) ?

La integridad (contexto de ejecución) es algo que se introdujo en el motor de "ejecución (run time)" de Windows Vista, y por supuesto ha sido heredado por Windows 7 y ahora, Windows 8. 

En concreto, el nivel de integridad, es un componente (modulo) del núcleo del Sistema Operativo que controla los permisos con los que se ejecuta una aplicación determinada. Este modulo de protección asigna un nivel de integridad a cada uno de los procesos que se ejecutan en el Sistema.

Existen varios niveles:

Untrusted: un proceso que no se ha identificado en el sistema, es asignado automaticamente como desconosido, de no confianza.

High: Es el nivel de Administrador del Sistema, este nivel es capaz de trabajar y modificar las condicionen de los procesos de menor nivel, debido a la necesidad de las tareas administrativas, y son aquellas que normalmente los usuarios no pueden hacer. Esta reservado a los procesos ejecutados como Administrador.

Medium: este es el contexto común de ejecución de la mayoría de aplicaciones y/o procesos. Es el nivel asignado por defecto, y el que reciben los usuarios estándar del sistema.

Low: esta considerado como el modo de trabajo para los procesos que interactuán con Internet, es un nivel de protección del sistema con restricciones de acceso al disco duro, protección de escritura salvo en los directorios de la propia aplicación, etc

System: es el contexto reservado al Sistema, es decir, es el nivel de ejecución utilizado por el núcleo (Kernel) del Sistema Operativo, y es el nivel al que aspiran los hackers. Ya que tiene acceso y permisos para manipular todo el sistema.

Installer: es un caso especial, esta considerado con el nivel más alto de todos, y es el que se usa para instalar una aplicación, drivers, o desinstalar.

Estos niveles fueron implementados en Windows Vista en lo que se denomina (WIC), ahora en Windows 8 se ha invertido tiempo en desarrollar un nuevo nivel de integridad para proteger mejor el sistema frente a los agentes Malware, sobre todo esta orientado a aplicaciones que se encuentra permanentemente conectadas a Internet, de modo que esas aplicaciones se ejecutan en un nuevo contexto y/o entorno denominado "AppContainer", basado en el antiguo "Low Level" y mejorado.

Detalles del nuevo nivel de Integridad "AppContainer"

El nuevo modelo de Sandbox, que ha introducido Windows 8, se basa en:

  • Aislamiento del proceso a nivel de Kernel, donde se ejecuta con unos permisos muy limitados.
  • Restricciones de comunicación entre procesos, a nivel de red (firewall), e incluso de acceso a dispositivos y ubicaciones del disco duro. Limitándose a el directorio de instalación, bloqueando el acceso de lectura/escritura a otras partes del disco duro, y solicitando autorización del administrador para acceder a dispositivos como webcam, microfonos, etc.

Es decir, el nivel de aislamiento de los procesos no confiables, se aplicará restricciones a 4 aspectos fundamentales del procesos:

 - Token: restricción para eliminación de privilegios, desactivar o restringir SID.

 - Job (proceso en ejecución): acceso limitado al escritorio, portapapeles, CPU, I/O process, prohibido crear subprocesos, etc.

 - Escritorio: mensajes de windows, acceso al escritorio, al portapapeles, etc

 - Nivel de Ingtegridad (low level): restricción de acceso a ficheros, solo escritura en  su directorio, AppData, Local y Roaming. No pueden cambiar los privilegios, etc.

Es decir, el AppContainer Level, es un modo de ejecutar las aplicaciones de forma segura y protegida. Aunque en el caso del IE10, nada más ver la luz, sufrió una vulnerabilidad que permitía al atacante evitar el sandbox. Esto no quiere decir, que el modo de protección no sea "seguro", de hecho el atacante para poder ejecutar código arbitrario tenia que evitar (bypass) el sistema de protección, por lo que hace la función correctamente, y la vulnerabilidad no esta en el sistema de protección sino en la aplicación / proceso que se ejecutaba bajo ese entorno de protección.

Ejemplo de uso del AppContainer

Ahora que sabemos que es el "nivel de integridad", podemos afirmar que la aplicación Firefox, que se ejecuta desde la pantalla de inicio METRO no se ejecuta con un nivel de protección "AppContainer" sino que recibe el modo por defecto, es decir nivel medio.

Para ejecutar una aplicación en el contexto "AppContainer" nos bastará con ejecutar alguna aplicación descargada de la tienda de Microsoft (todas la aplicaciones METRO, se ejecutan por defecto en el sandbox), en mi caso tengo instalada la aplicación "Google Search" o incluso Internet Explorer 10, como se puede observar en la siguiente imagen:

Process Explorer - AppContainer Level Integrity
Hasta aquí el artículo que os tenía preparados sobre Windows 8 y el modo de ejecución AppContainer.

Saludos.

REFERENCIAS:

Si deseas profundizar más acerca de los niveles de integridad, te recomiendo que leas las siguientes referencias:

[1] Windows: Run Time - Hack in the Box 2012
[2] Windows Integrity Mechanism.
[3] Introduction to Windows Integrity Control (WIC)
[4] Chml: tools para manage Windows Integrity Levels
¿Qué es Hack.me?

Es una plataforma online gratuita donde aprender técnicas de hacking de una forma totalmente práctica. En la plataforma podrás acceder y probar las técnicas, de forma gratuita, en múltiples aplicaciones web vulnerables.

Además, podrás compartir con el resto de la comunidad "hackers" tus descubrimientos, es decir, tus propios desarrollos, códigos de ataque, scripts, etc.

Es una plataforma gratuita con fines educativos, y esta totalmente disponible a estudiantes, profesores, investigadores, desarrolladores, pentesters, etc.

!! Excelente plataforma para e-Learning en Seguridad y técnicas de penetración en aplicaciones Web ¡¡

¿Cómo funciona?

Para poder utilizar la plataforma, no hace falta registrarse. No obstante, pronto incluirán novedades para los usuarios registrados, miembros de la comunidad "hack.me", que imagino que será algo parecido a disponer de un historial de los escenarios que has utilizado, el código y/o desarrollo que has compartido, etc.

Se puede acceder a la plataforma, de forma "anónima", y no necesitarás nada más que un navegador para ello. 



Para acceder a los distintos "escenarios" (virtual labs), solo tienes que pulsar en "Start Hack.me", y accederás a la lista disponibles. Es interesante ver como tienes incluso un Wordpress 3.0 disponible para poner a prueba tus conocimientos, comprobando la existencia de algunas de las ultimas vulnerabilidades en este CMS.

Si por ejemplo, seleccionamos el primer escenario de la lista (véase imagen superior), se trata de un DVWA 1.0.7, la ultima versión de este framework preparado para poner en practica las principales técnicas de ataque a aplicaciones WEB basadas en php/mysql.

La ventaja de Hack.me es que tienes listo y configurado el escenario (virutal labs) solo tienes que acceder, para que se genere el entorno y se lance la aplicación dentro de un sandbox disponible únicamente para ti. 

Se generará una dirección URL única para su acceso.


Cómo todo, la plataforma gratuita tiene una condiciones de uso, que es conveniente leerse antes de usar la plataforma.

 ¿Sencillo verdad?

Conclusiones

Hack.me es una excelente oportunidad para aprender Seguridad Informática sobre entornos WEB  practicando. Es muy útil para refinar las técnicas de penetración WEB, si eres un pentester, o investigar sin necesidad de montar tu mismo el laboratorio de pruebas, loo que supone ahorro de tiempo y recursos. A un simple click tienes disponible y preparado el laboratorio virtual para tus pruebas. Aún esta en fase "Beta", pero estoy seguro que dará mucho de que hablar. 

Aunque, si bien es cierto, que no es la primera iniciativa de este tipo, pues existe https://www.hacking-lab.com/ que lleva más tiempo y dispone de más escenarios y/o técnicas para practicar.

Ya no tienes excusas para no aprender y/o poner en práctica tus conocimientos en Seguridad, como por ejemplo, los conocimientos adquiridos en el Curso Experto Universitario Seguridad TIC impartido por la Escuela Superior de Ingenieros de Sevilla.
Es Domingo por la tarde, y me ha parecido interesante hacer un parentesis en el mono tema "Windows 8", y presentar una interesante herramienta para todos a aquellos que aún no la conozcan, se trata de Wifi Honey un script especifico para la realización de #Pentesting sobre redes inalámbricas (WiFi).

¿Qué es?

 Es un "script" escrito en bash de linux (wifi_honey.sh) que sirve para crear redes inalámbricas falsas (Fake AP) con objeto de realizar una suplantación (impersonate) de un determinado punto de acceso (AP - ESSID).

Lo interesante de este script, es que automatiza el proceso de crear un fake AP con la suite aircrack-ng, además de permitir realizar la suplantación de cualquier tipo de AP, ya que soporta todos los tipos de cifrado WEP, WPA y WPA2.

¿Cómo funciona?

Una vez que te has asegurado que tienes un dispositivo compatible con aircrack-ng, y que todo funciona correctamente, estas en condiciones de ejecutar el script "Wifi-honey.sh", tal que así:


./wifi_honey.sh fake_wpa_net

Si quieres también puedes especificar el canal y el dispositivo que deseas utilizar para realizar el ataque FakeAP.

./wifi_honey.sh fake_wpa_net 1 wlan1


Una vez creado el falso AP, se puede monitorizar la actividad de cualquier cliente que se conecte a la red, capturar el tráfico de red incluso de las conexiones SSL (ejemplo), si utilizas la suite SSLSTrip, y también intentar explotar las vulnerabilidades del sistema operativo de los usuarios de la red de forma automática con Karmetasploit. [si tenéis curiosidad sobre este asunto, os aconsejo leer el artículo publicado por @pepelux en su blog].

Aquí os dejo un vídeo donde se muestra su funcionamiento.


Descargar

Wifi_Honey.sh (v.1.0)

Nota: Requisitos son tener correctamente instalada "aircrack-ng suite" y el script "wifi_honey.sh" con la ruta de entorno (path) correctamente configurada. 

Se encuentra incluida dentro de la distribución Backtrack 5.
En la segunda entrega de mi artículo "Windows 8 Pro: Seguridad, primeras impresiones (I)", voy a empezar con enumerar algunas de las opciones de Seguridad que Windows 8 trae por defecto, algunas de ellas no están exentas de polémica como el "Secure boot", o lo que es lo mismo, el arranque seguro que ha implementado Microsoft.

Manteniendo me fiel al estilo de la primera entrega, no esperéis un análisis técnico exhaustivo de las opciones de seguridad, sino más bien una panorámica de lo que he ido encontrando en el sistema tras "pocos" días de uso.

MEJORAS EN SEGURIDAD

Son numerosos los blog y páginas de Internet que escriben o hablan sobre las nuevas opciones y características de Windows 8, sin embargo, no todas hablan de las mejoras de Seguridad que incorpora , de modo que vamos a empezar enumerando algunas de ellas:
  • Antivirus incluido de serie: Microsoft Defender.
  • Protección de arranque (BIOS), nuevo inicio Seguro: Secure Boot (UEFI).
  • Navegación Segura con Internet Explorer 10 y SmartScreen.
  • Protección Infantil.
  • Generación de nuevas contraseñas mediante imágenes.
  • Interfaz METRO que incluye un Sandbox para ejecución segura de aplicaciones.
  • Mejora en el sistema ASLR (Address Space Layout Randomization) y DEP (Data Execution Prevention), protección de acceso y ejecución de procesos no autorizados.
  • Mejoras en el Administrador de Tareas.
A continuación vamos a ir analizando cada una de las mejoras que trae Windows 8.

MICROSOFT DEFENDER

O deberíamos de decir "Microsoft Security Essentials", lo cierto es que Windows 8 incluye de serie una protección frente malware, virus, spyware, rootkits, etc; con una protección en tiempo real que consume muy pocos recursos.

No obstante, se debe de tener en cuenta, que por defecto no viene configurado para analizar las unidades externas extraíbles (USB), por lo que deberemos de activar esa protección para analizar automáticamente todos aquellos USB que conectemos al equipo.

Windows 8 - Microsoft Defender activar análisis de USB
Si quieres más detalles sobre las funciones y/o capacidades que tiene Microsoft Defender, es mejor que leas el artículo donde analizo con mayor detalle Microsoft Security Essentials.

FILTRO SMARTSCREEN

¿Qué es? 

Es un función que ayuda a proteger el equipo de aplicaciones desconocidas y/o software malintencionado (malware) que el antivirus aún no ha detectado e incluido en sus bases de datos. Básicamente, es una característica que "ayuda" a bloquear aplicaciones sospechosas.

¿Cómo funciona?

Cuando descargues y ejecutes una app descargada de Internet, SmartScreen usará información sobre la reputación de la app para indicarte si la app no es una app conocida y puede ser malintencionada.

Esta función no es del todo nueva, ya se encontraba incluida en las versiones anteriores de Internet Explorer 8 y 9, la novedad es que en Windows 8 extiende esa función a todo el Sistema, incluido la nueva versión del navegador IExplorer 10.

¿Configuración?

Esta característica es un poco controvertida, por defecto enviará información sobre la aplicación instalada en nuestro equipo para que sea analizada en los servidores de Microsoft, y determinar si existe o no algún riesgo.

Por lo que he aquí un "mini" problema de privacidad ¿Qué hace Microsoft con esa información? A mi personalmente no me convence demasiado, pues cada vez que instales una aplicación se envía información a sus servidores que incluye la dirección IP desde donde se ha descargado y/o ejecutado la aplicación.

Además, del tema de la privacidad, no existen garantías que el filtro SmartScreen sea capaz de detectar y/o bloquear software malintencionado, pues se basa en conjeturas sobre la reputación de la aplicación, y en caso de no tener información sobre ella, por defecto bloquea la ejecución. ¿Qué garantías de fiabilidad puede tener un filtro basado en la reputación de la aplicación?

Para bloquear este tipo de software desconocidos (malware) existen otras aplicaciones como por ejemplo, EMET o Exploitshield, que consiste en bloquear a las aplicaciones que intentan ejecutar técnicas de explotación de vulnerabilidades, donde en mi opinión, merecen más confianza.

Algunos datos interesantes sobre EMET (Enhanced Mitigation Experience Toolkit v3.0):

El Kit de herramientas de Experiencia de mitigación mejorada (EMET) es una utilidad que ayuda a prevenir que exploten vulnerabilidades de seguridad en el software. EMET logra esto mediante el uso de tecnologías de mitigación de seguridad. Estas tecnologías funcionan como protecciones especiales y los obstáculos que debe rechazar el autor de un ataque para aprovechar las vulnerabilidades de software. Estas tecnologías de reducción de seguridad no garantizan que no se puedan explotar las vulnerabilidades de seguridad. Sin embargo, trabajan para hacer que la explotación sea tan difícil de realizar como sea posible. En muchos casos, puede que nunca se desarrolle una vulnerabilidad totalmente funcional que pueda pasar por alto EMET.
[Mas Información]

INTERNET EXPLORER 10

Poco que añadir al respecto, simplemente es una versión actualizada del Internet Explorer 9, que incluye mejoras de seguridad al solucionar "bugs" de versiones anteriores, y las siguientes características:


Navegación InPrivate. Los navegadores guardan información, como tus historiales de búsqueda, para que tu experiencia de navegación mejore. Cuanto utilizas una pestaña de InPrivate podrás navegar normalmente, pero algunos elementos como las contraseñas, el historial de búsqueda y el historial de páginas de Internet visitadas se borrarán al cerrar la pestaña. 
Protección de Rastreo. La Protección de Rastreo envía una señal a los sitios de Internet que no quieras que recojan datos sobre tu visita y que se usan para hacer un seguimiento de tu navegación por Internet. La respuesta o interpretación de la solicitud de "No seguir" depende de las prácticas de privacidad de los sitios web que elijas visitar.
SmartScreen Filter. Si un sitio te parece sospechoso, lo mejor es que no descargues aplicaciones de allí ni proporciones tu cuenta o información personal. Pero a veces es difícil saber si un sitio es o no es legítimo. SmartScreen te ayuda a identificar sitios de suplantación de identidad y malware reconocidos como tales y te permite tomar decisiones más fundamentadas sobre la descarga de aplicaciones.


Pero para que Internet Explorer 10, se ejecute en el entorno seguro "sandbox" es necesario que este establecida como navegador predeterminado en el Sistema, sino lo estuviera, se ejecutará en el escritorio y no en la interfaz Metro, por lo que quedaría fuera del sandbox.

Hasta aquí la "segunda entrega de mis primeras impresiones" con Windows 8. Hasta la próxima...