Cabecera-v2-web.jpg

Cómo comprobar si nuestro equipo Linux está afectado por la vulnerabilidad GHOST

Ayer os contamos todos los detalles sobre la vulnerabilidad GHOST, un fallo de seguridad que se introdujo dentro del kernel con el paquete glibc-2.2, lanzado el 10 de noviembre del 2000. En esta entrada tenéis todos los detalles sobre este nuevo fallo de seguridad que afecta a todas las versiones de Linux que tienen instalado este paquete, aunque actualmente la mayorí­a de ellas han actualizado este paquete y por tanto están a salvo. Ahora os vamos a explicar cómo comprobar si nuestro sistema Linux está afectado por esta vulnerabilidad GHOST.

Para comprobar si nuestro sistema Linux está afectado, simplemente debemos abrir un fichero de texto con vuestro editor de texto favorito (Vi, Vim o Nano si tu sistema Linux funciona únicamente a través de comandos) o editores gráficos si es que usas entorno gráfico. Una vez que estás en modo edición, procedemos a copiar el siguiente script:

#!/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("ERES VULNERABLE");
exit(EXIT_SUCCESS);
}
if (retval == ERANGE) {
puts("NO ERES VULNERABLE");
exit(EXIT_SUCCESS);
}
puts("should not happen");
exit(EXIT_FAILURE);
}
EOF
gcc -x c $GHOSTTEMP -o $GHOSTEXEC
$GHOSTEXEC
rm -f $GHOSTTEMP $GHOSTEXEC

Una vez que lo hemos copiado, guardamos el archivo con nombre ghost.sh (por ejemplo) y le damos permisos de ejecución:

sudo chmod 755 ghost.sh

A continuación ejecutamos el script como hacemos normalmente, ya sea con:

./ghost.sh

O con:

bash ghost.sh

Nada más ejecutar el script, nos saldrá un mensaje diciendo si somos o no vulnerables.

ghost_verificacion

Algunas distribuciones de Linux utilizan una versión de este paquete que ya no tiene este fallo de seguridad, no obstante es recomendable verificarlo.

Fuente: redeszone.net

pie.png

CERT-PY | Centro de Respuestas a Incidentes Cibernéticos
Ministerio de Tencnologí­as de la Información y Comunicación (MITIC)

Avda. Gral. Santos c/ Concordia | Telefono: (595 21) 217-9000
República del Paraguay

80x15.png

Versión del Template 1.11