Intro : L’énumération est la clés pour pouvoir faire des élévations de privilèges, cela permet de trouver des exploits ainsi qu’un maximum d’informations sur le système et les utilisateurs (lien utile : https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)
⚠️⚠️ Enumeration sur les différents ports : Enumeration des ports ⚠️⚠️
1. Liste de commande système :
Operating system + version :
cat /etc/lsb-release
Kernel Version :
uname -a
Voir tous les fichiers cachés et qui peut les exécuter :
ls -al
Qui êtes vous ?
id, whoami
Où êtes vous ?
pwd
Le fichier etc/passwd :
cat /etc/passwd
Le fichier contenant les password des utilisateurs :
cat /etc/shadow
Si la victime utilise le shell /bin/ash, pensez à vérifier l’historique du shell dans le répertoire /.ash_history en modifiant le fichier script.
/home/<user>/bash_history
FreeDisk Space (utilise t-on docker?)
df -h
Lister les processus utilisés :
ps -aux | grep “user” ps -ef top cat /etc/services
2. Que puis je apprendre ?
Les fichiers de démarrage du shell Bash. Le fichier est lu une fois au login de l’utilisateur. Ici on définit les variables et paramètres universels, c’est à dire identiques pour tous les utilisateurs. Il est cependant fréquent (et conseillé) de configurer différemment un compte utilisateur du compte root. Par exemple, les exécutables de /sbin et /usr/sbin sont en principe réservés à root.
cat /etc/profile cat ~/.bash_profile cat /etc/bash.bashrc
Beaucoup de gens voudront que leur système affiche quelques informations dans le message de connexion. Ceci peut se faire en utilisant le fichier /etc/issue.
Le fichier /etc/issue est un fichier de texte qui accepte aussi certaines séquences d’échappement pour insérer des informations sur le système. Il existe aussi le fichier issue.net pouvant être utilisé lors de connexions à distance :
Cat /etc/issue
Le fichier de configuration : Vous pouvez observez les scripts qui peuvent être effectuer par certains utilisateurs :
cat /etc/cron*
Trouver un Fichier par son nom
find / -name user.txt 2>/dev/null
Trouver un fichier contenant un mot spécifique :
grep -Rw ~/PATH/ -e 'pasword'
3. Listes de commandes Users Vulnerabilities :
Avec ces commandes vous pouvez trouver des fichiers utilisables pour monter un shell et changer d’utilisateurs, pour créer un meterpreter ou exécuter des commandes :
Trouver des fichier avec le bit SUID activé :find / -perm -4000 -type f 2>/dev/null
Trouver des fichier qui ont tous les droits (écriture, lecture, exécution) :find / -perm -777 -type f 2>/dev/null
Trouver des fichier avec le bit SUID activé pour l'utilisateur courant :find / perm /u=s -user `whoami` 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
Astuce : La commande 2>/dev/null permet de “jeter à la poubelle” toutes les informations qui ne correspondent pas à la commande écrite, très utile pour beaucoup d’autres cas
4. Commandes exécutable avec les droits superadmin (root)
Grâce à cette commande vous pouvez exploiter le fait que votre utilisateur puisse lancer des commande avec des droits supérieurs sudo :
sudo -l
Exemple : Ici l’utilisateur Steven peux lancer une commande python en superadmin et donc créer un shell pour faire une élévation de privilège que nous allons voir juste après.
5. Automatisation de l’énumération
⚠️ Script automatisation énumérations : https://github.com/cheetz/LinEnum ⚠️
Full énumération automatique :LinuxAllEnum
Dump du Login & Password de l’utilisateur courrant : MimiPinguin
Un commentaire