Ce tutoriel a été rédigé à la suite d'une session de diagnostic et de nettoyage de sécurité réalisée sur un hébergement OVH mutualisé. L'objectif est de comprendre, pas à pas, ce que signifient chaque commande et chaque concept abordés lors de cette intervention.
1. SSH : qu'est-ce que c'est vraiment ?
L'analogie du téléphone sécurisé
Imaginez que votre serveur est une salle des machines à laquelle vous n'avez pas accès physiquement. FTP, c'est comme glisser des papiers sous la porte — vous pouvez déposer ou récupérer des fichiers, mais vous ne pouvez pas interagir avec ce qui se passe à l'intérieur.
SSH, c'est comme avoir un téléphone sécurisé, chiffré, directement relié à cette salle. Vous pouvez donner des ordres, lancer des programmes, modifier des fichiers, lire des logs — tout ce qu'un technicien ferait s'il était physiquement présent.
Le chiffrement
SSH signifie Secure Shell. Le mot « secure » est important : toute communication entre votre ordinateur et le serveur est chiffrée. Même si quelqu'un intercepte le trafic réseau, il ne voit que du bruit incompréhensible.
Client et serveur
SSH fonctionne en mode client/serveur :
- Le serveur SSH tourne en permanence sur le serveur OVH, à l'écoute des connexions (port 22 par défaut)
- Le client SSH est le programme que vous lancez sur votre ordinateur — sous Windows 10/11, il est intégré nativement dans le Terminal
2. La connexion : décryptage de ce que nous avons tapé
La commande de connexion
ssh
| Partie | Signification |
|---|---|
ssh |
Lance le client SSH |
cfdtinteht-serge |
Votre identifiant sur le serveur OVH |
@ |
Séparateur "utilisateur @ machine" |
ssh01.cluster111.gra.hosting.ovh.net |
L'adresse du serveur SSH OVH (datacenter Gravelines) |
L'erreur du :22
Le :22 collé au nom d'hôte est la syntaxe utilisée par les navigateurs web et les clients FTP, mais pas par SSH. En SSH, le port se spécifie avec l'option -p :
ssh -p 22
Comme 22 est le port par défaut, on ne le précise généralement pas du tout.
Le prompt de connexion réussie
(php/8.2/production/stable64) ~ $
cfdtinteht-serge: vous êtes connecté en tant que cet utilisateur(php/8.2/production/stable64): OVH vous informe de la version PHP active~: vous êtes dans votre répertoire personnel$: le serveur attend votre prochaine commande
3. Les permissions Unix : comprendre le 0111
Le système de permissions
Chaque fichier ou dossier Unix possède des permissions appliquées à trois catégories : propriétaire, groupe, autres. Chaque catégorie dispose de trois droits :
| Lettre | Valeur | Signification sur un dossier |
|---|---|---|
r |
4 | Lire — lister le contenu |
w |
2 | Écrire — créer/supprimer des fichiers dedans |
x |
1 | Exécuter — entrer dans le dossier / le traverser |
On additionne les valeurs : 7 = rwx, 5 = r-x, 1 = --x.
Pourquoi 0111 est dangereux
0111 = --x--x--x = tout le monde peut traverser le dossier, personne ne peut lire ni écrire. Votre client FTP ne peut pas lister les fichiers, vous ne pouvez pas supprimer le dossier, vous ne pouvez pas modifier les permissions depuis FTP. C'est une technique utilisée par les attaquants pour rendre leur code plus difficile à supprimer.
La commande chmod
chmod signifie change mode. Elle modifie les permissions :
chmod 755 /homez.533/cfdtinteht/www/api/language/cddbafc1d1d63a1b5983231ae33fcc25
755 = propriétaire : 7 (rwx), groupe : 5 (r-x), autres : 5 (r-x) — c'est la permission standard pour un dossier.
Pour corriger tous les dossiers en 0111 d'un coup :
find ~/www -type d -perm 0111 -exec chmod 755 {} \;
4. L'audit de sécurité : les commandes utilisées
Trouver les dossiers aux noms suspects
find ~/www -type d -name "[0-9a-f]*" 2>/dev/null
Cette commande cherche tous les dossiers dont le nom commence par un caractère hexadécimal. Les dossiers nommés en hash MD5 correspondent souvent à du cache légitime ou, comme ici, à des dossiers déposés par des attaquants. Le 2>/dev/null redirige les erreurs vers la corbeille.
Trouver les fichiers cachés
find ~/www -name ".*" -type f 2>/dev/null
Sous Unix, un fichier dont le nom commence par un . est caché — il n'apparaît pas dans un listing classique ni dans la plupart des clients FTP. Le fichier malveillant .tmp était précisément de ce type.
Chercher des signatures de malware
grep -r "thapi1.com" ~/www --include="*.php" -l
grep -r cherche récursivement dans tous les fichiers. -l affiche uniquement les noms de fichiers. Ici on cherche la signature du serveur de commande du malware.
Analyser les fichiers PHP récemment modifiés
find ~/www -name "*.php" -newer ~/www/configuration.php -mtime -60 2>/dev/null
-newer ~/www/configuration.php: modifié plus récemment queconfiguration.php-mtime -60: modifié dans les 60 derniers jours
5. Ce que nous avons trouvé et ce que ça signifie
Le dossier cddbafc1d1d63a1b5983231ae33fcc25
Situé dans /api/language/, ce dossier au nom de hash MD5 est caractéristique d'un webshell déposé par un attaquant. Les permissions 0111 avaient été positionnées pour empêcher sa suppression. Une fois chmod 755 appliqué, nous avons pu le supprimer avec rm -rf.
Le fichier .tmp dans libraries/
C'était le malware principal : un script PHP de type SEO cloaking qui détectait Googlebot et lui servait du contenu frauduleux depuis un serveur externe, tout en restant invisible aux visiteurs humains.
6. La session SSH en résumé : ce que nous avons fait
| Étape | Commande | Objectif |
|---|---|---|
| Connexion | ssh ... |
Accéder au serveur |
| Trouver dossiers bloqués | find ~/www -type d -perm 0111 |
Identifier le dossier en 0111 |
| Corriger permissions | chmod 755 /chemin/du/dossier |
Débloquer la suppression |
| Supprimer le dossier | rm -rf /chemin/du/dossier |
Éliminer le webshell |
| Audit dossiers suspects | find ~/www -type d -name "[0-9a-f]*" |
Chercher d'autres anomalies |
| Audit fichiers cachés | find ~/www -name ".*" -type f |
Trouver le .tmp malveillant |
| Analyse du .tmp | cat ~/www/libraries/.tmp |
Lire le contenu du malware |
| Suppression du .tmp | rm ~/www/libraries/.tmp |
Éliminer le malware |
| Vérification propagation | grep -r "thapi1.com" ~/www --include="*.php" -l |
S'assurer de l'isolation |
| Déconnexion | exit |
Fermer proprement la session |
7. Ce que SSH permet que FTP ne peut pas faire
| Action | FTP | SSH |
|---|---|---|
| Déposer/récupérer des fichiers | ✅ | ✅ |
| Modifier des permissions bloquantes | ❌ | ✅ |
| Chercher du texte dans des milliers de fichiers | ❌ | ✅ |
| Voir les fichiers cachés (.htaccess, .tmp…) | ⚠️ Parfois | ✅ Toujours |
| Supprimer des dossiers imbriqués d'un coup | ❌ | ✅ |
| Lire les logs serveur | ❌ | ✅ |
SSH est un outil de diagnostic et d'intervention que tout gestionnaire de site sérieux devrait maîtriser. Sans SSH, le malware .tmp serait resté indétectable, et le dossier 0111 aurait résisté à toute tentative de suppression via FTP.
Articles liés :
- Se connecter en SSH à son hébergement OVH — guide débutant
- Permissions de fichiers et malware caché : l'attaque Joomla décryptée
Besoin d'un audit de sécurité de votre site Joomla ? Contactez web54.fr pour une analyse complète de votre hébergement.

