BeEF : The Browser Exploitation Framework Project
BeEF est un outil d’audit/pentest qui cible les navigateurs web. Celui-ci se focalise sur des vecteurs d’attaques côté client, aussi bien sur les postes de travail que les terminaux mobiles.
What is BeEF?
BeEF is short for The Browser Exploitation Framework. It is a penetration testing tool that focuses on the web browser.
Amid growing concerns about web-borne attacks against clients, including mobile clients, BeEF allows the professional penetration tester to assess the actual security posture of a target environment by using client-side attack vectors. Unlike other security frameworks, BeEF looks past the hardened network perimeter and client system, and examines exploitability within the context of the one open door: the web browser. BeEF will hook one or more web browsers and use them as beachheads for launching directed command modules and further attacks against the system from within the browser context.
Le principe général consiste à exploiter un vecteur d’attaque sur une machine cliente (vecteur XSS, CSRF, etc) pour ouvrir une porte d’accès au système, et d’examiner les exploitations potentielles dans le contexte courant du navigateur.
Une fois une cible rattachée à BeEF, le framework exploite un tunnel asynchrone (principalement généré par Javascript/Ajax) afin de lancer l’exécution de modules dans le navigateur de la cible, et ainsi perpétuer des attaques à l’encontre du système. Parmi les fonctionnalités du framework, on peut citer :
- L’exploitation de modules au travers du navigateur cible
- L’enregistrement des frappes du clavier (keystroke logging)
- L’utilisation du navigateur cible comme d’un proxy, pour camoufler des attaques de plus grande envergure
- L’intégration du framework au sein de Metasploit et du nouveau BackTrack du nom de Kali Linux
- La détection automatique des plugins du navigateur avec leur version (Flash, Java, Adobe…), afin d’exécuter des commandes arbitraires sur le système.
- Comme le framework s’exploite côté client, il offre un accès aux services intranet au pentester/assaillant (accès aux firewall internes d’entreprise, routeurs, applications web privées…).
- Le module PhoneGap permet de cibler les applications mobiles (iOS, Android, BlackBerry, Symbian, Windows Phone…).
- Un tas de services et de vecteurs d’attaques ciblant l’ingénieurie sociale (Social Engineering – SE) sont également intégrés.
Exploitant des vecteurs d’attaques côté client, les frameworks tels que BeEF ont redonnés de l’importance à des vulnérabilités bien trop souvent délaissées et considérées comme “non-critiques”. Telles que le Cross-Site-Scripting (XSS persisent, non-persistent) ou encore les Cross-Site-Request-Forgery (CSRF). A titre de rappel, ces deux familles de vulnérabilités sont placées respectivement en A3 et A8 par l’OWASP (OWASP Top Ten Project 2013). De très nombreuses XSS/CSRF sont découvertes chaque jour au travers d’outils web très répandus ou encore dans des sites très réputés. Le site XSSed recense une grande partie de l’actualité liée à cette famille de vulnérabilités, ainsi que les derniers sites impactés.
Le framework BeEF à subit une refonte complète il y a quelques temps par rapport à sa version initiale qui était uniquement au travers d’une application WebGUI. A présent, il est possible d’y charger des modules publics/privés ciblant telle ou telle application/technologie. Ces modules, similaires à la base d’exploits de Metasploit, peuvent être créés et proposés à la communauté de BeEF par un quelconque contributeur.
Il y a quelques mois, SYNETIS vous rapportait la contribution d’un des collaborateurs à la découverte de plusieurs vulnérabilités (XSS/CSRF) permettant l’obtention d’un shell avec les privilèges root sur deux distributions firewall/routeur nommées m0n0wall et pfSense. Après avoir échangé avec les équipes de développement respectives de ces deux projets pour détailler les vecteurs d’attaques et les PoC, de nouvelles releases ont vu le jour.
Suite à ces corrections et ces nouvelles versions, les détails des PoC ont été divulgués au public. Deux des principaux PoC viennent d’être intégrés en tant que module au sein du framework BeEF par Bart Leppens. Le blog officiel du projet BeEF présente un article sur le module visant la version de m0n0wall 1.33. Une vidéo de démonstration du module est également disponible.
Il existe d’autres alternatives à BeEF qui apparaissent depuis quelques années, notamment The Cross-Site Scripting Framework (XSSF) ou encore l’OWASP Xenotix XSS Exploit Framework.
Sources & ressources :
- Exploiting m0n0wall 1.33 with BeEF – BeEF official blog
- Discussion about m0n0wall module – BeEF GitHub
- Module m0n0wall 1.33 in BeEF
- Module pfSense 2.0.1 in BeEF
- PoC pfSense 2.0.1 détaillé – blog du contributeur
- PoC m0n0wall 1.33 détaillé – blog du contributeur
SYNETIS remercie Bart Leppens pour sa courtoisie, son article et son message de remerciement vis-à-vis de son intérêt pour ces deux PoC m0n0wall et pfSense.
SYNETIS thanks Bart Leppens for his courtesy, his article and his mail of appreciation concerning its interest for both PoC m0n0wall and pfSense.