Hacking


Capítulo 4

Entrar en un sistema y "enrootarse"

En esta unidad aprenderas:
Cómo recoger información del sistema al que queremos entrar 
Técnicas para entrar sin tener una cuenta en el sistema 
Cómo conseguir root dentro del sistema 
Qué hacer una vez se es root en el sistema 
Cómo asegurar el futuro acceso al sistema una vez se es root

Si estás aquí se supone que sabés:

Lo que es en realidad el hacking

Para qué sirve el hacking

Cómo se comporta un hacker

Qué es LINUX

Iniciarse en el entorno LINUX/UNIX

Entender el entorno multiusuario UNIX

Otros ejercicios prácticos para LINUX

Mucho sobre sistemas UNIX

Clasificación de sistemas UNIX

Características de los diferentes sistemas UNIX


Bien, estamos ante la lección clave de este curso. Para entenderla, es esencial que hayas leido las lecciones anteriores, especialmente la 1 y la 2.


Entrar en un sistema:
Esta es la acción principal y primordial para hackear.

La acción de entrar en un sistema se puede dividir en dos fases :

Recopilacion de informacion

Incursión en el sistema:

o bien

A través de una cuenta shell

A través de otros métodos

Pero también tenemos que saber que la entrada en un sistema puede ser, según el nivel de privilegio:

Directamente como root

Como usuario normal

como usuario anónimo (pero esta última queda descartada ya que como usuario anónimo no podemos hacer prácticamente nada.)

Así pues, antes de entrar en un sistema (aunque ya tengamos una cuenta shell), tenemos que pasar por la etapa de recopilacion de informacion


1 - Recopilacion de información
La información que debemos saber de cualquier sistema la vamos a dividir en:

Información primordial

Información extendida

Información complementaria

La información primordial la tenemos que saber sea como sea, si no, ya nos podemos olvidar del sistema y buscarnos otro. La información extendida nos será de utilidad más adelante, y la complementaria... bueno, siempre va bien tenerla.


Información primordial: cuál es y cómo se consigue
La información primordial de cualquier sistema es qué Host/IP tiene, así como la versión de UNIX que usa. Si tenemos el host y queremos saber la IP, basta con teclear:



# nslookup <host>

Una vez sabemos el Host/IP de un sistema, tenemos que hacer un telnet a éste y observar qué versión de UNIX usa. El nombre del sistema nos basta para la información primordial (si es SunOS, si es Solaris, si es Linux, etc...).



# telnet <host>
SunOS v3.25
login:

Información extendida: cuál es, para qué usarla y cómo se consigue
Al hacer el telnet, no estaría mal que apareciese qué versión (sea el UNIX que sea) está usando. Es un dato que puede ayudarnos a elegir exploits para usarlos más adelante.

Otro dato que nos puede ayudar (y mucho) es la versión de Sendmail que usa. Esto lo conseguimos haciendo un telnet al puerto 25 del host.



Nota: si el sistema que queremos hackear no permite hacer un telnet al puerto 25, deberemos descartar cualquier ataque vía Sendmail.

Para hacer un telnet al puerto 25 del host, escribimos simplemente esto:



# telnet <host> 25

Y nos aparecerá una línea con la versión del Sendmail.

Otra información extendida importante es saber detectar si el host tiene alguna actividad NFS. NFS (Network File System) es un sistema por el cual un ordenador puede compartir directorios con otros ordenadores, de manera que estos pueden manejar dichos directorios como si fuesen suyos. En muchos sistemas UNIX, el NFS está mal configurado, lo que supone un fallo de seguridad. Para saber si este sistema recibe directorios NFS, y si es que sí, cuáles son, escribiremos:



# showmount -e <host>

Podríamos considerar importante más información, pero con esta ya tenemos de momento suficiente.


Información complementaria
    Siempre va bien saber, por ejemplo, qué tipo de sistema es (si es gubernamental, si es una universidad...), en qué sitio geográfico está situado, cuánto tiempo lleva on-line, qué servicios ofrece, y un largo etcétera.

Hay muchos programas como por ejemplo el nmap, que se usan para saber que tipo de sistema operativo se esta usando, este programa tiene la caracteristica que nos dice hasta que version es, por
ejemplo linux red-hot 6.2 , solaris 6.0 etc,tiene a su ves funciones que no permiten al otro sistema leer
nuestra direccion ip puesto que usa una tecnica muy avanzada para peticionar la informacion, pero por
el momento no te preocupes por esto ya que deberas saber lo basico.


2 - Incursión en el sistema
    Bien, ahora que ya tenemos suficiente información vamos a tratar algunos de los métodos que se suelen usar para entrar en un sistema (los más fáciles, por supuesto).

Si ya tenemos una cuenta shell, nos basta con entrar vía telnet, poner el login y el password y ya estamos dentro. Si este es el caso, deberemos pasar a ver cómo podemos obtener root.

Pero si estamos en nuestro ordenador y no tenemos ni siquiera un login,,y no sabemos qué hacer para poder entrar, antes que nada probaremos los métodos que sólo funcionan de vez en cuando, métodos que pueden parecer anti-elitistas, pero que muchas veces nos ahorran esfuerzo mental si, de casualidad, funcionan, claro está.

Un ejemplo puede ser un rlogin . Por increíble que parezca, mi primera incursión en un sistema fue gracias a esta táctica. Simplemente escribimos:



# rlogin <host>

Y hay una probabilidad entre 100 de que entremos. Pero lo bueno es que entramos directamente como root, que fue lo que a mi me sucedió. Lo que ocurre es que, al no especificar con qué nombre (login) queremos entrar en el sistema, el comando entiende que queremos entrar como root, y como no hemos puesto password, entiende que el password es simplemente, ENTER (o sea, nada). En otras palabras, que hemos entrado con la cuenta de root sin asignar password, el root no tiene aun un password asignado, cosa que es prácticamente imposible (para qué negarlo) ¡ Pero nunca está de más probarlo !

Y otra táctica de este tipo consiste en hacer lo mismo, pero usando las "default counts", que son las cuentas que vienen por defecto en cualquier sistema UNIX, y, a no ser que el root les cambie el password o las desactive, se pueden usar. Esto es bueno probarlo porque algunas veces el root solo actualiza las cuentas que usa y las otras las deja activadas. Las default counts, en sistemas UNIX son:



Login / Password

admin - admin
sysadmin - sysadmin o admin
unix - unix
uucp - uucp
rje - rje
guest - guest
demo - demo
daemon - daemon
sysbin - sysbin
bin - bin




Las cuentas bin son muy interesantes ya que permiten la manipulación de muchos ficheros importantes como el fichero passwd.

adm - adm
nuucp - nuucp
lp - lp

Si con éstas no funciona, entonces tenemos que pensar un poco más. Vamos a ver, si el sitio al que nos conectamos se llama por ejemplo "Daddy's INC", no estaría de más probar a entrar como daddys, o daddy.

Algunos sistemas UNIX tienen una cuenta llamada test abierta, sin password, o con el mismo login y password (test/test).

En unos pocos sistemas UNIX, podemos ejecutar algunos comandos en el prompt de login. Estos pueden ser básicamente tres:



who
rwho
finger

Con lo que podemos saber si hay alguien dentro del sistema. Y, si hay alguien, ya tenemos el login de un usuario. Imaginemos que hay un tal "pepe" conectado. Probablemente, será de esos que prefiere conectar rápido al sistema y no le ha pasado nunca por la cabeza que algún hacker pueda usar su cuenta. Así que no estaría de más intentar entrar como pepe y poner como password pepe, pepe1, pp, o lo que se nos pase por la cabeza...

Bueno, como seguramente no hemos entrado en el sistema, ya nos podemos quitar las legañas y pasar a hacer algo más serio. Si seguimos fuera del sistema, tenemos varias opciones:

Explotar el Sendmail

Explotar el NFS mediante un IP Spoofing

Lo primero, consiste en usar el sistema de Mail del ordenador para obtener privilegios de root. Esto se hace aprovechando los fallos que presenta según la versión que use (ver información extendida). Así que a partir de ahora ya podemos empezar a usar exploits para hacer nuestras tareas más fáciles. Muchos no sabran de lo que estoy hablando. Así que vamos a explicar lo que es un exploit.



Un exploit:
no es más que un programa que aprovecha los bugs de un sistema UNIX determinado. Hay, por supuesto, muchos exploits, para cada tipo de sistema, y diariamente van saliendo nuevos según los sistemas se actualizan y se van encontrando nuevos fallos. Los buenos hackers saben programar sus propios exploits, pero de momento vamos a usar los que ya están hechos. Una dirección donde podemos encontrar muchos es: www.rootshell.com. Los exploits están programados en C o en shell. Y, dentro de la programación en shell podemos encontrar diferentes tipos, según el tipo de shell en que se base (BASH, PERL...). Una vez tenemos el exploit que queremos usar, debemos editarlo, leer las instrucciones que contenga (muchos contienen lineas de texto haciendo referencia a las maneras que hay de usarlo, cómo hay que usarlo para que funcione de una manera u otra, etc) y salvar sólo la parte ejecutable (ya sea en shell o en C). Si está en C tendremos que compilar el exploit. Si está en shell, basta con darle permiso de ejecución y ya está listo para usar. Poco a poco  iré hablando de las diferentes maneras de usar los exploits.

Ahora que ya sabemos lo que es un exploit, podemos ir a cualquier site y bajarnos todos los que haya referentes a la versión de Sendmail que usa este sistema, compilarlos (si necesitan ser compilados), y usarlos.

Realmente, el sistema de Mail de UNIX es muy útil para hacer fake mails, una vez dentro del sistema. Podemos hacernos pasar por cualquier dirección de correo existente.



    Es importante la organización de los exploits en el disco duro, la mejor manera es clasificarlos según: qué tipo de exploit son y a qué sistema hacen referencia.

    Bueno, los exploits locales son una buena manera de entrar directamente, pero no siempre funcionan, sobretodo porque los mismos exploits suelen tener bugs y tenemos que saber modificarlos, pero por esto de momento no te preocupes. Hay, por supuesto, técnicas más avanzadas para entrar en sistemas. Una de ellas es el IP Spoofing.

    El IP Spoofing nos permite cambiar nuestra IP.  pero ¿ Qué ganamos con eso ? Bien, supongamos que el sistema al que queremos entrar está en una subred, y, por lo tanto, se comunica con sistemas trusteds, sistemas que son "colegas". ¿ Qué quiere decir que son colegas ? Pues que están comunicados entre sí y que por lo tanto tienen ciertos privilegios (tienen acceso a directorios compartidos vía NFS). Los programas de IP Spoofing lo que hacen es (de manera simplificada), intentar comunicar con un sistema trusted (colega del sistema al que queremos entrar), hacer que no responda y en ese intervalo de tiempo alterar nuestra IP para hacernos pasar por ese sistema, de manera que ya tenemos ciertos privilegios en el sistema en el que queremos entrar.

    Lo primero que tienes que hacer para poner en práctica esta táctica es bajarte un buen programa de IP Spoofing. Mejor bájate varios por si alguno no funciona. Ahora tienes que saber cuáles son los sistemas trusteds del sistema al que quieres entrar. En otras palabras, qué estructura NFS tiene. Para esto escribe lo siguiente:



# showmount -e <host>

Por otra parte, esto ya lo tendrías que haber hecho al recopilar la información del sistema.

    Y, con estos datos, ya puedes ejecutar el programa de IP Spoofing, que seguramente lo hará todo él solito. No olvides compilarlo (si está en C) y quitar las instrucciones.

    En teoría con todas estas técnicas puedes pasarte un buen rato intentando entrar en un sistema. He dejado muchas técnicas por explicar y las que he descrito las he descrito muy por encima, porque considero que un hacker novicio ha de empezar siempre teniendo shells. Es decir, que ya conozcas de antemano alguna cuenta en ese sistema, eso facilita muchísimo las cosas. La única manera de conseguir una sino puedes ni siquiera entrar de forma anónima en un sistema es utilizar la ingeniería social. Si conoces el lugar físico en el que está ubicado el sistema, tienes que relacionarte con la gente que accede a él, robar papelillos o buscarlos en la papelera, espiar, hacer lo que sea hasta conseguir una cuenta en el sistema. El IRC puede ser un buen medio, pero también tienes que saber pedir las cosas. Internet, en definitiva, es un buen medio. Alguna que otra página encontrarás con shells. El fake mail puede ser también útil, hacerte pasar por alguna dirección importante de un proveedor de internet y enviar un mail a un usuario de ese proveedor para de alguna manera averiguar su login y password, aunque para eso tienes que estar antes en un sistema UNIX, y no todos los sistemas UNIX permiten hacer fake mails, o sea que esta técnica queda descartada. Pero si buscas información al respecto no te estará de más.


Conseguir ROOT una vez dentro del sistema
    Bien, si hemos conseguido finalmente entrar en el sistema con shell de usuario ordinario, tenemos muchas cosas que hacer. Lo primero que querremos hacer es, por supuesto, ver qué posibilidades nos ofrece nuestra cuenta.

1 - Hacemos un listado de nuestro directorio de inicio

2 - Miramos qué programas colectivos podemos ejecutar

3 - Echamos un vistazo al archivo .profile

    Nuestro directorio de inicio, dependiendo de en qué tipo de ordenador estemos estará generalmente ocupado por programas en C o documentos relacionados con carreras universitarias (si estamos en una universidad). Conviene no modificar ninguno de estos elementos, porque el usuario real de esta shell se daría cuenta de que la fecha ha cambiado. Y aún peor si se nos ocurre borrarlos. Simplemente les echamos un vistazo (si nos interesa, claro).    

    Ahora ejecutamos el comando help para ver qué programas colectivos podemos ejecutar (editores de texto, programas de mail, etc...). Y por último, no nos irá mal saber qué hay en nuestro .profile, y, si tenemos que modificarlo, no tenemos que olvidar volver a poner la fecha original (con el comando touch).
   
    Después tenemos que intentar movernos del directorio en el que estamos, a ver si podemos explorar otras áreas del sistema. Si no podemos, no hay que desesperarse. Quizás sí podemos leer ficheros del sistema aunque no podamos movernos del directorio, por eso tenemos que probar a hacer esto:



$ cat /etc/passwd

Si estamos de suerte y sale algo, pues grabamos la información en un fichero nuestro.



$ cat /etc/passwd >> passwd

Y ya tenemos el archivo passwd.

Ahora vamos a mirar más archivos importantes



$ cat /etc/hosts

    Este archivo te mostrará todos los sistemas que están en la subred del sistema en el que estás. Esto te puede ser útil porque, si te cierran la cuenta aquí, probablemente puedas intentar entrar en algún sistema de la misma subred con la misma cuenta. Si te interesa, salva esta información en otro archivo.

Ahora vamos a ver qué podemos hacer con el archivo passwd.

    Como ya sabes, este fichero contiene las cuentas del sistema. También sabes qué elementos contiene. Cuando dije que contenía el password del usuario dije que nunca aparecía tal y como era. El password puede aparecer de varias formas:

Shadow
    Cuando el password está shadow, en realidad se encuentra en otro archivo que se llama shadow, que no es visible más que por el root. En este caso no podemos hacer nada. Aparece shadow si aparece como un asterisco o una x:



Anastasio:*:1500:10:Anastasio Fernandez:/usr/anastasio:/bin/sh
Anastasio:x:1500:10:Anastasio Fernandez:/usr/anastasio:/bin/sh

Encriptado
    El password está encriptado si está formado por una combinación muy extraña de carácteres. Esta combinación no es el password en sí, sino el password encriptado. En este caso sí podemos hacer algo, es más, tenemos muchas posibilidades de descubrir de qué password se trata. Lo que tenemos que hacer es bajarnos un buen desencriptador de passwords. Yo suelo usar el John The Ripper, es un desencriptador muy bueno. Los desencriptadores suelen funcionar intentando asociar una serie de palabras agrupadas por temas a los passwords encriptados. Estas agrupaciones se llaman diccionarios y también se pueden bajar. Aunque, si queremos desencriptar bien las contraseñas hay algunos desencriptadores que hacen una desencriptación completa, sin usar ningún diccionario, prueban todas las combinaciones posibles. Lo malo que tiene este sistema es que el proceso de desencriptación puede tardar muchas horas, pero vale la pena sobretodo si tienes un archivo de passwords con una cuenta root encriptada.

    Los desencriptadores, por supuesto, funcionan off-line. Así que lo que tienes que hacer si has conseguido el archivo de contraseñas encriptado es desconectar y probar a desencriptarlo.

Una cuenta encriptada tiene este aspecto:



Anastasio:Mo54Wasl6H:1500:10:Anastasio Fernandez:/usr/anastasio:/bin/sh

Normal
    Si encuentras alguna cuenta así, te mereces un premio, porque prácticamente es imposible de encontrar. Simplemente la contraseña se muestra tal cual es.



Anastasio:juana:1500:10:Anastasio Fernandez:/usr/anastasio:/bin/sh

Sin password
    En este caso no hay password, para acceder con esta cuenta simplemente hacemos telnet, ponemos el login y ya estamos dentro.



Anastasio::1500:10:Anastasio Fernandez:/usr/anastasio:/bin/sh

Nota: Hay que tener en cuenta que si nos encontramos un espacio en blanco, un asterisco o un signo de admiración delante del password, la cuenta está inhabilitada temporalmente, eso significa que el acceso del usuario al sistema ha sido restringuido por el admin (¡ o por un hacker !).

    Bueno, crackear el archivo password es una posibilidad a tener en cuenta para conseguir acceso root, averiguando cuál es la contraseña que usa el root. En el hipotético caso de que lleguemos a saber cuál es la contraseña del root, lo que tenemos que hacer es, ante todo, no cambiarla (una vez estemos dentro como root). Después, pasar a mirar la parte de esta unidad referente a qué hacer cuando se es root.

    Si lo del archivo passwd no ha resultado, vamos a pasar a intentar buscar defectos en el sistema en el que estamos. Ya podemos ir preparando los exploits que necesitemos. Ahora bien, ¿ Con qué criterio hay que elegirlos ? Los exploits que ejecutes en el sistema tienen que cumplir siempre estas condiciones:

1 - La más trivial, que hagan referencia al sistema UNIX en el que estás. No ejecutes un exploit para HP-UX si estás en un Solaris.

2 - Que hagan referencia a la versión exacta del sistema UNIX en el que estás. De una versión a otra se corrigen los errores, por lo tanto un exploit para AIX 3.25 no funcionará en un AIX 4.x

3 - Que sean lo más nuevos posibles. Los exploits aparecen a medida que se van encontrando los errores en los sistemas. Por lo tanto, hay más posibilidades que el admin del sistema no haya tenido tiempo a parchear el bug al que haga referencia el exploit. En ciertos sites como rootshell.com aparecen exploits nuevos cada mes.

4 - Que hagan lo que necesitas que hagan. Leete qué es lo que hacen, inicialmente te interesa ganar acceso root, pues busca solo los que hagan esto. No te interesará, por ejemplo, hacer caer el sistema, ni colocar un sniffer. También habrán exploits que para ejecutarlos necesitarás ser root en el sistema ¡ Tampoco te interesan !

    No todos los exploits son iguales, eso es algo que ya hemos comentado antes. Antes he mencionado la palabra exploit local. Llegados a este punto, tienes que entender la diferencia entre exploit local y exploit remoto:

- Exploit local: tanto si está en C como en Shell, tiene que ejecutarse sin estar conectado a ningún sistema (¡ pero sí a Internet !).

- Exploit remoto: Si está en C, hay que subir el código fuente al sistema y compilarlo DENTRO del sistema. Una vez compilado se ejecuta. Si está en Shell simplemente hay que subirlo al sistema y ejecutarlo dentro del sistema.

Ahora vamos a ver cómo podemos poner a punto nuestro exploit. Debes seguir este proceso:

1 - Descomprime el exploit si está en formato .tgz. Esto lo puedes hacer con:



# tar xfvz <nombre del archivo>.tgz

2 - Edita el exploit.

    Te encontrarás con que algunos exploits no son más que un archivo de texto explicando cómo aprovechar un bug. Si este es el caso, léete cuidadosamente el archivo y apunta en un papel lo que te diga que tienes que hacer (normalmente te dirá que usando un comando de tal manera puedes conseguir root o leer ciertos archivos...). Otros exploits serán shellscripts, y al principio habrán las instrucciones. Tienes que leértelas bien, y guardar en otro archivo solo el shellscript (quitando las líneas de texto que sobren). Para poder ejecutarlo tienes que darle permiso de ejecución. Otros serán programas en C, en este caso si hay instrucciones, estas son ignoradas al compilar, así que no hay problema. Ya sabes que si es un exploit remoto tienes que subir el código al sistema (esto puedes hacerlo a través de una sesión FTP, usando el mismo login y el mismo password que para la sesión telnet), y una vez dentro, compilarlo (haciendo una sesión telnet) usando esta línea:



$ gcc <archivo>.c

    Y el resultado de esta operación será un archivo llamado a.out, que tienes que renombrar a tu gusto ( o ejecutar directamente con ese nombre ).

Hay exploits que son una mezcla entre C y shellscript, es decir, que una parte está en C y otra en shell. En este caso tienes que separar las dos partes en dos archivos distintos y hacer lo que ya sabes.

3 - La última parte es ejecutarlos, esperando que funcionen. Suelen funcionar si el sistema no está parcheado al máximo.

Experimenta por ti mismo todo lo referente a exploits, ahora que ya sabes cómo utilizarlos.

    Pero recuerda, si los exploits que has seleccionado no funcionan, no hagas el tonto subiendo otros que sabes que no van a funcionar. Debes saber que todo lo que haces en un sistema UNIX queda registrado en varios logs (algo que veremos en la próxima lección), así que si en una sesión no has conseguido hacerte root, al cabo de un día tu cuenta estará cerrada porque, probablemente, el admin se habrá dado cuenta de que has estado haciendo cosas "sospechosas". Por si acaso, si te tienes que ir, no olvides dejar el directorio de inicio del usuario tal y como estaba. Si te dejas tus exploits ahí, te puedo asegurar que te van a cerrar la cuenta pase lo que pase (porque el usuario se dará cuenta y lo comunicará al admin). También he comentado que, si has modificado algún archivo ya existente, tienes que volver a ponerle la fecha que ya tenía con el comando touch.

Pero si te han cerrado la cuenta, lo que tienes que hacer es buscarte más shells y seguir practicando.

Si has conseguido nivel root, vamos a pasar a explicar qué es lo que tienes que hacer.


¿ Qué hacer una vez se es ROOT ?
    Una vez eres root, el sistema es tuyo. No hay ningún tipo de restricción, puedes pasearte por el sistema como si fuese tuyo. Es muy importante, cuando se es root, asegurarse de que nos vamos a ir sin dejar ninguna huella. Pero esto lo voy a explicar en la próxima lección. Así mismo, si queremos asegurarnos nuestra continuidad como hacker en ese sistema, tenemos que ingeniarnos algún método para que podamos entrar y salir siendo siempre root. Una manera sería hacer el mismo proceso que hemos hecho para conseguir root. Pero, ¿ Y si es un proceso demasiado largo ? ¿ Y si tenemos root y no sabemos ni cómo lo hemos conseguido ?

    Podríamos crear una cuenta con acceso root, pero el admin del sistema lo acabaría viendo. Lo que podemos hacer es usar el .profile del root para asegurarnos el futuro acceso mediante un caballo de troya.

    Muchos se preguntaran ¿ Qué es un caballo de troya ? Bueno, un caballo de troya no es más que un proceso oculto. Vamos a verlo mediante un ejemplo muy sencillo:

Caballo de troya 1
Vamos a meter un caballo de troya en el archivo .profile de un usuario normal. Nos movemos a su directorio de inicio.

Lo primero que hacemos es una copia del archivo original a un archivo temporal oculto:



# cp .profile .temp

Ahora, editamos el archivo .profile y añadimos estas líneas al final:



echo " Bienvenido, Anastasio Fernández "
echo " Que tengas un buen día. "
echo " ¿ A que no sabes cómo te están llegando estas líneas ? "

Y la línea más importante que tenemos que añadir es:



mv .temp .profile

¿Qué hemos hecho con esto?. Acabamos de ocultar un proceso, en este caso un mensage de bienvenida. El archivo original .profile estaba guardado en en uno temporal (.temp). De manera que cuando Anastasio entra en el sistema, su .profile (que es el que hemos modificado) se encarga de ocultarse moviendo el contenido del archivo temporal otra vez al archivo profile, de manera que cuando Anastasio mire en su .profile no verá nada anormal. Excepto la fecha de modificación, pero eso lo podemos arreglar añadiendo un comando touch al final del caballo de troya.

Naturalmente no es muy recomendable hacer esto, ya que a un usuario normal no le haría mucha gracia y comunicaría al admin que ha entrado un hacker en el sistema.

Ahora que ya sabemos qué es un caballo de troya, vamos a hacer el caso que nos ocupa:

Caballo de troya 2
Vamos a hacer que un usuario normal consiga root instantáneamente al entrar en el sistema.

Hacer una copia del .profile del root en el directorio de inicio de un usuario normal

Convertir esta copia a ejecutable

Hacer una copia del .profile del usuario normal a un archivo temporal oculto

Modificar el .profile para que el usuario, cuando entre:

Ejecute el .profile de root

Borre el .profile de root

Mueva el contenido de la copia de su .profile (temp) a su .profile real

Si seguiste las lecciones hasta aquí no tendras problema en hacer este caballo de troya.

Pero para los más despistados, aquí está el proceso:



# cd /root
# cp .profile /usr/anastasio/.runme
# cd /usr/anastasio
# chmod a+x .runme
# cp .profile .temp
# ed .profile


Y añadimos:

.runme
rm .runme
mv .temp .profile

    Así, cada vez que entremos con la cuenta de Anastasio, seremos root. Naturalmente también puede ser que Anastasio Fernández, el usuario real de la cuenta, entre y vea que es root. Por eso recomiendo hacer esto: salir del sistema a hacer lo que tengamos que hacer, y al cabo de un rato volver a entrar (seremos root) y no volver a hacer este caballo de troya. Si en este intervalo de tiempo ha entrado Anastasio Fernández, ya no hay nada que hacer. Pero siempre podemos pensar que hemos hecho feliz a alguien.

    Bueno, siendo root se pueden hacer infinidad de cosas. Si quieres, disfruta de tu limitado acceso root (ahora que no sabes cómo borrar tus huellas) curioseando por el sistema. No te recomiendo que borres nada. Simplemente mira a ver qué hay. Y, ahora que sabes hacer caballos de troya, puedes divertirte haciéndolos en los .profile's de los usuarios normales. Por ejemplo, puedes poner un mensage personal si conoces a alguien del sistema.
Curso de Hacking


Noticias                   
Definiciones               Seguridad                   Crack                        Hacking                     Virus Informáticos      Troyanos                   Phreaking                
Vulnerabilidades        
       Secciones        
Tu Pc


Textos                       Softwares                  Literatura                   Virus                         Cracking y Seguridad Crackeadores           
Crading                      Troyanos                 
Hardware                  
     Descargar      


Visual Basic               Html                          Visual C, C+, C++      Algoritmos                
  Programación     


Chat                          WebMaster                E-mail                      
  Comunicate    
INICIO
Volver
You need Java to see this applet.