Les web shells sont des scripts malveillants qui permettent aux attaquants d’obtenir un accès persistant aux serveurs web compromis, leur donnant ainsi la possibilité d’exécuter des commandes et de contrôler le serveur à distance. Ces scripts exploitent souvent des vulnérabilités telles que les injections SQL, l’inclusion de fichiers distants (RFI) et d’autres types de failles pour s’introduire.
Une fois déployés, les web shells permettent aux attaquants de manipuler le serveur, ce qui peut entraîner le vol de données, la défiguration de sites web ou l’utilisation du serveur comme plateforme de lancement pour d’autres attaques. En raison de leur discrétion et de leur polyvalence dans divers langages de programmation (PHP, Python, Ruby, ASP), les web shells représentent une menace majeure pour la sécurité des sites web.
Comprendre les Web Shells
Un web shell est un script ou un morceau de code malveillant qu’un attaquant télécharge sur un serveur web compromis pour faciliter le contrôle à distance. Cet accès par porte dérobée permet aux attaquants d’exécuter des commandes sur le serveur, de modifier des fichiers et d’accéder aux bases de données, leur donnant ainsi un contrôle non autorisé sur le serveur.
Il est important de mentionner que toute technologie, en raison de mauvaises pratiques de codage, peut permettre aux attaquants de télécharger des web shells. Pour cette raison, nous recommandons nos services pour aider à éviter ces situations nuisibles causées par des acteurs malveillants.
Comment un web shell se retrouve-t-il sur mon site web ou serveur ?
Il existe plusieurs façons pour les attaquants de télécharger ce genre de portes dérobées sur un serveur. La méthode la plus courante est lorsque l’attaquant découvre une vulnérabilité qui lui permet d’exécuter du code, de télécharger des fichiers, ou d’obtenir un accès non autorisé au serveur web. Les attaquants peuvent exploiter divers types de vulnérabilités, l’une des plus fréquentes étant :
- Exécution de Code à Distance : Cette vulnérabilité permet à un attaquant d’interagir directement avec le serveur. Elle peut se produire en raison de bibliothèques obsolètes ou de mauvaises pratiques de codage qui permettent l’exécution de code malveillant.
Les attaquants téléchargent ces portes dérobées pour maintenir l’accès et interagir avec le serveur, ce qui leur permet potentiellement d’exécuter des commandes sur le système d’exploitation via le web shell.
Comment fonctionnent les web shells ?
Le principal objectif d’un web shell est d’interagir avec le serveur et ses fichiers. C’est le but principal et l’aspect central. Avec cela en tête, voici un exemple de processus qui pourrait offrir une meilleure compréhension de cela :
- Identification de la Vulnérabilité
- L’attaquant identifie les vulnérabilités sur le site web ou le serveur cible, telles que l’injection SQL, l’inclusion de fichiers distants, le téléchargement de fichiers, etc.
- Exploitation
- En exploitant la vulnérabilité identifiée, il obtient un accès non autorisé au serveur. Cela peut entraîner l’exécution de code malveillant, le téléchargement de fichiers, ou même la manipulation de la configuration du serveur.
- Téléchargement du Web Shell
- En utilisant l’accès obtenu, l’attaquant télécharge le script web shell sur le serveur. En général, ce script sera dissimulé sous un autre fichier légitime.
- Établissement de l’accès à distance
- Le web shell sert de porte dérobée qui permet à un attaquant d’exécuter des commandes à distance, de manipuler des fichiers et d’accéder aux bases de données sur le serveur.
L’attaquant envoie des commandes via le web shell au serveur, ce qui peut inclure l’exfiltration de données, la manipulation du serveur, ou la réalisation d’attaques supplémentaires depuis le serveur déjà compromis.
Types de web shell
Il existe plusieurs types de web shells, mais les plus connus sont C99, WSO et b374k. Voici quelques exemples de captures d’écran de ces web shells.
De nos jours, ces types de web shells sont principalement utilisés pour l’exfiltration de données ou le pivotement. Cependant, il y a quelques années, la défiguration était courante, permettant aux attaquants de modifier la page principale et d’afficher tout message. Des copies de ces défigurations peuvent être trouvées sur des sites web populaires comme Zone-H.
Lorsque des groupes ou des hacktivistes pirataient un site, ils enregistraient souvent la défiguration sur Zone-H pour obtenir de la reconnaissance et s’assurer que le piratage ne soit pas oublié. Même après plusieurs années, certains attaquants continuent d’utiliser des web shells pour modifier le fichier index.html.
Comment les détecter?
L’approche doit être proactive, et non réactive. Au lieu d’attendre qu’un attaquant compromette le serveur web, des actions telles que les tests de pénétration, l’analyse du code source et le renforcement des serveurs web devraient être mises en place pour prévenir ces types de situations. Si un web shell est détecté sur un serveur web, la meilleure démarche est de vérifier minutieusement l’ensemble du serveur pour détecter toute anomalie, comme des services inhabituels ou des noms de fichiers suspects. Si vous utilisez des dépôts ou des systèmes de gestion de versions comme Git, vous pouvez comparer chaque fichier pour identifier les modifications éventuelles.
N’oubliez pas que nous disposons de professionnels qualifiés qui peuvent vous aider à détecter les menaces dans votre logiciel, vous permettant ainsi d’éviter ces situations sources de maux de tête.