9 de enero de 2012

Crackeando un Hash Cracker (Contribución)

Los que sigáis a José Selvi en su blog "Pentester.es", habréis comprobado que he comenzado el año con una colaboración que vamos a publicar en varias entradas.

Tanto en esta primera entrada como en las siguientes, trataré diferentes tipos de vulnerabilidades web con el objetivo de que veáis lo peligroso que puede llegar a ser cometer fallos de programación que permitan realizar inyecciones de código.

La primera vulnerabilidad de la que hablo es un Cross Site Scripting bastante "curioso" pero que es totalmente explotable y, como tal, debe ser evitado:

Crackeando un Hash Cracker (I): XSS con MD5
Crackeando un Hash Cracker (II): CMDi
Crackeando un Hash Cracker (III): SQLIi con MD5

¡Espero que os resulten interesantes!

31 de diciembre de 2011

¡Feliz 2012!


2011 ha sido un gran año para La X marca el lugar. Ha sido el año en el que nació este proyecto y hemos conseguido hacernos un pequeño hueco en la Blogosfera.

A lo largo de estos meses hemos intentado compartir con vosotros nuestras experiencia y opinión, las noticias que hemos considerado más interesantes y algunas herramientas que hemos ido desarrollando.

Las siguientes son las cinco entradas más leídas de este año:


Con contenido como éste conseguimos colocarnos en un prometedor 15º puesto como Mejor Blog sobre Seguridad Informática en los Premios Bitácora 2011.

Ahora nos toca hacer los propósitos para el nuevo año, entre los que está seguir mejorando con la ayuda de todos vosotros para ofrecer un contenido más interesante. Para ello ya estamos colaborando en diferentes proyectos que os iremos presentando poco a poco.

En resumen...

¡Muchas gracias a todos por confiar en La X marca el lugar y que tengáis un Feliz Año 2012!

24 de noviembre de 2011

Jugando con la Wi-Fi desde Android (II)

En la entrada anterior estuvimos viendo cómo la configuración de fábrica de los routers que venden los ISP españoles no tiene nada de segura. En esta entrada os vamos a mostrar, desde un punto de vista práctico, lo importante que es el uso de canales cifrados cuando estemos trabajando con datos confidenciales o sensibles.

B.E.A.S.T hizo que nos empezáramos a plantear la seguridad del uso de canales cifrados por medio de SSL y TLS, aunque la realidad es que para su explotación en la práctica hacen falta una serie de requisitos que lo hacen relativamente complejo. Además, la vulnerabilidad publicada que explota B.E.A.S.T. tan sólo afecta a algoritmos de cifrado por bloques, por lo que bastaría con definir el conjunto de algoritmos soportados por el servidor a únicamente los algoritmos de cifrado por flujo que soportan tanto SSL como TLS (versión 1).

Dejando a parte el tema de B.E.A.S.T., la realidad es que a día de hoy el uso de SSL y TLS es una necesidad básica en Internet. Gracias a estos protocolos podemos confiar que transacciones bancarias, acceso a datos personales o confidenciales, conexiones a servidores que almacenan información sensible... son "seguras".

No obstante, aunque ya todos los bancos y la mayoría de comercios electrónicos implementan estos protocolos para realizar las transacciones comerciales, existen multitud de sitios web que todavía no los utilizan o dan a elegir al usuario. De los que usamos a diario yo destacaría algunas redes sociales como Facebook, Twitter o tuenti.

Teniendo en cuenta que en estas redes sociales tendemos a publicar toda nuestra vida "con pelos y señales", el hecho de que alguien pudiera entrar en nuestra cuenta para hacerse pasar por nosotros, además de un delito podría significar un DESASTRE en nuestra vida social (en la de unos más que en la de otros...).

Lo que vengo a decir es que muy pocos usuarios están concienciados de lo importante que es marcar la casilla "Activar navegación segura" una vez que hemos creado nuestros perfiles en estos servicios. Y si tenemos en cuenta lo fácil que nos resultó acceder a la red del amigo que no nos quería dar la clave de su Wi-Fi en la entrada anterior, el robo de sesiones de alguno de estos servicios es igual de trivial y tan sólo nos llevará un par de minutos.

En el siguiente vídeo vamos a ver cómo utilizando la herramienta para Android DroidSheep, tardamos menos de un par de minutos en robar la sesión de un usuario de Facebook que está conectado a la misma red Wi-Fi que nosotros.

Para los que no conocen la herramienta, os la comento un poco por encima antes de que veáis lo fácil que es utilizarla. Lo que hace es ejecutar un ARP Spoofing para interponerse entre la puerta de enlace (el router) y los usuarios de una Wi-Fi, es decir, un ataque MitM. A partir de ese momento, comienza a capturar todo el tráfico rescatando cookies de sesión en servicios conocidos (y no conocidos) que va mostrando por pantalla conforme las va analizando. Después proporciona diferentes opciones para enviar la cookie a una cuenta de correo electrónico o, directamente, acceder a la cuenta capturada desde el navegador del móvil.


Conozco a más de una persona que se configuró la navegación segura después de que le enseñara lo que podía hacer desde el móvil... Espero que esta entrada sirva para concienciar a más usuarios de lo importante que es fijarnos en que las páginas en las que introducimos nuestros datos comienzan por https en lugar de por http.

Entradas anteriores:
Jugando con la Wi-Fi desde Android (I) 
Otras entradas relacionadas:
Firesheep bajo Linux
FireSheep vs FireSheperd

14 de noviembre de 2011

Jugando con la Wi-Fi desde Android (I)

Las nuevas tecnologías han conseguido que prácticamente todos llevemos en el bolsillo un teléfono que sea más potente que los ordenadores de hace unos pocos años. Además de la potencia de cálculo, los nuevos smartphones nos permiten transmitir información por medio de diversas tecnologías.

En esta serie de entradas, voy a hablaros de algunas cosas básicas que podemos hacer con nuestro teléfono Android a través de Wi-Fi y sin apenas esfuerzo.

Lo primero de todo es conectarnos a una red. Pero si estamos en la calle o en casa de alguien que no nos quiera decir su clave de la Wi-Fi porque no se fíe de nosotros... podríamos tener un problema. Por suerte, los ISPs españoles distribuyen routers Wi-Fi con contraseñas por defecto y que son fácilmente predecibles conociendo el BSSID (MAC del punto de acceso) y el ESSID de la red (el nombre).

Para obtener la clave de alguno de los puntos de acceso que nos rodean, podemos utilizar muchas herramientas. Yo voy a pasar a describir las que, por uno u otro motivo, a mí más me gustan...

La primera de ellas es pulWifi, cuya pantalla principal tiene el siguiente aspecto:


Como vemos la aplicación, divide las redes que detecta en dos colores: verde, que se corresponde con aquellas redes que están abiertas o de las que podemos obtener la clave fácilmente; y rojo, las redes de las que no puede recuperar la clave. También nos indica con un diagrama la potencia de la señal para que sepamos a cuál nos interesa más conectarnos.

Si pulsamos sobre cualquiera de las redes de las que queremos recuperar la clave nos aparece la siguiente ventana. En ella nos da la opción de ver cuál es la clave (útil si necesitas copiarla en algún lado) y de copiarla directamente en el portapapeles.


Si optamos por la opción de copiar la clave, nos abre directamente el panel de Ajustes Wi-Fi de Android, en donde tan sólo nos quedaría buscar cuál es la red a la que estamos intentando conectarnos y pegar la clave desde el portapapeles:


Cuando le demos tiempo para que se autentique comprobaremos que nos hemos conectado sin ningún problema:


Dependiendo del tipo de red que sea, es posible que no nos indique una sola clave sino un repertorio de las posibles (suelen ser 10). En este caso tendremos que ir probando con cada una de ellas hasta que demos con la correcta.


En general, pulWifi es capaz de recuperar la clave de redes WLAN_XXXX, WLANXXXXXX, YACOMXXXXXX, WIFIXXXXXX y JAZZTEL_XXXX (aunque de esta última no siempre es cierto, como vamos a ver un poco más adelante...).

Otra herramienta tan útil como la anterior es WLANAudit.

Algunas diferencias con pulWifi es que en WLANAudit no podemos saber de una manera rápida de qué redes podemos recuperar la clave, sino que tenemos que ir mirando red por red cuáles es capaz de romper:


Este problema no lo tiene, por ejemplo, Auditfi. En este caso, se nos permite mostrar tan sólo las redes vulnerables y nos las lista con toda la información que nos interesa: ESSID, clave, potencia y BSSID.


Como podéis ver en las imágenes, una de las redes vulnerables es del tipo JAZZTEL_XXXX, que es de la que se muestra la segunda captura con la clave. Aunque, por motivos evidentes, he tapado el nombre de la red, si volvéis a la primera captura de pulWifi y os fijáis en la primera de las que aparecen en rojo (de las que no puede recuperar la clave) veréis que se trata de la misma red.

Es por ello que os comentaba que pulWifi no siempre funciona con las redes JAZZTEL_XXXX. Sin embargo tanto Auditfi, como wifiPass las soportan a la perfección.

Esta última herramienta de las que os voy a hablar (wifiPass) es muy parecida a Auditfi. Aunque en este caso directamente sólo muestra las redes vulnerables sin ninguna más información. Pulsando sobre cada una de las redes vamos viendo las claves y copiándolas al portapapeles:


Éstas son, tan sólo, algunas de las muchas herramientas para Android que nos permiten auditar la seguridad de NUESTRA red Wi-Fi. Otros ejemplos son HHG5XX WEP scanner o Penetrate Pro, de la que no hace mucho hablaron en Seguridad Wireless.

Como veis, aunque los ISPs nos vendan que la seguridad de nuestra Wi-Fi es la correcta por estar utilizando WPA2, no tenemos que dejad de cambiar las contraseñas y ESSID por defecto que vienen con los routers.

Espero que os haya resultado interesante la entrada y os animo a que os pongáis en contacto con nosotros si conocéis alguna herramienta parecida.

10 de noviembre de 2011

Estrenamos página en Google+


Con la llegada del concepto "página" a Google+ hemos creado un nuevo espacio en donde compartiremos noticias, publicaciones, nuevas herramientas, retos, curiosidades y muchas cosas más. Todo ello, eso sí, relacionado siempre con la Seguridad.

Para seguirnos, tan sólo tenéis que agregar a La X marca el lugar a alguno de vuestros círculos y estaréis al tanto de todo lo que vayamos publicando.

Os recordamos que también podéis seguirnos en Twitter  (@laXmarcaellugar) y en Facebook.

7 de noviembre de 2011

TapJacking, un juego peligroso en Android

En Android la gestión de permisos es llevada a cabo por el usuario, ya que al ser instaladas las aplicaciones somos nosotros mismos los que tenemos que decidir si otorgamos los permisos solicitados por la aplicación o si los denegamos, dando por cancelada la instalación.

Aquí un ejemplo:

De esta forma siempre vamos a ser conscientes o al menos vamos a tener una idea general, del el nivel de acceso a las funciones de nuestro terminal que puede llegar a tener cada aplicación.

Pero como el ingenio no tiene fin, se ha ideado una técnica de saltarse este paso, o mejor dicho, encubrirlo. Concretamente la técnica consiste en tener una aplicación que actúa de gancho (por ejemplo algún juego de habilidad) y que es transparente a las pulsaciones. Ya que nosotros vemos la aplicación gancho y tenemos la impresión de interaccionar con ella pero en realidad estaremos pulsando botones de una aplicación diferente que se encuentre en segundo plano.

Para poder hacer la trampa la aplicación gancho debe ser una notificación Toast modificada para que tenga apariencia de otra cosa, por ejemplo un juego. Este tipo de notificación en Android tiene la característica de dejar pasar los toques que se realizan en ella a la aplicación que este ejecutándose debajo. Por lo que teniendo la notificación constantemente en pantalla no se vería nada de lo que ocurre por detrás.

Esto permitiría al atacante todo tipo de libertad para hacer el mal, por ejemplo hacerte bajar un malware e instalarlo para obtener todas tus contraseñas, enviar SMS Premium y un sinfín de opciones más. Entre ellas, lo que comentábamos en un principio, camuflar la autorización de permisos por parte del usuario. Permitiendo que se instale cualquier cosa en su propio dispositivo sin saberlo.

Aquí podemos ver un vídeo de cómo funciona este sistema mediante una prueba de concepto:


Por suerte Google ya fue avisada del problema y ya han tomado cartas en el asunto. Por lo que a partir de la versión de Android 2.3, la GigerBread, ya no hay que preocuparse por este tema. Pero dada la disgregación de versiones que tiene Android y el poco soporte de actualizaciones que dan la mayoría de fabricantes y operadoras todavía existe un alto número de personas con este problema latente en sus terminales. ¿Eres tu uno de ellos?

20 de octubre de 2011

Cyanogenmod.com malware spread

Recently, the website Cyanogenmod.com has been compromised, and was spreading a piece of malware loaded from warlikedisobey.org/coehegzxw8xgahtrb, hosted on Indo Network Solutions, Scranton, Pennsylvania (USA) (66.197.158.102)

Whois info for 66.197.158.102
IP Information - 66.197.158.102

IP address:                     66.197.158.102
Reverse DNS:                    static-ip-102-158-197-66.host.cybernet.co.id.
ASN:                            21788
ASN Name:                       NOC
IP range connectivity:          7
Registrar (per ASN):            ARIN
Country (per IP registrar):     US [United States]
Country Currency:               USD [United States Dollars]
Country IP Range:               66.197.0.0 to 66.197.255.255
Country fraud profile:          Normal
City (per outside source):      Reno, Nevada
Country (per outside source):   US [United States]
Private (internal) IP?          No
IP address registrar:           whois.arin.net
Known Proxy?                    No
If we query on urlquery.net for the URL, we can see that this server has been used since 2011-09-27 to spread malware on multiple domains hosted.
2011-10-20 02:41:46 0 warlikedisobey.org/coehegzxw8xgahtrb 66.197.158.102
2011-10-11 01:20:45 0 warlikedisobey.org/osnp91icm/?5 66.197.158.102
2011-10-11 01:16:42 0 nestjolt.org/5gbd3jzxwfqjnp1eh/ 66.197.158.102
2011-10-11 01:14:31 0 nestjolt.org/5gbd3jzxwfqjnp1eh/ 66.197.158.102
2011-10-11 00:59:42 0 http://turbidworship.org/osnp91icm/?1 66.197.158.102
2011-10-06 20:24:52 0 nationearn.org 66.197.158.102
2011-09-27 12:45:01 0 http://starryplank.org/bp1tezzxwtauh 66.197.158.102
2011-09-27 12:35:14 0 http://starryplank.org/bp1tezzxwtauh 66.197.158.102
2011-09-27 12:02:07 0 http://starryplank.org/but3os0wp/ 66.197.158.102
2011-09-27 12:00:59 0 http://starryplank.org/but3os0wp/?3a75067eb1353ae040165 66.197.158.102

Its seems that Indo Network servers has been used to spread malware and spamming issues several times. If we search on the Proyect HoneyPot website for the offending IP, we can see that a number of servers withing Indo Network range has been used for spamming.

The cyanogenmod site has been target of attacks before,and maybe has been spreading malware quietly. These has been already commented on cyanogen's forum before (25 september 2011).

The original post at pastebin here

You should take a look at the last line of the following code:





3 de octubre de 2011

Estándar de Seguridad de Datos para la industria de Tarjeta de Pago, estándar PCI

PCI DSS (Payment Card Data Security Standar - Estándar de Seguridad de Datos para la industria de Tarjeta de Pago) es un estándar de seguridad en el que se definen medidas para la protección de datos sensibles que puedan aparecer durante el tratamiento, procesamiento o almacenamiento de la información de tarjetas de crédito.

Este estándar ha sido desarrollado por el PCI SSC (PCI Security Standards Council), formado por las principales empresas emisoras de tarjetas de crédito: Visa Inc., Mastercard Worldwide, American Express, JCB International y Discover Financial Services.

La finalidad de la creación de este estándar es asegurar los datos relacionados con las tarjetas de pago en las organizaciones que procesan, almacenan o tratan dicha información, para evitar el fraude relacionado con las tarjetas de crédito o débito. Las compañías que gestionan este tipo de datos deben cumplir con el estándar PCI, en caso de no cumplirlo deberán afrontar la pérdida del permiso para procesar las tarjetas, someterse a auditorías rigurosas o al pago de multas.


PCI SSC define además otros dos estándares: PCI-PTS y PA-DSS.

PCI-PTS se aplica a los dispositivos utilizados para la introducción del número PIN (Point-of-interaction devices), así como a los módulos hardware utilizados para el procesamiento de pagos y para autenticación de tarjetas:
  • Dispositivos de punto de interacción atendidos.
  • Cajeros automáticos.
  • Terminales de pago no atendidos (dispensadores de gasolinas automáticos, kioscos, etc.).
PA-DSS se aplica a las aplicaciones de pago de terceros que realizan operaciones de almacenamiento, procesamiento o transmisión de datos de tarjetas, como por ejemplo: puntos de venta, "shopping carts", etc.
PA-DSS gestiona las aplicaciones de operaciones de pago con el fin de asegurar que funcionan de acuerdo al estandar PCI-DSS, además colabora para la organización que utilice estas aplicaciones, cumplan PCI-DSS. El uso de aplicaciones PA-DSS no garantiza el cumplimiento PCI-DSS por parte de la organización.
Un asesor PCI-DSS debe verificar que la aplicación de pago está instalada en los sistemas de acuerdo a las instrucciones detalladas en la guía de implementación PA-DSS proporcionada por el vendedor y de acuerdo al estándar PCI-DSS.


¿Qué organizaciones deben cumplir PCI-DSS?

Todas aquellas organizaciones que participen en el procesamiento, transmisión o almacenamiento de información de tarjetas de cŕedito. PCI divide estas organizaciones en tres tipos:
  • Comercios (Merchants): super/hipermercados, e-commerce, etc.
  • Proveedores de Servicio (Service Providers): ISPs, pasarelas de pago, etc.
  • Entidades financieras (Acquirers): bancos, cajas de ahorro, entidades de crédito, etc.
En función del tipo de organización y de su nivel transaccional, a cada entidad se le asignará un nivel. Cada entidad emisora de tarjetas, de las 5 que conforman el consorcio, establece su conjunto de validaciones a realizar y los informes a entregar, en función del nivel de la organización.

Los niveles de los comercios vienen definidos por las empresas emisoras de tarjetas y por el volumen de transacciones realizadas con las entidades financieras. Los niveles de los proveedores de servicios vienen determinados por las empresas emisoras de tarjetas, por el comercio, por la entidad financiera.

La clasificación de Comercios por niveles es la siguiente:

Figura 1. Niveles de Comercios.

Sus requisitos de validación PCI:

Figura 2. Requisitos de validación de los niveles de Comercios.

Y la información que debe proporcionar para la validación es la siguiente:

Figura 3. Información para la validación de los niveles de comercio 1 y 2.
Figura 4. Información para la validación de los niveles de comercio 3 y 4.

En cuanto a los niveles de Proveedores de Servicio:

Figura 5. Niveles de Proveedores de Servicio.

Los requisitos de validación e informes de los Proveedores de Servicio son los siguientes:

Figura 6. Requisitos de validación e informes para los Proveedores de Servicio.

Estándar PCI-DSS 2.0

En la versión actual del estándar (versión 2.0) se especifican 12 requisitos para que una organización cumpla PCI-DSS, divididos en 6 objetivos de control. 

Objetivo de Control 1: Desarrollar y Mantener una Red Segura

  • Instalar y mantener una configuración de cortafuegos para proteger los datos de los propietarios de tarjetas.
  • No usar contraseñas del sistema y otros parámetros de seguridad predeterminados provistos por los proveedores.
Objetivo de Control 2: Proteger los Datos de los propietarios de tarjetas

  • Proteger los datos almacenados de los propietarios de tarjetas.
  • Cifrar los datos de los propietarios de tarjetas e información confidencial transmitida a través de redes públicas abiertas.
Objetivo de Control 3: Mantener un Programa de Manejo de Vulnerabilidad

  • Usar y actualizar regularmente un software antivirus.
  • Desarrollar y mantener sistemas y aplicaciones seguras.
Objetivo de Control 4: Implementar Medidas sólidas de control de acceso

  • Restringir el acceso a los datos tomando como base la necesidad del funcionario de conocer la información.
  • Asignar una Identificación única a cada persona que tenga acceso a un computador.
  • Restringir el acceso físico a los datos de los propietarios de tarjetas.
Objetivo de Control 5: Monitorear y Probar regularmente las redes

  • Rastrear y monitorizar todo el acceso a los recursos de la red y datos de los propietarios de tarjetas.
  • Probar regularmente los sistemas y procesos de seguridad.
Objetivo de Control 6: Mantener una Política de Seguridad de la Información

  • Mantener una política que contemple la seguridad de la información

Estos requisitos combinados con diversos procedimientos de prueba dan lugar a una herramienta para el aseguramiento de los sistemas.

En una segunda entrega del blog, entraremos a comentar cada uno de estos requisitos más en profundidad.

30 de septiembre de 2011

New version of findmyhash


We have published findmyhash version 1.1.0. It adds two new online services and it supports 7 new algorithms.

New online services are:


List of complete supported algorithms is:

  • MD4
  • MD5
  • SHA1
  • SHA224
  • SHA256
  • SHA384
  • SHA512
  • RMD160
  • GOST
  • WHIRLPOOL
  • LM
  • NTLM
  • MYSQL (3, 4 y 5)
  • CISCO7
  • JUNIPER
  • LDAP_MD5
  • LDAP_SHA1


The project URL is:
http://code.google.com/p/findmyhash/

You can download the application from here:
http://code.google.com/p/findmyhash/downloads/list

Nueva versión de findmyhash

Hemos publicado la versión 1.1.0 de findmyhash en la que añadimos dos nuevos servicios online y soporte para 7 nuevos algoritmos.

Los nuevos servicios online son:


El listado completo de los algoritmos soportados es:

  • MD4
  • MD5
  • SHA1
  • SHA224
  • SHA256
  • SHA384
  • SHA512
  • RMD160
  • GOST
  • WHIRLPOOL
  • LM
  • NTLM
  • MYSQL (3, 4 y 5)
  • CISCO7
  • JUNIPER
  • LDAP_MD5
  • LDAP_SHA1


Podéis acceder al proyecto en la URL:
http://code.google.com/p/findmyhash/

Podéis descargar directamente la nueva versión desde:
http://code.google.com/p/findmyhash/downloads/list