bell-conciergeInteracting with Common Services

Les vulnérabilités sont souvent découvertes par des personnes qui utilisent et comprennent une technologie, un protocole ou un service. En cybersécurité, nous rencontrons sans cesse de nouveaux services : il faut donc apprendre continuellement leur but, leur mode d'interaction, les outils disponibles et ce qu'on peut en tirer d'un point de vue offensif. Cette page se concentre sur les services courants et les manières de les interagir.


🌐 Services de partage de fichiers

Un service de partage de fichiers fournit, médie et surveille le transfert de fichiers informatiques. Historiquement les entreprises utilisaient des services internes : SMB, NFS, FTP, TFTP, SFTP, etc. Avec l'adoption du cloud, on trouve aussi des services externes : Dropbox, Google Drive, OneDrive, SharePoint, ou des stockages objets comme AWS S3, Azure Blob Storage, Google Cloud Storage. On sera exposé à un mélange de services internes et externes — il faut être à l'aise avec les deux.

Cette section se concentre sur les services internes (mais s'applique souvent aux solutions cloud synchronisées localement sur des serveurs ou postes de travail).


⚙️ Server Message Block (SMB)

SMB est très courant dans les réseaux Windows : on y trouve fréquemment des dossiers partagés. On peut interagir avec SMB via l'interface graphique (GUI), la ligne de commande (CLI) ou des outils dédiés. Ci‑dessous des méthodes courantes sous Windows et Linux.

⚙️ Windows - GUI

Pour ouvrir un partage depuis l'interface Windows, appuyez sur [WINKEY] + [R] et saisissez l'emplacement du partage, par exemple :

Si la ressource autorise l'authentification anonyme ou si vous êtes authentifié avec un compte disposant des droits, vous ne recevrez pas d'invite d'authentification et le contenu du partage s'affichera. Sinon, Windows demandera des identifiants réseau.

⚙️ Windows - Command Shell arrow-up-right(CMD)

La commande dirarrow-up-right liste les fichiers et sous-répertoires d'un dossier. Exemple d'utilisation pour parcourir un partage SMB :

La commande net usearrow-up-right permet de connecter/déconnecter un partage et de mapper un partage réseau sur une lettre de lecteur :

On peut fournir des identifiants :

Une fois mappé, on peut traiter le partage comme un lecteur local : par exemple compter les fichiers (commande simplifiée ci‑dessous — adaptez selon vos besoins) :

Explication des options utilisées :

  • dir : application

  • n: : lecteur/chemin à explorer

  • /a-d : lister les fichiers (sans les répertoires)

  • /s : inclure les sous-répertoires

  • /b : format "bare" (sans entête ni résumé)

Exemples de recherche de noms de fichiers ou d'extensions courantes (à lancer dans CMD) :

Pour rechercher un mot dans le contenu des fichiers, utilisez findstrarrow-up-right :

circle-info

We can find more findstr examples herearrow-up-right.

⚙️ Windows - PowerShellarrow-up-right

PowerShell étend les capacités de l'invite de commandes avec des cmdlets. On peut exécuter les mêmes types d'opérations. Exemples équivalents en PowerShell :

Lister un partage :

Mapper un lecteur réseau avec New-PSDrive :

Fournir des identifiants via un objet PSCredentialarrow-up-right :

Compter les fichiers récursivement (exemple) :

Rechercher des fichiers dont le nom contient cred :

Rechercher une chaîne dans le contenu des fichiers avec Select-String (équivalent de grep/findstr) :

La CLI permet d'automatiser des tâches répétitives (gestion d'utilisateurs, sauvegardes, recherches massives, etc.). Les scripts sont souvent plus rapides que la manipulation via GUI.


⚙️ Linux - Montage SMB

Les machines Linux peuvent aussi parcourir et monter des partages SMB (serveur Windows ou Samba).

Créer un point de montage et monter un partage en une seule commande :

Utiliser un fichier d'identifiants comme alternative :

Format du fichier credentialfile :

circle-info

Installez cifs-utils si nécessaire :

Une fois monté, utilisez les outils Linux classiques (find, grep) pour explorer et rechercher :


⚙️ Autres services de fichiers

Il existe d'autres services (FTP, TFTP, NFS) ; chacun s'installe / se monte différemment. L'idée clé : une fois monté, on peut utiliser les mêmes outils systèmes (Windows / Linux) pour analyser fichiers et répertoires.


🌐 Email

Pour l'envoi et la réception de mails, on utilise typiquement SMTP pour l'envoi, et POP3 ou IMAP pour la récupération. On peut interagir avec un serveur mail via un client graphique (ex. Evolutionarrow-up-right) ou via outils CLI spécialisés.

Installer Evolution sur Debian/Ubuntu :

Si Evolutionarrow-up-right renvoie une erreur liée à la sandbox WebKit, démarrez-le ainsi :

Lors de la configuration d'un compte, renseignez l'hôte (IP ou nom de domaine) et le type de chiffrement (SMTPS/IMAPS sur port dédié ou STARTTLS). Vérifiez les méthodes d'authentification supportées si nécessaire.


🌐 Bases de données

Les bases de données sont omniprésentes en entreprise. On trouvera : bases hiérarchiques, NoSQL et bases relationnelles SQL. Nous nous concentrerons sur les bases relationnelles SQL (MySQL, MSSQL). Trois façons courantes d'interagir :

  1. Utilitaires en ligne de commande (mysql, sqsh, sqlcmd)

  2. Langages de programmation (Python, PHP, etc.)

  3. Applications GUI (HeidiSQL, MySQL Workbench, SQL Server Management Studio, dbeaver)

⚙️ MSSQLarrow-up-right (Microsoft SQL Server)

Exemple avec sqsharrow-up-right (Linux) :

Avec sqlcmdarrow-up-right (Windows) :

circle-info

To learn more about sqlcmd usage, you can see Microsoft documentationarrow-up-right.

circle-info

To interact with MySQLarrow-up-right, we can use MySQL binaries for Linux (mysql) or Windows (mysql.exe). MySQL comes pre-installed on some Linux distributions, but we can install MySQL binaries for Linux or Windows using this guidearrow-up-right. Start an interactive SQL Session using Linux:

Lancer une session interactive MySQL (Linux) :

(Windows — mysql.exe équivalent) :

⚙️ GUI — dbeaver (multi‑plateforme)

dbeaverarrow-up-right est un outil multi‑plateforme pratique pour se connecter à plusieurs moteurs (MSSQL, MySQL, PostgreSQL, ...). Installation via paquet .deb :

Pour se connecter à une base, il faut : l'adresse IP/nom d'hôte, le port, le moteur et des identifiants valides. Une fois connecté, on peut énumérer bases et tables et rechercher des colonnes/entrées sensibles (utilisateurs, mots de passe, clés). Avec des privilèges élevés, on peut exécuter des commandes côté serveur (ce qui représente un risque important si compromis).


⚙️ Outils utiles pour interagir avec les services courants

Se familiariser avec les utilitaires par défaut est essentiel ; la communauté produit aussi des outils open‑source qui accélèrent le travail et qu'il vaut la peine d'apprendre.


🔍 Dépannage général

Selon la version de Windows ou Linux (ou la configuration du service cible), des problèmes d'accès peuvent survenir. Causes fréquentes :

  • Authentification (identifiants incorrects)

  • Privilèges (droits insuffisants)

  • Connectivité réseau

  • Règles de pare‑feu

  • Support du protocole (chiffrement, version)

Analysez les codes d'erreur et recherchez dans la documentation officielle ou sur les forums ; les messages d'erreur sont souvent exploitables pour trouver des contournements.


🔐 Sections d'inventaire à inclure lors d'une analyse de partage de fichiers (check‑list)

Ajoutez toujours ces sections lors de vos rapports/notes pour avoir une vision complète de la cible.

  • OS Version — Comment récupérer : systeminfo (Windows) ou lsb_release -a / cat /etc/os-release (Linux).

  • Kernel Versionver (Windows) ou uname -r (Linux).

  • Running Servicesnetstat -anbo / Get-Service (Windows) ou ss -tulnp / systemctl list-units --type=service (Linux).

  • Utilisateursnet user (Windows) ou cat /etc/passwd (Linux).

  • Groupesnet localgroup (Windows) ou cat /etc/group (Linux).

  • Drives / Points de montagewmic logicaldisk get name (Windows) ou mount / df -h (Linux).

  • Filesystemsfsutil fsinfo volumeinfo <drive> (Windows) ou lsblk -f (Linux).

  • Fichiers temporaires — explorer %TEMP% (Windows) ou /tmp (Linux).

  • Fichiers cachés — vérifier attributs sous Windows (attrib) et fichiers commençant par . sous Linux.

  • Services SMB/NFS en écoutesmbstatus, rpcinfo -p (Linux) ou inspection des ports 139/445/2049.

  • Permissions des partages — vérifiez ACLs et permissions NTFS ou POSIX.


📚 Ressources utiles

  • Documentation smbclient, cifs-utils, mount.cifs.

  • Microsoft Docs — sqlcmd, sql server management.

  • MySQL Documentation — mysql cli.

  • Repositories Impacket & CrackMapExec sur GitHub.

  • DBeaver — page GitHub releases pour les paquets.

  • Guides & forums (StackOverflow, ServerFault) pour les erreurs spécifiques.


Last updated