ZeroShell est une distribution Linux faisant office de firewall/routeur orienté sécurité. SYNETIS s’est intéressé à cette solution pour ses maquettages internes et PoC. Après une analyse du produit, au même titre que la précédente analyse des firewall/routeur pfSense et m0n0wall, il s’avère que plusieurs vulnérabilités jugées critiques y ont été décelées.

Zeroshell est une distribution Linux créée dans le but d’être très complète conçue pour fournir des services réseaux sécurisés dans un réseau local. Elle a été développée par Fulvio Ricciardi pour être totalement administrable via une interface web. Fournie sous forme de Live CD, elle s’initialise en insérant le CD dans la machine cible et en la redémarrant. La connexion à l’interface d’administration se fait via un navigateur web pour ensuite configurer les services réseaux.

Comme la plupart des distributions firewall/routeur orientées sécurité, ZeroShell fournit un grand nombre de fonctionnalités :

  • Routeur statique.
  • Routeur NAT (Network address translation) pour pouvoir utiliser des adresses IP privées masquées derrière l’adresse IP publique du fournisseur d’accès Internet. La redirection de ports associé à l’adresse IP publique vers une IP et un port d’un poste du réseau local est possible.
  • Protocole de routage RIPV2 (Routing information protocol) pour configuration dynamique des tables de routage.
  • Pare-feu, pour filtrage des paquets avec fonction SPI (Stateful Packet Inspection) pour filtrer en fonction de l’état de la connexion.
  • Captive portal dont le but est d’autoriser l’accès au réseau via une authentification web adossée à un serveur Kerberos. Cette fonction est très utile pour sécuriser un réseau sans demander aucune configuration sur les postes clients.
  • VPN LAN-to-LAN, pour interconnecter deux réseaux locaux via Internet en encapsulant les trames Ethernet.
  • VPN Host-to-LAN, pour permettre à des postes clients de se connecter au réseau local via internet.
  • Authentification Radius, pour autoriser l’accès au réseau via des points d’accès Wi-Fi.
  • Serveur DNS multi-zones, pour définir sa propre zone DNS et les enregistrements associés.
  • Client DynDNS si on a besoin d’un nom DNS pour atteindre le routeur.
  • Serveur DHCP pour assigner automatiquement des adresses IP aux postes clients qui le demandent.
  • Qualité de service, pour hiérarchiser la priorité et même la bande passante attribuée à chacun des types de trafic qui traversent Zeroshell. Configuré en mode pont, Zeroshell est ainsi très utile même pour une connexion internet familiale pour donner la priorité aux applications voix (de type Skype) et chat sur d’autres applications (téléchargement etc…).
  • VLAN à utiliser avec des switches supportant les VLAN. On peut ainsi par exemple dans un campus, créer un VLAN dédié aux points d’accès WIFI et centraliser la gestion de l’authentification par captive portal sur Zeroshell.
  • Administration web (sécurisé par filtrage sur IP),
  • Accès SSH (sécurisé par filtrage sur IP).
  • Serveur proxy avec fonction de proxy transparent, intégrant un anti-virus.
  • équilibrage de charge et tolérance de pannes par l’usage de plusieurs connexion internet.
  • Pont 802.1d avec protocole Spanning Tree pour éviter les boucles dues aux chemins redondants;
  • Connexion UMTS/HSDPA par modem 3G;

Après analyse de la solution, découverte de vulnérabilités par le collaborateur de SYNETIS, l’auteur de cette distribution a été contacté. Suite à plusieurs échanges avec lui et après quelques semaines, un patch de sécurité critique vient d’être release. Les vulnérabilités décelées sont de type :

  • Local File Disclosure : possibilité de lire le contenu des fichiers sur filesystem sans être authentifié auprès du routeur.
  • Administrator token generation : un jeton de session administrateur peut être généré arbitrairement par un assaillant, sans pour autant connaître les crédentiels d’accès à l’interface d’administration.
  • Full reverse-shell : Une fois un token d’administration généré, il est possible d’obtenir un reverse-shell complet sur la distribution
  • Admin password retrieval in plaintext : le mot de passe du compte d’administration peut être récupéré en clair sans authentification préalable.

Le collaborateur de SYNETIS a réalisé cette vidéo de démonstration/PoC pour illustrer ces différentes vulnérabilités : [youtube]https://www.youtube.com/watch?v=fgbfVBr65e4[/youtube] SYNETIS vous encourage vivement à mettre à jour vos implémentations de ZeroShell vers la dernière en date 2.0RC3. Un patch de mise à jour est également disponible. Nous remercions au passage Fulvio Ricciardi pour le travail qu’il effectue au maintient de cette distribution et pour son professionnalisme.

Sources & ressources :

Yann

Consultant Sécurité