SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

SET 15

64121 visitas

Curso de Novell Netware -II y III-

      2719

Autor: Madfran
-[ 0x0E ]--------------------------------------------------------------------
-[ CURSO DE NOVELL NETWARE -II- ]--------------------------------------------
-[ by MadFran ]-------------------------------------------------------SET-15-

Segundo (y esperado) capitulo sobre Novell Netware

Capitulo - 02 PASSWORDS


02-1 Como acceder al archivo de paswwords (sin que se note demasiado).

Contrariamente a lo que se piensa (...yo no tenia ideas preconcebidas),
acceder al archivo de passwords en Netware no es como en Unix, el
archivo de passwords no se encuentra al descubierto. Todos los objetos
y sus propiedades se encuentran en los archivos bindery en 2.x y 3.x, y
en 4.x estan en la base de datos NDS. Un ejemplo de un objeto puede ser
una impresora, un grupo, una cuenta individual, etc. Un ejemplo de una
propiedad de un objeto puede ser un password, o un nombre completo, los
miembros de un grupo,... Los atributos (o flags) de los archivos bindery
en 2.x y 3.x son Hidden y System, y estos archivos se encuentran en el
volumen SYS: en el subdirectorio SYSTEM.

Sus nombres son los siguientes :

           Version NETWARE           Nombre del archivo
           ---------------           --------------------------------------
                 2.x                 NET$BIND.SYS, NET$BVAL.SYS
                 3.x                 NET$OBJ.SYS, NET$PROP.SYS, NET$VAL.SYS

Los passwords se almacenan en :

              - 2.x -> NET$BVAL.SYS
              - 3.x -> NET$VAL.SYS

En Netware 4.x, los archivos se colocan en sitios distintos del SYS:
Sin embargo usando la utilidad RCONSOLE y la opcion Scan Directory
se pueden ver los archivos en SYS:_NETWARE

                Archivo            Que es
                -------------      -------------------------
                VALVE.NDS          Parte de NDS
                BLOCK.NDS               "
                ENTRY.NDS               "
                PARTITIO.NDS       Tipo de la particion NDS
                MLS.000            Licencia
                VALLINCEN.DAT      Validacion de la licencia

Hay potencialmente otro metodo para ver estos archivos y editarlos.
Despues de instalar NW4 en un volumen NW3, arrancar el servidor 3.x
SERVER.EXE.
En el volumen SYS estara el directorio _NETWARE.
SYS:_NETWARE esta mejor escondido en 4.1 que en 4.0x, pero todavia es
posible verlos escaneando los numeros de entrada de los directorios
usando NCP calls (se necesitan los API) usando las funciones 0x17
subfuncion 0xF3.

Lo siento chicos,...para mi chino. Yo solo traduzco


02-2 Como crackear paswords

Hay varios caminos para conseguirlo. Primero, asumimos que Intruder
Detection esta desconectado, que se admiten password no encriptados.
Afortunadamente, no hay que luchar con paquetes firmados (explicacion
en proximo capitulo 7). Tambien asumimos que tenemos acceso a la
consola. Finalmente que disponemos de algun capturador de password. Acceder
a algun sniffer puede ayudar. Existen muchos.

Mira no me puedo resistir a comentarlo.
Acceso a la consola.... Fisicamente es de los sitios mas vigilados en
cualquier sitio que se precie. Todos los que conozco tienen acceso o con
llave o con tarjeta. Siempre hay alguien.. y no es el caso de preguntar
Te importaria que pusiera un disquete?
Es solo para chupar los passwords. Gracias

Los sniffer que he probado, no funcionan desde las token ring desde
donde yo puedo actuar.....algo debo hacer mal.

Si el Intruder Detection esta desconectado, puedes utilizar un rompedor
de password tipo "fuerza bruta". Mira la seccion 02-4 para mas detalles.

Encriptar los password es la manera que tiene Novell de protegerlos de
los sniffers. En las versiones primitivas de Netware (2.15), se enviaban
los passwords en forma de texto a traves de la red. Para evitar esto,
Novel dio una opcion al administrador. Las siguientes versiones de LOGIN.EXE,
encriptan los password antes de enviarlos. Pero antes de que esto pase,
el entorno (NETX) tiene que actualizarse.

Como algunos sitios tienen que mantener entornos antiguos y viejas versiones
de LOGIN.EXE para soportar equipos antiguos, el admin tiene la opcion de
permitir password no encriptados para acceder al server. Esto se hace
tecleando SET ALLOW UNENCRYPTED PASSWORD=ON en la consola o a€adiendo esto
en el autoexec.ncf.

Por defecto es OFF, lo que significa que NOVELBFH se pondra a beepear a cada
intento !!. Afortunadamente en muchas redes esta ON para soportar equipos
antiguos.

Si tienes acceso a la consola, sea fisicamente o con el comando RCONSOLE,
se puede utilizar SETSPASS.NLM, SETSPWD.NLM o SETPWD.NLM para resetear los
passwords.

El comando RCONSOLE solo lo puede lanzar alguien con privilegios admin.
....al menos yo siempre me lo he encontrado asi.

No hay mas que cargar NLM y pasar los parametros en la linea de comando.

             NLM             CUENTAS QUE RESETEA     VERSION
             ------------    --------------------    ---------
             SETSPASS.NLM    SUPERVISOR              3.x
             SETSPWD.NLM     SUPERVISOR              3.x y 4.x
             SETPWD.NLM      Cualquier cuenta        3.x y 4.x

(Ver 02-5 para mas informacion)

Si planeas capturar password a leer el teclado, puedes hacerlo de esta
forma.

El archivo LOGIN.EXE esta en el directorio SYS:LOGIN, y normalmente
no tendras acceso para poner un fichero en este directorio. El mejor sitio
para poner un programa capturador de teclados es en el directorio de
trabajo, con el ATTRIB set como oculto. La ventaja es que podras capturar
el password y NETWARE no vera lo que haces. La desventaja es que tienes que
tener acceso a la maquina para hacerlo. El sitio realmente bueno es una
maquina normal, a traves de una ventana pcAnywhere (programa de acceso
remoto).

Muchos sitios permitiran acceso con pcAnywhere sin practicamente software,
ni control de acceso de seguridad a la LAN utilizando las utilidades de
seguridad de Netware. Subiendo un programa de captura de teclado en una
maquina como esta lo impide.

Si el sistema hace backup via una estacion de trabajo, es posible utilizar
este hecho como via de acceso. Esta estacion de trabajo debe tener derechos
equivalentes a SUPERVISOR para poder copiar el bindery y resto de archivos
de sistema. Si puedes acceder a esta estacion de trabajo o utilizar la uenta
desde donde se hace backup, entonces hay posibilidades de acceder al login
con privilegios de SUPERVISOR.


02-3 Que es un cracker de password "brute force"

Si el Intruder Detection esta desconectado, se puede simplemente probar
password hasta adivinarlo. Esto se puede automatizar utilizando un programa
que prueba passwords, conocido como cracker de password "brute force".. Un
programa que hace esto es el NOVELBFH.EXE (solo para versiones 3.x). Este
programa probara passwords tales como aa, ab, ac,... hasta que se pruebe toda
combinacion valida de caracteres. Sin embargo esto supone que:

        1.- Dispones de mucho tiempo, ya que tarda un segundo o dos por
            password.
        2.- Tienes acceso a una maquina que corra el programa horas o dias.

Yo me he encontrado con una dificultad adicional
Al cabo de ocho tentativas la cuenta atacada se desactiva, pero de una
forma extra€a, ya que al cabo de 5 minutos vuelve a estar accesible, pero..
el programa empieza de nuevo.

Si el Intruder Detection esta activado, sonara una se€al de alarma en la
consola del sistema cada 2 segundos y se grabara la incidencia en el File
Server Error Log con la hora y la direccion del nodo.

Para ataques "brute force" de archivos bindery antiguos, hay un programa
llamado CRACK. Este programa trabaja en Netware 3.x y se puede encontrar
en:

        http://www.medinet.liv.ac.uk/~roy/freeware.html

Estas direciones en general funcionan y .....no funcionan
Personalmente prefiero buscar con cualquier buscador potente
como ALTAVISTA e ir probando en funcion de resultados


02-4 Que es un diccionario de crackear password

Un programa cracker de password que trabaja contra una unica cuenta es
por ejemplo NWPCRACK.EXE de Teiwaz. Este utiliza un archivo auxiliar que
contiene todas las passwords a probar. Archivos de este tipo los puedes
encontrar en la red (ver alt.2600/#hack FAQ, hay una lista de ftp con
este tipo de archivos).

No he encontrado ninguno de estos archivos en formato DOS
Todos son en formato UNIX

Estaras sometido a las mismas limitaciones que para NOVELBFH (no Intruder,
3.x) pero funciona bien.

Para un cracker que trabaje directamente contra:

        - Un .OLD bindery dejado despues de pasar BINDFIX
        - O un bindery vivo.

prueba el BINDERY.ZIP Este ZIP de Al Crant contiene BINDERY.EXE que extraera
informacion de usuarios de los archivos bindery y los pondra en un archivo
tipo texto de UNIX. Despues tendras que utilizar BINCRACK.EXE del mismo ZIP
para crackear los passwords del archivo extraido.

BINCRACK igual que NWPCRACK.EXE, requiere una lista de palabras. Es muy
rapido.

El archivo BINDERY.ZIP contiene versiones de BINCRACK para Solaris 1 y 2, por
tanto puedes copiar la informacion de usuarios extraidos en un Sparc y
crackearlos.

Para detectar passwords tipo GUES,... ver seccion 07-9...proximamente.


02-5 Como utilizar SETPWD.NLM

Se puede cargar SETPWD en la consola o via RCONSOLE. Si utilizas RCONSOLE,
usa la opcion SERVER del Transfer Files y pon el archivo en SYS:SYSTEM.

Para 3.x
        LOAD [path] SETPWD [usuario] [nuevopassword]

Para 4.x
        set bindery context= [context, ejemplo hack.corp.us]
        LOAD [path] SETPWD [usuario] [nuevopassword]

En 4.x el cambio se propaga de forma que tienes acceso a todos los servers
en el arbol y no olvidar que tienes que seguir las especificaciones de
password en SYSCON para esta tarea. Por ejemplo, si la cuenta a la que
estas cambiando el password requiere 6 caracteres,...tendras que poner
seis caracteres.


02-6 Cual es el camino "debug" para desconectar los passwords.

Tienes que estar ante la consola.

para entrar en debugger
teclea "d VerifyPassword 6" Escribe 6 byts para uso posterior
teclea "c VerifyPassword=B8 0 0 0 0 C3" Inhabilita password check
teclea "g" Para salir del sistema y volver a la consola

Para reestablecer el password checking...

Entra en debugger
teclea "g VerifyPassword = xx xx xx xx xx xx" donde xx son los numeros
de antes
teclea "g" para volver a la consola.

Teiwaz ha puesto al dia el procedimiento para hacerlo mas facil. Y...solo 3.x


02-7 Como se encriptan los password

El algoritmo para 3.x y 4.x es, segun algunas fuentes, el mismo. Es un 
algoritmo de propiedad que se supone se desarrollo de una vez.

Descripcion del codigo fuente localizado en:

        DUTIWS.TWI.TUDELFT.NL
        Directorio /PUB/NOVELL

El codigo fue enviado por Fauzan Mirza en el foro SCI.CRYPT, y produjo la
consiguiente descrpipcion bit a bit en

        COMP.OS.NETWARE.SECURITY

por David Wagner

ENCRYPTP (int id4, char password[])
        char buffer[32]

        - Concatenar password[] consigo mismo hasta conseguir 32 bytes
        - Poner el resultado en buffer[]
        - concatenar id[] consigo mismo hasta alcanzar 32 bytes.
        - XOR el resultado en buffer[].

return encryt (buffer[])

ENCRYT (char buf[32])
        - nibble output[32]; /*un nibble=4 bits*/

        - aplicar una complicada (pero facilmente reversible) funcion en buf[]
        - for (i=0; i<32; i++)
                output[i]=S-box[buf[i]];
        - return output []

Donde S-box[] comprime un valor de 8 bit en 4

Bien, aqui esta como invertir la funcion de enredar la password, dado en
el valor output[].

Aqui tengo un problema de traduccion,... lo siento

- for (i=0; i<32; i++)
        toma cualquier x del S-box[x]==output[i]
        buf[i]=x
- aplica el contrario de la complicada funcion a buf[]
- concatena id[] a si mismo...., y XOR el resultado a buf[]
- utiliza los 32 bytes del resultado de buf[] como el inverso del password

Desde luego, hay algunos peque€os detalles que me he dejado fuera; si estas
escribiendo el programa, tienes que ser cuidadoso con los detalles.
Tambien, esta el hecho que el password inverso incluido el valor
completo de 8 bits, no ASCII alfanumericos.

Por tanto intenta ser un poco mas sofisticado y ten en cuenta el problema.
La razon por la cual no obtienes la "verdadera original" password es debido a
que cuando tomas "x", no sabes que "x" es "verdadero" y "original", ya que
las cajas-S desplazan la informacion.


02-8 Cual es el peligro de almacenar password capturados

Hay algunos, y seguro que se te ocurren otros.

- Si el admin las encuentra on-line, obviamente pensara que algo esta
  pasando, especialmente si es bajo tu cuenta.

- Si otro usuario en el sistema se da cuenta de lo que haces, puede que
  utilice la informacion en su provecho (y de forma insegura) y ponga
  en sobreaviso al admin.

- Con algo parecido al LOGIN/PROP de itsme, hay la posibilida que TU
  password quede en el archivo, esto puede permitir a otro a utilizar tu
  cuenta sin esfuerzo. Esto es especialmente peligroso cuando el admin esta
  jugando con LOGIN/PROP porque quiere ver como funciona.

- Otro usuario puede darse cuenta de lo que pasa y ser capaz de probar lo
  que estas haciendo. Si otros usuarios se encuentran el fichero y explotan
  las cuentas (y causan da€os), tu seras el culpable.

Por lo tanto recomiendo encriptar los passwords, preferiblemente con algo
medianamente seguro (XOR no es encriptar).



 
Tercer capitulo sobre Novell Netware

Capitulo - 03 CUENTAS Y SEGURIDAD DE CUENTAS


03-1 Que son las cuentas.

El sistema de cuentas es el medio utilizado por Novell para controlar y
administrar los accesos al servidor de una forma que es "contabilizable".
El admin adjudica cargos por cada bloque leido o escrito, servicios
requeridos, tiempo de conexion y espacio en disco. La cuenta paga por el
servicio requerido un precio, que es deducido de su cuenta corriente. Como
la cuenta paga por estos items (factura departamental, metalico,...) puede
o no puede ser importante, pero el hecho es que puede instalarse y dejar
una huella de que tu has estado ahi.

Cualquier cuenta valida, incluyendo cuentas no-super puede chequear si la
contabilizacion esta activa. Simplemente corre SYSCON y trata de acceder a
Accounting, si recibes un mensaje diciendo que Accounting no esta activado,...
bueno.... evidente no ?


03-2 Como frustar a Accounting

Desconectala. E investiga la direccion tu nodo.

Etapas a seguir :

- Descubre tu direccion (ver 03-6). Utiliza una direccion tipica de super
  como propia.
- Si estas utilizando un backdoor, activalo con SUPER.EXE
- Borra Accounting de la forma siguiente.
- Lanza SYSCON
- Selecciona Accounting
- Selecciona Accounting Server
- Pulsa la tecla borrar
- ...y contesta si.

La ultima entrada en el archivo NET$ACCT.DAT sera tu hora de login con la
direccion del nodo.

- Ahora haz lo que quieras en el sistema.
  Utiliza una cuenta diferente si quieres, no quedara reflejada en el log
- Login con la cuenta original, lanza SYSCON y reinstala Accounting.
  Logout inmediatamente,... la primera linea en NET$ACCT.DAT sera tu
  logout, mostrando un login y logout en la misma cuenta. Limpio y neto.

Si no puedes descubrir la direccion (algunas tarjetas LAN no lo permiten o
requieren extra drivers que puede que no tengas), simplemente desconecta
Accounting y dejalo off o borra NET$ACCT.DAT localizado en SYS:SYSTEM
Tienes que tener privilegios super para desconectar Accounting pero no
para descubrir la direccion.


03-3 Que es el Intruder Detection

Intruder Detection es la forma en que Novell detecta las tentativas con
password no validos. Mientras que esta utilidad esta off por defecto,
cualquier sitio que practique un minimo de seguridad conectara esta
proteccion. Hay diversos parametros para Intruder.

Primero hay un parametro para limitar el tiempo que el server recordara
un intento con falso password. Tipicamente esta colocado en 30 minutos,
pero puede ser tan poco como 10 minutos o tan largo como 7 dias. Hay
un parametro para cuantos tentativas bloquean la cuenta. Normalmente son
tres tentativas, pero puede ser tan poco como 1 o tanto como 7.

Cuando un Intruder Detecton ocurre, el beep del server y un mensaje en la
consola del server con el nombre de la cuenta que esta bloqueado y la
direccion del nodo desde donde viene el intento. Tambien se escribe esta
informacion en el log. Un supervisor puede desbloquear la cuenta antes de
que se libere solo, y el log tambien puede borrarse por un supervisor.

En una red grande, no es inusual ver bloqueos de Intruder diariamente, y 
olvidar una password es una cosa corriente. Los bloqueos de Intruder de
Supervisor normalmente se registran e informan en la consola.


03-4 Como chequear la existencia de Intruder

La forma mas facil de hacerlo es jugar con una cuenta que conozcas la
password. Prueba una password incorrecta varias veces. Si intruder esta on,
la cuenta quedara bloqueada aunque pruebes con la password correcta.


03-5 Que son las restricciones de tiempo

Restricciones de tiempo pueden colocarse en una cuenta para limitar el
tiempo en que una cuenta puede estar activa. Si la cuenta esta conectada
y el tiempo ha superado el limite, la cuenta es desconectada. Las
restricciones pueden ser por tiempo o por fechas. Esto significa que si el
admin quiere restringir una cuenta para evitar que se conecte excepto de
lunes a viernes de 8 a 5., puede hacerlo. Solo el super puede alterar las
restricciones de tiempo. Alterar la hora de la estacion de trabajo no sirve.
Solo sirve cambiar la hora del servidor.

Restricciones de estacion sirven para limitar donde una cuenta puede actuar.
restricciones pueden ser para una token ring o un segmento ethernet, y
pueden ser especificas para una direccion MAC o nodo. El unico camino para
evitar una restriccion en un nodo es 'spoof' la direccion desde una estacion
en el mismo segmento desde donde la direccion que estas 'spoofing'.

Lo siento chicos,... no entiendo lo del spoofing. Imagino que es falsear
la direccion de la tarjeta de conexion a la red,... pero tampoco podria
jurar que es asi.

Desde luego puedes quitar restricciones con SYSCON si eres super o
equivalente.


03-6 Como puedes conocer el nodo o direccion IP

Depende del tipo de tarjeta de interface de red (NIC) que tiene la estacion
de trabajo, puedes actuar de varias formas. Normalmente lo puedes encontrar
en la seccion Link Driver del archivo NET.CFG en la linea

NODE ADDRES xxxxxxxxxxxx

donde xxxxxxxxxxxx son los doce digitos de la direccon MAC. Esto suponiendo
que estas utilizando drivers ODI, si utilizas los NDIS estaran en
PROTOCOL.INI o en IBMENII.NIF.

En el sistema operativo OS/2 WARP 3.0 la informacion se encuentra en:

c:\IBMCOM\PROTOCOL.INI

busca una linea que empiece por :

NETADDRESS=

los doce caracteres que hay acontinuacion de =, es la direccion
buscada

Ver las direcciones de las tarjetas es bastante facil. Login con cualquier
cuenta y lanza USERLIST /A. Tendras una lista de todas las cuentas que
actualmente estan conectadas con sus networks y direcciones de nodo. Si
su terminal esta en la misma red que del objetivo, puedes ver la direccion
sin problemas. Actualmente puedes ver la direccion pero tienes que estar
en la misma red.

Para una direccion IP, tienes que lanzar un programa de configuracion TCPIP
Algunos implementaciones tendran mascara, router e IP direccion en NET:CFG,
TCPIP.CFG.

Es una buena idea ver en toda la red y mirar cualquier archivo tipo .CFG,
.INI, .NIF

Para una busqueda hay que recordar algunas cosas:

- Archivos tipo INI CFG NIF.
- Si el terminal tiene una configuracion complicada, la direccion IP puede
  estar en varios sitios. Por ejemplo si utilizas una tarjeta con protocolos
  multiples, habran configuraciones diferentes incluyendo NET.CFG
- Si la direccion IP que estas intentando 'spoof' esta activa, es posible
  que no lo quieras utilizar. En redes grandes puede haber alguien
  monitorizando para detectar direcciones duplicadas. Netview es un ejemplo
  de programa que se utiliza para esto.
- Un compa€ia puede tener direcciones de clase 2, y puede tener docenas
  de subredes de clase 3. Si tu subnet es 100.100.100.x y tu router es
  100.100.100.254, intentar 'spoof' 100.100.200.10, probablemente no ira
  muy bien