
Como ya adelantaba mi compañero Willy, se ha detectado una nueva vulnerabilidad grave en Linxu y se denomina GHOST. Si aun no se han informado pueden consultar su artículo para saber de qué trata y en este te damos los pasos para comprobar si tu distrubición está afectada por este problema o si por el contrario las actualizaciones automáticas ya lo han parcheado…
Recuerda que la vulnerabilidad está en una biblioteca que utiliza el kernel Linux, y no en el propio Linux, se trata de Glibc, la bliblioteca GNU C Library. GHOST fue descubierto por la consultora de seguridad Qualys y es un problema crítico por lo que es necesario que te informes si estás afectado. Para ello sigue los siguientes pasos:
- Abre un fichero de texto con tu editor de texto favorito (Vi, Vim, Nano, Gedit,…), no importa si es un editor en modo gráfico.
- Ahora copia este script y pegalo en el editor de texto:
#!/bin/bash
GHOSTTEMP=$(mktemp /tmp/ghost.XXXXXXXXXXXXXX)
GHOSTEXEC=$(mktemp /tmp/ghost.XXXXXXXXXXXXXX)
cat <<"EOF" > $GHOSTTEMP
#include
#include
#include
#include
#include
#define CANARY "in_the_coal_mine" struct {
char buffer[1024];
char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY }; int main(void) {
struct hostent resbuf;
struct hostent *result;
int herrno;
int retval; /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
char name[sizeof(temp.buffer)];
memset(name, '0', len);
name[len] = '\0'; retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) != 0) {
puts("Lo siento, eres vulnerable. Debes parchear.");
exit(EXIT_SUCCESS);
}
if (retval == ERANGE) {
puts("¡Enhorabuena! Tu sistema no es vulnerable. Www.linuxadictos.com te desea un buen día.");
exit(EXIT_SUCCESS);
}
puts("should not happen");
exit(EXIT_FAILURE);
}
EOF
gcc -x c $GHOSTTEMP -o $GHOSTEXEC
$GHOSTEXEC
rm -f $GHOSTTEMP $GHOSTEXEC
- Guarda el script y le das el nombre que tú quieras, por ejemplo “ghost-test.sh”, es importante que no lo guardes con la extensión .txt, sino con .sh. Si lo has guardado como .txt no importa, puedes pinchar en el fichero y cambiarselo en cualquier momento.
- Ahora desde la consola ve a la carpeta donde se encuentre el script. Por ejemplo, si la tienes en /home teclea:
cd /home
- Y luego haz lo siguiente (este paso también se puede hacer en modo gráfico, pinchando con el botón derecho del ratón sobre el fichero, te vas a propiedades y en la pestaña de Permisos le das permiso de ejecución):
sudo chmod 775 ghost-test.sh
- Y ahora ejecutas el script desde la consola (recuerda que si lo has guardado con otro nombre diferente, tendrás que sustituir “ghost-test” por ese otro nombre):
./ghost-test.sh
- Y te aparecerá un mensaje diciéndote si eres o no vulnerable. Así de sencillo.
Espero que te haya servido…Recuerda que algunas distribuciones usan versiones no afectadas por GHOST o puede que las actualizaciones automáticas lo hayan solucionado, si no es así, parchea tu distro o actualizala.
El artículo How-to: comprueba si tu distribución Linux está afectada por la vulnerabilidad GHOST ha sido originalmente publicado en Linux Adictos.
Enlace a la fuente original: How-to: comprueba si tu distribución Linux está afectada por la vulnerabilidad GHOST
Continúar leyendo...