Linux Post-Exploitation
Last updated
Last updated
Configurons un module PAM pour enregistrer chaque mot de passe que chaque utilisateur utilise pour se connecter. Si vous ne savez pas ce qu'est PAM, consultez :
Pour plus de détails, consultez le message original. Ceci n'est qu'un résumé :
Aperçu de la technique : Les modules d'authentification enfichables (PAM) offrent une flexibilité dans la gestion de l'authentification sur les systèmes Unix. Ils peuvent renforcer la sécurité en personnalisant les processus de connexion, mais posent également des risques s'ils sont mal utilisés. Ce résumé décrit une technique pour capturer les informations d'identification de connexion en utilisant PAM, ainsi que des stratégies d'atténuation.
Capture des informations d'identification :
Un script bash nommé toomanysecrets.sh
est créé pour enregistrer les tentatives de connexion, capturant la date, le nom d'utilisateur ($PAM_USER
), le mot de passe (via stdin) et l'adresse IP de l'hôte distant ($PAM_RHOST
) dans /var/log/toomanysecrets.log
.
Le script est rendu exécutable et intégré dans la configuration PAM (common-auth
) en utilisant le module pam_exec.so
avec des options pour s'exécuter discrètement et exposer le jeton d'authentification au script.
Cette approche montre comment un hôte Linux compromis peut être exploité pour enregistrer discrètement des informations d'identification.
Pour plus de détails, consultez le post original. Ceci est juste un résumé :
Le Module d'Authentification Pluggable (PAM) est un système utilisé sous Linux pour l'authentification des utilisateurs. Il repose sur trois concepts principaux : nom d'utilisateur, mot de passe, et service. Les fichiers de configuration pour chaque service se trouvent dans le répertoire /etc/pam.d/
, où des bibliothèques partagées gèrent l'authentification.
Objectif : Modifier PAM pour permettre l'authentification avec un mot de passe spécifique, contournant le mot de passe réel de l'utilisateur. Cela se concentre particulièrement sur la bibliothèque partagée pam_unix.so
utilisée par le fichier common-auth
, inclus par presque tous les services pour la vérification des mots de passe.
pam_unix.so
:Localiser la Directive d'Authentification dans le fichier common-auth
:
La ligne responsable de la vérification du mot de passe d'un utilisateur appelle pam_unix.so
.
Modifier le Code Source :
Ajouter une instruction conditionnelle dans le fichier source pam_unix_auth.c
qui accorde l'accès si un mot de passe prédéfini est utilisé, sinon, il procède avec le processus d'authentification habituel.
Recompiler et Remplacer la bibliothèque pam_unix.so
modifiée dans le répertoire approprié.
Test :
L'accès est accordé à travers divers services (connexion, ssh, sudo, su, économiseur d'écran) avec le mot de passe prédéfini, tandis que les processus d'authentification normaux restent inchangés.
Vous pouvez automatiser ce processus avec https://github.com/zephrax/linux-pam-backdoor