jueves, 28 de enero de 2010

Moviles

Estoy mirando cosas de móviles. Y he ido encontrado cosas muy interesantes.

A ver. Todos sabemos que cada uno de estos cacharros tiene un identificador que, en teoría, es único en el mundo mundial. ¿Verdad? Pués sí. Es así.  También sabemos que ese número se llama IMEI. ¿Verdad? Bueno. Pues así es. Se le llama IMEI. Y se puede obtener introduciendo

*#06#

en el teclado del cacharro. 

En teoría, si se entrega este móvil a la operadora de telefonía que se tenga, se debería de poder sacar un código para liberar el teléfono. En principio, y diciéndolo de memoria, están obligados a entregártelo siempre y cuando se cumplan una serie de requisitos. Entre otros, que el tiempo que te hayas comprometido a quedarte en la compañía lo cumplas. Y, en principio, la operadora tiene el deber de entregártelo gratis. Pero como digo, hay que cumplir una serie de requisitos. (Por ejemplo, si creen que no eres el dueño, nanais de la china).

Otro número que he encontrado es el
*#102#

En teoría, este número entrega lso últimos 5 números de serie de la tarjeta SIM junto a otros datos que ahora mismo no tengo ni idea qué significan. Uno de ellos es valor en KB (¿será el espacio que le queda?¿Será su capacidad total?). Y el otro ni  idea. El otro parece ser que es la generación de la tarjeta. Para entenderse, usando palabras inexactas, la versión de la tarjeta. 


Antes, en prepago, estaba la combinación
*#133#

para aquellos de Movistar. Esto permitía saber el saldo actual que se tenía. Cuidado. Hace unos cuantos años que empezaron a cobrar a la segunda o tercera consulta. Y eso que quería poner sólo combinaciones genéricas, para todos los móviles... Ay, ay, ayyyy....



Aquí hay más (abajo del todo) códigos. Aunque dice que casi todos valen para todos los operadores al principio dice que funcionan en Movistar. No me arriesgo a ponerlos aquí.

La verdad. Esperaba poner más, pero sólo he sido capaz de poner estos 2 genéricos y el del saldo... Lo siento. :(

Update: Febrero 2013: buscando algo, me he encontrado con que había cosas tachadas!! No me acuerdo muy bien por qué, pero las "des-tacho".

miércoles, 20 de enero de 2010

Hashes y colisiones

En su momento hablé de las contraseñas de Windows (I y II) éstas se guardan utilizando un algoritmo que genera un hash.

Si recuerdo lo que comenté en alguno de esos dos posts, en la universidad te enseñan que al realizar un algoritmo para introducir un dato en una tabla hash se utiliza ese hash como "posición" para localizar ese dato. Y que a veces, y sólo a veces, (cómo me gustaba la serie de El cuervo aunque a muchos no les acabara de gustar), se producía una colisión. ¿Y qué es una colisión? Describiéndolo de una manera resumida es cuando dos paquetes coinciden en un instante determinado en la misma red... Vaya, no quería poner esto. Ese tipo de colisión es la definición aplicadas a las redes. Yo quería definirlo aplicado a los hashes. Y ésta es la circustancia en la que dado un algoritmo determinado, y un dos elementos del que se quiere saber sus hashes, ambos hashes coinciden. En la universidad, para solventar esto, a la hora de realizar la búsqueda, lo que se hacía era que si el elemento a buscar no estaba en la posición del hash obtenido, se buscaba secuencialmente en una tabla auxiliar. Pero estamos hablando de contraseñas. Y aquí no debería de haber cabida para las colisiones. Cuanto más complicado sea que se produzcan, mejor.

Pongamos un ejemplo. En un abecedario, de la A la Z, sin distinguir mayúsculas y minúsculas:

A
B
C
D
E
F
G
H
I
J
K
L
M
N
Ñ
O
P
Q
R
S
T
U
V
W
X
Y
Z
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

¿Qué ejemplo de algoritmo puede producir colisiones? Un ejemplo podría ser la suma del valor de las letras que tiene la palabra de la queremos sacar el hash. Si queremos codificar:

  • osos: 16 + 20 + 16 + 20 = 72
  • soso: 20 + 16 + 20 + 16 = 72
En efecto, si utilizásemos la segunda palabra como contraseña en un sistema que utilizase este algoritmo, tendríamos la posibilidad de pasar con la primera palabra. A parte de que no es el mejor ejemplo porque ambas palabras existen, y seguro que se encuentra en un diccionario de datos. Si no es así, dad por seguro que ahora sí que estará.

Ahora. Hace unas dos semanas, en el curso / master de seguridad que estoy haciendo con Informática64 nos enseñaron que un sitio determinado tenía una zona de acceso restringido. Y, ese sitio tenía varias cosas que deberían de arreglar:
  1. La seguridad estaba en el lado del cliente. ¿Qué significa esto? Que el control de si la autenticación es válida o no se hace desde el navegador. No se solicita comprobación en el servidor. 
  2. Los usuarios están incluidos en un combo. No se pueden introducir nombres de usuario. Pero con tal de tener ese combo con los usuarios válidos ya es un paso para poder entrar en el sitio. 
  3. Las contraseñas están codificadas en la propia página web. ¿Qué implica esto? Que si tenemos el usuario y tenemos la contraseña (codificada), estamos a un paso para poder entrar en el sitio. 
  4. Tenemos el algoritmo que genera ese hash, que ya tenemos. 
Con estas 4 cosas, ya podríamos entrar en el sitio. Pero eso no es lo que quiero enseñar. Primero, porque entrar en un sitio sin autorización, por muy fácil que sea la contraseña, no es legal. Y segundo, porque quiero enseñar un poquito un pseudocódigo de como es el algortimo que han utilizado (si acaso, modifico cosas para que no sea tan fácil averiguar de dónde sale:

funcion dameHash(palabra, modificador){
  palabra_auxiliar = palabra;
  elHash = 0;
  desde i =0;i
    elHash = elHash *(modificador^modificador) + valor_letra_en_posicion(i,palabra_auxiliar) + 1;
  }
  devolver elHash;
}
Existe algún que otro problema. Uno de ellos, el que comentaba antes. Puede haber un montón de combinaciones posibles que den el mismo hash. ¿Qué pasa si hacemos la invera? Buscar la (¿no serán las?) palabra(¿s?) que nos permitan llegar a ese hash.

Para eso hay que despejar en la ecuación anterior. Pero nos podemos encontrar con problemas con los nombres. Por eso hay que pensar en un hash_auxiliar y el hash_actual.

La ecuación quedaría algo así:

hash_auxiliar = (hash_actual -1 - posicionPosibleDeLaLetra);
Esto está muy resumido, pero, se explica de una menera muy sencilla. Hay que hacer todas las pruebas posibles de esta ecuación, hasta que hash_auxiliar sea 0. Lo que significa que:

  1. La ecuación se repetirá tantas veces como longitud_siempre_fija tenga como valor.
  2. Después de realizar la operación, hash_actual cogerá le valor de hash_auxiliar
  3. posicionPosibleDeLaLetra será una variable que irá cogiendo todos los posibles valores que permitan que su combinación con las selecciones anteriores lleguen al objetivo deseado, es decir, que el hash_auxiliar sea 0. Siempre se puede elegir obtener el primer resultado ó que nos devuelva todos. Y esto es lo que quería enseñar.
Se que no está muy, muy resumido, pero no puedo dar muchos más datos. El tema está en que una función de estas características puede producir casi 1019 colisiones. Si alguien quiere más detalles, que me de un toque. 

viernes, 8 de enero de 2010

¿Un Fake AV de McAfee?

Hace unas semanas, hablando con una de las vecinas a las que les arreglo el ordena, me dijo que le salía este aviso:


Aviso McAfee


Además, tenía un icono en el escrito del antivirus...



Icono del McAfee instalado


Vale. Hasta aquí nada fuera de lo normal. Una persona tiene un McAfee instalado. ¿Y qué? Pues que su antivirus es el Avast. Es más. Nadie más que ella toca el ordenador. Y si vamos más allá... Dos antivirus en el mismo ordenador se pegan leches de lo lindo.

Vale.Antes de navidades me paso por su casa y se lo desinstalo. Le hago algún que otro ajuste, y me vuelvo a casita. El caso es que en Nochebuena, mi tío dice que un día le llegó un mail que le indicaba que para abrir una cosa necesitaba instalar un programa. En su caso, el Adobe Acrobat. Le dio al enlace que le ofrecían, instaló lo que, en teoría, necesitaba, y... Después de hacer esa instalación se encuentra con que tiene un McAfee instalado. Así, por las buenas. Ahí es cuando empiezo a sospechar que algo no va bien.

Varias preguntas:
- ¿Un antivirus de renombre se instala así, porque sí?
- ¿Por qué no salta el otro antivirus, el que realmente queremos que esté trabajando? Es decir. ¿Por qué no se pega el antivirus que sí queríamos que estuviera con el que se había colado en el equipo?

Es una cuestión muy rara. Por lo tanto, toca investigar, realizar búsquedas por San Google o por San Bing

Vale. He ido buscando un poco y.. no he encontrado nada. Algo que sí he encontrado es el e-mail de ingienería social en el que se insta al usuario a hacer click sobre un enlace (entre otros) para descargarse y ejecutar un "supuesto" parche para el McAfee . Evidentemente es una trola como una casa y se instará instalando un bicho. A parte de eso.. No he llegado a encontrar nada con respecto a la instalación automática de un McAfee. Si existe como tal no he encontrado nada. En caso contrario, mis usuarios instalan las cosas sin saber qué es. Simplemente hacen caso de lo que les llega. Como si se les indicase que hagan un "format c" y que acepten todas las advertencias. Es que, o es esta última opción (y es más peligrosa que les enchufen un bicho) o no se aplicar mis propios consejos de cómo buscar en Google y Bing.

lunes, 28 de diciembre de 2009

Windows ME

No se en que post de Maligno, puso este vídeo del anuncio del Windows ME (Milenium).

Nada. Lo dejo aquí, por poner algo que tenga que ver con los bits y los bytes, ¿no?


sábado, 26 de diciembre de 2009

Windows y la UAC IV

El otro día leyendo a Maligno decía que había una manera de hacer que la UAC se comportara de una manera o de otra. Es uno de los posts que tiene de la serie de la UAC.

Para ello había que utilizar una de las consolas de administración de Windows. En este caso será la secpol.msc.

Como ya sabéis, en mi equipo yo utilizo un usuario "mortal". Para utilizar secpol.msc hay que ser administrador. Yo la he abierto de la siguiente manera. Seguro que hay muchas más:
- He buscado secpol.msc con el buscador del Vista.


Buscando secpol.msc


- Una vez lo ha encontrado, lo he enviado al escritorio. Desde ahí he utlizado la opción de ejecutar como administrador. La razón de enviarlo al escritorio es para que se viera más claramente la operación.


Ejecutar como administrador


- Nos pide confirmación con la UAC:


UAC para abrir secpol.msc

- Una vez accedemos tendremos acceso a la configuración del comportamiento del control de usuarios, UAC.



Opciones de seguridad, opciones para el control de usuario

Hay muchas opciones para controlar su comportamiento. Las más importantes son las dos primeras.

- Distintas opciones para los administradores:


Opciones para los administradores


Las distintas opciones:
- Por defecto, pedir confirmación. Vamos, el famoso permitir o cancelar.
- Pedir credenciales tal y como se hace por defecto en un usuario mortal.
- Elevar sin preguntar. Que sería como desactivar la UAC pero sólo para los administradores. Acordarse de que esta es la más peligrosa.

¿Y para el resto de usuarios?

Sólo hay dos opciones:
- Elevar privilegios (como ya he dicho en varias ocasiones, introducir credenciales de administrador)
- Denegar el acceso. No pide nada. Suelta un aviso del tipo de "acceso denegado".


Opciones para los usuarios mortales


A parte tenemos la opición de poner el escritorio seguro (que se pone más oscuro cuando se activa el control de usuarios). O que al instalar aplicaciones se estime si es necesario privilegios o no. Y unas cuantas más que no me apetece nada mirar.

Espero que esta sea la última cosa que pueda contar sobre la UAC.






Feliz navidad!!!


Poco más puedo decir al respecto, que el título de este post.

Que tengáis unas felices fiestas. Unas felices vacaciones para aquellos que las tengan, y que no tengáis que dar palo al agua para aquellos que os toque currar. Que la familia (ahora me pongo a tocar El padrino en el piano) esté bien unida.

¿Qué más? Sí. A ponerse como el kiko. No pasa nada. Después se va al gym sin problemas.

Y poco más puedo contar. Ala. A pasarlo bien.

martes, 22 de diciembre de 2009

Windows y la UAC III

Bueno. Ya he hecho varias cosas con las máquinas virtuales.

Lo primero de todo es conseguir que se ejecute el troyano. Para eso se envía un ejecutable como el que se muestra en la captura:


El troyano que hay que ejecutar.


Este lo he compartido desde el Equipo01 para que lo pudiera pasar. Hay que tener en cuenta que esto no es un escenario ideal. Es un escenario montado para que el troyano sea muy facil de aplicar.

Ahora. Para manipular el troyano, que actúa de servidor, se necesita un cliente, que es la consola de administración.


Consola de administración sin conexiones

Esta es la consola de administración sin conexiones. Y esta es la consola cuando ya se ha ejecutado el troyano.


Consola de administración con una conexión


Una vez vemos que tenemos a alguien conectado, hacemos doble click sobre el equipo que queremos controlar. En nuestro caso, evidentemente, sólo habrá uno. Va a ser el Equipo02. Nos  va a aparecer un panel de control parecido al de la imagen. Yo he seleccionado la sección que permite ver la pantalla del equipo troyanizado.


Capturando la pantalla de la víctima.

A su vez, podemos manipular cosas. Por ejemplo. Podemos manipular el teclado. Así, podremos escribir en este fichero de texto que se puede ver en la siguiente captura. A tener en cuenta. El check que está en un círculo rojo tiene que estar seleccionado. No lo he mostrado así porque no me dejaba capturar la pantalla del administrador, el Equipo01. Al estar seleccionado, me capturaba la pantalla del Equipo02.


Manipulando el fichero.


Y aquí el fichero manipulado.


Fichero manipulado.


Vale. Una vez que hemos visto qué se puede hacer con este troyano, ejecutado con el usuario usua02, vamos a ver cómo hacer saltar la UAC. Para ello, vamos a tocar la shell que nos ofrece el panel el panel de control y ejecutamos en ella (una vez nos permita introducir comandos) firewallsettings. Como se puede apreciar, también he hecho más pruebas.


Solicitando administración del firewall.


En el Equipo02, nos saltará la UAC. Momento en el cual, tendremos que sospechar que algo no va bien. Sería lo mismo que cuando hemos manipulado el fichero de texto.


UAC que salta al "manipular" el firewall.

¿Qué hubiera pasado si no hubiéramos tenido la UAC activada? No hubieramos tenido permisos para tocar nada. ¿Y si huberamos sido administradores? Bueno. Ahora podemos ver que el admin02 ha ejecutado el mismo troyano que el usua02. A parte de que ahora en el panel de administración del troyano vemos que aparecen dos entradas...

Dos usuarios infectados.

Una vez tenemos control sobre el administrador, ya podríamos hacer de tó. Y mucho más si quitásemos la UAC. Ya vimos antes qué sucedía si la quitábamos. 

Vuelvo a recordar que esto es un escenario forzado para que saliera la UAC con el usuario mortal. Y he ido a por algo sencillo, como puede ser el firewall de windows. Que cantaría mucho si se manipulara. Pero también se ha visto que se puede manipular el teclado, el ratón... Si tuviera una webcam se podría ver lo que estuviera mirando... 

También hay qeu tener en cuenta que este troyano tiene una características. Lo hay con más y con menos. 

Soy consciente de que esto no supera las expectativas. Pero bueno. Creo que es mejor esto a nada. ¿No?