Quantcast
Channel: General - Linux Adictos
Viewing all articles
Browse latest Browse all 6338

How-to: comprueba si tu distribución Linux está afectada por la vulnerabilidad GHOST

$
0
0

ghost How to: comprueba si tu distribución Linux está afectada por la vulnerabilidad GHOST

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 <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#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. Tu equipo está afectado por GHOST. Parchealo inmediatamente.");
 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. Por ejemplo, Google ya solucionó este problema el año pasado en su Chrome OS para Chrome Book. Pero Google silenció el problema en vez de cooperar con la comunidad y que todos pudiesen solucionar el problema desde el pasado año. Un gesto extraño de Google y que no gusta nada.

El artículo How-to: comprueba si tu distribución Linux está afectada por la vulnerabilidad GHOST ha sido originalmente publicado en Linux Adictos.


Viewing all articles
Browse latest Browse all 6338

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>