Mensaje de Punisher: Este curso lo he pillado de internetes. Lo ire publicando poco a poco ya que es bastante extenso. He decidido la publicacion de este curso por el monton de cartas de lectores que no tienen acceso a la red y desean aprender sobre este tema. Los que tengais internet me mandais un emilio y yo os enviare la URL. Ya sabeis, yo no me hago responsable de bla, bla, bla, bla... A HACKEAR!!!
 

INTRODUCCION AL HACKING v2.0

POR DAEMON 25-01-1998
Daemond@usa.net
Dillet@usa.net
 

Antes que nada, he de decir que el contenido de este texto esta solamente destinado a usos educacionales, de investigacion y/o de desarrollo. En ningun  momento el creador de este texto se hace responsable de los da¤os causados debido a un mal uso de el mismo.

Bien, en este texto se recopilan los aspectos basicos del hacking para toda la  gente que esta empezando. El objetivo es una estructuracion de la informacion para asi no tener que leer mil textos que te repiten los mismos conceptos una y  otra vez. Espero que este texto sea de utilidad a todo el que este empezando en estos temas asi como puede dar algunas ideas a los que tengan un nivel medio.

Tambien es verdad que en este texto se cuentan algunos metodos de hacking  aunque muchas veces se dejan cosas en el tintero que seran explicadas en otros textos... }-)

Tambien, aunque no se diga constantemente a lo largo del texto, la mayoria de las ideas aqui indicadas son para sistemas UNIX y derivados por lo que si os enfrentais a otras cosas como el Moco$oft NT dudo que os sirva alguna de las ideas aqui expuestas. Igualmente, para conseguir un acceso si nos encontramos ante un firewall la mayoria de las tecnicas aqui explicadas  tampoco funcionaran por lo que habra que exprimirse un poco mas el tarro :(

Por cierto, no pongo acentos para evitar las tipicas putadillas :)

Como siempre digo, sugerencias, dudas y preguntas.. e incluso criticas a mi mail.

    Dillet@usa.net
    Daemond@usa.net

Me gustaria que me maileaseis ( leo todos los mails que recibo) para decirme si algun apartado del texto no queda lo suficientemente claro ya que me gustaria que este texto sirviese para todo el mundo e ir actualizando para posteriores revisiones. Para tecnicas de hacking mas avanzadas que las que aqui se exponen, ya escribire textos aparte de este, ya que esto es una introduccion y no cuenta tecnicas avanzadas. Tambien me podeis mailear para pedirme posteriores ediciones de este texto o de otros textos de parecidas caracteristicas :)

Igualmente, supongo que en un texto tan grande habra fallos por lo que cualquier ayuda para corregirlos es bienvenida ;o)
 

Asi, la ESTRUCTURA DEL TEXTO sera:
 

0.- Glosario

1.- Buscando maquina objetivo y algunas cosas sobre unix orientado al hacking

2.- Introduccion a distintos sistemas

3.- Como conseguir una cuenta

4.- Como obtener cuentas
    4.1.- Cuentas por defecto
    4.2.- Ingenieria social
    4.3.- Conseguir fichero passwd con algun bug
    4.4.- Conseguir directamente una cuenta con un bug
    4.5.- PHF
    4.6.- Xploits que te dan directamente una shell
    4.7.- Otros metodos (FTP, Spoofing, etc)

5.- Salir de shell restringida

6.- Crackear password de maquinas UNIX
    6.1.- Introduccion y algoritmo de cifrado.
    6.2.- Conseguir el fichero de passwd estando dentro de la maquina
        6.2.1.- Introduccion
        6.2.2.- Password shadowing
        6.2.3.- NIS
    6.3.- Distintos metodos para bajaros el fichero de passwd una vez lo tienes bajo control
    6.4.- Como se crackean
    6.5.- Que crackeador de password usar.

7.- Obtener acceso de root
    7.1.- Fuerza bruta
    7.2.- Exploits
    7.3.- Troyanos

8.- Hackear con condon.

9.- Borrar huellas.

10.- Preservar el acceso y poner sniffers

11.- Legalidad

12.- Despedida
 

0. GLOSARIO
 

En este glosario, lo primero que se ha de definir es la palabra HACKER ya que esto es lo que nos va a llevar todo este texto.

Un hacker es una persona con un conocimiento importante de sistemas operativos, redes, protocolos, lenguajes de programacion, etc. con lo que se podria resumir tener un dominio de la seguridad en redes. Asi, opino que un hacker no es un chaval que le pasan algunos logins y passwords y que se dedica a entrar a la maquina y ejecutar exploits que ni sabe ni lo que hacen ni le importa, sino que simplemente sabe que le dan categoria de rOOt. Para mi esto se puede hacer durante una temporada para aprender pero siempre como una etapa para llegar mas adelante a fines mas interesantes :)

Resumiendo, un HACKER deberia ser una persona con amplios conocimientos y que sabe en todo momento perfectamente lo que hace y que entra en sistemas por diversion y no para destrozar sistemas o cosas parecidas. Aunque para otros como el famoso Marcus J. Ranum compara los hackers con "vandals", pero en fin, hay opiniones para todos los gustos :o(

En fin despues de este rollo filosofico que opino que es necesario en un texto de introduccion a estos temas, paso a comentaros un breve glosario para introducirse en la jerga de este mundillo.
 

Este glosario esta por orden alfabetico:
 

ADMINISTRADOR, sysop, root :Esla persona que se encarga del sistema. Se suele denominar rOOt y es la persona que tiene el poder absoluto sobre la maquina. Tiene un UID=0.

AGUJERO, bug, hole : Es und efecto en el software o hardware que como su nombre indica deja agujeros para los hackers y que gracias a dios existen muchos ya que si no esto seria de locos jeje

AIX: Sistema operativo de IBM

BUGS y EXPLOITS: Los bugs son fallos en el software o en el hardware y que usan los hackers para entrar en sistemas y un exploit es un programa que aprovecha el agujero dejado por el bug. Ver AGUJERO.

BOMBA LOGICA: Codigo que ejecuta una particular manera de ataque cuando una determinada condicion se produce. Por ejemplo una bomba logica puede formatear el disco duro un dia determinado, pero a diferencia de un virus.. la bomba logica no se replica.

BACKDOOR :Puerta trasera. Mecanismo que tiene o que se debe crear en un software para acceder de manera indebida (jeje)

BBS (Bulletin Board System): Es una maquina a la que se accede a traves de la linea telefonica y donde se dejan mensajes y software. La putada es que si la bbs no esta en tu ciudad.. timofonica se hace millonaria a tu costa. :o(

BOXING: Uso de aparatos electronicos o electricos (Boxes) para hacer phreaking. Esto no es hacking sino phreaking... hay blue box, red box, etc.

BOUNCER: Tecnica que consiste en usar una maquina de puente y que consigue que telneteando al puerto xxxx de la maquina "bouncerada" te redireccione la salida a un puerto determinado de otra maquina. Esta tecnica es muy usada en el irc redireccionando a los puertos destinados a los servidores de irc por anonimicidad y otros temas que no vienen al caso.

CABALLOS DE TROYA :Programa que se queda residente en un sistema y que ha sido desarrollado para obtener algun tipo de informacion. Por ejemplo seria un caballo de troya un programa que al ejecutarlo envie el fichero de /etc/passwd a una determinada IP (Casualmente la nuestra ;o)

CORTAFUEGOS: Ver firewall

COPS: Programa de seguridad.

CERT (Computer Emergency Response Team): Bien, como su nombre indica es una gente que se dedica de trabajar en seguridad pero que en su esfuerzo por informar de bugs nuevos, casi nos ayudan mas a nosotros que a ellos :o>

CLOACKER: Programa que borra los logs (huellas) en un sistema. Tambien llamados zappers.

CRACKER : Esta palabra tiene dos acepciones, por un lado se denomina CRACKER a un HACKER que entra a un sistema con fines malvados aunque normalmente la palabra CRACKER se usa para denominara a la gente que desprotege programas, los modifica para obtener determinados privilegios, etc.

CRACKEADOR DE PASSWORDS:Programa utilizado para sacar los password encriptados de los archivos de passwords. Esto se desarrollara mas adelante en este texto.

DAEMON: Proceso en background en los sistemas Unix, es decir un proceso que esta ejecutandose en segundo plano.

EXPLOIT Metodo concreto de usar un bug para entrar en un sistema.

FIREWALL, cortafuego: Sistema avanzado de seguridad que impide a personas no acreditadas el acceso al sistema mediante el filtrado de los paquetes dependiendo de la IP de origen, en otras palabras, una putada :o(. En la actualidad esta considerado como uno de los medios de seguridad mas fiables y hay poca documentacion al respecto de como hackearlos.

FUERZA BRUTA (hackear por...) Es el procedimiento que usan tanto los crackeadores de password de UNIX como los de NT (o por lo menos los que yo conozco) que se basan en aprovechar diccionarios para comparar con los passwords del sistema para obtenerlos. Esto se desarrolla mas adelante en este texto.

FAKE MAIL: Enviar correo falseando el remitente. Es muy util en ingenieria social.

GRAN HERMANO: Cuando la gente se refiere al Gran Hermano, se refiere a todo organismo legal de lucha contra el mundo underground.

GUSANO: Termino famoso a partir de Robert Morris, Jr.Gusanos son programas que se reproducen ellos mismos copiandose una y otra vez de sistema a sistema y que usa recursos de los sistemas atacados.

HACKING :Amplia definicion al principio del glosario.

HACKER :Amplia definicion al principio del glosario.

HOLE: Ver bug.

HP/UX: Sistema operativo de HP.

INGENIERIA SOCIAL :Obtencion de informacion por medios ajenos a la informatica. Sobre esto nos extenderemos mas adelante en este texto.

IRIX: Sistema operativo.

ISP (Internet Services Provider): Proveedor de servicios internet.

KEY: Llave. Se puede traducir por clave de acceso a un software o sistema.

KERBEROS: Sistema de seguridad en el que los login y los passwords van encriptados.

KEVIN MITNICK: Es el hacker por excelencia!!!. Sus haza¤as se pueden encontrar en mil sitios en la red.

LAMER: Un lamer es una persona que no tiene ninguna inquietud por todos estos temas de la seguridad sino que lo unico que quiere es tener un login y un pass para entrar a un sistema y formatear el disco duro, o para decirle a un amigo que es un superhacker.. o el tipico que te llega en el IRC y te dice.. he suspendido un examen y quiero entrar al ordenador de mi escuela para cambiar las notas. Esto os prometo que me ha pasado mas de una vez :o( Importante es distinguir lamer de newbie o novato. Un novato o newbie es una persona que SI que tiene interes en estos temas pero que logicamente necesita un tiempo de aprendizaje ya que nadie ha nacido aprendico.

LINUX: Sistema operativo de la familia UNIX y que es muy adecuado para tenerlo en la maquina de casa ya que no requiere demasiados recursos. Este sistema operativo lo debes tener en tu casa si quieres hacer algo en el mundo del hacking aunque ya se comentara mas adelante.

LOGIN : Para entrar en un sistema por telnet se necesita siempre un login (nombre) y un password (clave).

MAQUINA: En este texto, habitualmente se utilizara el termino maquina para referirse al ordenador. Mejor no entrar en filosofias :->

MAIL BOMBER: Es una tecnica de puteo que consiste en el envio masivo de mails a una direccion (para lo que hay programas destinados al efecto) con la consiguiente problematica asociada para la victima. Solo aconsejo su uso en situaciones criticas.

NUKEAR: Consiste en joder a gente debido a bugs del sistema operativo o de los protocolos. Esto se da habitualmente en el IRC y considero que es una perdida de tiempo... pero hay mucha gente que su cabecita no da para mas y se entretiene con estas pijadas. ¨Sera porque no son capaces de enfrentarse a cosas mas serias??  :->

PASSWORD :Contrase¤a asociada a un login. Tambien se llama asi al famoso fichero de UNIX /etc/passwd que contiene los passwords del sistema que se comentaran mas adelante en este texto.

PHREAKING: Consiste en evitar total o parcialmente el pago a las grandes multinacionales. Este concepto se usa basicamente para referirse al pago del telefono ya que tal y como esta Timofonica apetece. En general, es complicado conseguirlo en Espa¤a, pero hay que intentarlo. :->>

PIRATA:Persona dedicada a la copia y distribucion de software ilegal, tando software comercial crackeado, como shareware registrado, etc...No hay que confundir en absoluto este termino con el de hacker ya que tal como se ve en las definiciones no tiene nada que ver.

PPP: Point-to-point protocol... RFC 1661.

PASSWORD CRACKER: Ver CRACKEADOR DE PASSWORD.

PGP: Pretty Good Privacy. Necesario cuando os paseis mails "calentitos". Es un programa de encriptacion de llave publica.

PHRACK: zine sobre hack muy famosa.

PUERTO-PORT: Se define mas adelante en este texto.

PORT SCANNER: Programa que te indica que puertos de una maquina estan abiertos. Mas adelante en este texto se explican estos conceptos mas detenidamente.

ROOT,administrador, sysop: Persona que tiene control total sobre el sistema y cuyo UID es 0.

ROUTER: Maquina de la red que se encarga de encauzar el flujo de paquetes.

SNIFFER: Es un programa que monitoriza los paquetes de datos que circulan por una red. Mas claramente, todo lo que circula por la red va en 'paquetes de datos' que el sniffer chequea en busca de informacion referente unas cadenas prefijadas por el que ha instalado el programa.

SHELL: Este concepto puede dar lugar a confusion ya que una shell en un sistema unix es un programa que interactua entre el kernel y el usuario mientras que en nuestros ambientes significa el conjunto de login y password.... es decir que si alguien dice que cambia shells ya sabeis a lo que se refiere no? :)

SUNOS: Sistema operativo de Sun.

SOLARIS: Sistema operativo de Sun.

SYSOP: Ver rOOt.

TCP/IP: Arquitectura de red con un conjunto de protocolos. Es la que se suele usar en Internet.. para mas info sobre el tema cualquier libro de TCP IP es valido..

TONELOC: Posiblemente el mejor war dealer (como la cerveza) jeje

TRACEAR :Seguir la pista a traves de la red a una informacion o de una persona.

UDP: Protocolo de comunicacion que a diferencia del TCP no es orientado a conexion.

UNIX: Familia de sistemas operativos que engloba a SunOS, Solaris, irix, etc..

VMS: Sistema operativo.

VIRUS: Es un programa que se reproduce a si mismo y que muy posiblemente ataca a otros programas. Crea copias de si mismo y suele da¤ar o joder datos, cambiarlos o disminuir la capacidad de tu sistema disminuyendo la memoria util o el espacio libre.

WAR DIALER: Estos son programas (tambien se podria hacer a mano, pero es muy pesado) que realizan llamadas telefonicas en busca de modems. Sirve para buscar maquinas sin hacerlo a traves de internet. Estas maquinas suelen ser muy interesantes ya que no reciben tantos ataques y a veces hay suerte y no estan tan cerradas. ;o)

WORM: Ver gusano.

WINDOWS : Sistema operativo?? ;-) .. tambien llamado ventanukos.

ZAP: Zap es un programa que se usa para borrar las huellas en un sistema. Debido a lo famoso que se ha hecho muchos programas que desarrollan estas funciones se les llama zappers aunque precisamente este no es el mejor ;o)

ZINE: Revista electronica

Nota: En este texto se va a dar unix por sabido y solo se comentaran los aspectos del unix relacionados con el hacking.
 
 

1.- BUSCANDO LA MAQUINA OBJETIVO Y ALGO SOBRE UNIX ORIENTADO AL HACKING.
 

Lo primero que se ha de hacer, como es logico es determinar la maquina objetivo. Esta decision se puede hacer en base a distintos criterios como pueda ser que es una maquina especialmente interesante para ti o que es una maquina que sabes o te han dicho que el rOOt no es un lumbreras. Bien, sea como fuere, suponemos que se ha determinado la maquina objetivo.

Tras esto, se ha de recopilar la mayor informacion sobre esa maquina. Lo mejor es empezar haciendo un escaneo de puertos a la maquina, esto consiste en ir haciendo telnet's a todos los puertos de la maquina ( normales 1-6000) para ver que programas contestan en cada puerto y su version, o si el puerto esta cerrado. Por ejemplo: con un telnet normal (puerto 23) determinaremos el sistema operativo, con un telnet 79 (finger) para obtener informacion, entrar por el netstat (puerto 15 ) si lo tiene abierto (poco usual), mirar si tiene pagina web y que demonio de http usa (puerto 80), mirar la version del sendmail (puerto 25), ver si esta el systat abierto, ver si tiene ftp anonimo en el 21, ver si ofrece nfs o nis, etc. Para esto se necesita un escaneador de puertos de los que hay muchisimos en la red ( strobe, portscan, nmap, etc.)

Ademas, en caso de que quieras hackear victima1.microsoft.com, en caso de que veas que no puedes hacer nada en esta maquina victima1, te puedes plantear hackear otra del dominio microsoft.com, ya que si consigues root y colocas un sniffer en victima2.microsoft.com ( o quiza con un poco de suerte con el hosts.equiv o el .rhosts) seguramente podras conseguir cuentas en victima1.microsoft.com. Posiblemente, esto no lo entiendas ahora, pero tras leer todo el texto y tener un poco mas claro lo que es un sniffer, como pillar root y demas, posiblemente le encontraras mas sentido a este parrafo :o)

Nota para los que vayan un poco verdes en Unix:

El fichero hosts.equiv es un fichero que hay en los sistemas unix que indica que maquinas pueden ejecutar comandos remotos en esta maquina sin pedir ni login ni password, es decir, indica las maquinas que son confiables.

Igualmente, el fichero .rhosts es un fichero que hay en el HOME de cada usuario que indica las maquinas a las que permite ejecutar un comando remoto sin pedir password.

Ademas, os recuerdo que con el comando host puedes obtener una lista de maquinas pertenecientes a un dominio dado y que el comando traceroute muchas vecespuede ayudar ( recuerdo que el traceroute muestra el recorrido que hacen los paquetes hasta llegar a la maquina destino).

Para todos aquellos que no tienen muy claro lo que son los puertos, TCP, UDP, IP y demas cosas similares pueden ver el TCP IP Illustrated tomo 1 de Stevens o el famoso NETWORKING with TCPIP que ademas creo que tiene el primer tomo traducido al castellano.

A continuacion se listan los mas interesantes en principio para las aplicaciones que nos interesan (en los puertos que no ponga nada, se refieren a tcp y los que se refieran a udp se indicara):
 
 

Numero de puerto Servicio Lo que hace
9 discard Dev/null--Basura
11 systat Informacion sobre los usuarios
13 La hora y fecha de maquina remota
15 netstat Mucha informacion sobre la red.
17/tcp qotd Quote of the Day
19 chargen Generador de caracteres
21 ftp Transferencia de ficheros
22/tcp ssh SSH Remote Login Protocol
23 telnet Login y pass
25 smpt Para crear email.
37 time La hora.
38/tcp rap Route Access Protocol
39 rlp Localizacion del recurso
42/tcp
43 whois Informacion sobre la red objetivo
49/tcp tacacs LoginHostProtocol(TACACS)
50/tcp re-mail-ck Remote Mail Checking Protocol
53 domain Nombre de la maquina remota.
63/tcp whois++ whois++
69/tcp tftp TrivialFileTransfer
70 gopher Buscador de informacion con bugs ;o)
79 finger Mucha informacion sobre los usuarios
80 http ServidorWeb
88/tcp kerberos Kerberos
107 rtelnet Telnet remoto
109/tcp pop2 PostOfficeProtocol-Version2
110 pop3 Email entrante Version3
111/tcp sunrpc SUN Remote Procedure Call
113/tcp auth Authentication Service
115/tcp sftp Simple File Transfer Protocol
117/tcp uucp-path UUCP Path Service
119 nntp Grupos de noticias Usenet
133/tcp statsrv Statistics Service
136/tcp profile PROFILE Naming System
137/tcp netbios-ns NETBIOS Name Service
137/udp netbios-ns NETBIOS Name Service
138/tcp netbios-dgm NETBIOS Datagram Service
138/udp netbios-dgm NETBIOS Datagram Service
139/tcp netbios-ssn NETBIOS Session Service
139/udp netbios-ssn NETBIOS Session Service
143/tcp imap InternetMessageAccessProtocol (xploit remoto jeje)
144/tcp news NewS
161/tcp snmp SNMP
194/tcp irc InternetRelayChatProtocol
213/tcp ipx IPX
220/tcp imap3 InteractiveMailAccessProtocolv3
443 shttp Otro servidor web teoricamente seguro
512/udp biff Indica a los usuarios que han recibido mail
513/tcp who who remoto y da info sobre la carga de la maquina
514/tcp shell Shell remota
515/tcp syslog
520 printer spooler
529/tcp irc-serv IRC-SERV

Puedes obtener muchas listas de puertos en Internet por lo que os he puesto una lista resumida aunque en realidad con la practica te sueles remitir a un numero mas reducido de puertos pero eso que lo vea cada uno kon la experiencia.

Tras saber que conocimientos se deben adquirir, ahora os comento los programas que se deben tener para poder hacer cositas.

Bien, lo primero que comentaria es que es mas comodo hackear con unix/linux que con el ventanukos ya que aunque es mas complejo, ofrece muchas mas posibilidades ya que el mismo sistema operativo te ofrece algunas ventajas que no ofrece el windows. No voy a entrar a comentar estas diferencias pero si usas unix, basicamente solo has de pillarte un escaneador de puertos y poco mas. Se ha de recordar que lleva incorporado el compilador de c, perl, la mayoria de los programas de seguridad (satan, cops, iss...) estan disponibles para unix asi como los programas para hackear, y muchas mas kosas que ya iremos descubriendo como el tiempo. Ademas unix te permite comandos interesantes como el host, rpcinfo, los comandos remotos, etc.

Ademas, tal y como se ha comentado o comentara a lo largo del texto, la informacion y estar actualizado en bugs y exploits es una de las cosas mas importantes en este mundillo por lo que un consejo es que habitualmente ojeeis las paginas de hack para pillar los ultimos bugs y xploits asi como las listas de correo habilitadas para el respecto (bugtraq, firewall ,etc). Tened en cuenta que la eficacia de un xploit es inversamente proporcional al tiempo que hace que salio asi que no espereis entrar en muchas maquinas con bugs de los años 80, entendeis la idea no?.