Mimipenguin: Obtener contraseñas de usuarios buscando en la RAM

Mimipenguin es un programa de hacking.... digamos "ético"... para decir algo.
No está diseñado como un payload o algo por el estilo. Está pensado para "recuperar una contraseña de usuario olvidada". Requiere privilegios de administrador para ser ejecutado. 

Notar que en Linux, aunque seas el administrador con su cuenta "root" toda poderosa, no puedes recuperar las contraseñas de usuarios.

Están cifradas (se encuentran en el directorio /etc/shadow) y te haría falta crackearlas por fuerza bruta.

Mimipenguin se inspira de Mimikatz que es para windows (lo desconocía) y sirve para lo mismo (en windows): mimikatz 

Se ve que Mimipenguin fue diseñado para kali ya que la primera función del script empieza con una condición "if-fi" sobre el nombre de sistema "kali"
 
# $1 = PID, $2 = output_file, $3 = operating system
function dump_pid () {

system=$3
pid=$1
output_file=$2
if [[ $system == "kali" ]]; then
mem_maps=$(grep -E "^[0-9a-f-]* r" /proc/$pid/maps | egrep 'heap|stack' | cut -d' ' -f 1)
else
mem_maps=$(grep -E "^[0-9a-f-]* r" /proc/$pid/maps | cut -d' ' -f 1)
fi

No obstante el script ha sido probado con éxito en los sistemas siguientes:
 
mimipenguin escribió:
Supported/Tested Systems
    Kali 4.3.0 (rolling) x64 (gdm3)
    Ubuntu Desktop 12.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
    Ubuntu Desktop 16.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
    XUbuntu Desktop 16.04 x64 (Gnome Keyring 3.18.3-0ubuntu2)
    Archlinux x64 Gnome 3 (Gnome Keyring 3.20)
    VSFTPd 3.0.3-8+b1 (Active FTP client connections)
    Apache2 2.4.25-3 (Active/Old HTTP BASIC AUTH Sessions) [Gcore dependency]
    openssh-server 1:7.3p1-1 (Active SSH connections - sudo usage)

Su modo de operación es le siguiente:
 
mimipenguin escribió:
Details
Takes advantage of cleartext credentials in memory by dumping the process and extracting lines that have a high probability of containing cleartext passwords. Will attempt to calculate each word's probability by checking hashes in /etc/shadow, hashes in memory, and regex searches.
Va a buscar en un volcado de la memoria las lineas con una alta probabilidad de contener una contraseña en texto plano.

Luego pasa estas posibles contraseñas por varias funciones de hash para ver si corresponden con una de las contraseñas almacenadas en /etc/shadow,
 
Podemos ver en el script el patrón empleado para sacar las lineas con posibles contraseñas 

 patterns=("^_pammodutil.+[0-9]$"\
"^LOGNAME="\
"UTF-8"\
"^splayManager[0-9]$"\
"^gkr_system_authtok$"\
"[0-9]{1,4}:[0-9]{1,4}:"\
"Manager\.Worker"\
"/usr/share"\
"/bin"\
"\.so\.[0-1]$"\
"x86_64"\
"(aoao)"\
"stuv")

En la página del proyecto podemos ver una captura de pantalla con la herramienta en acción: 

687474703a2f2f692e696d6775722e636f6d2f426b44583964462e706e67

No hace falta instalar ninguna dependencias para emplear Mimipenguin y podréis ver que el scipt es relativamente corto. 

La página oficial:
Usando la herramienta git:
  1. Hacemos un clon de la rama:
    git clone https://github.com/huntergregal/mimipenguin.git
  2. No situamos a dentro de la rama clonada:
    cd mimipenguin
  3. Ejecutamos el script bash
    sudo bash mimipenguin.sh
    O el script python
    sudo python3 mimipenguin.py
El proyecto fue lanzado el 26 de noviembre 2016 y está teniendo una "segunda juventud" con muchos aportes desde entonces.