comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Remote Linux Vulnerability: GHOST (GLIBC) Critica.

  • 5 Respuestas
  • 2741 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cnfs

  • *
  • Underc0der
  • Mensajes: 103
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
    • shad0whack
    • Email
  • Twitter: https://twitter.com/cmind33
« en: Enero 28, 2015, 02:13:02 pm »

Bueno, me ha sorprendido no encontrar nada con el buscador del foro sobre esta vulnerabilidad, si se trata de un error y trataron ya este tema, pido disculpas, y borren el tema. Estaba en dudas si ponerlo en seguridad o hacking, pero como es algo temprana la vulnerabilidad 'publicamente', y hay tantos sistemas vulnerables por ahi, lo considere correcto aca.

Sin dudas una de las noticias de estos dias es el descubrimiento de la vulnerabilidad CVE-2015-0235.
Afecta a la libreria "glibc". La gente de Qualys descubrio un interesante desbordamiento de buffer en una funcion de glibc llamada "the_nss_hostname_digits_dots()". Se puede tomar ventaja remotamente de esta vulnerabilidad desde la funcion gethostbyname() de glibc.

Al parecer de glibc-2.17 a glibc-2.18 se encuentra parcheado. De hecho lo estaban desde el 2013 pero no se considero de mayor prioridad y se paso por alto en muchos desarrolladores, por ende los modulos de ciertas distribuciones siguen siendo aun vulnerables.

Algunas app conocidas que dependen de esta libreria son Apache, GnuPG, OpenSSH, entre otras.

A continuacion adjunto un PoC hecho por vpetkov, para que puedan testear la vulnerabilidad localmente.  Primero dense una idea de que libreria tienen instalada con el siguiente comando, desde mi debian/ubuntu (sistemas derivados de estos):

$> ldd --version

Desde Redhat y CentOS:

$> rpm -q glibc

El PoC para verificar si es vulnerable o no el sistema, peguenlo en un editor de texto, guardenlo con como ghost.c y luego lo deben compilar con gcc de la siguiente manera

$> gcc ghost.c -o ghost (compilan)

$> chmod +x ghost (le dan permisos de ejecucion).

$> ./ghost (ejecutan)



Código: C
  1. #include <netdb.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <errno.h>
  6.  
  7. #define CANARY "in_the_coal_mine"
  8.  
  9. struct {
  10.   char buffer[1024];
  11.   char canary[sizeof(CANARY)];
  12. } temp = { "buffer", CANARY };
  13.  
  14. int main(void) {
  15.   struct hostent resbuf;
  16.   struct hostent *result;
  17.   int herrno;
  18.   int retval;
  19.  
  20.   /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  21.   size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  22.   char name[sizeof(temp.buffer)];
  23.   memset(name, '0', len);
  24.   name[len] = '\0';
  25.  
  26.   retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
  27.  
  28.   if (strcmp(temp.canary, CANARY) != 0) {
  29.     puts("vulnerable");
  30.     exit(EXIT_SUCCESS);
  31.   }
  32.   if (retval == ERANGE) {
  33.     puts("not vulnerable");
  34.     exit(EXIT_SUCCESS);
  35.   }
  36.   puts("should not happen");
  37.   exit(EXIT_FAILURE);
  38. }


Si es vulnerable, saldria "vulnerable" je je.
Sino, lo contrario.

Para fixear esto desde Debian/Ubuntu vamos a enfocar solamente en actualizar la libc.

$> apt-get update
$> apt-get install --only-upgrade libc6 -y


(Reiniciemos, y luego volver a verificar con el PoC si sigue siendo vulnerable).
El resto de distribuciones, favor de verificar y tratar de actualizar el modulo a la ultima version, y no seria mala idea el kernel tambien.

Mas informacion detallada directo desde Qualys Community:
https://community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/the-ghost-vulnerability
http://blog.vpetkov.net/
http://insecuritynotes.blogspot.com
« Última modificación: Enero 30, 2015, 12:21:30 am por cnfs »
Security Researcher / Reverse Engineer
https://shad0whack.blogspot.com

Desconectado Stuxnet

  • *
  • Underc0der
  • Mensajes: 259
  • Actividad:
    0%
  • Reputación 2
    • Ver Perfil
    • Devel Security
  • Twitter: _stuxnet
« Respuesta #1 en: Enero 28, 2015, 02:30:27 pm »
Justamente ayer estaba leyendo sobre esto por un tweet que publico HD Moore

http://www.openwall.com/lists/oss-security/2015/01/27/9

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5409
  • Actividad:
    16.67%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #2 en: Enero 28, 2015, 03:01:55 pm »
Muy bueno bro! Tu escritura es muy agradable a la vista!
Muchas gracias por el aporte!

Saludos!
ANTRAX


Desconectado cnfs

  • *
  • Underc0der
  • Mensajes: 103
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
    • shad0whack
    • Email
  • Twitter: https://twitter.com/cmind33
« Respuesta #3 en: Enero 28, 2015, 03:35:27 pm »
Muchas Gracias Antrax.

Saludos!
Security Researcher / Reverse Engineer
https://shad0whack.blogspot.com

Desconectado Stuxnet

  • *
  • Underc0der
  • Mensajes: 259
  • Actividad:
    0%
  • Reputación 2
    • Ver Perfil
    • Devel Security
  • Twitter: _stuxnet
« Respuesta #4 en: Enero 29, 2015, 11:38:16 pm »
Por lo que veo copiaste mal el código a los include les hace falta

Código: C
  1. #include <netdb .h="">
  2. #include <stdio .h="">
  3. #include <stdlib .h="">
  4. #include <string .h="">
  5. #include <errno .h="">

Desconectado cnfs

  • *
  • Underc0der
  • Mensajes: 103
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
    • shad0whack
    • Email
  • Twitter: https://twitter.com/cmind33
« Respuesta #5 en: Enero 30, 2015, 12:23:54 am »
Por lo que veo copiaste mal el código a los include les hace falta

Código: C
  1. #include <netdb .h="">
  2. #include <stdio .h="">
  3. #include <stdlib .h="">
  4. #include <string .h="">
  5. #include <errno .h="">

Juraría que los había puesto, creo que ANTRAX me edito el post y agrego esa imagen arriba.. y seguramente el "code" :p..
Ya esta corregido de todos modos, gracias por la aclaración Stuxnet. Saludos.
Security Researcher / Reverse Engineer
https://shad0whack.blogspot.com

 

¿Te gustó el post? COMPARTILO!



Offensive Security penetration testing with Kali Linux (Traducción al español)

Iniciado por Hex4w0rd

Respuestas: 27
Vistas: 9475
Último mensaje Noviembre 01, 2017, 08:51:12 pm
por Codig0Bit
Herramientas Kali Linux - Email búsqueda collector y la cosechadora

Iniciado por Iny3trol

Respuestas: 0
Vistas: 1846
Último mensaje Enero 23, 2015, 10:46:57 pm
por Iny3trol
WPA2 KRACK ATTACK - Prueba de concepto Android y Linux

Iniciado por DhaveSec

Respuestas: 1
Vistas: 2350
Último mensaje Octubre 16, 2017, 01:27:26 pm
por b4r7
LinDrop - Ingeniería social para objetivos Linux

Iniciado por HATI

Respuestas: 5
Vistas: 2852
Último mensaje Diciembre 03, 2016, 10:43:00 am
por m4x
Aplicaciones recomendadas sobre hacking para Linux

Iniciado por black magdala

Respuestas: 0
Vistas: 1468
Último mensaje Septiembre 13, 2016, 04:52:34 pm
por black magdala