Archive for Sin categoría

Hacking vía Satélite

Vamos a jugar un poco con decodificadores de televisión vía satélite con el objetivo de ver algunos fallos de seguridad, pero antes de nada vamos a dar varias nociones para aquellas personas que no conozcan el tema.

Normalmente la persona que quiere ver la televisión de pago vía satélite necesita una antena parabólica (por la cual recibimos la señal de datos), un decodificador de satélite (capaz de decodificar la señales del satélite) y una tarjeta de abonado (que contiene las claves para descifrar la señal de datos cifrada). Hasta aquí todo correcto, verdad? pero antes de nada vamos a añadir una:

NOTA LEGAL

  • El objetivo de este artículo es conocer la seguridad de los receptores de comunicación vía satélite.
  • Rechazamos el uso de cualquier técnica ilegal como Card Sharing o IKS.
  • Ningún sistema sufrió daño alguno mientras se realizaron las pruebas de concepto.
  • No me hago responsable del mal uso que podáis dar a la información aquí mostrada.

Read more

Auditando Aplicaciones en Android

Vamos a ver algunos ejemplos de controles que se llevan a cabo en un Pentesting de Aplicaciones en Android. Lo más importante en un proceso de auditoría será el hacer uso de una metodología, de tal forma que podamos llevar a cabo una serie de pasos de manera ordenada.

Os propongo que hagamos uso de la metodología OWASP, concretamente en su apartado de OWASP Mobile Security Project podemos encontrarnos con muchos recursos: herramientas, guía de desarrollo seguro, plantilla de controles, guía de testing de Apps… Centrándonos en esta última podemos dividir nuestra auditoría en tres partes: recopilar información, análisis estático y análisis dinámico. Read more

Web Hacking : Una línea para manejarlos a todos

¿Podría darte una línea de código acceso a un sitio Web completo? ¿Qué información obtendría un atacante si consiguiera llegar al nivel más bajo de tu página Web? es decir, a tu BBDD o SSOO. Dependiendo del objetivo de la misma podría encontrar seguramente información sobre la identidad de los usuarios, transacciones bancarias, compras online, usuarios, contraseñas y mucho más.

¿Cuánto vale tu información? Debemos de establecer unos controles de seguridad mínimos a nuestro sitio Web, llevar a cabo una serie de auditorías de seguridad que garanticen el buen funcionamiento de la misma. No sólo tener en regla la política de cookies y poco más, sino os puede ocurrir como la Web con la que me encontré hace unas semanas a la hora de preparar una charla. Antes de nada os muestro un disclaimer.


Aviso Legal y Descargo de Responsabilidad

  1. El objetivo de lo mostrado a continuación tiene fines educativos para aprender a mejorar la seguridad de nuestros sitios Web.
  2. No nos hacemos responsables del mal uso que se le pueda dar a las herramientas mostradas.
  3. Toda la auditoría Web mostrada a continuación se ha llevado a cabo con permisos de sus administradores según lo acordado en documento legal.

Vamos a llevar a cabo la auditoría de un sitio Web siguiente la metodología OWASP, concretamente seguiremos la OWASP Testing Guide V4. Los diferentes puntos que abarca dicha metodología los podéis ver detalladamente en el enlace anterior. A continuación nombramos los aspectos generales a tratar.

Read more

Creando un túnel SSH con Nessus

Muchas veces a la hora de hacer una auditoría externa y tener algún sistema de protección exterior (Firewall, IDS…), se nos habilitan diferentes mecanismos para poder acceder dentro de la red que queremos auditar sin que su seguridad exterior se vea comprometida. Es muy común habilitar un túnel SSH para acceder al interior de la red local.

notaLegal

Hoy vamos a ver cómo aprovechar ese túnel para correr Nessus como si estuviéramos ubicados dentro de la red. Como sabéis, la versión gratuita de Nessus tan sólo nos permite escaneos a direcciones IP locales, sin embargo mediante el túnel vamos a conseguir utilizar esta herramienta frente a una IP pública, como si estuviéramos dentro de la red a auditar aún estando fuera de la misma.

Vamos a utilizar para ello un túnel SSH y la herramienta Proxychains de la cual tenéis un artículo en el blog sobre cómo trabajar con ella y Tor.

http://hacking-etico.com/2013/08/27/anonimato-con-tor-y-proxychains/

En el siguiente diagrama vemos el entorno en el cual vamos a trabajar:

tunel

La idea es crear un túnel SSH y haciendo uso de Proxychains reenviaremos todas las peticiones de nuestro PC (Nodo A) a través del túnel, de tal forma que Nessus va a pensar que está corriendo el scanner en la máquina intermedia (Nodo B) que sí está en la misma red del servidor a auditar (Nodo C). Los pasos a seguir son los siguientes:

Creación del túnel SSH con el nodo B.

Para crear el túnel previamente tenemos que tener habilitado en el nodo B el servicio SSH con nuestro usuario correspondiente y una regla en el Firewall que permita las peticiones desde exterior hacia la máquina B (natearemos el puerto 22 mediante Port Fowarding a la máquina B).

Con todo preparado pondremos a la escucha un puerto en la máquina local A, de tal forma que todo lo que se envíe a ese puerto se reenviará a través del túnel que crearemos contra la máquina B. Usaremos el siguiente comando:

sudo ssh –p 22 –N –D 8081 [email protected]_B

Read more

Localiza a tu presa con Prey Project

Robo de móviles Android o iPhone, tabletas e incluso portátiles… hoy en día están aumentando cada vez más este tipo de delitos y son muchos los usuarios que nos piden ayuda para poder recuperar sus dispositivos por la importancia de la información que tienen en ellos.

En seguridad siempre solemos buscar remedio a las cosas cuando el daño ya está hecho. Con el artículo de hoy vamos a ver como podemos localizar a nuestra “presa”, para ello haremos uso de Prey Project, un servicio/herramienta que nos permite infinidad de posibilidades a la hora de monitorizar nuestros dispositivos.

Entramos en la Web de Prey Project y nos damos de alta con un correo electrónico, este nos servirá para entrar a nuestro panel de usuario donde monitorizar nuestros dispositivos.

prey01

Podemos añadir todo tipo de dispositivos, desde nuestros terminales móviles  (iOS o Android) hasta nuestros equipos de sobremesa o portátiles (Mac OS X, Windows o Linux). La versión gratuita nos permite monitorizar hasta 3 dispositivos. En nuestro caso hemos añadido dos terminales móviles y un portátil, todos ellos los podemos monitorizar desde nuestro panel de administración. prey02

Para añadir estos dispositivos en nuestro panel de control tenemos que instalar la aplicación en aquellos dispositivos que queramos monitorizar, por ejemplo en nuestro terminal Android, donde nos aparecerán muchos permisos que conceder a la App, pues con ella vamos a poder a acceder a toda la información que queramos del teléfono.

preyAndroid

Una vez dentro del panel de administración seleccionamos el dispositivo Android y vemos todas las posibilidades que tenemos.

prey03

Dentro de las opciones que tenemos hemos elegido la de Mapa y acciones, donde vemos en el panel de la derecha como podemos hacer sonar el teléfono, enviar un mensaje en pantalla, ocultar la App en el terminal o incluso bloquear el terminal con una clave, además de la geolocalización del terminal.

Una de las posibilidades más interesantes de este servicio es la posibilidad de Marcar como perdido, lo que hace que se nos envíen a nuestro correo electrónico constante información sobre donde está el terminal con información de longitud/latitud, redes que tiene a su alcance o incluso fotografías desde todas las cámaras del mismo.

prey04

Estos Reportes los podemos consultar a posteriori con muchísima información sobre nuestro terminal, la cual nos permitirá cazar a nuestra “presa”, incluso tener fotos de la misma.

reporte

Vemos como se nos ofrece información exacta de geolocalización con coordenadas del dispositivo, modelo, IMEI, IP pública desde donde se conecta a Internet, fotografías de las cámaras delantera y trasera e incluso la lista de redes que tiene el dispositivo al alcance.

Tenemos también opciones de ver los Informes de Actividad de los dispositivos, donde podemos hacer un seguimiento de todo lo que ha ido haciéndose desde el terminal (ubicaciones, redes a las que se conecta…)

prey05

Otro información importante que podemos obtener desde la opción Información de Hardware son datos como el IMEI o la MAC del dispositivo.

En definitiva, una herramienta en cuya versión gratuita nos brinda muchas posibilidades para recuperar nuestros dispositivos. Dentro de la versión de pago incluye mejoras en cuanto a recuperación remota de datos y otras opciones.

Existen otras herramientas en Android muy conocidas como puede ser Android Manager o Cerberus, las cuales pueden complementar a Prey Project en dar caza a nuestra “presa”.

Dar las gracias a Miriam García por enseñarnos de la existencia de esta herramienta, la cual es muy interesante que conozcáis.

Un handshake a todos y como ponen los chicos de Prey Project en sus mails:

Happy Hunting !!

@eduSatoe

“Cada dolor te hace más fuerte, cada traición más inteligente, cada desilusión más hábil y cada experiencia más sabio…”

Parando Metasploit con Snort

Hoy vamos a ver como podemos detectar cualquier tipo de ataque a una aplicación vulnerable de nuestro servidor, simplemente analizando aquellos posibles exploit que puedan ser lanzados contra este y añadiendo una regla en nuestro IDS para detectarlos y pararlos, en nuestro caso utilizaremos Snort. El escenario sería el siguiente:

escenarioPC-Metasplit

La idea es identificar una característica única del exploit a detectar con el IDS y crear una regla con Snort para detectarlo. Para ello previamente lo que hacemos es lanzar el exploit para explotar la vulnerabilidad y capturar el tráfico para analizarlo.

meterpreter

En este momento tenemos que identificar una característica única/particular de este exploit. Debemos ser capaces de obtener la máxima información de como funciona el exploit, para ello podemos analizar el código del propio exploit así como examinar su documentación.

Exploit –> http://www.exploit-db.com/exploits/28681/

Concretamente hemos usado un exploit bajo metasploit para explotar el puerto 21 de un FreeFTPd con una vulnerabilidad que lleva a cabo un PASS Command Buffer Overflow, es decir, introducir una contraseña no esperada para provocar un desbordamiento de buffer. Lanzamos el exploit varias veces y obtenemos varios ficheros .pcap que nos disponemos a analizar exhaustivamente:

wireshark1

wireshark2

Una vez que somos capaces de sacar información que identifique al exploit unívocamente nos disponemos a generar una regla en Snort. Las reglas en Snort constan de dos partes: la cabecera y las opciones. El objetivo de este artículo no es explicar el funcionamiento de Snort, ni tampoco el de como crear una regla, para ello podéis consultar su manual en http://manual.snort.org/.

Si analizamos cada uno de los paquetes que lanza el exploit veremos que se están inyectando operaciones tipo NOPs (No-Operation, instrucciones que no hacen nada, como por ejemplo sumarle 0 a un registro) para rellenar instrucciones además del Payload inyectado. Esto se suele hacer por muchos tipos de malware para reconducir la ejecución del programa, caso de caer en una posición de memoria donde haya una NOP, se ejecutarán todas las instrucciones que no hacen nada hasta llegar al trozo de código malicioso que realmente quiere ejecutar el atacante. Vemos con Wireshark las NOPs y lo que realmente inyecta el Payload.

nops

user_pass

Con toda esta información ya podemos crear un regla en nuestro IDS Snort para detectar este exploit. A continuación mostramos la regla creada según las peculiaridades encontradas en el exploit:

drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:”Exploit FreeFTPd  PASS Command Buffer Overflow detectado by Hacking-Ético”;  content:”USER anonymous”; content:”PASS “; pcre:”/^PASS\s[^\n]{100}/smi”; classtype:shellcode-detect; sid:1000001; rev:1; nocase;) ;

Hemos visto que el exploit va dirigido al puerto 21, que hace uso del usuario anónimo y que introduce varios caracteres raros en la parte de la PASS, por tanto esas serán nuestras características concretas para nuestra regla.

Analicemos pues la parte de la cabecera:

drop tcp $EXTERNAL_NET any -> $HOME_NET 21

Se aplicará la regla de eliminación de paquete (drop) a todos aquellos paquetes que vengan vía tcp desde una red exterior ($EXTERNAL_NET es una variable que identifica cualquier IP externa) desde cualquier puerto de comunicación en el origen (any); y cuya petición vaya destinada a una IP interna ($HOME_NET idem IP interna) sobre el puerto 21.

 Dentro de la parte de las opciones:

(msg:”Exploit FreeFTPd  PASS Command Buffer Overflow detectado by Hacking-Ético”;  content:”USER anonymous”; content:”PASS “; pcre:”/^PASS\s[^\n]{100}/smi”; classtype:shellcode-detect; sid:1000001; rev:1; nocase;) ;

En este apartado determinaremos que características tienen los paquetes que deben ser eliminados. Dejaremos constancia del bloqueo de paquetes en el log de Snort con el mensaje que aparece en msg.

El paquete debe ser una petición de usuario anónimo y que la clave contenga alguno de los datos contenidos en la expresión regular (pcre). Dicha expresión regular debe estar escrita en perl, podéis encontrar diferentes expresiones regulares y reglas en el fichero policy.rules de Snort. El resto de las opciones determinan la clase de paquete (classtype), el identificador de la regla local (sid) y revisión (rev); y por último añadimos la palabra nocase para indicar al motor de Snort que la aplicación de la regla no sea “case-sentitive“.

La regla se añadirá al final del fichero de configuración de snort (snort.conf). Una vez añadida se comprueba su funcionamiento con los .pcap capturados del ataque para ver si es efectiva en caso de producirse nuevo ataque.

snort -A fast -c /ruta/snort.conf –pcap-dir=”/ruta/pcaps/” -l .

-A modo de la alerta, rápida en este caso (fast)

-c fichero de reglas, en este caso el snort.conf que hace referencia a todos los ficheros de reglas de que se encuentra en la carpeta de snort (/rutaSnort/rules) y además contiene al final nuestra regla. Debe ponerse todo en una sola línea.

–pcap-dir indicamos la carpeta donde están los pcap para comprobar.

-l indicamos la carpeta de salida del log (se creará un fichero llamado alert)

Una vez comprobado el funcionamiento de las reglas con los pcaps que contienen la captura del exploit, obtenemos el siguiente resultado:

alert

 Vemos como además de nuestra regla, hay otras reglas dentro de snort que detectan el uso del usuario anonymous o el overflow en la PASS. Ahora sólo tendremos que coger un exploit de un 0day y analizarlo para crear una regla de Snort y que no afecte a nuestro servidor hasta que podamos parchear la vulnerabilidad en cuestión. También se suele analizar el tráfico que genera ciertos malware y crear reglas en función de las peticiones que realicen.

Bueno ahora sólo queda que os pongáis a jugar con algunos exploits y los analicéis para poder detectarlos.

Un handshake

@eduSatoe

“Si caminas solo andarás más rápido, si caminas acompañado llegarás más lejos”

Felices Fiestas

Desde el equipo de www.hacking-etico.com queremos felicitar estas fiestas a todos los visitantes que diaramente visitan nuestro sitio.

Ha sido otro año de un incremento de visitas que no preveíamos pero que obviamente estamos muy contentos. Así lo dice igualmente el 5º puesto en los Premios Bitácoras al mejor Blog de Seguridad Informática.

Esto no sería posible sin vosotros y nos da un extra de confianza para seguir “al pie del cañón”.

Feliz Navidad y Próspero Año Nuevo.

El equipo de hacking-etico.com

hefeliz

Metadatos en Twitter con Rest API 1.1

Muchas veces no nos damos cuenta de la cantidad de datos que ofrecemos en la redes sociales cada vez que publicamos alguna nueva entrada. ¿Qué pasaría si accediéramos a la base de datos que utiliza cualquiera de estas redes sociales? Además de la información que vemos , ¿qué otra información guardan?

Vamos a ver que información obtenemos haciendo uso de la REST API 1.1 de Twitter que utilizan los desarrolladores de apps móviles (entre otros) para hacer peticiones al servidor y recuperar toda la información de usuarios, tweets, imágenes, etc. Aquí tenéis el enlace dentro de su sitio Web (https://dev.twitter.com).

¿Qué es REST? 

Es una arquitectura basada en el estándar HTTP y que nos permite crear servicios que pueden ser utilizadas por cualquier dispositivo cuyo cliente pueda trabajar con HTTP. Esto nos permite ofrecer un servicio Web accesible desde cualquier apps que entienda el protocolo HTTP, independientemente del sistema operativo en el que nos encontremos.

REST API 1.1 Twitter

Concretamente la tecnología que utiliza Twitter es precisamente la comentada anteriormente. Han creado para ello una API, actualmente la versión la versión 1.1, donde nos permite hacer uso de su servicio Web para acceder a los datos de su servidor. En esta versión 1.1 es necesario realizar las peticiones al servicio REST con alguno de los mecanismos de autenticación disponibles  (https://dev.twitter.com/docs/auth). 

Accediendo a la consola

Nosotros vamos a hacer peticiones a su servicio REST por medio de su consola (https://dev.twitter.com/console). 

01apiConsole

Consola de la REST Api de Twitter

Vamos a usar el método de autenticación OAuth, para lo cual debemos loguearnos con nuestro usuario y contraseña de Twitter y autorizar la aplicación de consola a utilizar como vemos en las siguientes imágenes.

01apiConsoleOAuth

Métodos de Autenticación para el uso de la REST Api 1.1

04apiOauth

Autorización de la consola

 

Consultas desde la consola

Ahora ya tenemos todo preparado para hacer consultas al servicio REST haciendo uso de la API 1.1 de Twitter. Debemos tener en cuenta que la contestación de las respuestas se lleva a cabo en formato JSON. Vamos a ver cuales son las posibilidades que tenemos accediendo a la documentación de la misma (https://dev.twitter.com/docs/api/1.1)

Ej.1 – Buscando tweets de una cuenta.

Vamos a averiguar que software ha creado ese tweet: Android, IOS, Paper.li, Buffer, Tweet Old Post… y la cuenta que lo ha creado, junto con su id.

Ejecutamos para ello la siguiente URI:

https://api.twitter.com/1.1/search/[email protected]_etico y buscamos dentro de sus resultados en formato JSON la caracterítica source de cada uno de los tweets. El resultado lo podemos ver a continuación.

ej1-consola

Usuario que usa Twitter desde Android

ej1-consola2

Usuario que usa Twitter desde iPhone

 

Ej.2 – Buscando tweets en un lugar geolocalizable.

Vamos a dar unas coordenadas que podemos averiguar de Google Maps con un radio de acción de 1km y una palabra de búsqueda. 

Ejecutamos para ello la siguiente URI:

https://api.twitter.com/1.1/search/tweets.json?q=ccf&geocode=37.872371,-4.764628300000027,1km donde las coordenadas que hemos dado son las del estadio del Córdoba CF y la palabra de búsqueda es CCF. El resultado sería el siguiente:

ej2-consola

Búsqueda de tweet geolocalizable.

ej2-consola2

Tweet encontrado en coordenadas dadas.

 Conclusiones

Esta es alguna de la metainformación que podemos manejar en Twitter para obtener interesantes búsquedas, todo ello manejando sus datos como si de una consulta en una BBDD se tratase. Existen muchas otras posibilidades dentro de la API 1.1 que seguro o serán muy interesantes: filtros de fechas, relación entre usuarios, geolocalización inversa, búsqueda de lugares, búsqueda de tweets por ip, etc.

Un handshake para todos !! @eduSatoe

 “Nunca darse por vencido. Nunca aparentar.

Nunca mantenerse inmóvil. Nunca aferrarse al pasado.

Nunca dejar de soñar

Steve Jobs

Protegido: Slides de mi charla en II HackLab Córdoba

Este contenido está protegido por contraseña. Para verlo introduce tu contraseña a continuación:

Pivoting con Metasploit

El artículo que traemos hoy, viene a alcanzar un nivel más a la hora de tener ya acceso a una determinada máquina de una red cualesquiera.

Cuando auditamos empresas, por norma general y dependiendo la cantidad de equipos que esta posea, siempre hay al menos una máquina que cae a las garras de Backtrack 5 y/o en su defecto Metasploit.

Podemos pensar que bueno, si es solo una máquina la proporción es pasable, imaginemos una proporción de 1 ordenador infectado por 10 equipos de una empresa ficticia. Pero es un  problema latente ya que ese equipo puede usarse como pasarela para atacar a los demás, a los que no se ha podido acceder directamente.

Este método que se usa para “incendiar” los demás equipos que de primera hora no se ha podido atacar con Metasploit, recibe el nombre de Pivoting (Pivotando).

pivoting1

Read more