26 de abril de 2012

Web programming.

Navegando por Internet me he encontrado con una cita que me ha gustado mucho, la web original no existe (era un blog en blogspot, pero ya no existe), pero el autor si se sabe quien es: Michael Braude.

Y esta cita es la siguiente:

"The reason most people want to program for the web is that they're not smart enough to do anything else. They don't understand compilers, concurrency, 3D or class inheritance. They haven't got a clue why I'd use an interface or an abstract class. They don't understand: virtual methods, pointers, references, garbage collection, finalizers, pass-by-reference vs. pass-by-value, virtual C++ destructors, or the differences between C# structs and classes. They also know nothing about process. Waterfall? Spiral? Agile? Forget it. They've never seen a requirements document, they've never written a design document, they've never drawn a UML diagram, and they haven't even heard of a sequence diagram.
But they do know a few things: they know how to throw an ASP.NET webpage together, send some (poorly done) SQL down into a database, fill a dataset, and render a grid control. This much they've figured out. And the chances are good it didn't take them long to figure it out.
So forgive me for being smarmy and offensive, but I have no interest in being a 'web guy'. And there are two reasons for this. First, it's not a challenging medium for me. And second, because the vast majority of Internet companies are filled with bad engineers - precisely because you don't need to know complicated things to be a web developer. As far as I'm concerned, the Internet is responsible for a collective dumbing down of our intelligence. You just don't have to be that smart to throw up a webpage. I really hope everybody's wrong and everything doesn't "move to the web." Because if it does, one day I will either have to reluctantly join this boring movement, or I'll have to find another profession." 


 Pues con esta rápida entrada me despido hasta otro dia (pronto, espero).

Un saludako!

15 de abril de 2012

Viaje al pueblo & Wifi break!

Semana santa, viaje al pueblo y aburrimiento, mucho aburrimiento.

Mi pueblo, llamemosle "Alcurria del Cid", que para ahorrar letras llamaré AC, es un pueblo perdido entre montañas, en una comunidad con nombre parecido a uno de los protagonista de "El señor de los Anillos".

Para que veais cómo es AC, os cuento un poco, es un pueblo donde si llueve no hay televisión ni cobertura, aunque llueva minimamente. Es un pueblo donde para tener cobertura de Orange tienes que subirte al monte (cosa que yo tengo que hacer). Y es un pueblo al cual hace tres años le dieron una subvencion para instalar WiFi en el pueblo, pero no lo hicieron hasta que la gente del pueblo se enteró de ellos (dos años despues) y se lo reprocharon al alcalde.

Vayamos a lo que me interesa, el WiFi, lo instalaron para junio del año pasado, pero debieron de contratar a algún inepto y no funcionaba, no funcionaba absolutamente nada (ni un misero ping), y así estuvimos todo el verano, y en septiembre debe ser que llamaron a otro porque empezó a funcionar.

Tiene una velocidad mala de pelotas, que da para el e-mail y poco mas, pero tampoco lo quiero para mas cosas, asi que estaba contento (Soy Orange y no tengo cobertura, por lo tanto tampoco 3G u.U), pero cuando se conectaban mas de 8 personas a la vez, la red no funcionaba... Que bien... Así que tenía que mirar el e-mail a las 2 de la mañana, cuando no habia nadie conectado.

Estas navidades corría un rumor por AC de que iban a ponerlo de pago, por un precio de 2€ al mes.

Yo tenía ganas de saber cómo lo iban a montar para comprobar quien pagaba y quien no :)

Total, que llego en semana santa, y me encuentro con que ya no puedes entrar de gratis (asi, sin avisar ni nada, como se hace en los pueblos), y ya vi cómo lo controlaban, con autentificación inicial (wifi libre, pero a la hora de entrar tienes que poner usuario y contraseña).

Muy interesante... En estos momentos mi familia ya estaba pensando en ir a hablar con el alcalde para que nos diesen el usuario y contraseña, pero eran las dos de la mañana, y tenían que esperar hasta el día siguiente.

Y yo también, ya que me estaba muriendo de sueño :)

Y empieza el día siguiente, según me despierto me dicen hasta el lunes (cuando ya no es semana santa) no nos van a dar la autentificación, ya que no esta abierto el ayuntamiento u.U

Aun así, yo tenía ganas de saber la seguridad que tenía el wifi, asi que conecte mi tarjeta de red externa que captura paquetes, metí el CD de BackTrack5, y a ver que conseguía :)

[nota: no tengo capturas de imagenes porque lo hice todo muy rápido y no se me ocurrió colgarlo en el blog u.U]

Nada más arrancar cambio la MAC de la tarjeta de red, la pongo en modo monitor, y a empezar a investigar con airodump y wireshark.

Veo que hay gente conectada, y que están navegando... Perfecto, probemos algo fácil y tonto.

Paro el modo monitor, "desconecto" la tarjeta (ifconfig wlan0 down) y cambio la MAC a una de los que están conectados, quien sabe, quizás no va por cookies y una vez te autentificas se guarda la MAC para dejarte entrar... Evidentemente, esto no funcionó, pero oye, por probar que no quede!

Los paquetes recibidos en wireshark eran un caos, asi que elijo una sola persona, y me pongo a ver sólo sus paquetes.

Va pasando el tiempo y después de tomarme el café mañanero se me enciende la bombilla.

Corriendo me conecto al wifi y me meto a la pagina de login para comprobar una cosa... Una vez comprobada se me abre otra puerta.

Vuelvo a cambiar la MAC a 11:22:33:44:55, wlan0 up, airmon-ng start wlan0 y empezamos a capturar paquetes solamente de una persona con wireshark.

Lo que se me había ocurrido era fácil, alguien está conectado, entonces el ya ha iniciado sesión, entonces lo único que tengo que hacer es enviarle paquetes de denegación para tirarle, que el wifi se vuelva a conectar, y le vuelva a pedir la autentificación, en ese momento tu estas ahí para coger el paquete y leerlo, y es que, en efecto, lo que comprobé en la pagina del login es si iba por SSL, y no, no iba ;)

Asi que le hago un MITM, y me pongo a enviarle paquetes de denegacion con aireplay, se desconecta... Crucemos los dedos... Se vuelve a conectar... Se mete a Google y le salta el login... Lo introduce y... ¡Tachan! Ahi lo tienes, usuario y contraseña en texto plano :)

Llegados a este punto me di cuenta de dos grandes errores, los dos son humanos, pero uno por doble partida.

El primero es no poner el login con SSL (Por cierto, esto me recuerda que me contaron que en FIWIFI, el WiFi de la Facultad de Informatica de la UPM, hasta hace dos años iba sin SSL, y ademas la pusieron porque Delegacion de Alumnos les metió presión, que si no...).

El segundo es el modelo para Usuario y Contraseña que siguen (si, este es el error por doble partida, ya que es culpa de quien las pone, y de los usuarios, que se conforman con esas contraseñas xD).

Paso a explicar cómo es el modelo.

Como dije, el pueblo se "llama" Alcurria del Cid, y ahora imaginemos que mi apellido es "Fuego", pues mi user/pass será de este modo:

Usuario: ALCURRIADELCIDXY   # Donde XY van dos numeros, empezando por 00.
Pass: FUEGO

Vaya... ¿Que imaginativos eh? Para hacer la prueba salí y fui a una casa donde seguro que tendrían WiFi, la del dueño del único bar. Me apunté los apellidos suyos y los de su mujer (por si acaso), y me fui "pa" casa.

Una vez en casa, a empezar a probar:  ALCURRIADELCID00/APELLIDO... ALCURRIADELCID01/APELLIDO.

Lo encontré en el 05... Y adivinad en cual estaba el del alcalde... en el 01... ¡Viva la seguridad!

Evidentemente yo esto lo hice como prueba de seguridad, ya que no me fiaba de cómo estaría montado, e hice bien. Y lo cuento aquí para que veais los fallos, que cosas que pueden parecer una tonteria, con un poco de tiempo e imaginación te lo tiran abajo.

Un saludako!