🐧Linux

L'énumération est la première étape cruciale dans le processus de test d'intrusion, que ce soit pour identifier des vulnérabilités, comprendre la configuration du système, ou trouver des vecteurs potentiels d'élévation de privilèges. Même après avoir obtenu un accès initial, l'énumération reste essentielle pendant la phase post-compromission.

GTFObins est une source précieuse qui fournit des informations sur la manière dont tout programme sur lequel vous pouvez avoir des droits peut être utilisé.

🛰️ Enumération

📛 Nom d'hôte

La commande hostname renvoie le nom d'hôte de la machine cible, pouvant fournir des indications sur le rôle du système au sein du réseau.

hostname

💻 Informations Système

La commande uname -a affiche des détails sur le noyau utilisé par le système, utile pour rechercher des vulnérabilités potentielles.

uname -a

Le fichier /proc/version peut également fournir des informations sur la version du noyau.

cat /proc/version

Le fichier /etc/issue peut contenir des informations sur le système d'exploitation.

cat /etc/issue

🔄 Processus en Cours

La commande ps affiche les processus en cours sur le système, avec des options utiles.

ps -A      # Afficher tous les processus en cours
ps axjf    # Afficher l'arborescence des processus
ps aux     # Afficher les processus avec des informations détaillées
ps -elf    # Afficher les processus avec des informations détaillées et lisibles par l'homme

En tant que root :

$ ps aux | grep root
$ ps -elf | grep root

Tools :

🌐 Variables d'Environnement

La commande env affiche les variables d'environnement, notamment la variable PATH.

env

📜 Privilèges Sudo

La commande sudo -l permet de lister les commandes que l'utilisateur peut exécuter avec les privilèges root.

sudo -l

📁 Fichiers et Répertoires

La commande ls est commune ; utilisez ls -la pour une vue détaillée.

ls -la

Afficher les fichiers de courrier électronique des utilisateurs

ls -lh /var/mail/

Lister les fichiers dans /usr/bin/ et /sbin/ pour trouver les applications installées

ls -lh /usr/bin/
ls -lh /sbin/

👥 Utilisateur et Groupe

La commande id fournit un aperçu du niveau de privilège de l'utilisateur et des adhésions à des groupes.

id

Afficher les adhésions à des groupes en lisant le fichier /etc/group

cat /etc/group

Lecture du fichier /etc/passwd pour découvrir des utilisateurs.

cat /etc/passwd

Le fichier /etc/shadow est utilisé pour stocker les informations de mot de passe chiffré des utilisateurs sur les systèmes Linux.

cat /etc/shadow

Afficher les utilisateurs connectés et ce qu'ils font

w

Afficher la liste des derniers utilisateurs connectés

last

⌨️ Historique des Commandes

La commande history peut révéler des informations potentielles stockées, même des mots de passe ou des noms d'utilisateur.

history

🌐 Interfaces Réseau

La commande ifconfig fournit des informations sur les interfaces réseau du système.

ifconfig

Afficher les informations de configuration DNS en lisant le fichier /etc/resolv.conf

cat /etc/resolv.conf

🔗 Connexions Réseau

La commande netstat permet de visualiser les connexions réseau.

netstat -ntlp
netstat -a      # Afficher les connexions réseau
netstat -l      # Afficher uniquement les prises d'écoute
netstat -n      # Afficher une sortie numérique
netstat -t      # Afficher les connexions TCP
netstat -u      # Afficher les connexions UDP
netstat -x      # Afficher les connexions UNIX

Afficher les processus qui utilisent les ports réseau

sudo lsof -i
sudo lsof -i :25

🔍 Recherche de Fichiers avec find

La commande find est puissante pour la recherche de fichiers et de dossiers.

find / -name filename
find / -perm -u=s -type f 2>/dev/null   # Fichiers avec le SUID bit
find / -type f -perm 0777              # Fichiers avec les autorisations 777
find / -writable -type d 2>/dev/null   # Dossiers accessibles en écriture
find / -perm -222 -type d 2>/dev/null # Dossiers accessibles en écriture par le groupe
find / -perm -o w -type d 2>/dev/null # Dossiers accessibles en écriture par les autres
find / -xdev -type d -perm -0002 -ls 2> /dev/null # Dossiers avec le sticky bit
find / -xdev -type f -perm -0002 -ls 2> /dev/null # Fichiers avec le sticky bit
find / -user username                  # Fichiers appartenant à un utilisateur spécifique
find / -mtime 10                       # Fichiers modifiés au cours des 10 derniers jours
find / -atime 10                       # Fichiers consultés au cours des 10 derniers jours
find / -cmin -60                       # Fichiers modifiés au cours de la dernière heure
find / -amin -60                       # Accès aux fichiers au cours de la dernière heure
find / -size 50M                       # Fichiers d'une taille de 50 Mo
find / -perm -4000 -user root -exec ls -ld {} \; 2> /dev/null # SUID (fichiers et programmes qui ont l'autorisation de leur propriétaire - généralement root)

🔧 Configuration du Système

Afficher les informations de version du système en lisant le fichier /etc/*-release.

ls /etc/*-release

📈 Services en Cours d'Exécution

Obtenir un instantané des processus en cours peut fournir de nombreuses informations.

ps aux
ps -elf

⏰ Configuration de la Tâche Planifiée

Voir les crontabs et les tâches planifiées.

crontab -l
cat /etc/cron*
cat /etc/cron.d/*
cat /etc/cron.daily/*
cat /etc/cron.hourly/*
cat /etc/cron.monthly/*
cat /etc/crontab
cat /etc/at.allow
cat /etc/at.deny
cat /etc/anacrontab

🧰 Outils d'Énumération Linux

Pendant le processus d'énumération sur des systèmes Linux, plusieurs outils peuvent grandement améliorer l'efficacité.

  • LinPeas : Automatise le processus d'élévation de privilèges sur les systèmes Linux.

  • LinEnum : Script d'énumération pour découvrir des informations importantes sur les systèmes Linux.

  • Linux Exploit Suggester (LES) : Suggère des exploits potentiels pour l'élévation de privilèges sur des systèmes Linux.

  • Linux Smart Enumeration (LSE) : Script d'énumération léger pour répertorier des informations essentielles sur un système Linux.

  • Linux Priv Checker : Vérifie diverses configurations pour identifier des vecteurs potentiels d'élévation de privilèges.


⚙️ Fonctionnement des droits

🗂️ Droits sur un Fichier ou Répertoire

Les systèmes d'exploitation de type Unix/Linux attribuent des droits spécifiques à chaque fichier et répertoire pour déterminer qui peut lire, écrire ou exécuter ces éléments. Ces droits sont généralement représentés par une série de caractères ou de symboles.

💾 Notation des Droits

La notation standard des droits est une chaîne de dix caractères sous la forme drwxr-xr-x, où :

  • Le premier caractère indique le type de fichier (d pour répertoire, - pour fichier ordinaire).

  • Les trois groupes suivants de trois caractères chacun représentent les permissions du propriétaire, du groupe et des autres utilisateurs.

Pour chaque groupe de trois caractères, les droits sont indiqués par les lettres suivantes :

  • r : Lecture (read).

  • w : Écriture (write).

  • x : Exécution (execute).

Exemple : drwxr-xr-x signifie que c'est un répertoire où le propriétaire a tous les droits, le groupe et les autres utilisateurs ont le droit de lire et d'exécuter.

🕹️ GID et UID

  • GID (Group ID) : un identifiant de groupe attribué à un ensemble d'utilisateurs. Chaque utilisateur appartient à un groupe, et le GID de ce groupe est associé à leurs fichiers.

  • UID (User ID) : un identifiant d'utilisateur unique. Chaque utilisateur sur le système a un UID qui lui est attribué.

Chiffres Associés

  • L'UID 0 est généralement réservé à l'utilisateur root, qui a des privilèges administratifs complets.

  • Les GID peuvent prendre diverses valeurs, avec souvent le GID 0 réservé au groupe root.

Exemple : drwxr-xr-x 2 root root indique un répertoire avec l'UID 0 (root), le GID 0 (root), et les permissions spécifiques pour le propriétaire, le groupe et les autres utilisateurs.


👇 Arborescence des répertoires Linux

Last updated