El pasado jueves acudí a la Masterclass de Carl Verheyen que se había organizado en Valencia y no defraudó, es más, no es que no defraudara si no que me impresionó mucho.
Calificado por varios medios como uno de los 10 mejores guitarristas del mundo y el mejor guitarrista de estudio que hay, ha grabado para varios cientos de discos, 200 bandas sonoras (incluyendo producciones recientes de Disney y Pixar por ejemplo), miles de jingles para televisión y radio, … vamos, que la lista es larga. Un señor del calibre de Dann Huff, Steve Lukhater y similares pero que, por su papel, suelen permanecer en un segundo plano comparados con el grupo de guitarristas a los que se les consideran estrellas.
La masterclass comenzó con su impresionante versión de Little Wing de Jimi Hendrix. Hay versiones geniales como la de Stevie Ray Vaughan o la de Andy Timmons pero fue verle tocar y dejar a todas las versiones que había oído hasta ahora totalmente por los suelos.
Cuando nosotros tenemos un servicio en un servidor, éste, escucha en uno o varios puertos las peticiones externas. Este puerto deberá estar abierto en el firewall para que se puedan efectuar estas conexiones. La idea del Port Knocking es que el puerto del servicio permanece cerrado y sólo se abrirá bajo una petición externa basada en un paquete o grupo de paquetes específicos, previamente conocidos por el cliente, que serán enviados al servidor. Es decir, yo tendría mi servidor ssh con el puerto 22 cerrado y cuando un cliente envíe un paquete con ciertas características a otro puerto entonces el puerto 22 se abriría temporalmente para ese cliente. De este modo permanecería escondido antes escaneos de puertos e intentos automatizados de fuerza bruta, por ejemplo. Este sistema se podría ir mejorando:
que tenga que ser una secuencia de puertos y no uno sólo
que además tengan que ser unos puertos de origen específicos
combinarlo con otras herramientas: Portsentry, denyhost, fail2ban (destaco la primera herramienta ya que es una forma fácil de banear intentos de escaneos sin el uso de un IDS completo ni cortafuegos)
jugar con las FLAGs TCP y opciones poco comunes de los paquetes
abrir el puerto sólo para la IP llamante, no todas
<paranoic>requerir una temporización determinada (algo elástica, claro está) entre en el envío de los paquetes</paranoic>
Mageles, Jaime y Bea me regalaron una Arduino MEGA! Fue una gran sorpresa y además la acompañaron del módulo wireless XBee Shield que usa tecnología Zigbee, que proporciona comunicación inalámbrica entre placas de este tipo u otros dispositivos Zigbee.
Para quien no lo conozca, las Arduino son una plataforma de desarrollo electrónico enfocada al prototipado rápido cuyas especificaciones son totalmente libres. Existen varios modelos de placas para los diseños con características más o menos avanzadas y podremos trabajar con ellas tanto en Windows, Mac OS X ó GNU/Linux, sin tener que usar compiladores y/o herramientas de desarrollo de pago.
La mía es una Arduino MEGA, que es una mejora de la Duemilanove y la Diecimila gracias a su mayor I/O y capacidad de memoria, entre otras cosas. Las specs principales son:
Microcontrolador Atmel AVR 8-bit MEGA1280 @16MHz
128kB FLASH MEM (4kB usados por el bootloader incluído, usado para poder cargar cógido directamente)
16 pines de entrada analógica con una resolución de 10bits, útil para todo tipo de sensores.
Lo primero que tenemos que hacer para empezar a jugar es instalar las herramientas necesarias. En el árbol de paquete de Gentoo hay bastante para microcontroladores AVR ($ eix -S avr ) pero si además queremos afinar e ir a por el kit completo para Arduino tampoco tendremos problemas.
Ya hace más de un mes que terminó la Campus Party en Valencia. Como ya comenté este año la Campus volvió a la Ciudad de las Artes y las Ciencias para bien y para mal. La carpa no tenía nada que ver con la de 2004, era mucho más grande y mejor climatizada aunque una de las tardes (martes o miércoles) el aire acondicionado se estropeó y menuda calina. El mayor inconveniente era la zona de tiendas… calor, ruido de los compresores, sólo un par de baños cerca, etc. Al final optamos por volvernos a dormir a casa cada noche. Como gran ventaja, volvió el “ambiente de campus”, gritos, jaleos, descerebrados soltando burradas, estabas cerca de los amigos, etc eso se echaba de menos en la Feria.
Jaime tenía sus charlas de PHP a las 10 y eso es primerísima hora en la campus, que digo! es una hora inaceptable en la campus! Intentamos llegar a tiempo para poder apoyarle pero durmiendo fuera y acostándonos tarde (más bien cerca del amanecer) era complicado estar antes de las 11. Además se nos juntaba con el suplicio de aparcar y llegar andando desde donde cristo perdió la cruz, al año que viene nos cogemos parking. Este año estuvo a buen precio (no como años anteriores) pero se nos pasó el momento o no nos lo planteamos lo suficiente. El catering a mí me pareció peor que otros años, era otra empresa y encima la CP no dió paella para todos gratis el miércoles como venía siendo tradición… ratas.
A diferencia de otros años, que ya el domingo disponíamos de las acreditaciones y incluso alguna vez teníamos la tienda puesta de antes, esta vez llegábamos de viaje por la tarde y no fue hasta la noche cuando estuvimos acomodados en el puesto. Así cerquita estábamos kuasar, Jaime, Mageles, TuXeD (a partir del jueves), phobeo, Ernesto (encantado de conocerte!), Laura, Ender, akae y unos cuantos más, justo en el medio de la zona de innovación. Repartidos por el resto de la campus estaban muchos más conocidos pero no terminaría nombrándolos, bueno va, a Flexa sí, que se hizo una camiseta super molona con TOOOOODOS nuestros nicks . Sigue leyendo!
Un hash es una función criptográfica de tipo resumen cuyo objetivo es identificar casi unívocamente un conjunto de datos. Pretende ser una función inyectiva, es decir, que para una salida (valor imagen) solo exista una entrada (valor origen) pero debido a que su salida está limitada en tamaño es posible que para entradas diferentes existan claves resultantes iguales. Eso sería una colisión y una función hash deberá tener una salida pequeña equilibrada con su resistencia a colisiones. MD5 tiene una salida fija de 128 bits, lo que vienen siendo 32 dígitos en hexadecimal.
Primero de todo vamos a hacer un programa que nos permita calcular el hash md5 de un string que se le pase y luego ya pasaremos al crackeador.
Sería más fácil hacer un script en bash o perl gracias a la utilidad CLI de OpenSSL, a la hora de calcular un solo hash no importa mucho la velocidad pero si luego queremos hacer un pequeño crackeador no podemos partir de algo que ya sabemos que va a ser mucho más lento. Así que lo que vamos a usar es C y la librería de OpenSSL.
Si no sabemos por donde empezar un extracto del man:
$ man md5
...
SYNOPSIS#include <openssl /md2.h>unsignedchar*MD5(constunsignedchar*d,unsignedlong n,unsignedchar*md);int MD5_Init(MD5_CTX *c);int MD5_Update(MD5_CTX *c,constvoid*data,unsignedlong len);int MD5_Final(unsignedchar*md, MD5_CTX *c);
...
DESCRIPTION
...
Applications should use the higher level functions EVP_DigestInit(3) etc. instead of calling the hash functions directly.
...</openssl>
Como más de uno sabrá ya, ha salido a la luz una vulnerabilidad en WordPress 2.8.3 mediante la cual se puede resetear el password de administrador con un link malicioso (maliiiiiiiiiigno) como el siguiente:
Hasta aquí normal, de vez en cuando salen vulnerabilidades, además cuando recibes un correo (por ejemplo) con el link maloso te das cuenta de que hay gato encerrado.. pero ¿puede haber otros factores? Uhm, sí. ¿Qué tal los acortadores de direcciones? No se vería en principio a donde vas.
Por otro lado, hace un par de días actualicé Firefox a la versión 3.5.2 y esta mañana me he dado cuenta de que tiene activado un pre-fetch de links para navegar de un modo más rápido, es decir, precarga la primera búsqueda de google, precarga el siguiente post del blog que estás leyendo, etc. ¿Precarga un link malicioso que has recibido intentando explotar el bug anterior?
No me parece nada segura este tipo de navegación acelerada así que para desactivar esta opción se puede entrar en el about:config y desactivarla:
network.prefetch-next = false
Y ahora el mundo es un poquito mejor (de hecho ya han ido llegando correos maliciosos por algún sitio intentando explotarlo).
Sobre WordPress, ó se actualiza a la versión 2.8.4 ó se cambia a mano el código vulnerable.
A día de hoy contamos con ordenadores chorrecientas veces más rápidos que hace pocos años y cuando se programa haces pruebas con sistemas de 3GHz, varios MB de cache y 2GB de RAM mínimo y todo tira para adelante. Bueno, todo tira hasta cierto punto, tus programas luego se van a estar ejecutando juntos con otras decenas de programas o simplemente se van a estar ejecutando constantemente y vas a perder un gran porcentaje de la capacidad de proceso de cómo lo podrías estar haciendo.
Bueno, y es normal, cosas de la comodidad, yo el primero. Ahora te quedas tranquilo con que funcione, en los 80 tenía que funcionar y caber en 64kB de RAM. No digo que se programe peor (seguramente sí xD) pero ya no nos fijamos en muchos detalles que antes eran totalmente necesarios (la de trucos que usaba la gente para poder aprovechar el 100% del hardware del Commodore64) y ahora desperdiciamos por todos lados y al final sí que pasa factura. La gente que programe sistemas embebidos lo tiene muy claro aunque casi se va a acabar el asunto también ahí porque ya los procesadores de los móviles/PDAs/cosas_pequeñas tirán mucho.
Nos levantamos y desayunamos de nuevo ćevapi, huevos duros y similares, parece que es lo típico en este país. Nos preparamos, neoprenos, escarpines. Hay varios grupos de gente más que también vienen, todas las tallas son grandes así que a un grupo de quinceañeros los neoprenos les quedan de raperos, se van a cagar de frío, el agua del río está a 16ºC y puede que baje algunos grados. Nos subimos a una furgoneta viejísima y que parece que se cae, ésta lleva 6 balsas a remolque. Es una auténtica sauna ya de por sí y encima llevamos los neoprenos por la cintura. E resto de gente que también viene van en un par de vehículos más. Durante casi una hora subimos la montaña hasta el punto de partida, la bajada serán 20km aprox. y durará varias horas. No me extenderé mucho en esta parte pero ahí van unas fotillos:
A mi ya me rondaba por la mente hace tiempo hacer un viaje por los países de Europa del Este y finalmente se alinearon los astros. Bea ya ha ido colgando algunas cosillas por su twitter pero aquí va un diario de a bordo. De Crocia sólo estuvimos por Dubrovnik pero de Bosnia pudimos ver más cosas. El viaje está planificado casi cada día en un sitio. Hacía tiempo que no escribía nada pero este post va para largo y sólo es la primera parte, así tenéis para leer hasta que haya algo nuevo xD
DIA 1
Este es el día tonto, el de viajar. Por delante tenemos 3 aviones que coger y la ruta a seguir es Valencia-Munich-Viena-Sarajevo. Nos levantamos a horas intempestivas para terminar de meter las cosas en la maleta y estar en el aeropuerto a las 6am.
La primera en la cara, yo me había hecho una maleta pequeña para no facturar y no arriesgarme a que se quede por el camino. Pesa 11kg aunque deberían ser 10kg, llegamos al check-in y me salen con que aunque el vuelo está comprado a X está operado por Y, e Y, que sólo se encargar del primer vuelo, sólo acepta 6kg en cabina y me obligan a facturar, dato que no está escrito en ninguna de la líneas de las condiciones contratadas (cuando volví lo comprobé).