Mostrando entradas con la etiqueta servicio. Mostrar todas las entradas
Mostrando entradas con la etiqueta servicio. Mostrar todas las entradas

viernes, 10 de junio de 2016

Reto VulnHub: Bobby

Qué pasa hackers! Hoy vengo con ganas de traeros un reto de VulnHub. Para quien no lo conozca, VulnHub es una página donde pueden encontrarse diferentes recursos para practicar y aprender acerca de seguridad, administración y redes, muchas veces en forma de reto.

Estos retos te dan un objetivo, que en materias de seguridad suele ser ganar acceso de root (o administrador) de sistema dentro de una máquina virtual, aunque puede ser otro objetivo, como el robo de información conseguir un flag o bandera, por poner ejemplos. En el caso que nos ocupa, es un reto de seguridad cuyo objetivo es conseguir dicho flag.

Un flag o bandera es normalmente un fichero, dentro de la propia máquina (más o menos escondido), que podemos conseguir cumpliendo los objetivos y consiguiendo acceso a cierta parte del sistema de archivos de la misma. Este flag es la prueba de que hemos conseguido dichos objetivos; por decirlo de alguna forma, hemos superado la prueba. 

La máquina que trataremos es Bobby. Bobby es un pobre sujeto que ha decidido comenzar un blog personal alojado en su misma máquina, publicando algunos datos personales sin prestar demasiada atención a la seguridad de la misma antes de ponerla al alcance de cualquiera en Internet.

La fuente de dicha máquina puede encontrarse aquí. Para instalar la máquina necesitaremos un software de virtualización (yo utilizo VMware Workstation, otra opción es Virtual Box). En la página encontraremos un fichero ejecutable, que al ejecutarse abrirá una utilidad para generar una imagen de Windows XP Professional SP3 vulnerable, tomando como entrada una imagen normal de dicho sistema operativo.

Este método suele utilizarse en páginas como VulnHub; modifica un sistema operativo para asegurarse que al instalarse sea vulnerable de una u otra manera (abriendo puertos, instalando servicios de red, creando usuarios, etc.) sin tener que modificar nada en la máquina posteriormente.

Una vez instalada la máquina, tenemos un equipo XP vulnerable. En mi caso, suelo configurar todas las máquinas de prueba en modo de red NAT para que no sean accesibles desde el exterior, pero sí entre ellas.

Máquina XP de Bobby funcionando en Vmware Workstation
Podemos empezar realizando una exploración de los puertos y servicios de la máquina mediante Zenmap (o nmap). Puede hacerse en la máquina anfitrión o a través de cualquier otra máquina que tengamos virtualizada en la misma red NAT. En este caso utilizaré para las pruebas una máquina Kali Linux.

Primero tenemos que conocer la dirección IP de la máquina objetivo. Aunque normalmente podemos conocerla mediante un barrido IP con nmap o Zenmap, en la página donde conseguimos la máquina podemos ver que está configurada con la IP 192.168.1.11. Por ahorrarnos problemas de direccionamiento, estableceremos nuestra red NAT dentro de la misma subred (192.168.10/24).

Conociendo ya a priori la dirección IP del objetivo, ejecutamos un escaneo IP intenso con Zenmap. Puede hacerse de forma similar en nmap, pero así tenemos resultados más visuales.

Reporte de Zenmap
Vemos ya que hay dos servicios abiertos: un servicio web tipo IIS (servidor web de Microsoft) y un servicio FTP. Ya tenemos por dónde empezar a explorar. Si accedemos al servicio mediante el explorador web, nos encontraremos un blog personal que Bobby acaba de empezar, con algunos datos acerca de su persona: su película favorita, su grupo favorito y su sistema operativo preferido.

El blog de Bobby
Siempre que nos encontremos una página web, se debería echar un vistazo al código fuente de la misma en búsqueda de pistas acerca de su naturaleza, comentarios del autor, etc. La experiencia puede decirnos que, al ser una página muy simple, probablemente programada puramente a mano, haya anotaciones y comentarios en el HTML. Efectivamente, podemos ver uno interesante.

Comentario en el código fuente
Al parecer, Bobby prefiere que le llamen Bobby, y no Bob o Robert. Este tipo de datos siempre vienen bien a la hora de recolectar información; al usuario de este sistema se le llama de tres maneras, que bien pueden ser su nombre de usuario o parte de él. Lo anotaremos para luego.

Podemos seguir explorando un poco el servicio web. Para ello podemos contar con herramientas como Nikto o WhatWeb, que realizan una serie de comprobaciones automáticas sobre el servidor web y nos arrojan datos muy valiosos acerca del mismo. Ambas herramientas se encuentran dentro de Kali Linux, pero son descargables para otras distribuciones.

Salida de Nikto sobre el servicio web
Salida de WhatWeb sobre el servicio web
Algunos datos interesantes que tenemos sobre el servicio es que es un Microsoft IIS versión 5.1 (desactualizado), y que tiene habilitados los métodos PUT y TRACE, que son considerados muy inseguros. Es sobre todo interesante este primer método, ya que nos permite subir archivos al servidor web. Además, no se ha borrado la página /localstart.asp, incluida de forma predeterminada en servidores IIS antiguos como este.

Tras una breve exploración al servicio web, comprobamos que podemos conectarnos al servicio FTP mediante una simple sesión de consola. Pero, ¿cual es el usuario y la contraseña? En este punto es interesante probar un ataque de fuerza bruta mediante diccionario sobre el servicio FTP.

Para ello, necesitamos dos diccionarios: uno para los nombres de usuario, dado que no conocemos ninguno, y otro para las contraseñas. Para el primero, podemos intentar con uno bastante simple hecho a mano, contando con los posibles nombres de Bobby: Bobby, Bob y Robert.

Lista/diccionario corto de usuarios
Los introduciremos con la primera letra tanto en mayúscula como en minúscula, solo por si acaso. Si estos usuarios no resultan, habría que probar otras opciones más avanzadas; de momento, mantengámoslo simple.

Para el diccionario de contraseñas, utilizaremos la herramienta cewl, incluida dentro de Kali Linux. Dicha herramienta lee una página web y crea un diccionario simple a partir de las palabras que encuentra en ella. Aunque no distingue mayúsculas y minúsculas, siendo el resultado un diccionario muy simple y algo inexacto, suele ser un buen punto sobre el que empezar.

Diccionario de contraseñas generado por cewl
Para el ataque por fuerza bruta mi primera opción suele ser siempre THC Hydra, incluida también en Kali Linux con una interfaz gráfica (Hydra GTK). La configuración del ataque es bastante sencilla, simplemente introduciendo la IP objetivo, el protocolo para el ataque (FTP) y los diccionarios de usuarios y contraseñas.

El resultado aparece enseguida; hemos tenido suerte. El usuario es bob, la contraseña es Matrix. ¡Hay que proteger más los servicios, hombre!

Resultado del bruteforce
Mediante una sesión de consola, podemos acceder al servicio FTP utilizando estos credenciales. ¡Bingo! Además, nos ha tocado la lotería: tenemos acceso al directorio wwwroot que contiene las páginas web accesibles mediante el servicio IIS.

Tachán, acceso al FTP via consola
Como pequeña prueba para comprobar nuestros permisos, nos introduciremos en el directorio wwwroot e intentaremos crear un directorio llamado owned para la ocasión. Efectivamente, podemos hacerlo, así que tenemos permisos de escritura sobre el directorio raíz del servicio web. Algo preocupantemente peligroso para la víctima porque, como veremos ahora, podemos vulnerar el servicio subiendo un backdoor.

Comprobamos que tenemos permisos de escritura
Al parecer, también se ha dejado una pequeña pista en el archivo hint.html que encontramos en el directorio raíz del servicio web. Tras descargarlo, podemos ver que íbamos bien encaminados:

Pequeña pista para la explotación
Ahora podemos entrar en la fase más jugosa: la explotación. Dado que podemos subir ficheros al directorio web, una buena opción es subir en el equipo víctima un backdoor o puerta trasera que al ser accedido se conecte a nuestra máquina, proporcionando acceso completo a la víctima.

El backdoor deberá ser activado mediante el servicio web; para ello, tendrá que tener un formato de página web. Sabemos que el servidor es un Microsoft IIS con tecnología ASP, así que tendrá que ser un código ejecutable en dicho entorno.

Metasploit Framework, que podemos encontrar también en Kali Linux, nos proporciona herramientas para crear backdoors de estas características. Utilizaremos la herramienta msfvenom que nos proporciona Metasploit para esta tarea.

En este caso, msfvenom creará una página tipo ASP que, al ser accedida, realizará una conexión a nuestro equipo (lo que se conoce como conexión inversa, dado que es la víctima la que se conecta a nosotros) y ejecutará el payload Meterpreter, proporcionándonos una interfaz de acceso completa e interactiva con la víctima en forma de comandos.

El primer paso será crear el propio backdoor. Puede hacerse de manera muy sencilla con msfvenom en una consola de Kali Linux. Hay que prestar especial atención a las opciones que le indicamos, que deberán proporcionar información sobre el equipo víctima a la herramienta, como la arquitectura (x86), familia del sistema operativo (Windows) y sobre nuestro equipo, indicando la IP y el puerto a la escucha al que se conectará el backdoor.


Creación del backdoor
Acto seguido dejaremos a la escucha en nuestro equipo un handler de Metasploit que recibirá la conexión desde el equipo víctima. Para no tener que desplegar todo el framework, lo haremos mediante la utilidad msfcli, que simplemente ejecuta el handler de forma directa. Tendremos que especificar, nuestra IP y puerto que queremos a la escucha, así como el payload que se ejecutará.

Handler para la conexión

Por último, subiremos al equipo víctima el archivo ASP que ejecutará el backdoor, haciendo uso de nuestra conexión FTP. La transferencia se realiza con éxito.

Subida del backdoor a la víctima
 Solo queda ir a un explorador web, ejecutar el backdoor, y cruzar los dedos...

Sesión de Meterpreter abierta
¡El ataque ha tenido éxito! En el handler que dejamos a la escucha tenemos un intérprete Meterpreter funcionando con permisos de sistema. Hemos conseguido acceso total a la máquina. Dado que el objetivo era conseguir un flag como prueba de nuestro éxito, abriremos un intérprete de comandos de Windows con nuestra conexión Meterpreter para buscarla. La encontraremos en el escritorio del usuario Administrator.

Flag o secreto de la máquina
 Con esto, el reto queda terminado y superado. Espero que os haya gustado el desafío. Para cualquier duda o reclamación, dejad un comentario e intentaré responder lo mejor que pueda. Gracias por leer.

Un saludo!
hartek

miércoles, 6 de abril de 2016

Android y Tor: Navegación segura con Orbot y Orfox


Buenas noches hackers!! Últimamete en Fwhibbit estamos tocando mucho los temas relacionados con la red Tor: creación de servicios ocultos, la web profunda, conexión de troyanos a través de Tor... ¡y lo que nos queda! Siguiendo un poco el tema, y aprovechando que he estado últimamente tonteando mucho con ello, hoy vengo a introduciros la navegación anónima mediante Tor en Android.

Actualmente una gran parte de nuestra navegación por la red es realizada mediante nuestros terminales móviles. Aunque gran parte de ese tráfico no querremos camuflarlo (pasar nuestra conexión a Facebook por Tor pierde su sentido por razones obvias), hay ciertas operaciones que querremos pasar por la red anónima: comunicaciones privadas, divulgación anónima, acceso a cuentas con la que no queremos que se nos relacione...

Para ello, podemos utilizar las herramentas que nos proporciona el grupo Guardian Project: Orbot y Orfox.

 Orbot y Orfox - Navega de forma anónima y segura

https://lh3.googleusercontent.com/iGAZ0rWvU-gGFiQrI4Vfb9AI3wn2kx0p1n7dtsPX9AJVASx18Bn5m6uGu2Tr8_8n35E=w300
Orbot
Orbot, el producto central de las apps que nos ofrecen, es nuestra puerta de entrada a la red Tor. Contiene todo lo necesario para abrir una conexión mediante proxy local a dicha red, que puede ser utilizada a través de cualquier aplicación que permita dirigir su tráfico a un proxy. Esto es, en esencia, el mismo proceso que en un PC convencional. Aunque si no utilizamos Tor más que para navegar, la siguiente app es todo lo que necesitamos para empezar.
Orfox, un navegador basado en Firefox para Android, utilizará la conexión creada por Orbot para permitirnos navegar por la red a través de Tor. Tiene varias opciones preconfiguradas para hacer la navegación lo más anónima y segura posible, como el uso forzado de HTTPS y el bloqueo de tecnologías como Java o Flash, incluso Javascript a ciertos niveles.
Cover art
Orfox
Ambas apps pueden instalarse de forma rápida desde la Play Store de Android, y pueden ser utilizadas sin tener nuestro dispositivo rooteado. Una vez instaladas, solamente tenemos que activar Orbot y empezar a navegar desde Orfox.

Activación de Orbot y navegación con Orfox

Para ello, abriremos la interfaz de Orbot y veremos que no puede ser más simple. Con una pulsación larga sobre la cebolla, el servicio comienza a activarse, y te avisará cuando establezca la conexión. La misma pulsación larga ahora serviría para desactivar el servicio. Además, deslizar con el dedo por la cebolla hacia un lado servirá para actualizar nuestra identidad en la red Tor, adquiriendo una nueva ruta de conexión.

Vista general de Orbot

Una vez activada nuestra conexión a la red Tor, podemos abrir el explorador Orfox para navegar de forma segura. A todas luces, la impresión es de ser un Firefox para Android apenas modificado, así que no nos costará adaptarnos. La recomendación es acceder a la página de comprobación de que estamos utilizando la red Tor para navegar, solo por asegurarnos. Si todo es correcto, se nos mostrará la confirmacíon de que estamos protegidos.

Confirmacíon de nuestra conexión a Tor

Desde el mismo navegador podremos acceder a cualquier sitio de la Internet pública y además cualquier sitio de la red profunda y los servicios ocultos. Sin embargo, hay que tener en cuenta que algunos ISPs bloquean el acceso a Tor y en ocasiones no podremos conectaros desde/hacia algunos lugares. Una posible opción es el uso de puentes, una opción contemplada en Orbot.

Extra: Protege todos tus servicios

Orbot puede proteger todos nuestros servicios mediante lo que llama Transparent Proxying. En resumidas cuentas, se asegura de que todas las conexiones de red del teléfono se realizan pasando por Orbot, que las redirige a la red Tor. De esta forma podemo acceder a la red mediante cualquier otra aplicación (¡¡ten cuidado con lo que usas!!).

La "desventaja" de esto es que para usarlo debemos proporcionar a Orbot acceso de root; es decir, debemos tener nuestro teléfono rooteado. Es una buena ocasión para hacerlo, ¡aprovecha!

Para activar el Transparent Proxying debemos activar las tres primeras opciones en su apartado dentro del menú de configuración de Orbot, dando con ello permisos de root a la aplicación, activando el proxy transparente y forzando todas las aplicaciones a pasar por Orfox (podemos seleccionar apps concretas en vez de esto).

Activando el Transparent Proxying

La última opción activa este proxy cuando utilizamos el móvil como punto de acceso mediante la zona wifi o la conexión USB; puede resultar interesante, pero no ahondaremos mucho en ello.


Bueno chicos, hasta aquí la entrada de hoy. Espero que os haya gustado y os sirva para aprender mucho acerca de la protección de nuestras comunicaciones. Si tenéis cualquier duda, por supuesto, dejad un comentario o contactad con nosotros.

Un saludo hackers!!
hartek

Google Analytics