.

.

miércoles, 30 de marzo de 2016

Burp Suite - Auditando tráfico en un Smartphone (Parte 2)

Una vez tenemos configurados Smartphone y Burp Suite vamos a empezar a realizar la práctica.

Dejamos abierto Burp Suite en su pestaña "Proxy"/"Opciones"
Dentro de la pestaña "Proxy" dejamos opciones y pulsamos la primera pestaña "Intercept".

 

 Aquí iremos viendo las peticiones de paquetes de datos que hace nuestro terminal de telefono o tablet y aparte de analizarlos podremos darles paso con el botón "Forward" a que lleguen y se carguen en nuestro Smartphone o cortar la comunicación simplemente con el botón "Drop".

Toda web o aplicación bien protegida no nos mostrará la comunicación al detectar un proxy intermedio no seguro, o si nos ofrece algo será algo no relevante o debidamente encriptado.

Debido a esto y con el sentido de poder mostrar algo visible, he elegido una web, también disponible en app, española llamada "Comuniame" que podemos definir como una especie de juego a tiempo real (simulador) de la liga española, que no está bien protegido y que nos dará mucho juego para el ejemplo, ya que permite transacciones de dinero no real, fichajes de jugadores, etc., y por tanto tiene mucho transito de datos.

Con Burp Suite abierto en mi ordenador, abro dicha web o aplicación el mi Iphone.


Si nos fijamos en Burp Suite, ya estará interceptando tráfico.
Habrá momentos en que la web/aplicación no termina de cargar en el Smartphone. Si nos fijamos en Burp Suite, el botón "Forward" estará iluminado en naranja, cada vez que lo pulsemos estaremós dejando pasar ese paquete de datos y así vamos viendo y estudiando las diferentes peticiones y dejando que cargen en el movil, si no pulsamos hasta que "Forward" deje de iluminarse en repetidas ocasiones, no dejaremos de pasar todos los datos y por tanto no terminarán de cargarse nunca en Smartphone, llegando en muchos casos a dar un error por retardo de información.

Como vemos, lo primero que nos encontramos en la App, es un identificador en el que iniciar sesión.
Yo ya he creado una cuenta con anterioridad con la intención de realizar la prueba, así que pulso que "Ya tengo cuenta" y paso a identificarme.


Introduzco usuario y contraseña.
Si en Burp Suite hemos ido pulsando "Forward" y no tenemos ningun paquete de datos pendiente, al pulsar "Iniciar Sesión" en la App mandará un paquete con la identificación de usuario que pasará por nuestro proxy.


















Está información sería la petición, y como podemos ver entre todos los datos enviados, ahí tenemos en la última línea, email y password.
Si esto fuese captado por una tercera persona, podría acceder a nuestra cuenta, ya que posee nuestras credenciales.
Como podemos ver, si pulsamos "Forward" los datos siguen su curso y la app validará el acceso.



Igual que podemos visualizar los datos, también podemos modificarlos a nuestras anchas.
Dentro de la App, en los pequeños simbolos que vemos en la parte superior hay uno que son dos flechitas. Teoricamente si lo pulso y accedo, en ese apartado puedo realizar fichajes de jugadores.
Veo que me salen varios, voy a elegir uno al azar y voy a darle a comprar por el precio que indica.


Según vemos su valor ficticio es "2.350.000". Damos a aceptar.

Vamos a ver que nos ofrece Burp Suite.
 Yo voy a buscar si en algún lugar de toda esta información encuentro algún valor que indique justamente "2350000" o algo así.
Si nos fijamos en la última línea de datos ahí lo tenemos. "amount" : 2350000

Pues bien, voy a intentar modificar este valor. Lo selecciono y voy a cambiarlo por lo que sea.


Ahora para ver que efecto causa en la app si es que causa alguno, pulso "Forward".

Y cual es la sorpresa cuando en la App nos devuelve esto:

Hemos sido capaces de cambiar nuestra puja inicial a través de Burp Suite.
Podemos ver el peligro que esto acarrearía de tratarse de otra app con datos reales, si estuviese igual de protegida que esta y alguien interceptara nuestros datos.

Vemos que podemos cambiar datos, al igual que interceptar información no encriptada.
Salimos de la sesión de la App.
Volvemos a intentar iniar sesión.


Metemos unos valores al azar y son los que nos muestra Burp Suite.


Si pulsamos "Forward" la app nos denegará el acceso, ya que las credenciales son falsas y no validas.
Pero si no pulsamos "Forward", solo tendremos que cambiar los valores de la última línea (email y password) por los capturados con anterioridad y ahora si pulsamos el resultado cambiará por completo.

Hemos conseguido acceder.

Para finalizar, vamos a ver un breve ejemplo con una App que a pesar de ser bastante más segura que la anterior y no ofrecer información a priori, como es "Waze" la App de navegación...


En el único paquete que es capaz de captar nuestro Burp Suite, que sería el primero, un paquete de información de aplicación sin ninguna importancia ni relevancia para nuestra integridad (a priori) comete un fallo escapandosele un dato.




Como podemos ver en la línea resaltada, "locatión", se indica una numeración.
Esa numeración, son cordenadas.... la de nuestra ubicación actual.

Si copiamos esta númeración según está y la colocamos en google:




Burp Suite - Auditando tráfico en un Smartphone (Parte 1)

Burp Suite - Auditando tráfico en un Smartphone (Parte 1)

Vamos a ver como testear en tráfico que genera un Smartphone ya sea a través de un navegador o una aplicación, a través de la herremienta Burp Suite. Esto con el objetivo de concienciarnos de la seguridad y de como dependiendo de la manera en que nos conectemos a la red y de la seguridad que tenga la Web en que navegamos o la App podemos correr ciertos peligros, como que nuestro tráfico sea capturado, modificado o inyectado.

La mayoría de las páginas web y aplicaciones tienen una serie de servicios que para comunicar con internet van generando una serie de paquetes de datos que van enviando y recibiendo y así se va generando un flujo de datos en la red. A través de estos envios de datos pues tendremos cargas de información, imagenes, etc., tendremos posibilidad de logearnos e identificarnos si ya estamos dados de alta en un servicio, o si no pues de registrarnos, etc.
Pues bien, toda esta información va viajando por la red y si la web o app en cuestión esta debidamente securizada, estos datos no serán ni visibles ni accesibles, por el contrario si no estan debidamente aseguradas estos datos viajaran visibles para quien tenga acceso a ellos.

Vamos a ver entonces como se verían estas peticiones y transito de datos a través de la red. Para ello vamos a utilizar Burp Suite, una herramienta o mejor dicho plataforma de herramientas integradas para la realización de pruebas de seguridad, busqueda, análisis y explotación de vulnerabilidades.


Yo la utilizaré como herramienta integrada dentro de Kali Linux, pero su web oficial desde la cual puede realizarse la descarga:
https://portswigger.net/burp/

Como Smartphone utilizaré un terminal Iphone 6, aunque realmente la práctica es similar para cualquier modelo o tablet.





Para realizar la configuración antes de nada, abrimos Burp suite.

Podemos ver que está estructurado en diversas pestañas, cada cual destinada a una función o actividad. En esta práctica vamos a utilizar básicamente la que nos señala "Proxy".
Abrimos la pestaña "Proxy" y vemos que justo en la línea inferior a las pestañas que ya teniamos se nos abren nuevas opciones.

 En este caso como nos muestra la siguiente imagen pulsamos opciones y la pantalla se nos llenará de información.
Lo primero que podemos ver nos indica: "Proxy Listeners". Ahí pulsamos el botón "Add" para añadir los puertos que queremos escuchar y se nos abrirá una nueva ventana.


La rellenamos como vemos en la imagen, solo introduciendo en esa primera pestaña de nombre "Binding" el puerto que queremos escuchar, que en este caso será el "8080" y le marcamos que a parte de puerto, como dirección tomamos todas las interfaces posibles "All interfaces".

Para los que aún no lo hayan entendido, el cometido de Burp Suite al utilizarlo como proxy, será el de interponerse de alguna manera entre el terminal y la red. De esta forma todas las peticiones que realicemos en este caso a través del Smartphone, por ejemplo hacer una busqueda en nuestro navegador, pasarán primero por Burp Suite.

Una vez que ya tenemos nuestras opciones rellenadas, damos "OK".
Y seleccionamos la opción que acabamos de crear poniendo un "tick" en el cuadrito de selección.


Ahora, de momento dejamos nuestro "Burp Suite" ahí como esta y cojo mi telefono.


Abro "Ajustes" o "Configuración" dependiendo del terminal.
Busco el apartado correspondiente a la configuración "Wifi" (en algunos "Redes", "Internet", etc.)
En mi caso voy a elegir mi red Wifi de casa dentro de las encontradas por mi terminal.

La selecciono y me meto en la Configuración de mi red Wifi.


Va a haber unos parametros configurados ya, pero tiene que haber un apartado que indique Proxy. Este vamos a configurarlo manualmente.
Tendremos que indicarle que utilice el puerto 8080, en la dirección IP del equipo en el que estamos utilizando Burp Suite.
En mi caso 192.168.1.39

Para saber la IP, dentro de tu equipo puedes meterte en configuración de red y averiguarla, o en el terminal de Linux mediante un "Ifconfig".









 

 Una vez introducidos estos valores en nuestro Smartphone he indicandole que se conecte a la red mediante este Wifi configurado para que navegue a través del proxy, podemos empezar a realizar las primeras pruebas.


Burp Suite - Auditando tráfico en un Smartphone (Parte 2)

domingo, 20 de marzo de 2016

Wireshark - Capturar contraseñas en Web HTTP

En esta entrada voy a utilizar el analizador de protocolos Wireshark para realizar un análisis de mi red y por medio de un filtrado de datos nos muestre que contraseña y usuario he utilizado para logearme en una web HTTP.

Wireshark es un software libre y disponible para casi todos los sistemas operativos, así que si no lo tienes instalado en tu equipo solo tienes que descargar el que se adapte a tí.
Su web oficial: https://www.wireshark.org/

Sin más dilación arrancamos Wireshark.
En este caso, como yo trabajo a través de una red inalámabrica voy a elegir análisis Wi-Fi como vemos en la imagen.

Una vez que elegido, Wireshark empieza a análizar el tráfico y si le dejamos correr unos segundos podemos ver como empiezan a entrar todos los movimientos que se están produciendo en la red.
Nosotros ahora para esta prueba solo estamos interesados en todo lo que provenga del protocolo Http que es en el que queremos capturar la contraseña, de modo que en la barra de filtrado, que vamos a ver en la imagen siguiente en color verde, escribimos "Http".
A partir de este momento los resultados de este protocolo serán los únicos que se nos muestren.







Una vez que ya tenemos nuestro software analizando vamos a buscar una web con la que realizar la prueba.
Como dije al principio en esta entrada vamos a trabajar con web que trabajen con "Http" ya que es un protocolo menos seguro que "Https".
En este caso voy a utilizar una web que trabaja a modo de buscador de cursos presenciales u online.

Creo una cuenta para realizar esta prueba y voy a pasar a conectarme.
El usuario o mail lo podemos ver en la imagen, la contraseña de momento no la desvelo, la veremos ahora si todo sale bien.

Iniciando sesión . . .











Seguidamente nos vamos a Wireshark que se ha quedado analizando.
Entre todos los resultados que nos esta ofreciendo de las actividades que se están dando en la red, vamos a buscar lo siguiente. Buscamos en la columna de más a la derecha, donde se están mostrando las actividades realizadas, la que nos indique "POST" y "login" o "Login-post".












Damos doble click en la línea cuando la localicemos y se nos va a abrir una nueva ventana.
En esta se nos van a especificar una serie de actividades que han sucedido en un "login" como la línea indicaba. 



Como podemos ver en el proceso de conectarnos a la web de cursos "usuario2 y "contraseña" se muestran de forma clara.


jueves, 17 de marzo de 2016

"IDS" Sistemas de detección de intrusos


IDS Sistemas de detección de intrusos

Dentro de los componentes de seguridad que encontramos dentro de una organización nos encontramos los sistemas de detección de intrusos (IDS).

Un IDS es un proceso, sistema o software encargado de escuchar el tráfico que se desarrolla dentro de una red, con el objetivo de detectar actividades anomalas, anormales o sospechosas, con el objetivo de reducir riesgos de intrusión y minimizar posibles daños potenciales.

Podemos clasificar los IDS según función o comportamiento en:
  • Sistemas de detección de intrusos basados en el host (HIDS). Estos trabajan desde un host detectando actividades anómalas o inusuales en su interior.
  • Sistemas basados en el comportamiento. Tratan de observar el tráfico creando una serie de parámetros de comportamiento estructurado y esquematizado, esperando una desviación de este haciendo saltar las alarmas.
  • Sistemas de detección basados en redes (NIDS). Como su nombre indica, trabajan sobre el tráfico de datos e información que circulan por la red, buscando comportamientos o actividades que se salgan de lo normal.
IDS Sistemas de detección de intrusos
Ejemplo de utilización de IDS dentro de una red

El objetivo principal de los sistemas de detección de intrusos, es que ante una actividad anómala o intrusiva, un ataque, o cualquier comportamiento dado fuera de la actividad rutinaria y normal, harán saltar las alarmas de que algo está sucediendo.
Esta forma de procedimiento de actuación, se basa en la idea de que  cualquier atacante, persona o software externo, que intenten acceder de forma ilegal a nuestro sistema, no actuará como nosotros o cualquier otro usuario de nuesta red lo haría normalmente, sino que intentará acceder a lugares donde no tiene permisos, estará interactuando como usuario desconocido, en una horas en las que no es normal que se produzca esa actividad, siguiendo pautas que no sigue normalmente ninguno de los usuarios registrados, etc.

Básicamente estas son las funciones y objetivos de un IDS, pueden ser instaladas como un componente único o integradas dentro de otro elemento como puede ser un "Firewall" o una "Puerta de enlace (Gateway)" ganando de esta manera en funcionalidades, pero hay que dejar claro que por si solos los IDS son incapaces de detener los ataques detectados, simplemente porque no está dentro de sus funciones que son solo detectar.

Dicho esto, también hay que aclarar que no todo lo detectado por un sistema de detección tiene que tratarse de una amenaza, ya que como bien he dicho lo que capta son actividades y comportamientos inusuales dentro de su actividad normal de cada día.
De manera que podemos encontrarnos ante diferentes tipos de intrusiones:
  • Detecciones de intrusión anómala. En esta ocasión se ha producido una intrusión externa en la red con objetivo desconocido y ha sido detectada.
  • Detección de una falsa intrusión (Falso pósitivo). El IDS detecta una intrusión, cuando en realidad no se ha producido ninguna. Esto puede suceder debido a un comportamiento inusual de alguno de los usuarios habituales (Inusual no quiere decir anómalo).
  •  Intrusión sin detección. En este caso se produce una intrusión desde el exterior, bien por un curioso, bien por alguién probando sus habilidades, pero que no tiene ninguna mala intención, con lo cual al no realizar ninguna actividad intrusiva o fuera de lo normal dentro de la red, el IDS no es capaz de detectarlo. Esta clase de situación a priori no causa problema ya que no se produce prejuicio, sin embargo puede producir una sensación de poca seguridad de cara al exterior.
Una vez vistas las características generales de IDS, pasará como con todas las cosas, tendrán sus defensores y sus detractores. ¿Quien tiene razón? ¡Pues para gustos los colores!
Yo por mi parte voy a nombrar algunas de las ventajas y desventajas que nos proporcionan.

VENTAJAS:
- Detección de amenazas con el consiguiente suministro de información sobre estas, como por ejemplo su origen, su forma de proceder, etc.
- Con la detección de las amenazas conseguimos prevenir daños antes de que sucedan.
- Gracias a ellos podemos detectar intrusiones imprevistas y con las que no habíamos contado como posibilidad remota, de manera que podrémos reforzar nuestra seguridad.
- Ayudan a evitar comportamientos indebidos dentro de la red por los usuarios registrados, como abuso de privilegios, ruptura de protocolos de seguridad, etc.
- Son una barrera más a posibles intrusos, además de capturar su comportamiento y su rastro.

DESVENTAJAS:
- Falsas alarmas.
- Fallos de funcionamiento (no detección de intrusiones sin actividades agresivas).
- En algunos casos son tomadas como única medida, sin tener en cuenta que solo son un componente más a utilizar en una buena política de seguridad.
- Al ser un sistema que se basa en comportamientos normales y anormales, en caso de cambiar actividades dentro de la red, el IDS debería de entrar en un periodo de reconfiguración, lo cual le haría perder su efectividad durante dicho periodo.

martes, 15 de marzo de 2016

Primeros pasos con Python

 Voy a empezar mi primera entrada en este blog dedicandosela a uno de los lenguajes de programación que a mi parecer esta entre los más importantes de la actualidad, tanto por su dinamismo, funcionalidad, facilidad interpretativa y de concepto, propiedades que han propiciado su gran difusión y catapultado su proyección futura.

Su mayor característica es sin duda su filosofía de estar compuesto de una sintaxis que favorezca un código legible y facilmente comprensible.

Otra de sus grandes virtudes, es la de tratartese de un lenguaje multiparadigma, lo cual quiere decir que no se cierra a un simple enfoque o manera de abarcar los problemas, sino que utiliza la mejor filosofía posible y más adaptable a cada problema para encontrar la mejor solucción posible (permite encontrar solucciones utilizando más de un estilo de programación, dependiendo de a qué elemento esté enfocada esa programación).

Como no, estamos ante un software de código abierto y en este caso administrado por la "PSF" Python Software Foundation.


Python, como he dicho permite varios tipos de programación, haciendose adaptable a los programadores y no al revés. Podemos utilizar una "programación orientada a objetos""programación imperativa",  o "programación funcional".

Bueno, estas son algunas de sus características más notables, las cuales cito aquí para ir entrando en calor, pero esta no es una entrada destinada ni mucho menos a hablar de Python, de su historia y utilidades, si no, como reza su título para empezar a jugar.
De esta manera vamos a ir juntos paso a paso introduciendonos en el mundo de este lenguaje y aprendiendo a través de diferentes entradas que iré publicando periodicamente.

Paso 1.
Vamos a visitar la web oficial de la organización y a instalarlo en nuestro equipo.
Entramos en : https://www.python.org/
Aquí nos metemos en "Downloads" y seleccionamos la versión más actualizada en el momento de la descarga. En este momento yo descargaré la 3.5.1.


Y seleccionamos la adecuada al sistema operativo desde el que estemos funcionando.

Instalando . . .

Una vez ejecutado todo el proceso, buscamos los archivos que han sido instalados en nuestro equipo.
Abrimos "IDLE", que viene a ser el interfaz gráfico de usuario.

A partir de aquí comenzamos a jugar con Python.
Ánimo a ser autodidactas y comenzar a investigar por vuestra cuenta acerca de este gran lenguaje.

Por mi parte en la siguiente entrada seguiremos ahondando en la materia.


miércoles, 9 de marzo de 2016

El comienzo de un blog


Con estas líneas comienzo la andadura de este blog, cuyo tema central irá destinado a tratar sobre la seguridad informática en general.

La idea es ir haciendo publicaciones periódicas en las cual iré desarrollando algunas ideas personales, desengranando programas a la vez que voy realizando pruebas que muestren su funcionamiento, tratando temas y noticias de actualidad en materia de seguridad, informática y quizás también sobre otras materias tecnológica.

Mi pretensión es tratar temás para todos los niveles de conocimiento en general, algunás entradas serán muy básicas, haciendo llegar al lector novel información y experiencias de las que quizás no tenga cononocimiento alguno, y sin embargo habrá otras mucho más técnicas y avanzadas, para lectores que están buscando alguna información más concreta.

Sea como sea, espero disfrutar de esta experiencia y que a todos los que lleguen mis entradas les sean de utilidad o por lo menos les sirvan de entretenimiento.

Un saludo y Happy Hacking!!