Foro de elhacker.net

Seguridad Informática => Hacking => Mensaje iniciado por: 0xDani en 23 Noviembre 2013, 20:09 pm



Título: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 23 Noviembre 2013, 20:09 pm
Bien, pongámonos en situación: imagina que te sientas delante de tu ordenador, con un SO Unix/Linux, y te dispones a comprometerlo (entiéndase obtener privilegios root, contraseñas, incluso instalar rootkits o backdoors, etc...). Tienes todo el tiempo y el café del que quieras disponer.

¿Qué métodos se te ocurren probar teniendo acceso local como un usuario normal?

Gracias de antemano.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: topomanuel en 23 Noviembre 2013, 20:31 pm
Aquí hay muchas herramientas que te pueden ser útiles para lo que buscas hacer: http://www.pablin.com.ar/computer/info/varios/hacklnx.htm

Saludos.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 24 Noviembre 2013, 14:13 pm
Aquí hay muchas herramientas que te pueden ser útiles para lo que buscas hacer: http://www.pablin.com.ar/computer/info/varios/hacklnx.htm

Saludos.

No está mal, pero un poco anticuado. Por ejemplo, en mi sistema, el "truco" para acceder al /etc/shadow no funciona.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: cpu2 en 26 Noviembre 2013, 00:55 am
Pues algun modulo en el kernel, no puedo darte muchas ideas porque estoy verde la verdad, pero dejo unas preguntas en el aire, se podria implementar un keylogger interceptando el puerto del teclado en este caso el 0x60? Haciendo pruebas intercepte las pulsaciones del teclado, refinandolo se podria hacer un modulo de esa forma no?

Y tambien recuerdo de que linux cuando hace una interrupcion al vector 0x80, en ese vector estaban las direcciones de las funciones no? tambien se podrian cambiar no?

Si haces algo Dani, cuenta conmigo. Creo que ya sabes que me encantan las shellcodes y ASM, ahora estoy con el cifrado AES y Ring0.

Un saludo.



Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 26 Noviembre 2013, 20:38 pm
@cpu2: en efecto, los rootkits en Unix están mayormente implementados como módulos del kernel del sistema operativo en cuestión; y existen un par de keyloggers que registran leen los datos del puerto 0x60 (eso se puede hacer cómodamente desde el userspace); y con lo último creo que te refieres a interceptar las system calls.

Para todo lo anterior hace falta tener permisos root previamente.

He creado este tema porque hace tiempo que me di cuenta de lo difícil que es obtener privilegios en un sistema Unix si no tienes un exploit. Lo más útil que he encontrado es un keylogger que no necesita privilegios (https://github.com/mnp/xspy/blob/master/xspy.c). Sin embargo esto no es fácil de automatizar para escalar privilegios.

Estaría genial tu ayuda cuando encuentre algo viable que hacer.

Saludos.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: cpu2 en 26 Noviembre 2013, 22:30 pm
Si, para cargar modulos tienes que tener privilegios, pero una vez que estas en el nucleo haces lo que quieras.

Ese codigo no me gusto, eso se hace mejor en ring0 y sin llamar a todas esas funciones. Lo que me refiero es que con unas cuantas lineas en ASM hice algo parecido a un keylogger, imaginate si me tomo el tiempo en hacer algo con eso, estaria mejor que ese code en C. No es que este interesado en los keyloggers simplemente era un ejemplo.

Bueno si haces algo ya sabes.

Un saludo.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 28 Noviembre 2013, 16:19 pm
@cpu2: claro, eso se hace mejor en ring0, pero en la situación que he planteado, tienes acceso local como un usuario sin privilegios, y no puedes un cargar un módulo del kernel ni nada. Ahí está la gran barrera para comprometer un sistema de este tipo.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: cpu2 en 29 Noviembre 2013, 19:38 pm
Bueno, cuando sepas escalar esos privilegios cuenta con migo, pero yo ese tipos de codigos y programacion no me gustan ni un poco.

Un saludo.

P.D: Cualquier cosa por MP, que estoy desviando el hilo.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: ThinkByYourself en 8 Diciembre 2013, 13:35 pm
Es ruín, pero puede funcionar:

Código
  1. //Quite este script porque me ofende como linuxero
  2. //Pero para el que aun no lo haya visto, que siga leyendo
  3. //La verdad es que es bastante triste...
  4.  

¿Cómo lo ven? No me parece nada guay usarlo, para pocos que usamos Linux andarse con estas es muy ruín... Pero bueno, ¿quién no picaría? Y si además sabes poner el nombre del usuario, clavaito. Ahora, repito, es ruín, patético, zafio, burdo e insultante para cualquier linuxero (encima que somos pocos, con estas...). Sin embargo, lo posteo porque creo que el conocimiento es y debe ser libre (y gratuito).


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 8 Diciembre 2013, 20:23 pm
Sí, ya, se puede emular sudo y poniendo el nombre del usuario fácilmente; y poner ese programa como un alias de sudo en el .bashrc. Es una opción, y por qué no iba a picar alguien?

En fin, no es descartable del todo.

Saludos.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: ThinkByYourself en 8 Diciembre 2013, 22:48 pm
Si tienes algo mejor no dudes en compartirlo, todos queremos aprender.


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 8 Diciembre 2013, 23:14 pm
Si las contraseñas están hasheadas en el /etc/passwd y son cortas y simples, puede llegar a ser factible crackearlas, pero ahora lo más normal es que estén en el shadow...

Qué programas se suelen usar dándoles permisos previamente?


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: ThinkByYourself en 11 Diciembre 2013, 22:23 pm
0xDani, no sabes tanto? Pues yo sigo sin ver nada mejor... así que quitaré el script y ya está. Presenta un ring0 a ver. Qué cierto lo de: "destruir es fácil, lo difícil es construir".


Título: Re:
Publicado por: vk496 en 11 Diciembre 2013, 23:06 pm
No sé si os servirá, pero teniendo acceso físico a la maquina, yo llegué a hacer esto:

Arrancar en modo recuperación
Montar el HD
Añadir usuario al passwd y shadow
Añadir máximos privilegios al sudoers
Reiniciar
Disfrutar de los privilegios :P

Claro, esto solo con acceso físico...

Salu2

Solo sé que no se nada...


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: ThinkByYourself en 12 Diciembre 2013, 00:02 am
Estás pidiendo qué programas, dándole privilegios, pueden conseguir privilegios? ...


Título: Re: Pasos a seguir para comprometer un sistema Unix/Linux.
Publicado por: 0xDani en 12 Diciembre 2013, 19:57 pm
0xDani, no sabes tanto? Pues yo sigo sin ver nada mejor... así que quitaré el script y ya está. Presenta un ring0 a ver. Qué cierto lo de: "destruir es fácil, lo difícil es construir".

No, yo solo sé que sé una ínfima parte de lo que me gustaría saber. Muy bien, puedes retirar el script si quieres. No tiene sentido hacer un ring0 sin antes tener una forma medianamente segura de obtener privilegios para instalarlo. Sí, sí que es muy cierto eso.

Saludos.

EDIT:

Estás pidiendo qué programas, dándole privilegios, pueden conseguir privilegios? ...

No, estoy preguntando por programas que no tengan setuid 0, pero que, al usarlos, sea frecuente darles permisos. Por ejemplo, en sistemas basados en Debian, el apt-get.