A lo largo de la semana tendría que haber jugado un poco más con el tamper data o con las cabeceras. Y, al final, he acabado haciendo otras cosas, que, aunque puede que no sean igual de interesantes, son válidas para escribir aquí. Por lo tanto, voy a la carga.
Hace meses escribí varias veces sobre las contraseñas en Windows: I, II, otro y... otro más. Pues, una vez más, tengo algo que decir al respecto.
Hace unos minutos un amigo ha enviado un correo de un sitio, que, una vez más, enlaza a otro mucho más interesante.
Como ya comentamos en su momento, cuando se almacena una contraseña lo que se hace es guardar su hash. Así, si este hash viaja por la red, se podría capturar, por ejemplo, con un ataque man in the middle y, después, buscar la contraseña que corresponda con ese hash.
Recordando un poco lo que comenté en su momento, hay varias formas de buscar esa correspondencia. O furza bruta: ir probando a pelo todas las combinaciones posibles hasta que una contraseña case con ese hash. O utilizar un diccionario de datos, lo mismo que la posibilidad anterior, pero buscando la posible contraseña en un fichero de texto. O con las rainbow tables.
Todas estas opciones pueden llevar su tiempo. Bastante tiempo. Pero, los sitios que acabo de enlazar lo tienen todo hecho. Le pasas el hash, y te devuelve la contraseña en apenas unos segundos.
He probado un hash al azar y no ha sido capaz de encontrar la contraseña. ¿Qué le vamos a hacer? La cosa está en que este servicio ayudará bastante a a la hora de buscar estas correspondencias.
Ya que estamos. Otro serivio de este estilo, pero para MD5, se puede encontrar en una comparativa que hizo SbD.
martes, 2 de noviembre de 2010
lunes, 25 de octubre de 2010
Tamper Data II
Una vez hemos visto que podemos ver en qué lugar se encuentran los datos que estamos visitando con el tamper data, podemos jugar un poquito más con esta extensión del firefox.
Ahora nos vamos a saltar los controles que tienen las páginas web en el lado del cliente. ¿Qué significa esto? Significa que si nos encontramos con una página web que está utilizando javascript para obligarnos a introducir unos datos determinados, podamos hacer llegar al servidor lo que nos de la gana. Incluso estructuras que no deberían poderse enviar. La verdad, muchas veces se ha oído hablar sobre los controles que tiene que tener una aplicación web. Entre otros, no fiarse del lado del cliente y siempre comprobar, como mínimo, el lado del servidor. Pero nunca supe cómo hacerlo hasta que en el FTSAI de Informática64 nos mostraron alguna de estas herramientas. Ahora que lo pienso, nunca se me ocurrió buscarlo.
Bueno. Lo mejor será empezar, ¿no?
Lo primero de todo, ir a la página que queremos probar. He realizado una búsqueda en Google. A partir de ahí he ido enlazando página a página. La primera página tiene manuales, entre otros de javascript, que recopilan ejemplos de otras páginas. En este caso, la página del autor tiene el código fuente y además, lo tiene codificado para ver cómo funciona su ejemplo.
El formulario es este:
Ahora nos vamos a saltar los controles que tienen las páginas web en el lado del cliente. ¿Qué significa esto? Significa que si nos encontramos con una página web que está utilizando javascript para obligarnos a introducir unos datos determinados, podamos hacer llegar al servidor lo que nos de la gana. Incluso estructuras que no deberían poderse enviar. La verdad, muchas veces se ha oído hablar sobre los controles que tiene que tener una aplicación web. Entre otros, no fiarse del lado del cliente y siempre comprobar, como mínimo, el lado del servidor. Pero nunca supe cómo hacerlo hasta que en el FTSAI de Informática64 nos mostraron alguna de estas herramientas. Ahora que lo pienso, nunca se me ocurrió buscarlo.
Bueno. Lo mejor será empezar, ¿no?
Lo primero de todo, ir a la página que queremos probar. He realizado una búsqueda en Google. A partir de ahí he ido enlazando página a página. La primera página tiene manuales, entre otros de javascript, que recopilan ejemplos de otras páginas. En este caso, la página del autor tiene el código fuente y además, lo tiene codificado para ver cómo funciona su ejemplo.
El formulario es este:
Formulario vacío
Vamos a introducir datos cualquiera:
Alert del javascript: El nombre no puede tener números
Luego, le vamos a hacer caso y vamos a introducir los datos que nos pide:
Alert del javascript: La edad es erronea. Tiene que ser numérica
Como se puede ver en el pantallazo, me están controlando que la edad sea un número. Así que lo cambio y...
Alert del javascript: La edad es erronea. El rango de edad es erroneo
No sólo me están controlando que la edad sea un número sino que también se encuentre en un rango determinado. Lo corregimos y me controlan que el correo tenga una estructura correcta:
Alert del javascript: La estructura del correo no es la adecuada
Así, vuelvo a corregirlo y tenemos el resultado de enviar el formulario:
Formulario enviado con los datos correctos
El problema está en que no queremos que nos restrinjan qué datos enviar. Aquí es donde entra el tamper data. Lo primero de todo es volver a la página donde está el formulario y la recargamos para que los datos introducidos antes no aparezcan. Después, y si ya teníamos abierta la extensión, vamos a darle al botón limpiar:
Botón limpiar del tamper data
Ahora, hay que introducir datos que el javascript los dé como válidos. Por ejemplo, los datos anteriores (por no tener que poner otra captura nueva). En el tamper data pulsaremos sobre comenzar modificación y enviaremos el formulario. Lo primero que hará será preguntar si queremos modificar la petición:
¿Modificar petición?
Pulsaremos sobre modificar. Nos saldrá una ventana como esta. Me ha surgido un problema y que mientras que hacía la captura de esta ventana me ha saltado a otra solicitud. Ahora vuelvo a enviar los datos, los modifico y muestro el resultado:
Ventana en la que modificaré los datos
Ahora es el momento de introducir los datos que queremos enviar. Como estoy escribiendo esto a medida que voy haciendo el escenario, he tenido que desactivar la modificación. Sobretodo porque saltan más cosas además del formulario que queremos tratar. En principio vosotros no tenéis que cambiar nada. Al cambiar los datos que hemos enviado por estos otros:
Datos modificados en el tamper data
Nos encontramos con este resultado:
El formulario se ha comido los datos
Ñam, ñam. ¡Qué ricos están estos datos! Se acaban de comer los datos que no querían que enviásemos. ¿Por qué? Porque, tal y como he comentado antes, no han realizado un control de lo que se está recibiendo en el lado del servidor. Si lo hubieran hecho, podrían haber mostrado un mensaje de error También hay que tener en cuenta que hay personas que desactivan javascript, o porque no quieren usarlo o porque su navegador no lo permite, por ejemplo, algunos adaptados a discapacitados.
Por cierto, hay otras cosas que no se para qué son, luego, si tenéis alguna idea, por favor, comentadla.
lunes, 18 de octubre de 2010
Tamper Data I
En una serie de posts anteriores, Descargas de videos en youtube I y II, fossie decía que él usaba una herramienta para firefox llamada para tamper data descargar los vídeos de youtube. Ya comenté que quería hacer un post para hablar de esta herramienta para otros fines. Es el momento de analizar las dos funciones ya comentadas: la descarga de los vídeos y la otra función que ya comentaré en la parte II.
Lo primero de todo es instalar la extensión. Desde firefox buscamos en Google
firefox tamper data
Ahora, seleccionamos la primera entrada, pulsamos sombre "seguir a la descarga" y aceptamos la instalación bajo nuestra responsabilidad. Cualquier pregunta que nos haga el navegador, tendremos que aceptarla para poder continuar con la instalación. Una vez más, y tal y como decía un gran profesor que tuve, "aceptamos bajo pena de muerte".
Una vez lo tenemos instalado, podemos acceder a éste desde Herramientas --> Tamper Data:
Lo primero de todo es instalar la extensión. Desde firefox buscamos en Google
firefox tamper data
Ahora, seleccionamos la primera entrada, pulsamos sombre "seguir a la descarga" y aceptamos la instalación bajo nuestra responsabilidad. Cualquier pregunta que nos haga el navegador, tendremos que aceptarla para poder continuar con la instalación. Una vez más, y tal y como decía un gran profesor que tuve, "aceptamos bajo pena de muerte".
Una vez lo tenemos instalado, podemos acceder a éste desde Herramientas --> Tamper Data:
Herramientas --> Tamper Data
Sólo hay que acer click sobre esta opción para que se nos abra una nueva ventana con el programita.
Tamper Data abierto
Ahora vamos a seleccionar el lugar que queremos visitar. Como vamos a descargar un nuevo vídeo, vamos a buscar uno que pueda ser interesante. En este caso, se me ha ocurrido buscar el documental Capacitados. Será la primera parte, que es el vídeo enlazado.
Una vez hemos cargado la página en cuestión con el tamper data abierto se irán cargando una serie de elementos en un listado. En estos elementos buscaremos el tipo de contenido video/x-flv:
Vídeo encontrado en el listado del tamper data
Se puede ver que ahí está la URL, pero no permite verla entera. Como lo que queremos es coger la URL y tiene un menú contextual al hacer click con el botón derecho sobre ese elemento, seleccionaremos detalles.
Detalles del elemento seleccionado
Tenemos que indicar que lo queremos decodificado y al hacer click con el botón derecho diremos copiar. Después, vamos al navegador, en este caso seguiré con el firefox y pegamos el resultado. Mucho ojo porque también se copia una cadena como URL=. Luego, al pegar, también aparecerá y hay que quitarla. Al final, nos encontramos con este resultado:
Video en proceso de visionado
Lo suyo es ir a Archivo --> Guardar Como... y ahí seleccionar el destino y asignarle el nombre que queráis, por ejemplo capacitados.flv:
Guardando Capcitados.flv
Y, así, podemos visionarlo tranquilamente desde nuestro reproductor favorito:
Visionando el vídeo
La verdad, es que no está mal la idea de utilizar el tamper data para esta tarea.
sábado, 9 de octubre de 2010
El maps y las coordenadas.
Algunos ya sabéis que hace una semana, más o menos, me fui con unos amigos a hacer piragüismo. El lugar fue Las hoces del Duratón.
Ver mapa más grande
Para ir, me pidieron que buscara cómo ir allí. Para ello, busqué primero en Google "hoces del duratón". Así, encontré el enlace incluido en el nombre del lugar.
Mirando en la página, encontré una sección.
Index de Las hoces del Duratón
Tenemos la sección de cómo llegar. Si miramos ahí dentro nos encontramos con lo siguiente:
Como llegar a Las hoces del Duratón
Como se puede ver, hay una sección en la que ponen coordenadas. Por ejemplo, las coordenadas GEO que tenemos son:
Latitiud: 41º 16' 35.7'' N
Longitud: 3º 53' 5.79'' W
Así, solicitando en el Google Maps "como llegar" de esta forma:
Introduciendo los datos en Google Maps
¿Quieres ver cómo llegar desde Madrid hasta este punto?
Y así te muestra cómo llegar de una manera precisa. Como podéis ver, incluso introduciendo coordenadas puedes ver cómo llegar.
martes, 21 de septiembre de 2010
Discos en Windows con particiones Linux
Tengo un equipo que estaba funcionando como servidor. En éste guardaba cosas como imágenes de discos. Por ejemplo, alguna de Debian, BSD... Hace unas semanas que se estropeó y no he conseguido hacerlo funcionar de nuevo. Ya os contaré en otro momento las cosas que he hecho para averiguar qué le pasa.
El caso es que necesitaba recuperar algunos datos de ese disco. Así, que lo primero que hice fue quitar un disco duro... Que resultó ser el que no quería. Vamos. Murphy haciendo de las suyas. Así que pillo el segundo disco IDE que necesitaba y lo monto en un sistema conversor de IDE a USB Conceptronic (si no es este modelo, es uno con un aspecto idéntico).
Al conectarlo el sistema operativo indicaba que se había detectado el conversor. El conector IDE se iluminaba con un led rojo, y el adaptador a la corriente que había que ponerle al disco para alimentarlo también se iluminaba con un led azul. Como no salían las particiones que debían de salir, intento arrancar con distintos live-CDs pero tampoco consigo nada. Así que, se me ocurre mirar en el administrador de discos duros del Windows Vista que tengo instalado y... ¡ahí estaban! Las dos particiones que esperaba. Luego, cuando instalé el sistema del servidor, no puse NTFS ni FAT32 como sistemas de ficheros.
Lo primero que pienso es que lo instalé con un ext2 o ext3. Luego, busco en Google y encuentro un driver para poner sistemas ext? (donde ? es el numerito) y poder trabajar con ellos en Windows.
Me lo descargo, lo instalo (indicando, entre otras cosas, las letras que tendrán las particiones) y... ¡¡ahí están!! Las dos particiones. Pero, cuando intento acceder a ellas me da un mensaje como
Esta partición no tiene formato. ¿Desea formatearla ahora?
Evidentemente no quiero formatearla porque yo se que tiene formato. Luego, busco en la ayuda y sugiere que descarguemos mountdiag.exe. Es una aplicación de consola que hay que ejecutar como administrador. Así, al ejecutarlo nos devuelve:
El caso es que necesitaba recuperar algunos datos de ese disco. Así, que lo primero que hice fue quitar un disco duro... Que resultó ser el que no quería. Vamos. Murphy haciendo de las suyas. Así que pillo el segundo disco IDE que necesitaba y lo monto en un sistema conversor de IDE a USB Conceptronic (si no es este modelo, es uno con un aspecto idéntico).
Al conectarlo el sistema operativo indicaba que se había detectado el conversor. El conector IDE se iluminaba con un led rojo, y el adaptador a la corriente que había que ponerle al disco para alimentarlo también se iluminaba con un led azul. Como no salían las particiones que debían de salir, intento arrancar con distintos live-CDs pero tampoco consigo nada. Así que, se me ocurre mirar en el administrador de discos duros del Windows Vista que tengo instalado y... ¡ahí estaban! Las dos particiones que esperaba. Luego, cuando instalé el sistema del servidor, no puse NTFS ni FAT32 como sistemas de ficheros.
Lo primero que pienso es que lo instalé con un ext2 o ext3. Luego, busco en Google y encuentro un driver para poner sistemas ext? (donde ? es el numerito) y poder trabajar con ellos en Windows.
Me lo descargo, lo instalo (indicando, entre otras cosas, las letras que tendrán las particiones) y... ¡¡ahí están!! Las dos particiones. Pero, cuando intento acceder a ellas me da un mensaje como
Esta partición no tiene formato. ¿Desea formatearla ahora?
Evidentemente no quiero formatearla porque yo se que tiene formato. Luego, busco en la ayuda y sugiere que descarguemos mountdiag.exe. Es una aplicación de consola que hay que ejecutar como administrador. Así, al ejecutarlo nos devuelve:
MountDiag - Tu sistema posiblemente sea ReiserFS
Luego, había puesto el driver equipo. Una vez más, había que localizar el driver necesario para recuperar los datos. Como me dice que el sistema de ficheros es reiserFS, vuelvo a buscar. Y me encuentro con uno un poco antiguo, pero que me podía valer. Es el YAReg. Lo descargo y descomprimo:
Carpeta del YAReg
Las dos DLLs que hay ahí las copié de la carpeta rfstool-utils. porque según las instrucciones tenía que estar el YaReG.exe junto al resto de las cosas.
Así, una vez lo tenemos preparado, sólo hay que ejecutarlo desde consola. He estado un rato preguntándome cómo conseguí que se accedieran a los datos. Si lo ejecutas con doble click, no te van a salir las particiones:
YaReG abierto
Sólo hay que seleccionar un fichero con el botón derecho, copiar y cuando se abra la ventana con el browse del árbol de directorios, seleccionar el destino.
¿Alguna otra cosa que hubierais hecho vosotros?
jueves, 16 de septiembre de 2010
Virus y accesos directos
Un amigo me ha dicho que se le ha colado un bicho en varios ordenadores suyos y que después de eliminar alguno de los EXEs malignos, las carpetas del disco duro externo se le habían convertido en accesos directos. Me sonaba mucho el tema, pero no estaba muy seguro de cómo solucionarlo.
Bueno. Pues buscando, a la primera he encontrado una posible solución. Lo único, que creo que le falta algo más.
El caso es que este bicho parece que modifica las propiedades de los ficheros de los dispositivos infectados. Lo único que hay que hacer es ejecutar el comando attrib con una serie de parámetros.
attrib /d /s -r -h -s *.*
Si hacemos un
attrib /?
nos muestra la ayuda. En negrita pongo los parámetros que utilizamos:
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[unidad:][ruta][nombreDeArchivo] [/S [/D] [/L]]
+ Establece un atributo.
- Borra un atributo.
R Atributo de sólo lectura del archivo.
A Atributo de archivo de almacenamiento.
S Atributo de archivos del sistema.
H Atributo de archivo oculto.
I No atributo de archivo indizado de contenido.
[unidad:][ruta][nombreDeArchivo]
Especifica el archivo o archivos que serán afectados por ATTRIB
/S Procesa archivos que coinciden en la carpeta y todas las subcarpetas actuales.
/D También procesa carpetas.
/L Se trabaja en los atributos del vínculo simbólico en vez de en el destino del vínculo simbólico
Bueno. Pues buscando, a la primera he encontrado una posible solución. Lo único, que creo que le falta algo más.
El caso es que este bicho parece que modifica las propiedades de los ficheros de los dispositivos infectados. Lo único que hay que hacer es ejecutar el comando attrib con una serie de parámetros.
attrib /d /s -r -h -s *.*
Si hacemos un
attrib /?
nos muestra la ayuda. En negrita pongo los parámetros que utilizamos:
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[unidad:][ruta][nombreDeArchivo] [/S [/D] [/L]]
+ Establece un atributo.
- Borra un atributo.
R Atributo de sólo lectura del archivo.
A Atributo de archivo de almacenamiento.
S Atributo de archivos del sistema.
H Atributo de archivo oculto.
I No atributo de archivo indizado de contenido.
[unidad:][ruta][nombreDeArchivo]
Especifica el archivo o archivos que serán afectados por ATTRIB
/S Procesa archivos que coinciden en la carpeta y todas las subcarpetas actuales.
/D También procesa carpetas.
/L Se trabaja en los atributos del vínculo simbólico en vez de en el destino del vínculo simbólico
También habla de utilizar unlocker para liberar los ficheros ejecutables que tienen el malware y así poderlos borrar. Lo único que se queda algo en el tintero. Cada vez que reinicies, el bicho, si está en tu sistema, se puede volver a cargar. Si lo borras del sistema, se renombrará, tal y como le ha pasado a mi amigo. Además, de las trazas que deja en el registro. Luego, lo suyo sería desinfectar el sistema por un lado, y borrar esos ficheros por otro (por ejemplo, en modo off-line o con un live-cd).
Si no lo consigue, os lo contaré. Aún así, ¿a alguien le ha pasado esto? ¿Si es así, qué ha hecho? ¿Qué haríais vosotros en un caso como este?
miércoles, 1 de septiembre de 2010
Tarjetas de crédito y débito
Resulta que cuando estuve en el Asegur@IT 7 el pasado marzo, uno de los compas comentó la misma anterior al evento sobre un ataque muy curioso. El ataque que nos comentaba era un MITM relacionado con tarjetas de pago.
¿En qué consistía el ataque? Bueno. La verdad, no contó mucho porque simplemente fue un comentario que hizo al salir del local donde cenamos, tanto el equipo perteneciente al evento como algunos asistentes. La idea, en resumen, es engañar al terminal haciéndole creer que se ha introducido el PIN de la tarjeta correctamente, cuando no realmente no es así, y a la tarjeta se le dice que no hay que introducir ninguna contraseña. Bueno. ¿Y cuáles son los detalles? Los detalles los da la Universidad de Cambridge, en un documento que me tengo que leer.
También hay un vídeo de la BBC, un tanto sensacionalista, en el que entrevistan al equipo de la investigación y muestran una demo en la cafetería de la universidad.
Aún así, es importante remarcar que, mientras que buscaba datos sobre este tema en concreto, el mismo sitio donde he encontrado estos enlaces, hay otro en el que remarcan que hacen un poco de trampa.
Una de estas trampas es que parece ser que en fotograma de la demo de la BBC, se paga con una tarjeta VISA, pero, parece ser (que no lo acabo de ver), el ticket muestra que se ha usado una MasterCard (Según he visto en el primer comentario, de uno de los autores de la investigación, hicieron varias pruebas para distintas grabaciones en distintos ángulos. No tiene desperdicio leérselo).
El otro truco parece ser que radica en el protocolo que están usando. Según he podido entender, el protocolo que se emplea en estas transacciones, establece que los resultados relativos a la tarjeta se guardan en un dato llamado CVR, y es obligatorio enviarlo. El terminal indicará en su CVM que el PIN es correcto. el problema está en que el CVM no es obligatorio, es optativo. Si se enviaran los dos, al compararlos, habría algo que no cuadraría, y la transacción junto al ataque acabarían sin más.
Ya se. No he contado mucho al respecto. Sólo he contado lo que he llegado a entender de lo que he leído.
Pero, aún hay otra cosa que quisiera contar con respecto a las tarjetas de pago. Y es que, buscando información sobre lo comentado arriba, me he encontrado con otra cosa muy curiosa.
Ya sabemos que muchas veces, cuando se va a comprar algo por Internet, nos piden datos de la tarjeta. En principio, deberían de ser datos de tipo (o nivel) 2. Es decir, comúnmente lo que se dice como "algo que tenemos". Porque haría falta la tarjeta para saber los datos que nos piden, que suelen ser el número completo, la fecha de caducidad, y, últimamente, los dígitos de seguridad que están en la parte trasera de la tarjeta (algunos piden 4 números, otros piden 3). Pero, ¿realmente se necesita la tarjeta? Con tal de sabérselo de que alguien lo haya apuntado, ya la hemos liado.
Bueno, pues parece ser que se está ideando un sistema para convertir nuestra tarjeta en una especie de token. Así,
¿En qué consistía el ataque? Bueno. La verdad, no contó mucho porque simplemente fue un comentario que hizo al salir del local donde cenamos, tanto el equipo perteneciente al evento como algunos asistentes. La idea, en resumen, es engañar al terminal haciéndole creer que se ha introducido el PIN de la tarjeta correctamente, cuando no realmente no es así, y a la tarjeta se le dice que no hay que introducir ninguna contraseña. Bueno. ¿Y cuáles son los detalles? Los detalles los da la Universidad de Cambridge, en un documento que me tengo que leer.
También hay un vídeo de la BBC, un tanto sensacionalista, en el que entrevistan al equipo de la investigación y muestran una demo en la cafetería de la universidad.
Aún así, es importante remarcar que, mientras que buscaba datos sobre este tema en concreto, el mismo sitio donde he encontrado estos enlaces, hay otro en el que remarcan que hacen un poco de trampa.
Una de estas trampas es que parece ser que en fotograma de la demo de la BBC, se paga con una tarjeta VISA, pero, parece ser (que no lo acabo de ver), el ticket muestra que se ha usado una MasterCard (Según he visto en el primer comentario, de uno de los autores de la investigación, hicieron varias pruebas para distintas grabaciones en distintos ángulos. No tiene desperdicio leérselo).
El otro truco parece ser que radica en el protocolo que están usando. Según he podido entender, el protocolo que se emplea en estas transacciones, establece que los resultados relativos a la tarjeta se guardan en un dato llamado CVR, y es obligatorio enviarlo. El terminal indicará en su CVM que el PIN es correcto. el problema está en que el CVM no es obligatorio, es optativo. Si se enviaran los dos, al compararlos, habría algo que no cuadraría, y la transacción junto al ataque acabarían sin más.
Ya se. No he contado mucho al respecto. Sólo he contado lo que he llegado a entender de lo que he leído.
Pero, aún hay otra cosa que quisiera contar con respecto a las tarjetas de pago. Y es que, buscando información sobre lo comentado arriba, me he encontrado con otra cosa muy curiosa.
Ya sabemos que muchas veces, cuando se va a comprar algo por Internet, nos piden datos de la tarjeta. En principio, deberían de ser datos de tipo (o nivel) 2. Es decir, comúnmente lo que se dice como "algo que tenemos". Porque haría falta la tarjeta para saber los datos que nos piden, que suelen ser el número completo, la fecha de caducidad, y, últimamente, los dígitos de seguridad que están en la parte trasera de la tarjeta (algunos piden 4 números, otros piden 3). Pero, ¿realmente se necesita la tarjeta? Con tal de sabérselo de que alguien lo haya apuntado, ya la hemos liado.
Bueno, pues parece ser que se está ideando un sistema para convertir nuestra tarjeta en una especie de token. Así,
Suscribirse a:
Entradas (Atom)























