En esta sección comenzaremos a enseñar algunos metodos de

Anuncio
Curso de Hacking Actualizado
En esta sección comenzaremos a enseñar algunos metodos de como hackear otras maquinas,
principalmente enseñaremos todo lo referente al underground.
Se conoce por UNDERGROUND todo lo relacionado con los temas "ilegales". Desgraciadamente
la informatica avanza a pasos desmezurados y no existen traducciones para los ultimos terminos
informaticos.
Mi concepto de hacker (pirata informatico, aunque esta definicion se aplica mas a los que hacen
copias ilegales de CDs) es aquel que intenta entrar en otras computadoras, pero lo hace para
aprender medidas de seguridad, y por merito personal. Mi concepcion del verdadero hacker no hay
cabida para el chantaje, la manipulacion, la revelacion de secretos, y el que lo es no anda diciendo
que es un hacker, por que si en verdad lo fuere no le conviene que lo sepan amigos, o compañeros
de trabajo ya que cualquier cosa que pasara en las maquinas, ¿a quien culparian?, los que andan
diciendo por ahi que son hackers no son otra cosa que pendejos que no saben usar otra cosa que
no sean troyanos.
Muchas veces me preguntan si hay hackers buenos en Argentina, hoy en dia hay algunos pocos,
pero no conviene darlos a conocer, pero mas o menos a mediados del 80 habia muy buenos
hackers, como por ejemplo "El Chacal", "Dr Trucho" entre otros, quienes empezaron a hackear
cuando no estaba internet sino BBS, "El Chacal" hoy tiene una empresa de seguridad informatica,
y es conocido como Daniel Santinelli, lo que pasa es que a nuestro pais nos llegan los adelantos
con retraso. Es por eso que hace mas o menos unos 5 años que ha llegado el boom del hacking en
nuestro pais. Para los informaticos es toda una revolucion y para los administradores de sistemas
una pesadilla. Lo que no puedes es esperar ir a la facultad para que te enseñen como hackear, por
que se trataria de una actividad "ilegal".
Nadie seria tan estupido de salir en "Cronica" diciendo "logre entrar al Banco Nacion sin que me
vieran el fin de semana pasado". Es por eso que no hay ningun hacker con fama internacional,
antes de que lo agarren, como a Kevin Mitchnick, pero eso es otra historia.
Bueno comenzamos con el curso.
No les dare sermones de las normas del buen hacker, ya que cuando yo quise aprender me tenian
las pelotas llenas de esas pelotudeces, "no dañes algo intencionalmente....", "no hackees nunca
por venganza...", hace lo que se te cante, siempre y cuando seas un poquito vivo, y tomes
precauciones de que no te rastreen, ni de dejar "huellas", sino vas a ir hasta las pelotas si llegas a
entrar a un sistema groso.
A esto no lo aprenderas en la escuela, pero para eso estoy haciendo esto, para que aprendas,
para que sepas como entrar a un sistema, donde buscar, como borrar las huellas para que no te
agarren.
Seran clases semanales, o quincenales según el tiempo que tenga y lo podras encontrar
en www.softdownload.com.ar.
Esta es la 1º entrega
Me he propuesto darle un enfoque practico, pero no voy a explicarles paso a paso como entrar a
un sistema, sino no se terminaria nunca, ya que hay miles de formas de entrar a un sistema, segun
el sistema operativo que tenga, los bugs (defectos del sistema), etc. Voy a ir tratando temas
enlazados unos con otros (no te pierdas ningun curso sino no entenderas el resto). En este arte,
como todo en la informatica, hay que ser ingenioso e inteligente, para poder afrontar los retos que
te impongan.
En esta entrega vamos a comentar las caracteristicas de los SO (muy, pero muy por arriba), y de
los ficheros passwd de un sistema. En el proximo daremos una explicacion de los comandos que
se usan habitualmente en un servidor FTP.
El sistema operativo
El sistema operativo mas potente para redes es Unix (nada de windows nt). Es un sistema tan
completo y complejo que no existen virus para él por que el usuario lo controla TODO. Existe el
Linux que es igual al Unix pero no es de "marca" y es gratuito, el sistema operativo de los hackers,
es por eso que hace mas o menos un año o dos todos los pendejos querian poner linux, pero lo
mas lindo que no sabian siquiera usar windows, y se dieron contra la pared cuando una vez que ya
estaba todo armado para poner Linux, se encontraron con varias versiones, Suse, Mandrake, Red
Hat, etc, mas adelante hablaremos un poco de linux, ya que si quieres entrar por ejemplo l banco,
no te sirve saber usar windows, sino UNIX.
Como el unix es lo mejor para llevar redes, e internet es una red a lo bestia, ¿adivinas que sistema
operativo usan por defecto?, obvio, Unix. En Unix los comandos son distintos a los de MS-DOS, así
dir es ls, copy es cp... Tambien es distinta la forma de la ruta de los directorios. Si en MS-DOS
escribimos \programas. en Unix seria /programas.
El unix, como se utiliza para redes, tiene que poder controlar a muchos usuarios. Esto incluye por
ejemplo que no todos puedan acceder a ciertos datos que no les pertenecen, y no todos puedan
tomar el mando del ordenador central.
El usuario que tiene acceso total a todos los recursos del servidor es el "root" (el superusuario), él
es quien da los permisos al rsto de los usuarios. Existen tambien unos usuarios que son los
Daemons, procesos "siempre" en marcha en un ordenador, por ejemplo, en un ordenador
conectado a internet unos Daemons serian el HTTP (paginas web), el FTP (servidor de ficheros),
etc. Como objetivo inicial, se necesita entrar en el servidor remotamente (haciendo telnet). El
proceso que realizaria el servidor seria este:
1º. Solicitar un login (nombre de usuario): en caso de que el nombre no sea el correcto, el sistema
no nos dara ningun error para evitar que la persona sepa que accesos se encuentran dados de alta
y cuales no.
2º.Solicitar un password (palabra clave o contraseña): si coincide con el que tiene asignado el
login, el sistema permitira el acceso.
Los usuarios que se encuentran dados de alta en el sistema, asi como los passwords que
emplean, se encuentran localizados en el fichero passwd. Puede haber usuarios que no necesiten
clave, como el usuario anonymous (anonimo) o gues (invitado), que suelen tener la misma palabra
como login y password. Les hago notar que en Unix no es lo mismo el usuario "Martin" que
"martin", ya que unix diferencia las mayusculas de las minusculas.
Si te estas preguntando de donde sacar el fichero y ¿cual es ese fichero? ¿esta al alcance de
cualquiera?, la respuesta es la siguiente. En Linux (lo usare para referirnos a sistemas compatibles
o parecidos a unix) el fichero se llama passwd. Esta en el directorio /etc. Y no siempre es
accesible.
El archivo passwd
Después de tantas referencias al fichero passwd les pongo una linea tipica del fichero:
root:WLjl03jXxEpYU:0:1:Operator:/:/bin:/sh
Ahora les explicare lo que significa cada uno de estos parámetros
1: root
Username (nombre de usuario): es el login que el usuario OPERATOR emplea para acceder al
sistema.
2: WLjl03jXxEpYU
Es la contraseña encriptada: dado su sistema de encriptación, el sistema operativo lo que hace es,
una vez que el usuario introduce el password, lo encripta y compara con el que se encuentra en
este fichero. En caso de que sean iguales, el password introducido es valido. La clave puede tener
como maximo 11 caracteres, pero la clave encriptada tiene 13, esto se debe a que los dos ultimos
caracteres son el llamado “grano de sal”. Unix encripta las contraseñas mediante un mecanismo
del kernel (éste es el núcleo del sistema), el crypt(3). Éste es un algoritmo basado en el Estandar
de encriptación de Datos (DES) desarrollado por el Instituto Nacional de Estandares de Tecnología
(NIST). El estandar DES transforma la información de texto llano en datos encriptados llamado
“texto cifrado” mediante el uso de un algoritmo especial y un valor semilla llamado “clave”.
En crypt(3) el texto llano se encripta en un grupo de ceros posteriormente el texto cifrado resultante
es encriptado de nuevo con el password del usuario como clave, ripitiendose este proceso 25
veces. Una vez finalizado los 64 bits se dividen en 11 caracteres y se guardan en el archivo
PASSWD o se guardan en SHADOWED. Para animar un poco mas la cosase utiliza lo que se
denomina en criptologia un “grano de sal”, dato de variabilidad, etc. Se trata de un valor de 12 bits
que utiliza para modificar el resultado de la funcion de DES, esto es un valor que puede variar de 0
a 4095. Así que para cada contraseña posible existen 4096 formas de encriptación y
almacenamiento.
Cuando utilizamos el programa /bin/passwd para introducir una nueva contraseña, dicho programa
utiliza un “grano de sal” basado en la hora del sistema la cual es utilizada para la funcion de calculo
de la contraseña encriptada. Esta sal es guardada junto a la contraseña en el archivo PASSWD (en
el caso de que no este shadow). Asi que los dos primeros caracteres de una contraseña son en
realidad el “grano de sal”, esto es:
WLjl03jXxEpYU
WL es el “grano de sal”. Cuando de nuevo entremos al sistema y nos pida nuestro password, el
programa encriptara la palabra que le demos utilizando ese mismo “grano de sal”, y posteriormente
comparara el resultado de esta encriptación con el password almacenado comprobando si
coninciden. Es decir en ningun momento se desencripta el password, lo que hace el sistema es
encriptar la palabra que le suministramos y compararla con el original.
Ahora te explicare como entenderas los símbolos que pueden aparecer en la clave pueden darse
distintos casos:
a) si el campo es un “*”, indica que la cuenta no se puede utilizar. Si todos los campos poseen el “*”
u otro signo (x, ¡, @,…) significa que las claves estan en un archivo shadow.
b) en caso de que no haya nada en ese campo, esta cuanta no posee ninguna contraseña de
acceso.
c) si detrás de la clave encriptada tiene una “,” esto indica la fecha en que expira el empleo de esta
contraseña, o el tiempo minimo de uso de esta.
¿fecha de expiracion? Si nada es eterno boludo. Por ejemplo
WLjl03jXxEpYU, 21AB
2:
Maximo numero de semanas que puede usar la misma clave
1: Cuantas semanas deben pasar antes de que la cuenta pueda cambiar de clave (para no
poder usar siempre la misma clave)
AB: Indica cuando se cambio por ultima vez la clave (estos dos caracteres pueden no aparecer).
Lo que indica es el numero de semanas desde el 1/1/1970
Otro ejemplo: ,21
Indica que la cuenta todavía no tiene clave, pero en cuento tenga una comenzara a contar la fecha
de expiracion.
Si el primer y segundo carácter son “..”, entonces el usuario tendra que cambiar la clave la proxima
vez que se conecte y el sistema anulara el metodo de fecha de expiracion para su clave. Si por el
contrario son el tercer y cuarto carácter los que tienen los “..”, entonces el usuario tendra que
cambiar la clave la proxima vez que se conecte pero el sistema le volvera a poner una fecha limite
a la clave.
Si el primer carácter es menor que el segundo, el usuario no puede cambiar la clave, solo el root
puede hacerlo.
Estos datos sobre la fecha de expiracion estan “codificados” (estan escritos en base-64) luego se
pueden “descodificar”.
Ni que decir si encuentran en este paramentro algo como “NO PASSWORD” o “DON’T YOU
HAVE ANYTHING BETTER TO DO” es que el root sabe mucho mas que ustedes.
Lo que ha ocurrido es que habes accedido al servidor como el usuario anonymous (anonimo) y has
accedido al fichero /home/ftp/etc/passwd. Aunque parezca que se trata de un fichero autentico, no
lo es.
Bueno seguire explicandoles que significan cada uno de los parámetros anteriores.
3:0
UID (numero de usuario de sistema): puede ser de 0 a 60000. por lo general, se empieza a partir
del 100. El UID con valor de 0 indica que la persona tiene nivel de root. Unix no identifica quien es
cada cosa por el nombre del usuario, sino por este campo.
4:1
GID (numero del grupo al que pertenece el usuario). Puede ser de 0 a 60000. El 0 tambien
corresponde con el grupo del root. Los usuarios del mismo grupo tienen el mismo nivel de
privilegios.
5: Operador
Account description (información respecto al usuario). Puede contener el nombre completo,
telefono, direccion, etc.
6: /
Home directory (directorio donde se ubica el usuario). Su directorio de trabajo. Para el root siempre
es “/” y para los usuarios puede ser “home/usuario”.
7: /bin/sh
Shell (interprete de comandos empleados por el ususario). Dependiendo del shell que emplee
podra realizar unas acciones determinadas. Esto es asi por que el tipo de shell limita los comandos
para ejecutar.
Bueno gente, hemos finalizado la primera clase de hacking, espero que empiezen a practicar y no
solo dedicarse a leer, por que para leer estan las bibliotecas.
En la proxima clase veremos:
-El fichero shadow
-Como buscar el fichero passwd y el shadow en un servidor ftp
Descargar