MimiPenguin 2.0
Un outil pour extraire le mot de passe de connexion de l'utilisateur actuel du bureau Linux. Adapté de l'idée derrière l'outil Windows populaire mimikatz. Cela a été assigné CVE-2018-20781 (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20781). Fait amusant, ce n'est toujours pas corrigé après GNOME Keyring 3.27.2 et fonctionne toujours avec 3.28.0.2-1ubuntu1.18.04.1.

Détails
Profite des informations d'identification en clair en mémoire en vidant le processus et en extrayant les lignes qui ont une forte probabilité de contenir des mots de passe en clair. Tentera de calculer la probabilité de chaque mot en vérifiant les hashs dans /etc/shadow, les hashs en mémoire, et les recherches regex. La version 2.0 introduit un port propre en C qui vise à augmenter la vitesse d'exécution et la portabilité.
Problèmes connus
- La variante 32 bits de mimipenguin (construction C) peut échouer dans un espace utilisateur 64 bits car elle ne gère pas correctement la recherche dans un espace d'adressage 64 bits.
Prérequis
Systèmes supportés/testés
- Kali 4.3.0 (rolling) x64 (gdm3)
- Ubuntu Desktop 12.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
- Ubuntu Desktop 14.04.1 LTS x64 (Gnome Keyring 3.10.1-1ubuntu4.3, LightDM 1.10.6-0ubuntu1)
- Ubuntu Desktop 16.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
- Ubuntu Desktop 16.04.4 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2, LightDM 1.18.3-0ubuntu1.1)
- Ubuntu 18
- XUbuntu Desktop 16.04 x64 (Gnome Keyring 3.18.3-0ubuntu2)
- Archlinux x64 Gnome 3 (Gnome Keyring 3.20)
- OpenSUSE Leap 42.2 x64 (Gnome Keyring 3.20)
- VSFTPd 3.0.3-8+b1 (Connexions client FTP actives)
- Apache2 2.4.25-3 (Sessions HTTP BASIC AUTH actives/anciennes) [Dépendance Gcore]
- openssh-server 1:7.3p1-1 (Connexions SSH actives - utilisation de sudo)
Compilation
- Pour compiler la version C, exécutez simplement
make dans le répertoire racine du projet
- Pour compiler un binaire de débogage avec des impressions de débogage, exécutez
make debug
- Pour compiler des binaires liés statiquement, exécutez
make static
Remarques
- Le mot de passe se déplace en mémoire - toujours en train d'affiner pour une efficacité à 100%
- Prévu d'étendre le support et d'autres emplacements d'informations d'identification
- Travail en cours pour étendre aux environnements non-bureau
- Bug connu - parfois gcore bloque le script, c'est un problème avec gcore
- Ouvert aux pull requests et aux recherches de la communauté
- Recherche LDAP (nscld winbind etc) prévue pour le futur
Feuille de route de développement
- Implémenter des aiguilles dans le port C (accélération)
- Ajouter un argument optionnel pour cibler uniquement des utilisateurs spécifiques (accélération)
MimiPenguin est lentement porté vers plusieurs langages pour supporter tous les scénarios post-exploitation possibles. La feuille de route ci-dessous a été suggérée par KINGSABRI pour suivre les différentes versions et fonctionnalités. Un 'X' indique un support complet tandis qu'un '~' indique une fonctionnalité avec des bugs connus.
| Feature | .sh | .py |
|---|
| Mot de passe GDM (Kali Desktop, Debian Desktop) | ~ | X |
| Gnome Keyring (Ubuntu Desktop, ArchLinux Desktop) | ~ | X |
| LightDM (Ubuntu Desktop) | X | X |
| VSFTPd (Connexions FTP actives) | X | X |
| Apache2 (Sessions HTTP Basic Auth actives) | ~ | ~ |
| OpenSSH (Sessions SSH actives - Utilisation de sudo) | ~ | ~ |
Licence
Licence CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
Remerciements spéciaux
- the-useless-one pour avoir supprimé Gcore comme dépendance, nettoyé les tabulations, ajouté une option de sortie, et un port complet en python3
- gentilkiwi pour Mimikatz, l'inspiration et le shoutout sur Twitter
- pugilist pour avoir nettoyé l'extraction de PID et les tests
- ianmiell pour avoir nettoyé une partie de mon code désordonné
- w0rm pour avoir identifié l'erreur printf lorsque des caractères spéciaux sont impliqués
- benichmt1 pour avoir identifié le problème d'utilisateurs authentifiés multiples
- ChaitanyaHaritash pour avoir identifié les problèmes de cas limites avec les caractères spéciaux
- ImAWizardLizard pour avoir nettoyé les correspondances de motifs avec une boucle for
- coreb1t pour les vérifications python3, le support arch, autres corrections
- n1nj4sec pour un port et support python2
- KINGSABRI pour la proposition de feuille de route
- bourgouinadrien pour avoir lié https://github.com/koalaman/shellcheck
- bcoles pour avoir ajouté plus d'aiguilles
- space-r7 et bcoles pour le travail sur le module Metasploit MimiPenguin port