Como saber qué equipos de una VPN están vivos

18 de mar de 2013

Tengo una VPN en un equipo en casa montado con OpenVPN. En lugar de buscar a lo bestia con nmap a ver qué equipos están activos, así:

nmap -sP 172.16.0.0/24

Yo he preferido utilizar el fichero ipp con las direcciones en donde están configurados cada equipo, así

sudo cat /etc/openvpn/ipp* | cut -f2 -d, | while read ip ; do ping -c 1 $ip ; done

También podríais utilizar nmap en lugar de ping por si el equipo no quiere responder, pero yo ya sabía qué era lo que buscaba ;)

Construcciones extremas

14 de nov de 2012

Hace unos días encontré, a raíz de una entrevista de Salvados del año pasado, el programa de Build It Bigger (en laSexta como Megaconstrucciones) que habla sobre nada menos que la Ciudad de la Cultura.

Tiene todo el sentido del mundo el proyecto, por cierto: desmontar una montaña para construir sobre ella la propia montaña en cemento. Nuts.

Os dejo el vídeo.

L.A. Noire

9 de jul de 2012

tl;dr: Un juegazo.

Argumento.

Son los años 40 de Estados Unidos, plena expansión. Encarnas hasta casi el final del juego a Cole Phelps, un héroe de guerra —que luego veremos que, por supuesto, tiene sus cargas de conciencia de la guerra en Okinawa—, en su ascenso (y descenso) por su carrera profesional en el departamento de policía.

Esta vez Rockstar Games publica un juego del «lado de los buenos», en un Los Ángeles lleno de corrupción de la que, por supuesto, Phelps será el último en enterarse. Mucho más tarde que el propio jugador.

A la par que el caso en el que Phelps está trabajando, ocurre una trama de la que el jugador se puede enterar leyendo los periódicos que hay por la ciudad.

Detalles.

El sistema de movimiento y las expresiones son fascinantes. Además de ser cruciales para realizar el trabajo de detective (analizar la cara de los sospechosos y juzgar si dicen la verdad o mienten) proporcionan un nivel de detalle y realismo que acerca realmente mucho a estos personajes.

Además, el modo de marcar pistas, ir a lugares, y recordar descripciones de sospechosos se hace desde la libretilla del detective, una forma muy elegante de resolver una parte que se usará mucho durante el juego. Actúa en parte similar a como lo haría a día de hoy una PDA: se escriben cosas y se marcan como vistas con el lápiz (esto lo hace Phelps automáticamente).

Por otra parte, y como esta vez estamos del lado de la justicia y la corrupción, no deberemos de atropellar a personas, causar daños a la ciudad (eso incluye farolas, bancos, cubos de basura…), ni a otros vehículos. Incumplir estas cosas tendrá como repercusión una valoración menor a la hora de resolver el caso (en el que se incluirán los costes estimados de estos daños). Para solventar el problema de conducción que tiene mucha gente y por la que es incapaz de ir de un sitio a otro sin chocar, y también para evitar el aburrimiento que causaría tener que recorrer media ciudad a 35 mph para llegar sanos y sin destrozos al lugar de un crimen, LA Noire tiene la opción de que le indiques a tu compañero que conduzca. Exacto. Además, con esto, nos libramos de todo el paseo, y aparecemos teletransportados al lugar objetivo, sin perder ni un segundo.

Las únicas ocasiones en las que esto no ocurre es inmediatamente antes de ir a un lugar “importante”, en la que tu compañero y tú dais una valoración u opinión sobre un tema. Y luego, ya hemos llegado.

La vida del detective es dura, y Rockstar y Tivoli Games lo saben. Y para poder tener las comodidades de las que otros juegos disfrutan, en el menú de opciones podemos activar o desactivar ciertas opciones que diluyen el realismo en el juego.

Por ejemplo, al acercarnos a una pista, en principio, no tenemos indicación visual alguna de que podemos interactuar con ella. Hemos de ser nosotros los que, por iniciativa propia, pulsemos el botón, sin indicaciones de que podemos hacerlo o no. Y, al igual que cualquier detective, tampoco sabremos, más que por nuestro criterio, cuándo hemos terminado de peinar una zona.

Para que cualquiera pueda jugar, y sin dedicar mucho tiempo a ser concienzudo, se provée una ayuda musical (la música de fondo se atenúa mucho cuando ya no queda nada por buscar), y otra en forma de lupa en el HUD cuando haya algo por lo que podamos pulsar el botón de interactuar.

Aunque hay muchas cosas implementadas en el juego (persecuciones a pie y en coche con delincuentes, conducción, peleas armados y también con los puños, seguir a vehículos sin que nos vean, o seguir a personas por lugares, de incógnito, escondiéndose tras periódicos y disimulando mirar escaparates), el videojuego no requiere de combinaciones mortales de botones para realizar ninguna pirueta, sino que generalmente, además del ratón y las teclas de movimiento, solamente serán necesarias teclas adicionales para abrir la libretilla, correr/andar y ponerse a cubierto.

Phelps es capaz de desenfundar el arma automáticamente cuando la situación lo requiera, o de suponer que al pulsar repetidamente el botón izquierdo del ratón queremos dar un placaje al hombre al que estamos persiguiendo a pie. Oh, y si se le cae el sombrero (por ejemplo porque una bala lo empuja fuera de su cabeza), al volver a pasar cerca esto hará que se lo vuelva a poner.

Apariencia cinematográfica.

Se nota que se ha querido dar mucha importancia a la apariencia de realidad, al cinematografismo en este trabajo.

Hay multitud de escenas de corte, sueños, visiones de la trama de las noticias en los periódicos, alguna de la vida personal de Phelps…; réplicas 3D de modelos de coches de la época, ¡e incluso suena en la radio música de aquel momento!

Rockstar Games se ha permitido pagar por poner muchísima música en la radio, así como programas de tertulias que realmente sucedieron en aquellos días.

Además, se ha tenido especial cuidado en edificios históricos(aunque yo no he estado nunca en Los Ángeles, y no puedo corroborarlo), están por ejemplo la estación de Union Square, la Oficina de Registro, la Biblioteca Pública, los cines RXO, y muchos más. Esta clase de lugares, al pasar por ellos, quedan guardados en el mapa, para que después de cerrar el caso, si queremos, volvamos a visitarlos.

Conclusión.

Aunque parece durante todo el juego que nunca puede uno tomarse un descanso, la verdad es que en medio de un caso uno puede tardar todo lo que quiera y resolver “crímenes callejeros” (pequeños altercados por los que, según vamos andando, nos avisan por radio y a los que podemos responder o no). En cualquier caso, además de ser una experiencia cinematográfica excelente, en la que tan solo un par de “escenas” de tiroteos dan la sensación de ser “relleno” para aumentar horas de juego, el juego da bastante de sí.

A mi se me hizo más largo que Crysis, aunque no aguantó una semana ninguno de los dos : )

Es un juego digno de probar, y va aumentando el ritmo según avanza el juego, y el número de persecuciones que Phelps tiene que hacer.

 

Se acerca la GUADEC

3 de jul de 2012

Efectivamente, la Gnome Users and Developers European Conference 2012, que tendrá lugar en A Coruña, (Spain), comenzará el próximo 26 de julio.

Se espera gente suficiente como para llenar el comedor más grande del Campus de Elviña: el de la Facultad de Económicas.

Y habrá una cena para los que se registen como profesionales, en algún lugar de A Coruña capaz de alojar a toda esta gente, ¡o eso dice la web de la inscripción!

Os animo a ir. E incluso a colaborar.

[VU#649219] Vulnerabilidad de Escalada de Privilegios en SO de 64 bits bajo CPU Intel con llamada SYSRET

25 de jun de 2012

O algo así. Esta noticia es un poco vieja, pero me pareció bastante interesante como para escribirlo aquí.

Vamos, que el US-CERT (United States Computer Emergency Readiness Team) ha publicado información sobre una vulnerabilidad bastante curiosa: en máquinas Intel de 64 bits (vamos, vuestros flamantes Core i7) se puede realizar un ataque de escalada de privilegios acojonante.

Porque si sois lo suficientemente paranoicos, tendreis una máquina virtual para realizar pruebas de software o cualquier tontería que se os ocurra. Pero con un ataque como este, si alguien comprometiese vuestra máquina vritual, tendrían acceso en modo kernel a vuestro sistema operativo host!

El vector de ataque es bastante sencillo de explicar (aunque luego habría que ensamblarlo en el x86) pero la cosa es:

  1. Se produce un marco de la pila (stack frame) para que lo ejecute el Ring#0 (nivel más alto en la CPU) después de una excepción de protección (#GP).
  2. Se produce esa excepción.
  3. El fallo se manejará antes del cambio de contexto, con lo que el manejador para la excepción se ejecutará efectivamente en el Ring0 con las instrucciones que haya requerido el atacante, causando una escalada de privilegios.
Por supuesto, Intel dice que esta vulnerabilidad es un defecto de implementación en el software, pues sus chips funcionan exactamente tal y como está especificado. Esto es, software que no haya tenido en cuenta (o no haya tenido acceso) a la documentación concerniente al comportamiento específico de Intel de SYSRET, puede ser vulnerable.
Pero entonces Intel está reconociendo que SYSRET tiene un comportamiento distinto en su silicon de lo que dice simplemente el estándar x86.
AMD por su parte ha comunicado que sus chips no son vulnerables a este vector de ataque, pues el comportamiento de SYSRET es no generar un #GP mientras está en el Ring#0.
Xen, Citrix, Microsoft y demás ya han tomado o están tomando medidas. Xen ya tiene parches para su hipervisor, aunque a saber cuántas VPS a día de hoy funcionan con Xen y todavía no han sido parcheadas.
Por su parte VMware ha dicho como un campeón que ellos no están afectados: su hipervisor no usa la llamada SYSRET.

Fuente y más información: http://www.kb.cert.org/vuls/id/649219

Been quite a while…

21 de jun de 2012

Hace demasiado tiempo que no actualizo el blog. Tanto, que sería más sencillo abrir otro en otro lugar y no dar explicaciones a nadie :D

Pero diversas cosas en la vida me han tenido ocupado, y no por falta de tener de qué escribir sino por falta de tiempo, he abandonado este lugar público en el que solía escribir. Me he dado cuenta de que también estoy mucho menos activo en Twitter.

Eso va a volver a cambiar a partir de ahora.

Cacharreando…

17 de sep de 2011

Se termina el verano…

…pero no por ello uno deja una de sus aficiones: ¡cacharrear!
Hace unos días estuve hablando con un colega del grado, y comencé a buscar piezas que tenía por un trastero (simplificando), de habérselas cambiado a mi sobremesa a lo largo de los años, y resulta que tenía componentes suficientes para hacer un PC “nuevo”. Bueno, me faltaba un disco duro, pero le pude quitar un viejo IDE que ya no estaba conectado, sino tan solo atornillado, a la caja del sobremesa.
Me sorprendió gratamente también encontrar una caja y PSU usadas, y tras ensamblar todo y un par de cortecitos en los dedos por la mierdachapa de la que está hecha, intenté arrancarlo, ¡y arrancó!
Lo malo es que no tenía lector de CD/DVD (bueno, sí que tenía, pero me daba mucha pereza probar cuál funcionaría), así que me busqué otro sistema para bootear un SO.
No me costó mucho pensar en PXE, pues lo veo todos los días en la Facultad de Informática.

Como tengo un portátil funcionando, con Mac OS X (que al fin y al cabo es un UNIX: SUS03-compliant), podía montar ahí los servidores de tftp y de dhcp.

Instrucciones para activar tftp en Mac OS

Mac OS X ¡incluye! un servidor TFTP, aunque deshabilitado por defecto, y corre bajo los servicios de red (un inetd), no como servicio independiente. La forma de habilitarlo es la habitual en los servicios de Mac OS: cambiar una propiedad en un plist.
tl;dr: Hay que cambiar el fichero /System/Library/LaunchDaemons/tftp.plist como root y cambiar la -probablemente- sexta línea, en donde dice <true/> poner <false/>. (Disabled: false)
Tras esto, un $ sudo launchctl load /System/Library/LaunchDaemons/tftp.plist debería de levantar el servicio (aunque no aparecerá con ps).

Instrucciones para el servidor dhcp en Mac OS

Como suelo hacer, comencé por bajarme la última versión del dhcpd (la 4.2.2), pero esta, con soporte de DHCPv6, requiere unos símbolos definidos que Lion (10.7.1) no tiene en sus cabeceras (relativas precisamente al soporte de IPv6), así que para no complicarme me bajé una versión más antigua (la 3.1.3) que compiló sin problema alguno. Nota no importante: Archlinux también sigue con un paquete viejo de dhcpd por lo “complicado”, dicen ellos, que está siendo todavía dar soporte a dhcp4.
Os incluyo el fichero de configuración dhcpd.conf para arancar con PXE.
option domain-name "silice.lan";
option domain-name-servers ns1.silice.lan;
option subnet-mask 255.255.255.0;
default-lease-time 300;
max-lease-time 900;
ddns-update-style ad-hoc;
server-name "silice";
subnet 192.168.55.0 netmask 255.255.255.0 {
range 192.168.55.200 192.168.55.253;
filename "/tftpboot/pxelinux.0";
option routers 192.168.55.1;
}

Para lanzar dhcpd, en lugar de compilarlo y make install, yo solo lo compilé (make), y luego me creé un script para evitar tener que andar con ficheros de configuración en /etc, porque el dhcpd solo lo voy a usar para arrancar por PXE, ¡mi portátil no va a ser un servidor DHCP habitualmente!
El script:
#!/bin/bash
# Script to power up the DHCP server here.
cd ./dhcp-3.1.3/work.darwin/server
./dhcpd -f -cf dhcpd.conf -lf ./leases en0

Hay que ejecutarlo como root, pues DHCP utiliza un puerto inferior al 1024.

Arrancando…

Metí en el servidor TFTP (en /private/tftpboot/) las los elementos que coinciden con la expresión /boot/* y /boot/syslinux/*
Yo hice esto con la distro de Archlinux.
Bueno, pues con la distro de Archlinux os ahorrais probar, a menos que lo arranqueis desde un arch con el paquete archboot para arranque remoto. En mi instalación, después de descomprimir initramfs el kernel solicitaba lo que faltaba a un nbd0 (un Linux Network Block Device, algo que en el Mac no tenía)
Luego encontré y pude bajarme la imagen archboot, que sí tiene un initramfs autocontenido: en cuanto se carga eso no necesita soporte de ninguna entidad externa para su funcionamiento.
Una vez con esta imagen, ya pude por fin partir el disco e instalar Arch. Decidí, no obstante, partir el disco según el nuevo formato GPT, con una partición de 100M para /boot, otra de 2G para swap y lo restante repartido entre home y /.
Haber usado el esquema GPT impidió una correcta instalación automática de GRUB2, con lo que tuve que hacer la típica jaula chroot para instalar Grub desde dentro de ella, arrancando desde el Live.
Para instalar Grub hay que recordar montar /boot desde dentro del chroot, o grub-bios_setup no sabrá que son particiones diferentes!
Y con esto ya tenemos el sistema base montado.

Voy a aprovechar aquí para comentaros cuáles son las características del equipo que he conseguido montar.

  • Placa base: ASUS A8N32-SLi Deluxe (con 2x Gigabit Ethernet: 1x Marvell Yukon, 1x nVidia Ethernet)
  • CPU: AMD Athlon64 3200+ (Socket 939, sin soporte de paravirtualización) @2.00GHz, 1 core
  • RAM: 1.5 GB SODIMM DDR
  • HDD Sistema (/dev/sda): Seagate Barracuda 7200.9 (IDE/ATAPI) 300 GBytes (10^9 Bytes)
  • HDD Almacenamiento (/dev/sdb): Western Digital Caviar Green 3TB Advanced Drive Format (SATA3 6Gb/s)

Uno de los integrados de la RAM es erróneo, y produce errores y fallos de segmentación en momentos no predecibles. Esto se ha solucionado con la directiva badram de Grub 2 después de realizar un Memtest86+ para encontrar los sectores incorrectos.

Problemas de seguridad de WhatsApp

29 de may de 2011

Hace un tiempo instalé WhatsApp porque necesitaba comunicarme urgentemente con @simbilla y era el único sistema que tuve en aquella ocasión.

Al comienzo me pareció un sistema, simplemente, redundante.

Para mandar mensajes instantáneos ya estaba el correo electrónico. Para mandar mensajes cortos, ya estaba twitter (si, también tiene mensajes privados, chicos, no hace falta que hableis por menciones todo el rato), y para la mensajería instantánea ya estaba la mensajería instantánea (de acuerdo, tal vez esta frase también es algo redundante).

El caso es que ya existía GTalk, basado en XMPP, un estándar abierto; GMail, compatible con cualquier otra estafeta de correo electrónico, tal vez uno de los servicios más usados a lo ancho y largo de Internet, y ya teníamos Twitter, que tiene un API abierta y todo.

Y apareció WhatsApp. Y se convirtió en algo imprescindible para los usuarios de iOS.

Había una razón: la conveniencia.

WhatsApp hacía lo mismo que el resto de servicios también hacían (incluso menos), pero con una interfaz más bonita y refinada, y una filosofía de “el usuario no tiene que hacer nada más que hablar”. Y además con notificaciones push, con lo que los mensajes se recibían correctamente en tiempo real, aún cuando iOS no incluía la multitarea como feature.

Pronto se expandió al resto de público potencial: las BlackBerry de RIM, los Google Android, e incluso los Nokia N60. Era lógico: ¿por qué uno iba a poder hablar instantáneamente y sin pagar nada solo si el otro tenía otro iPhone? ¿Para eso no estaba ya Facetime, por ejemplo?

Aunque para estos usuarios no tenía tanta importancia: a día de hoy estas cuatro plataformas soportan Push Email Notifications, con lo que la notificación de un mensaje que llega a tu buzón también resulta instantánea en estos casos, sin recurrir a terceras partes.

Aún así, WhatsApp soporta algo que ningún otro mensajero con tanto público tiene: el emisor puede ver cuándo le ha llegado un mensaje al destinatario. Asi como cuándo cada persona se ha conectado por última vez.

— ¿Pero entonces como dices que funciona WhatsApp?

Muy sencillo.

Paso uno: introduces tu número de teléfono.

— ¿Por qué he de confiar mi número de teléfono a una tercera parte que no conozco?

Porque.. paso dos: ya está. Ahora escoges tu destinatario en WhatsApp y automágicamente aparecerán todos los contactos de los que tengas número de teléfono y que se hayan registrado alguna vez en la aplicación.

— ¿Y cómo es que aparecen ya todos mis contactos si ellos no me han aceptado?

De eso se trata. Si tienes su número de teléfono se supone que te lo han dado porque quieren que puedas contactar con ellos.

— ¿Pero y como aparecen ya?

Porque en realidad, entre el paso 1 y el paso 2, WhatsApp envía toda tu agenda (al menos todos los números de teléfono) a sus servidores, donde los procesan y devuelven una lista con aquellos que son usuarios de la aplicación, sus fotos de perfil y sus frases de estado. El otro no tiene siquiera porqué tenerte en tu agenda telefónica. (Tech: Además, la primera vez WhatsApp te envía un SMS gratuíto al móvil para comprobar que el número es tuyo).

— ¿Y no puedes no aparecerle a alguien?

No, desde que inicias sesión una vez no siquiera botón de cerrarla. Lo más parecido en Android es detener el servicio. O en cualquiera de las plataformas: desinstalar la aplicación.

Aun así seguirás apareciendo como usuario y la gente podrá mandarte mensajes aunque jamás los leas.

 

Bueno, pues yo soy de aquellos a los que les da igual que un tercero tenga los datos de mis contactos, la aplicación es genial.

Bueno, tus amigos tal vez no crean lo mismo, pero si quieres seguir adelante, tampoco es un camino de rosas.

Porque a pesar de que la aplicación se comunica por el puerto 443 (típicamente designado para servicios sobre SSL, una capa de seguridad a nivel de red), toda la comunicación que se realiza entre tu móvil y los servidores americanos de WhatsApp viaja en claro.

— ¿Qué quiere decir esto?

Pues que cada vez que mandas un mensaje a alguien, cualquiera en tu misma red wifi, en tu misma oficina, en tu casa, portal, red, o en cualquier nodo de todo Internet por el que pase tu información, pueden ver con pelos y señales quién le manda qué a quién y a qué hora y desde qué móvil.

 

Y además WhatsApp tiene como información tuya:

Los mensajes y posibles ficheros adjuntos que hayas podido mandar. Los contactos que te tienen añadido y a los que tú tienes añadido en la agenda de tu móvil (hables o no con ellos por WhatsApp).
Tu número de teléfono.

Y una política de privacidad que dice que pueden cambiarla cuando quieran en cualquier momento y sin avisar a sus usuarios. Osea, que de hoy para mañana pueden vender todos tus datos y no tienes tiempo ni a borrarlos.

Esto se basa en este post de SecurityByDefault en el que analizan únicamente estos últimos detalles sobre el (carente) cifrado de WhatsApp (aunque sí hacen toda la pesca de establecer el protocolo seguro, para después mandar las cosas en plano..).

Problemas de seguridad en Tuenti

29 de may de 2011

Esto es una noticia de la que no existe un “comunicado oficial” al menos que yo me haya enterado todavía.

Resulta que hace poco han comenzado a salir noticias de una nueva versión de una “beta privada” de la red social Tuenti, esta red social tan popular entre los jóvenes españoles.
Esta “actualización” requiere que el usuario introduzca su email, su contraseña y la contraseña de hotmail, lo que ya de por sí puede levantar muchas sospechas. Además suele venir de un amigo (de un mensaje automático creado por el robo de su cuenta), y no de la misma interfaz de tuenti, además redirigiéndonos a un dominio que nada tiene que ver con tuenti.com
Muchísima gente ha entrado en el link (no sé cuántos habrán introducido sus datos, pero tan solo desde un bit.ly que circulaba, las estadísitcas cuentan 351k visitantes).

Es bastante preocupante la falta de cultura respecto a la seguridad y privacidad que hay por el público general a día de hoy.

Actualmente los dominios que he podido encontrar como causantes de este problema de seguridad han sido tirados por DNS (Error: NXDOMAIN), y a mi no me han mandado el enlace, yo me he enterado por twitter.

Comienza el fin

14 de may de 2011

$latex lim_{\Delta t \to 0 }{ t + \Delta t} = EXAMS $

 

Sé que no he comentado nada de la Xuventude Galicia Net 2011.

Os anticipo que he asistido. Pero estoy demasiado liado últimamente con cosas que hacer como para escribir ne el blog.

A ver si en verano me animo…