Archivo de la categoría ‘Cursos’

La Pantalla Negra IV

Sábado, 16 de Junio de 2001

#####################################
## HACKINDEX ##
## http://www.hackindex.org ##
#####################################
Titulo: La pantalla negra IV
Autor: Lokutus
Tema: Linux

La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.

El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: http://www.hackindex.org ; y se incluya este disclaimer en su totalidad y sin modificación alguna.

Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.
#####################################

Y una vez más entramos en nuestro sistema. Vamos a ver que tipos de ficheros tenemos.

Linux Debian (Potatoe)Login: genaro
password:
[genaro]$_

Vimos en un capítulo anterior, que con la órden “cat”, podemos ver el contenido de un fichero.

[genaro]$ cat fichero.txt
Esto es el contenido de mi fichero
[genaro]$ _

Pero vamos a cotillear otros ficheros, (si estas accediendo con un telnet no hagas la siguiente órden), por ejemplo, vamos a ver que tiene el fichero “less” por dentro.

[genaro]$ cat /usr/bin/less
dsfgvrtyv456v3ty 45 tg fgf f wf werv345v
v 4345v2345v45v3 (pitido)sdf df sdfsd(pitido)
df f wef wefwe(requetepitido) sdf sdf df sdfsdf
[cosas muy raras]$ _

Hemos visto aparecer en la pantalla una sucesión de símbolos raros, pitidos, e incluso, se nos ha desconfigurado la consola.

Si tecleamos algo, las letras han sido cambiadas por símbolos semigráficos.

Para dejar la consola como estaba, se usa la órden “reset”, también se restaura solo cada vez que se rearranca el ordenador, aunque de todas formas, cada vez es más raro que se desconfigure el terminal.

Vamos a entrar en otra sesión. Linux, puede disponer en su consola de varias sesiones virtuales, por defecto hasta siete, pulsando la combinación de teclas “Alt + F2″, vamos a la sesión 2, para volver pues “Alt + F1″, podemos combinar “Alt ” con las teclas F1 hasta F6. F7 normalmente está reservada para XWindow, y para conmutar de X Window a modo texto, es necesario pulsar además la tecla “Control”.

Linux Debian (Potatoe)Login: genaro
password:
[genaro]$ _

Cuando hemos volcado el fichero “less”, nos ha salido los símbolos raros, por que “less” no es un fichero para ser leido, no es un fichero de texto plano, y puede contener, y contiene carácteres que no son imprimibles en la salida estandar.

Para saber que tipo de fichero es un fichero determinado, tenemos la órden “file”.

[genaro]$ file /usr/doc/FAQ/txt/Linux-FAQ
/usr/doc/FAQ/txt/Linux-FAQ: English Text
[genaro]$ file /usr/doc/FAQ/html/Linux-FAQ-1.html
/usr/doc/FAQ/html/Linux-FAQ-1.html:HTML document text
[genaro]$ file /usr/bin/less
/usr/bin/less: ELF 32-bit LSB executable, Intel 80386, version 1,dynamically linked (uses shared libs), stripped
[genaro] _

Del primer documento nos dice que es de texto, o sea, se puede volcar con “cat”, del segundo, que es html, también se puede volcar, aunque veremos el fuente en HTML, y no como lo veríamos con un navegador como el Linx. Y del tercero, nos dice que es un programa. Con este programa, podemos ver los otros dos ficheros.

El comando file, reconoce entre muchos tipos de ficheros, gif, jpeg, midi, y incluso ejecutables de otros sistemas operativos, y no se deja engañar por la extensión del fichero.

Los ficheros, además de crearlos con un editor de textos, se pueden copiar, mover, y borrar.

[genaro]$ cp /usr/bin/less .
[genaro]$ ls -l less
-rwxr-xr-x 1 genaro users 81236 Mar 21 22:54 less
[genaro]$ _

Con la órden anterior, “cp”, hemos copiado el fichero less a nuestro directorio de trabajo, y como esta copia es nuestra, el propietario del fichero es “genaro”, y el grupo propietario es “users”. Con el puntito, hemos indicado el directorio al que queremos copiar el fichero, puesto que “cp” no permite omitir el segundo parámetro y que se tome el directorio actual como destino.

Vamos a observar por un momento el programa “less” original.

[genaro]$ ls -l /usr/bin/less
-rwxr-xr-x 1 root root 81236 Aug 28 1999 /usr/bin/less

El tamaño es el mismo, pero pertenece al usuario “root”, o sea, el superusuario, y su grupo propietario es “root”, la fecha de creación también a cambiado.

Si observamos los permisos del fichero,

-rwxr-xr-x

El propietario del fichero, o sea, root, es el único que puede escribir en less (rwx), el grupo propietario sólo puede leer y ejecutar como programa (r-x), y nosotros, los demás usuarios, igual, (r-x).

El primer carácter, indica tipo de fichero:

“-” Fichero ordinario, como programas, mpeg, mp3, txt, …
“d” Directorio, se accede a el con “cd”, “ls”, etc.
“c” Fichero de control de dispositivo en modo caracter.
“b” Fichero de control de dispositivo en modo bloque.
“s” Socket de tipo Unix.
“l” Enlace simbólico.

Si observamos nuestro fichero, tiene los mismos permisos, “-rwxr-xr-x”, pero como nosotros somos el propietario del fichero, podemos escribir en el, e incluso podemos borrarlo si queremos.

TIP: el usuario “root”, también puede acceder y escribir en nuestros ficheros aunque quitemos los permisos.

[genaro]$ mkdir OtroDir
[genaro]$ cd OtroDir
[OtroDir]$ _

Creamos una carpeta nueva, y entramos en ella. Vamos a mover el fichero “less”

[OtroDir]$ mv ../less .
[OtroDir]$ ls -l
-rwxr-xr-x 1 genaro users 81236 Mar 21 22:54 less
[OtroDir]$ _

Si queremos borrarlo, usamos la órden rm

[OtroDir]$ rm less
[OtroDir]$ _

Nuestra copia de “less” ya no existe. Un poco de teoría:

¿Sabéis lo que es un inode?.

Supongamos que tenemos una partición vacía de cualquier sistema operativo tipo Unix, SCO, BSD, ext2fs …

En esa partición vacía, hay una o más zonas, en la que no podremos guardar nuestros datos, pues son para uso administrativo del sistema operativo, esa zona, se divide en partes o “cachitos”, llamados inodes, normalmente no suelen tener más de 100 octetos, aunque pueden ser de mayor tama$ntilde;o, dependiendo del sistema de ficheros.

Cuando creamos un fichero vacio, el sistema operativo, rellena de datos un inode, ¿y qué datos son esos?, el nombre del fichero, en qué sectores del disco duro están, su tamaño o longitud, la fecha de última modificación, etc.

Cuando escribimos datos en el fichero, el inode se actualiza, para reflejar los cambios.

Y ahora pregunto, ¿Qué impide que un fichero tenga dos inodes?, nada. El hecho de que un fichero tenga dos inodes, implica, el que está al mismo tiempo en dos sitios con dos nombres diferentes, o en un mismo directorio con dos nombres distintos.

Eso se llama hacer un enlace.

[genaro]$ ln /usr/bin/less ./paginador
[genaro]$ ls -l paginador
-rwxr-xr-x 2 root root 81236 Aug 28 1999 paginador
[genaro]$ ls -l /usr/bin/less
-rwxr-xr-x 2 root root 81236 Aug 28 1999 /usr/bin/less
[genaro]$ _

Fijaros en dos detalles, despues de los permisos, “-rwxr-xr-x” hay un número 2, donde antes había un “1″. Eso quiere decir, que ese número, es el número de inodes que tiene ese fichero. antes tenía un inode, y ahora uno.

¿Cual es el segundo detalle?, que el fichero “paginador” sigue perteneciendo a “root”, si no fuese así, sería un fallo de seguridad, pues para acceder a cualquier fichero, bastaría con hacer un enlace y podremos modificarlo a nuestro antojo.

Cuando usamos la orden rm para borrar un fichero, lo que hace es eliminar un inode, pero los demas inodes siguen existiendo, el fichero, bloque de datos del fichero, sólo se borra cuando no quedan más inodes.

Tick: repito, cuidado con “>”. Ver capítulo III

Es posible que al intentar hacer el enlace, aparezca un mensaje como el siguiente:

ln: no se puede crear un enlace duro de `./less’ a `/usr/bin/less’: Enlace cruzado entre dispositivos no permitido.

Eso es debido a que se está intentando hacer un enlace a un sistema de ficheros diferente. Por ejemplo:

[genaro]$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda7 606405 188388 386692 33% /
/dev/hda1 23300 2655 19442 12% /boot
/dev/hda9 1756260 820291 845204 49% /home
/dev/hda8 1554262 655666 818273 44% /usr
/dev/hda6 85520 16686 64418 21% /var
[genaro]$ _

Con la orden “df” vemos que particiones tenemos en el disco duro, nosotros estamos en el directorio “/home/genaro”, que está en la partición /dev/hda9 y la órden “less” está en el directorio “/usr/bin” que está en la partición /dev/hda8

A este tipo de enlace se le llama enlace duro. También se pueden hacer enlaces duros, aunque muchos unices no lo permiten, y en muchos sistemas operativos, sólo está permitido a “root” y está fuertemente desaconsejado, eso es debido a que muchas aplicaciones como las utilidades de backup, y todas aquellas que exploren el disco duro para hacer o buscar algo, podrían entrar en un bucle infinito, y terminarían fallando.

Otro tipo de enlaces, son los enlaces simbólicos, estos enlaces son de alguna forma similares a los accesos directos de Windows, o mejor dicho, los accesos directos de Windows son como los enlaces simbólicos de Unix.

Si haceis analizado alguna vez un acceso directo de Windows, en realidad es un fichero PIF, o sea, un fichero que contiene el nombre de otro fichero.

Los enlaces simbólicos son un fichero con el nombre de otro fichero, y tratado de forma especial por el sistema operativo para que lo trate como si fuera el fichero al que apunta.

Para crear un enlace simbólico

[genaro]$ ln -s /usr/bin/less ./pag-simbolico
[genaro]$ ls -l pag-simbolico
lrwxrwxrwx 1 genaro users 13 Mar 22 00:24 pag-simbolico->/usr/bin/less
[genaro]$ _

Observe como el fichero tiene ahora la letra “l” como primer caracter, la “l” indica enlace simbólico.

Por último nos queda por ver los dispositivos controladores. Están todos en el directorio /dev

Existen dos tipos, de caracter y de bloque. Los dispositivos de bloque, tienen soporte de buffer y se accede mediante grandes bloques de datos al mismo tiempo, un ejemplo, son las particiones del disco duro, y el propio disco duro.

/dev/hda Primer disco duro IDE
/dev/hda1 Primera partición del primer disco duro
/dev/sdb Segundo disco SCSI

Si volcaramos con la órden cat un fichero a uno de estos ficheros, escribiríamos directamente a estos ficheros, y por lo tanto, machacaríamos algo, como la tabla de particiones, o el superbloque de una partición linux, o el arranque de un Windows. Por ese motivo, sólo “root” o programas con permisos de root, puede acceder a estos ficheros.

Los ficheros de caracter, como su nombre indica, se accede a ellos caracter a caracter.

/dev/modem por ejemplo, suele ser un enlace simbólico a un dispositivo de caracter

[genaro]$ ls -l /dev/modem
lrwxrwxrwx 1 root root 10 Dec 22 01:05 /dev/modem ->/dev/ttyS1
[genaro]$ ls -l /dev/ttyS1
crw——- 1 root tty 4, 65 Mar 21 22:11 /dev/ttyS1
[genaro]$_

Los programas que acceden al modem, lo hacen como si fuera un fichero convencional, (para los que conozcan el lenguaje “C” fopen(), fread(), fwrite(), fclose(), fprintf(), etc.).

[genaro]$ tty
/dev/tty2
[genaro]$_

La órden anterior, “tty”, nos dice cual es el controlador de dispositivo de nuestra sesión. /dev/tty

Si el usuario “root” estuviera conectado mediante un telnet, podría hacer una gamberrada tal y como

[root] # echo “Tonto el que lo lea” > /dev/tty2

Y en mi pantalla aparecería ese mensaje.

Tick: En las academias, donde todo el mundo consigue por ingeniería social el password de root, es muy posible que cuando la gente se aburre, no se pueda trabajar debido a que todo el mundo envíe mensajitos usando este método.

También es común gamberradas más gordas volcando ficheros de todo tipo.

Como ejercicio de la semana, os propongo a los que tengais tarjeta de sonido y micrófono, que grabeis un fichero de sonido desde el micrófono.

cat /dev/audio > grabación.raw

Y posteriormente lo envieis a los altavoces

cat /grabacion.raw > /dev/audio

No me acuerdo como se cortaba la grabación, ¿control + “c”?

  • Share/Bookmark

La Pantalla Negra III

Sábado, 16 de Junio de 2001

#####################################
## HACKINDEX ##
## http://www.hackindex.org ##
#####################################
Titulo: La pantalla negra III
Autor: Lokutus
Tema: Linux

La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.

El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: http://www.hackindex.org ; y se incluya este disclaimer en su totalidad y sin modificación alguna.

Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.
#####################################

Y esta semana, con un poco de retraso, Mario bross, no, no vamos a jugar,vamos a tratar los pipes, o tuberías, y los filtros.

Linux Debian (Potatoe)
Login: genaro
password:
[genaro]$ _

Para empezar, necesitamos crear algunos ficheros con datos, para ello podemos utizar un editor de textos, hay varios, el "joe", el "vi", el "jed", y el "emacs" son cuatro de los más populares, el único del que hay garantia de que se puede encontrar en cualquier Unix es el vi, pero es un poco complejo de utilizar, así que vamos a crear un fichero a pelo.

[genaro]$ echo hola
hola
[genaro]$ _

La órden echo, envía a "salida estandar" un mensaje, ¿Y qué eso de salida estandar? Veamos, cualquier aplicación de Unix/Linux, e incluso las aplicaciones de DOS, tienen tres ficheros abiertos, que utilizan para poder funcionar.

El primer fichero es de sólo lectura y se llama "entrada estandar", representa normalmente al teclado, los programas leen a traves de este fichero todo lo que escribimos. Normalmente se conoce a este fichero como stdin.

El segundo fichero es de sólo escritura, y se llama "salida estandar", y representa la salida de nuestro programa, cuando un programa quiere escribir algo en la pantalla, lo que hace es escribir en este fichero.

El tercer fichero, se llama "error estandar", es también de sólo escritura, es similar al anterior, y se usa para imprimir mensajes de error.

He dicho, que la salida estandar representa la pantalla y la entrada estandar, representa el teclado, pero eso no tiene por que ser siempre así. Podemos cambiar la salida estandar de un programa con el operador ">"

[genaro]$ echo hola > fichero.txt
[genaro]$ _

No hemos visto la salida de echo por la pantalla, la salida ha sido redirigida al fichero "fichero.txt".

[genaro] ls
fichero.txt
[genaro] _

Si queremos ver el contenido de ese fichero usamos la orden "cat"

[genaro] cat fichero.txt
hola
[genaro] _

¿Y como podemos añadir más líneas al fichero?, vamos a intentarlo.

[genaro]$ echo linea2 > fichero.txt ; cat fichero.txt
linea2
[genaro]$ _

Recordemos que se pueden meter dos órdenes en una sóla línea si las separamos con un punto y coma.

¿Qué ha pasado?, se ha machacado el archivo y contiene lo último que hemos escrito. Para que no se sobreescriba utilizamos el símbolo ">>".

[genaro]$ echo linea1 > fichero.txt
[genaro]$ echo linea2 >> fichero.txt
[genaro]$ echo linea3 >> fichero.txt
[genaro]$ cat fichero.txt
linea1
linea2
linea3
[genaro]$ _

Cualquier cosa que envíe cosas a pantalla usando la salida estandar puede ser redirigido, por ejemplo la órden "ls", o incluso la orden "cat".

[genaro]$ cat fichero1.txt >> fichero2.txt
[genaro]$ ls
fichero1.txt fichero2.txt
[genaro]$ _

En este caso como fichero2.txt no existía, lo crea nuevo, y en este caso hemos copiado el fichero, ambos tienen el mismo contenido.

TIP 1: Cuidado con el operador ">", puede machacar documentos, pues siempre los crea nuevos.

¿Qué utilidades podemos encontrar redirigiendo la salida estandar?, veamos:

[genaro]$ ls -l /usr/bin

Salen un montón de ficheros y no dá tiempo a verlos.

[genaro]$ ls -l /usr/bin > fichero3.txt
[genaro]$ _

TIP 2: En lugar de teclear de nuevo "ls -l /usr/bin" podemos recuperar las órdenes anteriores con las flechas de cursor y editarlas a nuestra conveniencia. En este caso con pulsar la flecha arriba una vez, aparece "ls -l /usr/bin" y sólo tenemos que añadir " > fichero3.txt

Si usamos la órden cat, para visualizar fichero3.txt, estamos en las mismas, no nos da tiempo a ver nada, usaremos mejor la órden "more"

[genaro]$ more fichero3.txt

muchas lineas

–more–(12%)

Vemos como en esta ocasión. cuando se acaba la pantalla, la salida se para, si pulsamos el retorno de carro, avanzamos una línea, si pulsamos la barra espaciadora, avanzamos una página entera. Salimos del paginador "more" cuando se acaba el documento a visualizar, o bién cuando pulsamos la tecla "q". En linux hay otro paginador mejor que "more", se llama "less", permite avanzar y retroceder por el texto usando las tecla del cursor.

Vamos a probarlo un poco.

[genaro]$ cd /usr/doc/FAQ
[FAQ]$ _

¿Os acordais de los famosos FAQ y los HowTo de Linux de los que muchos hablan, pues están aqui, en este directorio, …

[FAQ]$ ls -l
drwxr-xr-x 5 root root 1024 Dec 22 01:46 ./
drwxr-xr-x 198 root root 5120 Dec 22 01:46 ../
drwxr-xr-x 2 root root 2084 Dec 22 01:46 html/
drwxr-xr-x 2 root root 1024 Dec 22 01:46 ps/
drwxr-xr-x 2 root root 1024 Dec 22 01:46 txt/
[FAQ]$ _

Vemos que hay un directorio para html, (hará falta un navegador web, como el lynx), otro para documentos que están en postscript y otro para ficheros ASCII planos. Un fichero ASCII plano, es un fichero de texto, que no tiene formato, como los que hemos creado hace poco.

[FAQ]$ cd txt
[txt] less Linux-FAQ

Para volver a nuestro directorio, usamos

[txt] cd $HOME
[genaro] _

HOME es una variable de entorno que contiene nuestro directorio de trabajo, se verán en otro capitulo.

Hasta ahora, hemos visto que podemos guardar la salida estandar de un programa en un fichero, y luego, ver cómodamente esa salida estandar con un paginador, como puede ser "less". Pero eso es un poco incómodo, pues podemos llenar el disco duro de ficheros innecesarios, ¿como podemos evitarnos ese paso? Con ayuda de una "tubería", ya era hora que comenzara a hablar de lo que trata este capítulo. Para utilizar una tubería, se utiliza el operador pipe y es este "|", la barra vertical que se consigue pulsando tecla "1" con la tecla "AltGr"

[genaro]$ ls -l /etc/bin | less

Ya podemos ver tranquilamente en la pantalla qué ficheros tenemos en el directorio /etc/bin Para hacerlo más divertido, con la órden tree, podemos obtener un listado de los directorios existentes a partir de un directorio en forma de árbol.

[genaro]$ tree -d /usr | less

Si lo usamos con la opción -a, muestra todo, incluidos los ficheros. Existen otros filtros que se pueden usar con una tubería, uno de los más conocidos es el filtro "sort", que ordena alfabéticamente la entrada estandar. Cuando redireccionamos la "salida estandar" a un fichero, si se produce un error en el programa, el mensaje de error no se imprime en el fichero, si no que se vuelca a la pantalla. Esto es debido a que los mensajes de error se imprimen usando "error estandar", "stderr". Para redireccionar el error estandar.

[genaro]$ cc programa.c -o programa 2>errores.txt

La órden cc, sirve para compilar programas que están escritos en lenguaje "C" y "C++", en el ejemplo, los errores de compilación se enviarán al fichero "errores.txt". Y por último …

[genaro]$ exit

Linux Debian (Potatoe)
Login: genaro
password:
[genaro]$ _

Hoy hemos visto:

  • - Crear ficheros con contenido.
  • - Ver ficheros.
  • - Concepto de entrada estandar, salida estandar y error estandar,
  • - Redireccionamiento de salida estandar y error estandar.
  • - Tuberías.
  • La próxima semana, o sea dentro de pocos días, me extenderé en el tema de los ficheros.

    Lokutus, asimilando la red.

    • Share/Bookmark

    Curso práctico de hacking (CPH) II

    Sábado, 16 de Junio de 2001

    #####################################
    ## HACKINDEX ##
    ## http://www.hackindex.org ##
    #####################################
    Titulo: Curso práctico de hacking II
    Autor: Lecter
    Tema: Acceso a las cosas remotas

    La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.

    El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: http://www.hackindex.org ; y se incluya este disclaimer en su totalidad y sin modificación alguna.

    Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.
    #####################################

    CURSO PRACTICO DE HACKING–2a entrega

    Queridos compañeros (exploradores y novatos con ganas de aprender):

    Como os  prometi aqui teneis el  segundo capitulo del  CPH, que espero
    que  pueda serviros  a abrir  la  brecha del  estudio autodidacta  con
    algunos  consejillos y  notas.  Antes de  comenzar  con este  capitulo
    quiero recalcar que el objetivo de este “seminario” de hacking intenta
    ilustrar los modos de conseguir introducirnos en una maquina unix cuya
    seguridad ha sido comprometida,  generalmente por una mala gestion del
    administrador,  que muchas  veces pasa  olimpicamente del  sistema que
    debe cuidar  como Cancerbero.  En ningun caso  he querido  arrastrar a
    nadie  al empleo de  este conocimiento  para oscuros  propositos, sino
    para impulsar  a los estudiantes novatos  a llevar los  sistemas a sus
    ultimas  posibilidades  y  no  como  meros  usuarios  finales.Asi  que
    =A1abstenerse los lamers!

    En este sentido, ha salido este  mes en la revista @rroba un excelente
    articulo de  Carlos Sanchez Almeida  titulado “Hackers de  plastico” y
    aunque corto  merece la pena que lo  leais. Al igual que  a finales de
    los setenta se  acuñaba el termino “punkies de  plastico” para señalar
    que debajo de la mascarada de tachuelas y cuero, aquellos punkies eran
    tan burgueses como sus papis, los hackers de plastico son aquellos que
    se  han erigido  como arquetipo  de la  revolucion moderna:  el hacker
    televisivo, cruce de Neo y el  padre Apeles. Pero ya sabeis: con lo de
    hacker  ocurre  lo   mismo  que  con  quienes  se   dicen  rosacruz  o
    sufi…Ciertamente no lo son. Un  hacker de verdad “jamas se colocaria
    un piercing para aparentar: lo  unico que agujerean es el sistema”. El
    hacking es un camino duro y dificil, “que implica muchas renuncias. La
    primera y  la mas  importante es la  que diferencia  verdaderamente al
    hacker del lamer: la renuncia al ego…”

    Y  ahora vamos  con nuestro  asunto. Antes  de entrar  de lleno  en el
    capitulo 2 quiero aclarar algo  a los estudiantes del primer capitulo:
    Las  utilidades whois, traceroute,  host, ping  y nslookup  las debeis
    tener  en cualquier  sistema linux  que  monteis. Las  podeis usar  en
    consola  o en un  xterm. Algunas  como traceroute  hay que  usarlas en
    ciertas distros linux como root, pero en otras no. Evidentemente antes
    habreis de conectaros ;-) y si  sois novatillos el paquete kppp de KDE
    se parece  muchisimo al procedimiento  de conexion telefonica  a redes
    del Windoze. Una  vez conectados podeis abrir xterms  en el escritorio
    KDE o pasaros  con Alt-Ctrl-Fx a una consola  (Volvereis al escritorio
    con  Alt-Ctrl-F7).  Otras  utilidades   teneis  que  buscarlas  en  la
    red.  Para ello  basta con  www.altavista.com y  www.alltheweb.com que
    contiene un buscador FAST FTP y  WEB y una dosis minima de ingenio. De
    todos modos os dire donde podeis descargar las herramientas:

    -fping en www.stanford.edu/~schemers/docs/fping/fping.html
    -nmap en www.insecure.org/nmap/
    -netcat en www.l0pht.com/~weld/netcat/
    -queso en ftp.connect.net/pub/security/trinux/netmap/

    Espero que continueis en la brecha

    Saludos,

    LECTER

    CPH. CAPITULO 2. EXTRACCION DE INFORMACION CRITICA DEL OBJETIVO

    En este  capitulo nos vamos a  centrar en la  obtencion de informacion
    critica  que  luego  podra  ser  explotada para  introducirnos  en  el
    sistema. La informacion critica se basa siempre en algun compromiso en
    la  seguridad  de  un  servicio,  un  bug  (fallo)  de  algun  comando
    relacionado con los servicios, etc. Para este capitulo me he basado en
    un   libro  muy   util   que  acaba   de   salir  al   mercado:Hacking
    exposed;network  security secrets  and solutions,  de  Stuart McClure,
    George Kutz y otro mas (ya esta en español).

    1)Informacion  critica obtenida  mediante “transferencia  de  zona” de
    servidores DNS  mal configurados.   Algunas veces nos  encontramos con
    servidores  DNS   configurados  de   manera  insegura  y   que  pueden
    permitirnos entrar  en la  llamada zona de  transferencia de  DNS, aun
    siendo  usuarios  de   internet  no  autorizados.  Podemos  intentarlo
    utilizando la instruccion nslookup en modo interactivo:

    $>nslookup

    =2E..a continuacion aparecera el servidor  DNS por defecto que sera el
    de  nuestro ISP  u organizacion…pero  como queremos  consultar otro,
    X.X.X.X  (uno que corresponda  a nuestro  objetivo, como  obtuvimos al
    hacer whois transmeta.com) escribiremos

    >server X.X.X.X

    a lo que respondera aceptandolo como “default”. A continuacion hacemos

    >set type=3Dany
    >ls -d objetivo.net.>> fichero

    Lo  que hemos hecho  es definir  el tipo  de registro  como cualquiera
    (any)   con    lo   que   podemos   recuperar    los   registros   DNS
    disponibles.  Luego  los  listamos  y  redirigimos  a  “fichero”  para
    consultarlo mas adelante.  Si ha habido suertecilla, cosa que dudo, al
    leer “fichero”, encontrariais  diversas entradas con varios registros,
    p.ej:

    acct22   1D IN A       192.168.230.3
             1D IN HINFO   “Gateway 2000″ “Win WKGRPS”
             1D IN MX      0 acmeadmin-smtp
             ………………………………….

    El registro A indica la  direccion IP de esta cuenta, HINFO identifica
    la plataforma o  el sistema operativo y MX nos  dice donde se gestiona
    el correo.  Existen mas  registros, pero no  los voy a  comentar. Esta
    informacion es  muy valiosa  porque nos da  de golpe  conocimiento del
    sistema operativo y gestor de correo (aparte de mucho mas). Existe una
    utilidad algo  dificililla de encontrar  buscando a las bravas  por la
    red, que nos permite realizar transferencias de zona (cuando se puede)
    y transferir  de manera  recursiva informacion de  la zona  y archivos
    huespedes de cada uno de  los dominios consultados. Tal herramienta es
    “axfr”         que        la        podeis         encontrar        en
    ftp=2Econnectnet.com/pub/security/trinux/netmap/axfr-0.5.2.tar.gz. Una
    vez instalado, hacemos como root

    #>axfr objetivo.net
    y saldran algunos mensajes
    axfr: Using default directory /root/axfrdb
    Found X.X.X.X name server for domain ‘objetivo.net’
    text deleted
    Received xxxx answers

    Ya esta. Para consultar la base de datos basta con que hagais

    #>axfrcat objetivo.net

    Pero como ya he dicho, no sera tan tordo el administrador de dejar mal
    configurado el servidor DNS.

    2. =BFProtege algun cortafuegos nuestro objetivo?

    Vamos unicamente  a comprobar si existe algun  cortafuegos que proteja
    nuestro  objetivo.  La  manera   de  saltarse  el  cortafuegos  ya  la
    consideraremos  en   las  tecnicas  de  ataque,   pues  ahora  estamos
    extrayendo  informacion  critica  solamente.  Recordando  la  utilidad
    nmap, podemos  usarla para descubrir cortafuegos.  Cuando nmap explora
    un host, no solamente dice si los puertos estan abiertos, sino tambien
    si estan “filtrados”. Un puerto filtrado  en nmap indica que o bien no
    se  recibio ningun  paquete SYN/ACK  o RST/ACK  o bien  se  recibio un
    mensaje  ICMP  de destino  inalcanzable  con  codigo 13  (Cominicacion
    prohibida por  el administrador).  Otra utilidad interesante  es hping
    (www.kyuzz.org/antirez). Una vez instalada, hacemos como root

    #>hping objetivo.com -S -p (n=BA de puerto)

    De este modo se envian paquetes  TCP SYN al puerto destino y obtenemos
    informacion de los  paquetes que regresan. Si el  flag de respuesta es
    SA (SYN/ACK) quiere  decir que el puerto destino  esta abierto y listo
    para  recibir  conexion.  A   veces  nos  sale  como  respuesta  “ICMP
    unreachable type 13 from X.X.X.X” lo  que nos indica que X.X.X.X es el
    cortafuegos del objetivo.  No obstante si el resultado  de hping no da
    respuesta alguna puede ser que o bien el paquete se haya perdido en la
    red o  que el cortafuegos lo  detenga. Si obtenemos  una respuesta con
    flag  RA (RST/ACK)  puede ser  que  el cortafuegos  haya rechazado  el
    paquete o  puede que lo  haya dejado pasar  por el puerto pero  que el
    host objetivo no  esta escuchando. Vamos a intentar  ilustrarlo con un
    ejemplo.  Mi host  objetivo es  la pagina  web del  Centro Informatico
    Cientifico de  Andalucia, www.cica.es. Voy  antes que nada a  hacer un
    traceroute

    $>traceroute www.cica.es
    Â
     1  SEVI-X13.red.retevision.es (62.81.56.45)  134.694 ms  139.73 ms  139.866 ms
     2  SEVI-R3.red.retevision.es (62.81.56.27)  139.931 ms  120.489 ms SEVI-R1.red.retevision.es (62.81.56.28)  129.317 ms
     3  SEVI-R15.red.retevision.es (62.81.55.229)  139.938 ms  129.841 ms  119.956 ms
     4  BARC-R16.red.retevision.es (62.81.125.3)  170.034 ms  149.872 ms  149=2E948 ms
     5  ReteNAC.red.retevision.es (62.81.63.202)  139.926 ms  169.764 ms  159=2E934 ms
     6  EspaNIX.red.retevision.es (62.81.8.146)  179.967 ms  179.872 ms  169.909 ms
     7  ibernet.espanix.net (193.149.1.57)  170.042 ms  159.813 ms  149.953 ms
     8  194.179.0.113 (194.179.0.113)  179.942 ms  159.778 ms  159.919 ms
     9  A0-2-4.EB-Madrid00.red.rediris.es (130.206.224.77)  159.959 ms  199.853 ms  169.892 ms
    10  A1-0-1.EB-Sevilla1.red.rediris.es (130.206.224.10)  189.936 ms  189.926 ms  179.875 ms
    11  130.206.194.10 (130.206.194.10)  179.931 ms  169.96 ms  169.856 ms
    12  argantonio.cica.es (150.214.5.77)  189.97 ms *  180.02 ms

     Muy  bien,   el  host  130.206.194.10  parece  ser   un  enrutador  o
    cortafuegos que dirige  el trafico a argantonio.cica.es (www.cica.es).
    Ahora voy a utilizar la  herramienta nmap para hacer una evaluacion de
    la  topologia  de  una  subred.  Voy  a  escanear  por  el  puerto  80
    silenciosamente todas las  maquinas de la subred C  a la que pertenece
    www.cica.es:

    #>nmap -sS -p80 www.cica.es

    # Nmap (V. nmap) scan initiated 2.53 as: nmap -sS -p80 -o cica www.cica.es/24
    The 1 scanned port on  (150.214.5.0) is: closed
    The 1 scanned port on  (150.214.5.1) is: closed
    Interesting ports on www.ceseand.cica.es (150.214.5.2):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on scsasnt.sas.cica.es (150.214.5.3):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on prometeo.cica.es (150.214.5.4):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on cdaea.cica.es (150.214.5.6):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on caf.cica.es (150.214.5.7):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on microbio.cica.es (150.214.5.8):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on www.csalud.junta-andalucia.es (150.214.5.9):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on thales.cica.es (150.214.5.10):
    Port       State       Service
    80/tcp     open        http                   

    The 1 scanned port on mileto.cica.es (150.214.5.11) is: closed
    Interesting ports on www.tresculturas.org (150.214.5.12):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on cdma.cica.es (150.214.5.13):
    Port       State       Service
    80/tcp     open        http                   

    Host   (150.214.5.31) seems to be a subnet broadcast address (returned 1 extra pings).  Still scanning it due to positive ping response from its own IP.
    The 1 scanned port on  (150.214.5.31) is: closed
    Host   (150.214.5.48) seems to be a subnet broadcast address (returned 1 extra pings).  Skipping host.
    The 1 scanned port on osni.cica.es (150.214.5.49) is: closed
    The 1 scanned port on io.cica.es (150.214.5.50) is: closed
    The 1 scanned port on iat-gw.cica.es (150.214.5.51) is: closed
    Host   (150.214.5.55) seems to be a subnet broadcast address (returned 1 extra pings).  Still scanning it due to positive ping response from its own IP.
    The 1 scanned port on  (150.214.5.55) is: closed
    Host   (150.214.5.64) seems to be a subnet broadcast address (returned 1 extra pings).  Skipping host.
    The 1 scanned port on  (150.214.5.65) is: closed
    The 1 scanned port on winbdd.cica.es (150.214.5.66) is: closed
    The 1 scanned port on mercurio.cica.es (150.214.5.67) is: closed
    The 1 scanned port on winbdd2.cica.es (150.214.5.68) is: closed
    Interesting ports on orgiva.cica.es (150.214.5.69):
    Port       State       Service
    80/tcp     open        http                   

    The 1 scanned port on cache.cica.es (150.214.5.70) is: closed
    The 1 scanned port on ntp.cica.es (150.214.5.71) is: closed
    Interesting ports on patro.cica.es (150.214.5.72):
    Port       State       Service
    80/tcp     open        http                   

    The 1 scanned port on horacio.cica.es (150.214.5.73) is: closed
    Interesting ports on argantonio.cica.es (150.214.5.77):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on ligustino.cica.es (150.214.5.78):
    Port       State       Service
    80/tcp     open        http                   

    Interesting ports on listas.cica.es (150.214.5.79):
    Port       State       Service
    80/tcp     open        http                   

    The 1 scanned port on idefix.cica.es (150.214.5.85) is: closed
    The 1 scanned port on lejia-s.cica.es (150.214.5.126) is: closed
    Host   (150.214.5.127) seems to be a subnet broadcast address (returned 1 extra pings).  Still scanning it due to positive ping response from its own IP.
    The 1 scanned port on  (150.214.5.127) is: closed
    # Nmap run completed at Mon Aug  7 00:56:51 2000 — 256 IP addresses (33 hosts up) scanned in 31 seconds

    Bueno, bueno…ahora si hago un traceroute a cada uno de los hosts que
    han  sido  escaneados,  obtengo  que  en  todos  los  casos,  el  host
    130.206.194.10 les apunta,  con lo cual podemos asegurar  que se trata
    de un router/firewall frontera.
    Â
    Voy a escanear www.cica.es con nmap pero a todos los puertos:

    # Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0  www.cica.es
    Interesting ports on argantonio.cica.es (150.214.5.77):
    (The 1508 ports scanned but not shown below are in state: closed)
    Port       State       Service
    21/tcp     open        ftp                   Â
    22/tcp     open        ssh                   Â
    23/tcp     open        telnet                Â
    80/tcp     open        http                  Â
    119/tcp    filtered    nntp                  Â
    123/tcp    filtered    ntp                   Â
    389/tcp    open        ldap                  Â
    390/tcp    open        uis                   Â
    443/tcp    open        https                 Â
    512/tcp    open        exec                  Â
    513/tcp    open        login                 Â
    514/tcp    open        shell                 Â
    515/tcp    open        printer               Â
    3128/tcp   open        squid-http            Â
    8888/tcp   open        sun-answerbook         

    TCP Sequence Prediction: Class=3Drandom positive increments
                             Difficulty=3D88217 (Worthy challenge)

    Sequence numbers: C71B5D1D C71EA319 C7205F3B C721CEFD C72706F0 C729B3AC
    Remote OS guesses: Solaris 2.6 – 2.7, Solaris 7
    OS Fingerprint:
    TSeq(Class=3DRI%gcd=3D1%SI=3D15899)
    T1(Resp=3DY%DF=3DY%W=3D2297%ACK=3DS++%Flags=3DAS%Ops=3DNNTNWME)
    T2(Resp=3DN)
    T3(Resp=3DN)
    T4(Resp=3DY%DF=3DY%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)
    T5(Resp=3DY%DF=3DY%W=3D0%ACK=3DS++%Flags=3DAR%Ops=3D)
    T6(Resp=3DY%DF=3DY%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)
    T7(Resp=3DY%DF=3DY%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)
    PU(Resp=3DY%DF=3DY%TOS=3D0%IPLEN=3D70%RIPTL=3D148%RID=3DE%RIPCK=3DE%UCK=3DE%ULEN=3D134%DAT=3DE)
    # Nmap run completed at Sun Aug  6 20:02:23 2000 — 1 IP address (1 host up) scanned in 34 seconds

    Se  trata de un  Solaris 2.6-2.7  que tiene  filtrados los  puertos de
    usenet (119)  y network time protocol  (123). Luego a no  ser que este
    mismo  host  utilice un  filtro  de  paquetes,  sospecharemos que  son
    filtrados por  las reglas  del firewall/router que  le precedia  en la
    secuencia de traceroute.

    Si barremos ahora los puertos del supuesto firewall:

    Â
    # Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0 -o cica 130.206.194.10
    Interesting ports on  (130.206.194.10):
    (The 1517 ports scanned but not shown below are in state: closed)
    Port       State       Service
    79/tcp     open        finger                Â
    119/tcp    filtered    nntp                  Â
    123/tcp    filtered    ntp                   Â
    1998/tcp   open        x25-svc-port          Â
    2001/tcp   open        dc                    Â
    6001/tcp   open        X11:1                  

    TCP Sequence Prediction: Class=3Drandom positive increments
                             Difficulty=3D38400 (Worthy challenge)

    Sequence numbers: 2395ACF2 23A031DB 23AB5C89 23B4BE60 23BF584E 23C98A6A
    Remote OS guesses: AS5200, Cisco 2501/5260/5300 terminal server IOS 11.3.6(T1), Cisco IOS 11.3 – 12.0(9)
    OS Fingerprint:
    TSeq(Class=3DRI%gcd=3D1%SI=3D9600)
    T1(Resp=3DY%DF=3DN%W=3D1020%ACK=3DS++%Flags=3DAS%Ops=3DM)
    T2(Resp=3DY%DF=3DN%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)
    T3(Resp=3DY%DF=3DN%W=3D1020%ACK=3DS++%Flags=3DAS%Ops=3DM)
    T4(Resp=3DY%DF=3DN%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)
    T5(Resp=3DY%DF=3DN%W=3D0%ACK=3DS++%Flags=3DAR%Ops=3D)
    T6(Resp=3DY%DF=3DN%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)
    T7(Resp=3DY%DF=3DN%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)
    PU(Resp=3DN)
    # Nmap run completed at Sun Aug  6 19:40:12 2000 — 1 IP address (1 host up) scanned in 26 seconds

    Vemos  que se  trata efectivamente  de  un Cisco  Terminal Router  IOS
    11.3-12.0 y que filtra tambien esos dos puertos.
                                                                      Â
    Si hacemos un fping a www.cica.es

    #>hping www.cica.es -S -p 80
    ppp0 default routing interface selected (according to /proc)
    HPING www.cica.es (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes
    44 bytes from 150.214.5.77: flags=3DSA seq=3D0 ttl=3D243 id=3D4427 win=3D9112 rtt=3D188.4 ms
    44 bytes from 150.214.5.77: flags=3DSA seq=3D1 ttl=3D243 id=3D4428 win=3D9112 rtt=3D200.2 ms
    44 bytes from 150.214.5.77: flags=3DSA seq=3D2 ttl=3D243 id=3D4429 win=3D9112 rtt=3D210.2 ms
    44 bytes from 150.214.5.77: flags=3DSA seq=3D3 ttl=3D243 id=3D4430 win=3D9112 rtt=3D200.2 ms
    44 bytes from 150.214.5.77: flags=3DSA seq=3D4 ttl=3D243 id=3D4431 win=3D9112 rtt=3D190.2 ms
    44 bytes from 150.214.5.77: flags=3DSA seq=3D5 ttl=3D243 id=3D4432 win=3D9112 rtt=3D210.1 ms

    Paramos con Ctrl-C

    www.cica.es hping statistic —
    6 packets tramitted, 6 packets received, 0% packet loss
    round-trip min/avg/max =3D 188.4/199.9/210.2 ms
                                                          Â
    y  observamos  que   el  flag=3DSA  indica  que  el   puerto  80  esta
    efectivamente abierto. Pero si hacemos hping al puerto 119

    #>hping www.cica.es -S -p 119
    ppp0 default routing interface selected (according to /proc)
    HPING www.cica.es (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes

    www.cica.es hping statistic —
    13 packets tramitted, 0 packets received, 100% packet loss
    round-trip min/avg/max =3D 0.0/0.0/0.0 ms         

    Efectivamente, esta vez no  tenemos ninguna respuesta y debemos pensar
    que el cortafuegos/o enrutador (Cisco ultimate server) la detuvo. =BFO
    tal vez  el propio  host tenia filtro  de paquetes?. Si  utilizamos de
    nuevo nmap y escaneamos toda la subred en los puertos 119 y123:

    #>nmap -sS -p119,123 www.cica.es/24

    obtenemos en  todos los  casos que los  hosts tienen esos  dos puertos
    filtrados: Mucha casualidad va a  ser que cada host utilice un sistema
    de filtrado  en dichos puertos  :) . Lo mas  aplastante es que  el host
    130.206.194.10  disponga unas  rglas  de firewall  que filtren  dichos
    puertos a todos los hosts a los que apunta.

    De las  cuestiones acerca de los  tipos de cortafuegos  y las tecnicas
    para traspasarlos nos dedicaremos  en el capitulo destinado al ataque,
    como ya dije antes.

    La  exploracion de  los puertos  de un  cortafuegos es  util,  pero la
    mayoria no  escuchan en puertos predeterminados.  La identificacion de
    algunos  cortafuegos  puede hacerse  si  tenemos  suerte  de modo  muy
    sencillo  leyendo ciertos  mensajes  de identificacion  que muchos  de
    ellos presentan. Con la  utilidad netcat podemos conectarnos al puerto
    21 del posible cortafuegos

    #>nc -v -n 192.168.51.129 21
    (UNKNOWN) [192.168.51.129] 21 (?) open
    220 Secure Gateway FTP server ready

    #>nc -v -n 192.168.51.129 23
    (UNKNOWN) [192.168.51.129] 23 (?) open
    Eagle Secure Gateway
    Hostname:
    3. Exportacion de archivos NFS

    El Network File  System (NFS) es un sistema de  red que posibilita que
    un  host  servidor proporcione  sistemas  de  archivos y  dispositivos
    perifericos a  maquinas clientes. Si  el amigo administrador no  es un
    lumbrera o  pasa cantidad, puede  que no haya configurado  el servidor
    NFS adecuadamente…y  cualquier usuario remoto puede  tener acceso de
    lectura y escritura. Si mediante una exploracion previa se observa que
    el puerto 2049 (servidor nfs) de un host esta abierto, con la utilidad
    showmount -e podemos conseguir la  lista de exportacion de un servidor
    NFS. Si hacemos como root

    #>showmount -e objetivo.net
    y nos sale algo como
    RPC: Port mapper failure – RPC: Unable to receive
    pues nada, no ha habido suerte

    pero si nos saliera

    #>showmount -e objetivo2.net
    export list for objetivo2.net
    /pub         (everyone)
    /home        (everyone)

    ya  podiamos establecer una  via de  entrada con  ayuda de  los rlogin
    :) (ya lo veremos en el hacking).

    4. Listado de usuarios y grupos

    Parece  mentira,  pero  algunos  administradores emplean  la  utilidad
    finger  con m=EDnimas  medidas de  seguridad…y esto  permite obtener
    bastante  informacion  en muchos  casos  para  ingenieria social,  que
    aunque yo no  lo considero como una tecnica pura  de hacking, te puede
    resolver  el  problema  :) .   Supongamos  que el  host  objetivo  esta
    ejecutando el servicio fingerd (puerto 79). Si hacemos como root

    #>finger -l @host.objetivo
    [host.objetivo]
    login:root                         name:root
    Directory:/root                    Shell:/bin/bash
    On since Sun Mar 20: 10:15(PST) on tty1. 11 minutes idle
    (message off)
    On since Sun Mar 20: 10:15(PST) on ttyp0 from :0.0. 3 minute 15 seconds idle
    No mail
    Plan:
    Luke Skywalker
    Linux Guru
    Telnet password is Lord … (my father)

    Peaso de info (pero, como las peliculas de los intocables, el parecido
    con la realidad es pura coincidencia) La informacion proporcionada por
    finger en principio deberia ser  inocua porque la extrae de los campos
    de  /etc/passwd. Lo  mas  peligroso es  que  indica el  nombre de  los
    usuarios conectados y sus  tiempos de inactividad. Moreover, cualquier
    usuario  que  tenga un  archivo  .plan  o  .project en  su  directorio
    particular, la presentara al  hacer finger un merodeador. Los comandos
    rwho y rusers muestran los usuarios conectados al host remoto, pero no
    dan  tanta informacion como  finger. Es  posible mediante  el servicio
    smtp  localizar  usuarios  con  los  mandatos  vrfy  (confirmacion  de
    usuarios validos)  y expn (direcciones  reales de entrega de  correo y
    alias):

    $>telnet 192.168.202.34 25
    =2E…………………….
    220 mail.bigcorp.com ESMTP Sendmail 8.8.7
    vrfy root
    250 root <root@bigcorp.com>
    expn adm
    250 adm <adm@bigcorp.com>

    5. Aplicaciones RPC

    Remote  Procedure  Call (RPC)tiene  que  ver  con interacciones  entre
    procesos=2E  El  concepto  de  RPC  es  una  sencilla  t=E9cnica  para
    desarrollar  aplicaciones donde  se requiere  la  comunicaci=F3n entre
    procesadores que cooperan en un sistema distribuido.

    El  mecanismo  RPC proporciona  un  servicio  para  el programador  de
    apliciones  que le  permite el  uso transparente  de un  servidor para
    proporcionar  alguna actividad  por  parte de  la aplicaci=F3n.   Esto
    efectivamente  puede ser  utilizado para  interactuar con  un servidor
    computacional o  con una Base  de Datos, y  ha sido usado  por algunos
    sistemas para  proporcionar acceso a servicios  del sistema operativo.
    El ultimo  uso conocido es  en sistemas basados  en micro-ordenadores,
    que  da   un  mejor  resultado  que  en   los  sistemas  tradicionales
    encontrados en  la mayoria de sistemas  unix.  La orden  rpcinfo es el
    equivalente a finger en la enumeracion de aplicaciones RPC que estan a
    la escucha en hosts remotos en los puertos 111 (rpcbind) o 32771 (Sun)
    Supongamos  que nuestro  objetivo o  una  maquina de  su subred  tiene
    activo el puerto 111. Si hacemos

    #>rpcinfo -p objetivo.net
    y obtenemos:

    program   vers     proto     port
    100000             2         tcp   111  rpcbind
    100002             3         udp   712  rusersd
    100011             2         udp   754  rquotad
    100005             1         udp   635  mountd
    100003             2         udp  2049  nfs
    100004             2         tcp   778  ypserv

    Esta informacion  (me salto lo  que ahora puede ser  superfluo) indica
    que se  estan ejecutando rusersd, nfs  e ypserv que es  el servidor de
    NIS.  NIS (Network  Information System)  es un  protocolo de  nivel de
    aplicacion   muy    util   para   la    gestion   de   configuraciones
    cliente/servidor en  sistemas unix.  Es un sistema  de bases  de datos
    distribuidas que  permiten de manera  uniforme el almacenamiento  y la
    recuperacion de los recursos de red. Como explica Daemond, en lugar de
    gestionar  archivos   como  el  /etc/hosts,   /etc/passwd,  /etc/group
    independientemente  en  cada  maquina  de  la red,  esto  permite  que
    solamente haya  una base de datos  compartida (mapas) por  el resto de
    las maquinas clientes en un servidor central. Esto tiene su aquel para
    el hacking de sistemas usando ypcat, pero ya lo veremos.

    Existen muchos  mas modos de extraer informacion,  por ejemplo leyendo
    el  codigo de las  paginas web,  estableciendo posibles  relaciones de
    confianza  (trusted  hosts  con  rlogin),  ingenieria  social,  quinta
    columna… pero creo que no esta mal para comenzar.

    Aqui termina la segunda entrega.

    En  la  proxima   nos  centraremos  en  las  tecnicas   de  hacking  e
    introduccion de sistemas mediante fallos de seguridad, desbordamientos
    del bufer de  ciertos programas, ataques por fuerza  bruta, etc. Queda
    todavia  un largo  camino y  luego hay  tecnicas  avanzadas (tunneling
    firewalls, hijacking, IP spoofing…)

    Tened cuidado ahi fuera ;-) .

    LECTER

    • Share/Bookmark