Les attaques par shell constituent une menace importante pour la sécurité en ligne, les attaquants utilisant des scripts malveillants pour prendre le contrôle des serveurs et manipuler les sites web. Il peut être difficile de détecter ces agressions secrètes. C’est pourquoi il est essentiel de les comprendre et de s’en défendre efficacement.
Dans ce guide complet, nous allons disséquer la nature des attaques par shell web, explorer leur fonctionnement, examiner les différents types d’attaques, fournir des exemples concrets et vous montrer comment prévenir une attaque par shell web.
Table des matières
- Qu’est-ce qu’une attaque par Web Shell ?
- Comment fonctionnent les attaques par Shell Web ?
- Types de shells Web
- Exemples d’attaques par Shell Web
- Pourquoi les attaques par shell Web sont-elles utilisées ?
- Comment détecter les attaques de type Web Shell ?
- Comment bloquer les injections Web Shell ?
Qu’est-ce qu’une attaque par Web Shell ?
Une attaque de type “web shell” est une cyberattaque par laquelle un pirate exploite les vulnérabilités d’un site web ou d’une application web pour télécharger un script malveillant (connu sous le nom de “web shell”) sur le serveur. Ce shell web permet à l’attaquant d’accéder et de contrôler le site web ou le serveur concerné.
En cybersécurité, un “shell” désigne une interface de ligne de commande qui permet aux utilisateurs d’interagir avec un ordinateur ou un serveur en saisissant des commandes. Le terme “web shell” est dérivé de la combinaison de “web” (indiquant son association avec les serveurs web) et de “shell” (indiquant sa fonctionnalité d’interface de ligne de commande).
Cette attaque opère sous la forme de scripts côté serveur apparemment légitimes. Vous pouvez rester dans l’ignorance, car ces scripts se cachent dans votre système et donnent au pirate un accès illimité. Les attaques par shell Web permettent à l’attaquant de naviguer librement dans vos répertoires accessibles par le Web, de manipuler des fichiers et même de créer une porte dérobée pour des exploits futurs.
Les cybercriminels conçoivent des attaques par shell web dans un langage que les serveurs web ciblés peuvent interpréter, tel que PHP, ASP, JSP ou même Perl. Ils veillent à ce que ces scripts soient difficiles à détecter et puissent échapper aux systèmes de sécurité. Les shells Web peuvent cibler à la fois les serveurs locaux et les serveurs orientés vers l’internet.
Comment fonctionnent les attaques par Shell Web ?
Imaginez qu’une application web tourne sur votre serveur. Un attaquant identifie une vulnérabilité, par exemple un champ de saisie non nettoyé ou un logiciel obsolète. En utilisant ce point faible, ils téléchargent un script malveillant camouflé en fichier inoffensif. Ce script s’exécute sur votre serveur et permet à l’attaquant d’exécuter des commandes à distance.
Une fois installé, le shell web permet à l’attaquant de manipuler votre serveur. Ils peuvent exécuter des commandes, voler des données sensibles ou même utiliser votre serveur comme base de lancement pour d’autres attaques. L’étendue des dommages est vaste – du vol de données et de la dégradation de sites à la prise de contrôle complète d’un serveur.
La nature furtive des shells web les rend particulièrement dangereux. Ils peuvent être dormants, ce qui rend leur détection délicate. L’attaquant peut également modifier le script de l’interpréteur de commandes pour contourner les mesures de sécurité standard.
Ils visent à maintenir un accès à long terme, en veillant à ce que la coquille web ne soit pas détectée. Ils peuvent périodiquement mettre à jour le script ou changer son emplacement pour échapper à la surveillance de la sécurité.
Types de shells Web
Parcourons maintenant les différents types de coquilles web. Ces connaissances vous aideront à anticiper les vulnérabilités potentielles et à élaborer des stratégies de défense plus solides.
Shells Web PHP
Les shells web PHP sont essentiellement des scripts malveillants qui permettent un accès et un contrôle non autorisés sur un serveur web. Les pirates les utilisent largement en raison de la popularité de PHP dans le développement web.
Ils peuvent être simples, se limitant à quelques lignes de code, ou complexes, cachés dans des fichiers légitimes pour échapper à la détection.
WSO (Web Shell by Orb) et C99 sont deux exemples courants, offrant aux pirates un riche ensemble de fonctionnalités, notamment la gestion de fichiers, l’exécution de commandes et l’interaction avec des bases de données.
Shells Web ASP
Principalement utilisés dans les Active Server Pages de Microsoft, les shells web ASP sont des scripts malveillants que les attaquants injectent dans un serveur web cible pour obtenir un accès à distance.
Une attaque réussie à l’aide de shells web ASP peut entraîner le vol de données, des dommages au serveur ou une prise de contrôle complète du système. Votre serveur devient une marionnette, contrôlée par un attaquant situé à des kilomètres de là. Voici quelques exemples d’ASP populaires :
- China Chopper : Communément associé aux acteurs chinois de la menace, il est connu pour sa petite taille et sa facilité d’utilisation. Malgré sa simplicité, il offre de puissantes fonctionnalités pour l’exécution de commandes à distance.
- ASPXSpy: un shell web qui permet aux attaquants de charger, télécharger et exécuter des fichiers malveillants sur un serveur compromis. Il fournit une interface basée sur le web pour gérer le système concerné.
- Scanner IIS 6.0: Ce code shell web cible spécifiquement les serveurs IIS 6.0, offrant aux attaquants la possibilité d’énumérer des fichiers, d’exécuter des commandes et de mener des activités de reconnaissance.
Shells Web JSP
Les shells web JSP, abréviation de Java Server Pages, fonctionnent en manipulant le langage de codage JSP pour accéder à un serveur. Les attaquants habiles installent des shells web pour commander et contrôler le processus du serveur web.
Les shells web JSP plus sophistiqués peuvent inclure des fonctions telles que le chargement et le téléchargement de fichiers, voire des interfaces graphiques pour simplifier l’interaction avec le serveur compromis. Les attaquants peuvent tirer parti de ces capacités pour naviguer dans le système de fichiers, télécharger des données sensibles ou renforcer leur contrôle.
Shells Web Perl
Les shells web Perl sont des scripts malveillants écrits dans le langage de programmation Perl, conçus pour compromettre les serveurs web. Les attaquants injectent ces scripts dans des serveurs vulnérables afin d’obtenir un accès et un contrôle non autorisés. Une fois intégrés, les shells web Perl permettent aux attaquants d’exécuter des commandes à distance.
Par exemple, un shell web Perl peut se déguiser en un fichier innocent, comme une image. Une fois téléchargé sur un serveur sensible, il ouvre une porte dérobée, permettant à l’attaquant d’interagir avec le serveur à distance. Ces shells web comprennent souvent des fonctions permettant d’exécuter des commandes, de naviguer dans le système de fichiers et de transférer des fichiers. En tirant parti de la flexibilité de Perl, les attaquants peuvent dissimuler leur comportement malveillant.
Shells Web Python
Les shells web Python se déguisent souvent en utilisant des noms de fichiers innocents, tels que “image.jpg” ou “index.php”, pour se fondre dans les fichiers légitimes d’un serveur. Ils peuvent être injectés dans des applications web vulnérables par divers moyens, tels que l’exploitation de champs de saisie mal sécurisés ou de fonctionnalités de téléchargement de fichiers.
Les attaquants peuvent utiliser des frameworks Python bien connus comme Flask ou Django pour créer des shells web qui ressemblent à des applications web bénignes mais qui, en réalité, permettent une entrée et un contrôle non autorisés. Ces scripts comprennent généralement des fonctionnalités permettant d’exécuter des commandes système, de naviguer dans le système de fichiers et d’interagir avec le serveur à distance.
Exemples d’attaques par Shell Web
Ces deux exemples d’attaques par shell web vous donneront un aperçu de la manière dont les attaquants exploitent les vulnérabilités d’un serveur web, et des conséquences désastreuses qui peuvent s’ensuivre.
Hachoir de Chine
Lors d’une récente cyberattaque, la coquille web China Chopper a pris pour cible huit fournisseurs d’hébergement web australiens. Ces fournisseurs ont été victimes de failles de sécurité dues à un système d’exploitation obsolète, en l’occurrence Windows Server 2008. En exploitant cette vulnérabilité, les attaquants ont relié les serveurs web compromis à un pool de minage de Monero, réussissant à miner environ 3868 AUD de pièces de monnaie Monero.
En outre, en 2021, une version du shell web China Chopper, programmée en JScript, a joué un rôle crucial dans les opérations du groupe Hafnium Advanced Persistent Threat. Ce groupe a exploité quatre vulnérabilités de type “zero-day” dans Microsoft Exchange Server, contribuant ainsi à l’importante violation de données de 2021 dans Microsoft Exchange Server.
WSO Web Shell
Il s’agit d’un autre exemple marquant d’un shell web basé sur PHP. L’interpréteur de commandes Web Wso offre une interface conviviale et un arsenal de fonctionnalités, telles que la gestion de fichiers, l’exécution de commandes et l’exploitation de bases de données. Il s’est appuyé sur de nombreuses attaques, dont la violation massive des données d’Equifax en 2017.
Equifax, l’une des principales agences d’évaluation du crédit aux États-Unis, a été victime d’une violation qui a exposé les données confidentielles d’environ 147 millions d’Américains.
Les attaquants ont exploité une vulnérabilité dans le cadre d’application web Apache Struts, pour laquelle un correctif était disponible mais n’avait pas été appliqué par Equifax. L’entreprise a accepté un règlement pouvant aller jusqu’à 700 millions de dollars pour résoudre des enquêtes et des poursuites fédérales et étatiques.
Pourquoi les attaques par shell Web sont-elles utilisées ?
Voici dix raisons pour lesquelles les pirates utilisent des attaques de type “web shell” :
- Accès non autorisé: Les shells Web offrent aux attaquants une porte dérobée pour accéder à un serveur Web.
- Vol de données: Les attaquants peuvent utiliser des shells web pour voler des données sensibles stockées sur le système.
- Exécution de commandes: Les shells Web permettent l’exécution de commandes arbitraires sur le serveur exposé, ce qui permet aux pirates de manipuler des fichiers, d’installer des logiciels malveillants ou d’effectuer d’autres actions malveillantes.
- Déni de service distribué (DDoS) : Les Webshells permettent de lancer des attaques DDoS en inondant de trafic des sites web ou des services ciblés, ce qui les rend indisponibles.
- Maintien de la persistance: Un script web shell constitue un point d’accès persistant pour les attaquants, leur permettant de contrôler le serveur même si les derniers correctifs de sécurité sont en place.
- Cryptojacking: Les attaquants peuvent utiliser des shells web pour installer des logiciels tiers sur des serveurs, utilisant les ressources du serveur pour extraire des crypto-monnaies à l’insu du propriétaire ou sans son consentement.
- Recrutement d’un réseau de zombies: Les shells Web peuvent transformer des serveurs piratés en éléments d’un botnet, qui peut mener diverses activités malveillantes, y compris d’autres attaques et la distribution de spam.
Comment détecter les attaques de type Web Shell ?
La détection d’une attaque par shell web repose sur l’identification d’un comportement inhabituel du serveur, tel que des schémas de trafic réseau inattendus ou des modifications de fichiers système. Les attaques par shell laissent généralement certains signes révélateurs. La mise en œuvre de la validation des entrées utilisateur est cruciale pour contrer les vulnérabilités liées à l’inclusion de fichiers, tant au niveau local qu’à distance.
Indicateurs communs du Shell Web
Une augmentation soudaine des données envoyées par votre serveur peut indiquer une attaque de type “web shell”. Les shells Web modifient souvent les fichiers système, de sorte que des changements inattendus peuvent constituer un avertissement. Si votre serveur est plus lent ou instable, il pourrait faire l’objet d’une telle attaque.
Surveillez régulièrement votre serveur pour détecter les changements inattendus. Les scripts shell laissent souvent des traces dans les journaux du serveur. Des schémas d’activité inhabituels peuvent indiquer des injections web shell. L’enchaînement de web shells est une autre tactique utilisée par les attaquants pour empêcher la détection des web shells.
Pour empêcher l’installation d’un shell web, analysez les journaux du serveur et utilisez des outils spécialisés. L’analyse des fichiers journaux du serveur peut fournir des informations et des solutions précises après l’attaque.
Pourquoi les shells Web sont-ils difficiles à détecter ?
La principale difficulté de la détection des shells web réside dans la subtilité des scripts shells web intégrés dans des fichiers légitimes. C’est comme chercher une aiguille dans une botte de foin numérique.
En outre, les logiciels malveillants de type “web shell” se présentent souvent comme un processus normal sur un logiciel de serveur web, se fondant parfaitement dans les opérations régulières. Cela rend les rencontres avec des shells web difficiles à repérer sans solutions avancées de détection et de réponse (EDR) des points finaux.
Les “Web shells” utilisent des communications cryptées, ce qui permet de masquer leurs activités. Ils se modifient et se déguisent pour éviter d’être détectés. De nombreuses solutions ne peuvent pas détecter les techniques sophistiquées d’injection d’un shell web.
En outre, les développeurs de shells web utilisent fréquemment des techniques polymorphes, modifiant dynamiquement la structure et l’apparence du code sans changer sa fonctionnalité de base.
Cette capacité de morphing complique la tâche des méthodes traditionnelles de détection basées sur les signatures, car la coquille web peut présenter un “visage” différent à chaque fois.
Outils de détection des attaques du shell Web
Les logiciels antivirus modernes et les outils ci-dessous vous aideront à détecter les coquilles web. Utilisez-les ensemble pour obtenir le meilleur diagnostic et les meilleurs résultats.
- Un pare-feu d’application web (WAF): Surveille et filtre le trafic HTTP pour bloquer les tentatives malveillantes, y compris les injections de shell. Exemples : Open Appsec, Cloudflare.
- Outils d’analyse et d’audit de la sécurité: Identifier et corriger les vulnérabilités des shells web avec des outils tels que ZAP Attack Proxy et Acunetix.
- Systèmes de surveillance de l’intégrité des fichiers (FIM): Détectent les modifications non autorisées de fichiers critiques, signalant une activité potentielle de l’interpréteur de commandes Web. Exemples : Tripwire et OSSEC.
Outre ces outils, il convient de respecter les meilleures pratiques en matière de sécurité des applications web, telles que les mises à jour régulières, les contrôles d’accès et les examens de sécurité.
Comment bloquer les injections Web Shell ?
En règle générale, une attaque par shell commence par l’exploitation d’une vulnérabilité dans le logiciel de votre serveur, ce qui lui permet d’injecter un code malveillant. Ils peuvent le faire par le biais d’une injection SQL, où ils manipulent les requêtes de votre base de données, ou d’une attaque de type Cross-Site Scripting (XSS), où ils injectent des scripts dans des sites web dignes de confiance. Une autre faille est constituée par les interfaces d’administration exposées qui donnent accès à des fonctionnalités administratives sans qu’il soit nécessaire de se connecter.
Pour les bloquer, vous devez régulièrement mettre à jour et corriger votre logiciel et utiliser un pare-feu d’application web. Veillez également à utiliser des pratiques de codage sécurisées afin de prévenir tout point faible potentiel que les attaquants pourraient exploiter. Les systèmes de gestion de contenu populaires et les modules complémentaires tels que les plugins WordPress sont des portes d’entrée fréquentes pour les attaquants.
Il est également important d’utiliser la validation côté serveur pour bloquer les injections potentielles. La validation côté serveur vérifie les données envoyées à votre serveur par le navigateur de l’utilisateur.
Choisissez un moyen sûr de communiquer avec les programmes informatiques – choisissez une API (interface de programme d’application) qui n’utilise pas l’interprète (un programme qui exécute directement les instructions écrites dans un langage de programmation ou de script) ou optez pour un système de type menu (interface paramétrée).
En conclusion
En vous familiarisant avec les attaques de type “web shell”, vous avez renforcé votre sensibilisation à la cybersécurité et vous êtes désormais mieux équipé pour assurer la sécurité de vos systèmes.
Pour lutter contre les cybermenaces incessantes, il faut être proactif et garder une longueur d’avance. Pour stopper les attaques de type “web shell”, il faut mettre en place des mécanismes de sécurité solides, utiliser les outils d’analyse les plus récents et donner la priorité à des mises à jour régulières du système.
Maintenant que vous savez comment prévenir une attaque par shell web, vous pouvez améliorer considérablement vos applications web et protéger les utilisateurs et les données contre les failles de sécurité et les pertes financières.
Economisez 10% sur les certificats SSL en commandant aujourd’hui!
Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10