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
  • 2606 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.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(name, '0', len);
  24.   name[len] = '\0';
  25.  
  26.   retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
  27.  
  28.   if (No tienes permisos para ver links. Registrate o Entra con tu cuenta(temp.canary, CANARY) != 0) {
  29.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("vulnerable");
  30.     No tienes permisos para ver links. Registrate o Entra con tu cuenta(EXIT_SUCCESS);
  31.   }
  32.   if (retval == ERANGE) {
  33.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("not vulnerable");
  34.     No tienes permisos para ver links. Registrate o Entra con tu cuenta(EXIT_SUCCESS);
  35.   }
  36.   No tienes permisos para ver links. Registrate o Entra con tu cuenta("should not happen");
  37.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(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:
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
« Última modificación: Enero 30, 2015, 12:21:30 am por cnfs »
Security Researcher / Reverse Engineer
No tienes permisos para ver links. Registrate o Entra con tu cuenta

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

No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5390
  • Actividad:
    40%
  • Reputación 31
  • 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
No tienes permisos para ver links. Registrate o Entra con tu cuenta

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="">
No tienes permisos para ver links. Registrate o Entra con tu cuenta

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 »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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
No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



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

Iniciado por Hex4w0rd

Respuestas: 27
Vistas: 9070
Ú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: 1708
Ú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: 2107
Último mensaje Octubre 16, 2017, 01:27:26 pm
por b4r7
LinDrop - Ingeniería social para objetivos Linux

Iniciado por HATI

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

Iniciado por black magdala

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