Linux,  Sécurity

Backtrack – Evaluation de vulnérabilité

 

Nous continuons la série d’articles consacrés à Backtrack.

Rappelons en quelques mots les objectifs de ces quelques articles. Après avoir testé la distribution pendant quelques semaines, j’ai jugé sympa de partager quelques ressources. Chaque première partie d’un article permet de comprendre comment les pirates informatiques font pour pénétrer un système et pour obtenir des informations précieuses. La deuxième partie quant à elle explique comment éviter ce genre d’attaque, et donnes quelques indications sur la manière de protéger un réseau et un système.

 

Nous avons vu ensemble comment se déroulait la 1ère étape : la collecte d’informations.

Clairement, cette partie nous a fait comprendre comment identifier la cible :

  • Son matériel (si possible)
  • Son système d’exploitation (et si possible sa version)
  • Ses services (si possible avec leur version)
  • Pour les applications Web : leur langage de programmation
  • Pour les bases de données : leur système de gestion de base de données

Ces informations recueillies ne sont pas perdues, bien au contraire. Nous allons maintenant les passer en revue pour détecter la moindre faille qui pourrait être exploitable par la suite.

 

Les moyens engagés pour détecter les vulnérabilités

 

  • Scanner de vulnérabilité

Nessus : Nous l’avions dit dans l’introduction consacrée à la distribution Backtrack, il est  incontournable dans le monde de la sécurité.

Avant toute chose, il est nécessaire d’obtenir une clé de licence (gratuite). Une fois reçue dans votre boite mail, exécutez la commande suivante :

sudo /opt/nessus/bin/nessus-fetch --register xxxx-xxxx-xxxx-xxxx-xxxx
sudo /opt/nessus/bin/nessus-fetch --security-center

Il faut maintenant créer un utilisateur interne au logiciel avec lequel vous vous loguerez pour faire des audits :

sudo /opt/nessus/sbin/nessus-adduser

Une fois configuré, mettez les plugins à jour avec la commande

nessus-update-plugins

Nous pouvons maintenant accéder au logiciel depuis un navigateur web à l’URL : http://localhost:8834

Renseignez le login / mot de passe configuré deux étapes plus haut. Vous avez un menu supérieur qui vous permet de gérer les utilisateurs, les politiques d’audit, les audits, et les rapports d’audit.

Dans un scénario classique, nous pouvons démarrer un audit directement en utilisant une politique par défaut. Dans mon scénario, nous avions détecté que la victime était un ordinateur disposant du système d’exploitation Windows XP SP3, ainsi que le partage de fichier activé. Créer un nouveau “Scan“, puis choisissez une des politiques par défaut (pour mon test, je choisis “Internal Network Scan“). Je n’oublie pas de préciser l’adresse IP de la cible dans “Scan Targets“. Je clique sur “Launch scan“, et j’attends. Pour suivre en temps réel l’audit, rendez-vous dans le menu “Reports“. Cliquez deux fois sur le scan en cours, et découvrez les informations récoltées, avec leurs précisions.

Une fois le test terminé, les failles sont classées par importance. Sachez que si vous trouvez des failles dans la colonne “High“, il est certain que votre système est hautement vulnérable et facilement accessible depuis l’extérieur.

Dans notre étude de cas, nous avons découvert les vulnérabilités concernant le serveur SMB. Dans le prochain article, nous tenterons d’exploiter ces failles afin d’obtenir un shell sur l’ordinateur cible. En attendant, n’oubliez pas que ces informations sont précieuses et qu’il faut absolument les sauvegarder. Cliquez sur “Download Report” en bas à gauche. Choisissez le format par défaut et placer votre fichier en lieu sûr (dans Dradis par exemple).

Nous l’avons vu, Nessus est rapide et efficace. Il est important de mettre à jour régulièrement les plugins pour trouver les failles les plus récentes. Il est capable de nous donner énormément d’informations concernant la configuration d’un service distant. Nous le verrons un peu plus loin, c’est l’outil indispensable pour auditer soi-même nos propres systèmes.

 

Mantra : Navigateur Web basé sur Firefox contenant un large panel de plugins utiles pour l’audit d’applications Web. En quelques clics, explorer les failles XSS, ou tentez des iSQL directement sur des pages Web. Les XSS sont relativement fréquentes sur Internet, surtout dans les formulaires où les développeurs Web ne prennent pas toujours le temps de sécuriser leur production.

  • Évaluation du réseau

Nous avons vu deux outils généralistes pour scanner un réseau ou une application web. Voyons maintenant quelques outils plus spécialisés.

 

Cisco Tools : Contient des scripts pour auditer des équipement actifs de marque Cisco. Certains outils sont capables de détecter la version de l’IOS d’un équipement distant, et donc de connaître ses vulnérabilités.

Network Fuzzing : Injecte des données aléatoire sur un réseau. “Bed” est un outil puissant qui permet de détecter si un service peut être victime de Buffer Overflow (dépassement de mémoire tampon). Le logiciel “sfuzzer” est également un outil qui permet de tester un  logiciel.

Rapports de vulnérabilité en ligne : Consultez OSVDB et CVE pour connaître les dernières failles en date.

VOIP Fuzzing : Détecter les failles d’un réseaux VOIP avec la technique de fuzzing avec le logiciel “voiper” par exemple.

 

  • Évaluation d’applications Web

Les réseaux ne sont pas les seuls vulnérables. Plus haut dans les couches du modèle OSI, les applications Web peuvent être une véritable porte d’entrée vers un système ou vers des informations compromettantes.

 

– Outils dédiés aux CMS : “Joomscan” est tout simplement l’outil de référence qui permet de détecter des failles dans un site web fait avec le CMS Joomla. L’outil est assez puissant, mais la mise à jour du logiciel ne fonctionne pas (la base de données des failles étant de 2009). “Plecost” est quant à lui dédié au CMS WordPress. Pensez à récupérer la dernière version du fichier texte qui contient les numéros de version des plugins WordPress.

Webshag est un webfuzzer très simple d’utilisation, car il est disponible en interface graphique. L’outil Webslayer est également très puissant. Ces deux logiciels retenus permettent d’interroger violemment une page web afin d’en ressortir un maximum d’informations (nom des variables, e-mails, méthodes des formulaires, etc.)

MetaGooFil est un script très pratique pour rechercher rapidement tous les fichiers disponibles triés par extensions  (exemple tous les PDF) sur un site web. Il n’est pas rare de trouver des fichiers texte contenant directement des adresses e-mail ou des mot de passe en clair. Le principal atout de ce logiciel est bien entendu l’extraction de méta-données. En effets, elle peuvent contenir les noms et prénoms des auteurs des fichiers, leurs logiciels et leurs versions, etc. Une mine d’or pour recueillir des informations sur la victime.

W3af est l’outil Open-Source de référence pour auditer un site Web. Plusieurs plugins sont disponibles : bruteforce, audit, etc. Le résultat du scan nous indique les vulnérabilités présentes sur le site en question. J’ai trouvé ce site qui est un Wiki de W3af (et qui regorge d’informations essentielles).

 

  • Évaluation de bases de données

Les outils d’évaluation de vulnérabilités de base de données sont les mêmes que ceux pour la collecte d’information :

SQLmap et SQLninja : outils d’injection SQL

SQLbrute : outil d’injection SQL en bruteforce.

Nous étudierons plus en détail ces outils dans l’exploitation de failles (prochain article).

 

 

Les moyens pour lutter contre la détection de vulnérabilités.

 

Je pense que ce sont les mêmes que pour la collecte d’information.

En effet, la détection de vulnérabilités est également une action de recherche d’informations, mais plus orientée dans la découverte des versions utilisées, ou dans les méthodes appliquées de développement.

 

Je clos cet article en précisant que la 1ère vulnérabilité est l’Homme. Sécuriser un réseau et un système est une action fondamentale, qui doit toujours rester à l’esprit du personnel informatique. Cependant, la formation du personnel de toute l’entreprise est également primordiale. Les grandes attaques très connues ont toutes commencées par une faille qui venait d’un ou plusieurs employés.

A bon entendeur,

 

La suite au prochain article : Exploitation.

 

Software Engineeer at Red Hat, Private Pilot, French guy hiding somewhere in Canada.