Fév 7, 2013
15 Min
Moyen

La plupart des développeurs quand leur montre une faille XSS avec un pop-up JavaScript du genre « hack » ou «bonjour » ça ne les impressionnent pas… et ils répondent que le JavaScript c’est sécurisé, et que ça tourne au coté client.
Alors comme je n’ai pas le temps de coder avec JavaScript pour vous démontrer que la faille XSS est dangereuse, je vais le démontrer avec l’outil Beef, un framework d’exploitation Web 2.0 codé en PHP & JavaScript.


Beef est un puissant outil de sécurité professionnelle, contrairement à d’autres outils de sécurité, beef se concentre sur l’exploitation de vulnérabilités du coté navigateur(client) pour évaluer le niveau de sécurité d’une cible. Grâce à Beef, et son vecteur d’attaque xss il est possible de transformer une victime en zombie.

Qu’est ce qu’on peut faire avec beef ?

  • Récupération d’informations
  • Vol de cookies (évidemment)
  • Keylogger
  • Liste des sites/domaines visités
  • Fingerprint du navigateur (OS, plugins…)
  • Webcam !

Architecture Beef

architecture_beefLorsqu’un utilisateur exécute BeEF, deux composantes sont ouvertes: l’interface utilisateur et le serveur de communication (CRC). Ces deux éléments sont les composants de base de Beef.

Interface utilisateur
Ceci est l’interface de contrôle de l’utilisation du beef. De là, un utilisateur peut voir les victimes qui sont en ligne et hors ligne, exécuter des exploits contre eux et voir les résultats.

Communication Server
Le serveur de communication (CS) est le composant qui communique via HTTP avec les navigateurs infectés.

Installation

Beef est disponible sous Linux avec la distribution Kali Linux. Si vous avez un ordinateur sous Windows alors je vous conseille avant d’aller plus loin d’installer une distribution Linux (genre kali Linux) sur une machine virtuelle. Il suffit de télécharger VMware et une image de Kali Linux. Beef est déjà pré-installé dessus. Voici comment installer Kali Linux sur une machine Windows avec VMware.

Toutefois vous pouvez installer beef sur Windows, pour cela voir : http://code.google.com/p/beef/wiki/WindowsInstall
Pour l’installer sur une autre distribution Linux ou OSX – voir : http://code.google.com/p/beef/wiki/Install

Comment utiliser Beef  ?

Pour commencer, lancer le serveur beef dans Backtrack. Pour cela, aller dans le menu :
Application ->backtrack-> Application ->Exploitation tools ->Social Engineering Tools -> Beef XSS Framwork->Beef

beef_backtrack

Le serveur va démarrer en quelques secondes puis vous aurez une fenêtre avec des informations sur les liens utilisés pour l’interface web ainsi que le script que vous devez injecter dans des pages vulnérables.

beef_url

Dans l’exemple ci-dessus, vous pouvez voir, il y a plusieurs interfaces réseau. Vous pouvez maintenant accéder à l’interface d’administration (interface web) en utilisant ces URL.
Dans mon cas, l’interface d’administration c’est : http://192.168.230.128:3000/ui/panel et le script à injecter c’est : http://192.168.230.128:3000/hook.js
Après avoir lancé la page d’administration, vous aurez une page d’authentification. Connectez-vous au serveur Beef en utilisant les informations d’identification par défaut (beef/beef).

beef_login

Une fois connecté, vous aurez une page découpé sur 4 parties :

beef_panel

  • Partie zombie : c’est là ou se trouve vos victimes connectés
  • Partie commande : dans cette partie contient un certain nombre de commandes qui peuvent être exécutées sur la cible avec un indicateur colorés au sujet de leur, sécurité relative. c’est la partie la plus puissante de Beef framework.
  • Parti résultat : les résultats des commande exécutés seront listés ici.
  • Parti description : ici, vous aurez la description de chaque commande.

Il reste maintenant d’injecter le hook.js dans un forum vulnérable ou tout simplement une application web qui contient une faille XSS.
Toutefois vous pouvez tester beef localement en utilisant la page de démonstration de beef : http://127.0.0.1:3000/demos/basic.html

beef_hook

Apres l’infection du navigateur, vous devriez voir une cible ajoutée à gauche du panel d’administration.
Enfin, sélectionnez ce navigateur pour afficher les informations sur la cible, ainsi vous pourrez lancer des commandes pour avoir les derniers sites visités ou pour placer un keylogger ou encore pour démarrer la caméra de la cible.

Comment s’en protéger ?

  • Mettre à jour les navigateurs et plugins est la première règle !
  • Installer un par-feu sur votre machine
  • Installer un Anti XSS sur votre navigateur comme par exemple « Noscript « .  Il ne permet l’exécution de scripts JavaScript que sur les domaines de confiance de votre choix . Il empêche l’exploitation de failles XSS ou CSRF sans perte de fonctionnalités.

Conclusion

Beef est un outil facile à utiliser et très pratique. Grâce à beef les attaques XSS avancées deviennent simples à réaliser.
J’espère que j’ai pu vous convaincre que l’impact d’une faille XSS est terrible et qu’avec un outil comme beef, on peut transformer une simple faille XSS à une vulnérabilité très dangereuse.
Et avant que je n’oublie… Pensez à partager cet article en cliquant sur les boutons des réseaux sociaux. Ca me fera énormément plaisir ! 🙂

3 Commentaires

  1. twisterblack

    Je ne comprend toujours pas l’utilisation de beef …
    A quoi sert cet outil ? à infecter son propre navigateur ? si non, comment injecter la page hook.js (qui à était créer sur notre pc), sur le site de la victime, même avec une faille XSS et tout le tralala on ne peut pas (en pratique) sur un site distant.
    Enfin j’espère me tromper afin que vous m’expliquez plus en détail le fonctionnement de cet outil et l’injection du script dans un site vulnérable.

    Merci beaucoup.

    1. Vince

      D’ailleurs, si tu le faisais toi-même sans Beef, il te suffirait d’injecter un script via la faille XSS pour que ce script soit exécuté discrètement lorsque l’utilisateur arrivera sur la page.

      Même un simple alert(« Hello world! »); affichera un popup chez l’utilisateur. Après tu peux t’amuser à faire apparaitre 50 millions de popups aussi. Tout dépend du type d’attaque que tu veux effectuer 😉