GS-Days 2011. WebScarab Développement de nouveaux modules pour les tests d intrusion



Documents pareils
Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009


OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Présentation de la solution Open Source «Vulture» Version 2.0

Contrôle Parental Numericable. Guide d installation et d utilisation

Vulnérabilités et sécurisation des applications Web

Une approche positive du filtrage applicatif Web. Didier «grk» Conchaudron Sébastien «blotus» Blot

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

Contrôle Parental Numericable. Guide d installation et d utilisation

PARAMETRER INTERNET EXPLORER 9

MailCube MC 2. 2,5 jours / homme / an. 33 milliards de kwh. 17 millions de. 3,1 millions de. nouvelle génération. Le spam en quelques chiffres :

Sessions en ligne - QuestionPoint

Analyse statique de code dans un cycle de développement Web Retour d'expérience

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

MINI-MÉMOIRE DE PPP - S4

DenyAll Detect. Documentation technique 27/07/2015

Installation et configuration d OCS/GLPI sur un Serveur Debian

Tutoriel QSOS. Version /02/2013

Mes documents Sauvegardés

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Principaux utilisateurs du Réseau

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

DATASET / NETREPORT, propose une offre complète de solutions dans les domaines suivants:

les techniques d'extraction, les formulaires et intégration dans un site WEB

Outils de développement collaboratif

Revue de code Sécuritéou Test d Intrusion Applicatif. Quel est le plus efficace pour évaluer un niveau de sécurité applicatif?

Présentation de la plateforme WINDCHILL. Invitation à rejoindre la plateforme

Présentation des nouveaux services de l ENT Second degré Rentrée scolaire 2015 et fin du 1 er trimestre de l année scolaire

Stage : Développement du contenu Web

CAS, la théorie. R. Ferrere, S. Layrisse

Joomla! Création et administration d'un site web - Version numérique

Projet en nouvelles technologies de l information et de la communication

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Présentation de Firefox

Jimmy Clairbois. Projets réalisés dans le cadre professionnel

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

En date du 11 décembre 2008

Réglages du portail de P&WC

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

BeEF : Browser Exploitation Framework

Programmation Web. Madalina Croitoru IUT Montpellier

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

La Clé informatique. Formation Internet Explorer Aide-mémoire

FileMaker Server 14. Aide FileMaker Server

I. Descriptif de l offre. L offre Sage 100 Entreprise Edition Entreprise

PostgreSQL, le cœur d un système critique

Guide d utilisation OGGI. Gestionnaire d incidents à l usage des clients. Date de rédaction : 04/02/2013. Version : 1.0.

CAHIER DES CHARGES D IMPLANTATION

The Mozilla Art Of War. David Teller. 20 septembre Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

CONFIGURATION FIREWALL

Armand PY-PATINEC 2010

OZSSI NORD 4 JUIN LILLE. Conférence thématique: Sécurité des applications

Vulnérabilités et solutions de sécurisation des applications Web

PySQLi. Framework d'injection de code SQL

CATALOGUE DES OFFRES O2i INGÉNIERIE POUR LES PLATEFORMES ÉDITORIALES

Description de Produit Logiciel. AMI News Monitor v2.0. SPD-AMINM-10 v1.0

Projet Sécurité des SI

proximite + qualite + competitivite

JSSI mars 2012 Laurent Butti Orange France DMGP/PORTAIL

Référencement Vendredi 4 Juillet Ile Degaby

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

SITE I NTERNET. Conception d un site Web

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Découvrir les vulnérabilités au sein des applications Web

Communiqué de lancement. Sage 100 Entreprise Edition Etendue Module CRM inclus

Catalogue Formations Jalios

V11. Release 1. Nouveaux appareils. Nouvelles fonctionnalités. Plus de flexibilité.

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

FileMaker Server 14. Guide de démarrage

26 Centre de Sécurité et de

Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Formation. Module WEB 4.1. Support de cours

QUESTIONS / REPONSES ESET Smart Security ESET NOD32 Antivirus V.3

Documentation utilisateur. [EIP] TransLSF

Groupe Eyrolles, 2004, ISBN :

Teste et mesure vos réseaux et vos applicatifs en toute indépendance

Le logiciel internet pour les consultants et entreprises en ressources humaines

IPS-Firewalls NETASQ SPNEGO

Installation d OpenVPN

AngularJS pour une application d'entreprise

Déploiement d un serveur courriel dédié pour entreprise

Logiciel Libre Cours 9 Modèles Économiques

FAQ Trouvez des solutions aux problématiques techniques.

PLAN 1. A PROPOS 2. EXPERTISE 3. NOS RÉFÉRENCES 4. TECHNOLOGIES 5. CONTACT

Atelier E-TOURISME Optimiser la visibilité de son site sur les moteurs de recherche. ecotourismepro.jimdo.com

PPE 1 : GSB. 1. Démarche Projet

MSP Center Plus. Vue du Produit

Transcription:

1 GS-Days 2011 WebScarab Développement de nouveaux modules pour les tests d intrusion Jérémy Lebourdais EdelWeb (jeremy.lebourdais@edelweb.fr)

2 Introduction Présentation de WebScarab Développements réalisés Conclusion Questions

Introduction Qui suis-je? 3 Consultant Sécurité chez EdelWeb depuis 2006. Réalisation de tests d intrusion, d audits (techniques), expertise technique et conseil. Cibles des tests d intrusion: majorité de sites web. Passionné de sécurité, de GNU/Linux et des logiciels libres, mais aussi de programmation, et d amélioration /optimisation des outils utilisés quotidiennement. Utilisateur de WebScarab depuis plus de 4 ans. Pas de «lien» avec l OWASP. Oui, j ai déjà utilisé BurpSuite ;-)

Introduction Objet de la présentation 4 Cette présentation ne concerne pas La comparaison de différents proxy intrusifs (no troll inside). La «promotion» de WebScarab. La présentation «technique» des différentes fonctionnalités de WebScarab. Cette présentation a pour objectif de présenter un retour d expérience concret sur le développement et l amélioration d outils, en l occurrence WebScarab.

5 Introduction Présentation de WebScarab Développements réalisés Conclusion Questions

Présentation de WebScarab 6 Proxy web intrusif, projet de l OWASP, codé en JAVA, sous licence GPL. Premières versions du code en 2002. N a pas évolué pendant «longtemps» de façon «officielle» (sur le site de l OWASP). Cette «vieille» version avait de nombreux bugs: mauvaise réputation de cet outil auprès des pentesters. L auteur (Rogan Dawes) l a fait évoluer sur son GIT (version non «officielle»). Moi aussi, de mon côté ;-) Une version NextGen (NG) a été publiée, mais n est pas (ou très peu) maintenue.

Présentation de WebScarab 7 Pourquoi j ai choisi WebScarab? Choix fait il y a quelques années, en partie pour les raisons suivantes Format des traces sous forme de fichiers (*-request, *-response). Logiciel libre. L ergonomie de BurpSuite ne me convenait pas, et celui-ci n avait pas de fonctionnalités indispensables par rapport à WebScarab. Quels avantages j en ai tiré? Evolution des fonctionnalités et correction des bugs, au fur et à mesure. Scripts d analyse «offline» des requêtes/réponses. Sujet de cette présentation!

Présentation de WebScarab Comment est-il codé? 8 Conçu comme un framework, c est à dire Un cœur qui s occupe de gérer les connexions, le stockage des requêtes/réponses, et plus généralement tous les aspects «bas niveau» et interface graphique. Des plugins qui interagissent avec le cœur afin de réaliser leurs tâches: la plupart des onglets de WebScarab sont des plugins (sauf les 3 premiers: la vue globale, les messages de log et les paramètres du proxy). Segmentation du code des différentes parties (packages JAVA) Gestion des requêtes HTTP. Cœur du framework. Parsers. Répertoires spécifiques pour chacun des plugins. Interface graphique. Classes «utilitaires»

Présentation de WebScarab Comment est-il codé? 9 Qualité du code? Variable, d où la présence de bugs! Problèmes de gestion des cas d erreurs (exceptions non traitées). Problèmes plus «difficiles»: mauvaise conception de certaines fonctions: parcours de tableaux, gestion de certains cas de figures uniquement, Utilisation d algorithmes trop «lourds», tel que celui pour la comparaison des requêtes. Cependant, la segmentation du code est claire et les classes/méthodes/variables ont des noms explicites qui facilitent la compréhension du code.

Présentation de WebScarab 10 Une capture d écran, pour voir à quoi ressemble WebScarab

11 Introduction Présentation de WebScarab Développements réalisés Conclusion Questions

Développements réalisés Pourquoi? 12 Pourquoi avoir développé du code pour WebScarab? Corrections des bugs, histoire de se faciliter la vie de tous les jours Ajout de fonctionnalités manquantes, au fil de l eau. Adaptation de WebScarab aux applications rencontrées. WebScarab est sous licence GPL et j aime coder :-)

Développements réalisés Liste rapide 13 Principales modifications apportées au code sur plus de 2 ans Création d un nouveau plugin de recherche d injections. Amélioration du support de l AMF. Amélioration du support des objets Java Serialisés. Corrections des bugs. Ajouts de fonctionnalités «mineures», telles que: La modification de l algorithme de comparaison des requêtes. La sauvegarde de la réponse du serveur pour analyse par un autre outil (ex: fichier flash pour décompilation). Différents menus afin de gagner du temps sur des opérations répétitives (ex: rejouer une requête en un clic).

Développements réalisés Plugin d injections 14 Plugin d injection Besoin Certaines applications Web, généralement complexes, font usage de (très) nombreux paramètres, sur de nombreuses pages. Ce même type d application complexe est généralement très peu testable avec des outils «tout-automatisés». Nécessité d utiliser l application par le pentester (opération manuelle) tout en testant les paramètres envoyés à l application (opération automatisée).

Développements réalisés Plugin d injections 15 Solution réalisée Basé sur le plugin XSS de WebScarab. Suppression de la partie détection de CSRF. Analyse, en temps réel, des requêtes envoyées par le navigateur. Création de nouvelles requêtes avec les paramètres modifiés. Utilisation d une chaine de caractères, modifiable, ainsi qu un identifiant unique pour tester les injections.

Développements réalisés Plugin d injections 16 Algorithme (simplifié) Analyse de chaque requête envoyée par le navigateur. Si celle-ci comporte des paramètres dans l URL ou dans le corps Récupération de ces paramètres. Duplication de la requête en deux copies La première avec l injection de la chaîne de caractères «normale». La seconde avec l injection de la chaine de caractères «URL-encodée». Envoi des deux copies au serveur et analyse des réponses Recherche de la chaine de caractères injectée. Information de l utilisateur sur les résultats découverts.

Développements réalisés Plugin d injections 17 Points «importants» lors du développement Création d une table de «requêtes/paramètres» testés, afin de ne pas tester plusieurs fois le même paramètre. Vérification des requêtes envoyées afin de ne pas analyser les requêtes générées par le plugin. Utilisation d un «pattern» distinctif (et modifiable) avec une marque de début et de fin, tel que: EDW-1';!--"\<\>=&{()}_EDW Ce point est très important afin de savoir quel paramètre se retrouve où (grâce à un numéro incrémenté). Prise en compte des différents contenus de requêtes qui peuvent être envoyés (texte, POST-multipart, requête GWT, )

Développements réalisés Plugin d injections 18 Points «importants» lors du développement (suite) Besoin d avoir un filtre d action pour le plugin, afin de n envoyer des requêtes forgées qu à la cible (cas des applications utilisant du contenu d autres sites, ou bien un service type XITI). Plusieurs modes d utilisation du plugin Mode sur demande (ex: test des paramètres de telle requête). Mode automatique: test de toutes les requêtes qui sont envoyées. Mode forcé: test forcé d une ou de toutes les requêtes (ex: suite à la modification de la chaîne d injection utilisée).

Développements réalisés Plugin d injections 19 Bilan Test des paramètres de l application quelque soit sa complexité. Maîtrise complète de l algorithme de test utilisé et donc des paramètres envoyés et testés. Possibilité d évolution du moteur afin de prendre en compte un nouveau type de contenu (ex: requêtes GWT). La reprise du plugin XSS original a permis de bien comprendre la structure et le fonctionnement d un plugin WebScarab. Le développement a pris du temps au début, mais permet d avoir une réactivité très forte ensuite (ex: support des requêtes GWT en une journée).

Développements réalisés Plugin d injections 20 Bilan (suite) Ce plugin a permis de trouver de nombreuses vulnérabilités de type XSS ou SQLi, publiées (ex: Typo3) ou non. Ce plugin permet d avoir une certaine «exhaustivité» Mais aussi de pouvoir fournir au client la liste des paramètres testés, afin de répondre à la question «vous avez trouvé un XSS sur le paramètre de la fonction A, mais avez-vous testé celui qui est très similaire dans la fonction B?». Cette certaine «exhaustivité» permet de trouver une aiguille dans une botte de foin: parmi tous les paramètres qui sont utilisés (plusieurs centaines voire milliers) par l application, découvrir les deux seuls paramètres vulnérables.

21 WebScarab Développements et améliorations Développements réalisés Amélioration du support de l AMF Amélioration du support de l AMF Besoin «A l époque» (début 2009), peu de programmes supportent vraiment l AMF et permettent de le modifier à la volée. Un des seuls outils utilisables est CharlesProxy. Cependant, son ergonomie pour des tests d intrusion est, de mon point de vue, lourde Le support de l AMF est déjà, en partie, présent dans WebScarab, mais très peu fonctionnel.

22 WebScarab Développements et améliorations Développements réalisés Amélioration du support de l AMF Solution réalisée Lecture des spécifications d AMF par Adobe: facile, il y a à peine 20 pages Le support de l AMF est basé sur l utilisation des classes de BlazeDS, l interface Open Source d Adobe pour utiliser Flex et AIR. Refonte de la classe utilisée pour afficher/modifier de l AMF dans WebScarab Modification des paramètres d initialisation de BlazeDS. Refonte en profondeur du code. Ajustements au cours du temps.

23 WebScarab Développements et améliorations Développements réalisés Amélioration du support de l AMF Points «importants» lors du développement L AMF est assez «simple»: les objets arrivent typés, il faut les convertir en objets JAVA pour les manipuler dans WebScarab, puis les reconvertir pour les envoyer au serveur. Cependant, le passage de la théorie à la pratique n est pas si simple a demandé plusieurs ajustements du code et pas mal de tests. Mais l accès au code source et la possibilité de le modifier «en temps réel» permet d adapter l outil et de prendre en compte certains cas non rencontrés auparavant. Problème: la modification «in vivo» du code a tendance ne pas être optimale (correction rapide pour «que ça marche»).

24 WebScarab Développements et améliorations Développements réalisés Amélioration du support de l AMF Bilan Cette amélioration a permis de trouver de nombreuses vulnérabilités critiques dans une application majeure d un client, utilisée internationalement. Bien que cette application ait été auditée plusieurs fois précédemment, aucun test sur les requêtes AMF n avait été réalisé, pourtant le cœur de l application. Méfiez-vous du support de l AMF dans les outils d intrusion: vérifiez bien qu il n y a pas du contenu «passé à la trappe» car mal ou non décodé par votre outil (comparaison du contenu brut et de celui décodé).

Développements réalisés Autres développements 25 Support des objets JAVA sérialisés Support très partiel de WebScarab «de base». Développements pour modifier les objets envoyés ou reçus. Développements faits en 2009 depuis quelques publications sur la même fonctionnalité dans BurpSuite (cf. BlackHat EU 2010). Ces développements ont permis aussi de trouver de nombreuses vulnérabilités dans différentes applications (principalement celles avec une intégration métier forte). Corrections des bugs au fil des découvertes. Ajout de nouvelles fonctionnalités selon nos besoins.

26 Introduction Présentation de WebScarab Développements réalisés Conclusion Questions

Conclusion 27 De mon point de vue, la possibilité de modification du code source de WebScarab est sa principale «killer-feature» par rapport aux autres proxies intrusifs similaires. Par contre, les nombreux bugs qui étaient présents dans la version publiée sur le site de l OWASP étaient aussi une «killer-feature», mais dans l autre sens: rejet des utilisateurs. Le langage JAVA a permis d intégrer facilement certaines fonctionnalités (ex: support AMF avec BlazeDS, objets JAVA sérialisés).

Conclusion 28 Développer prend un certain temps, parfois non négligeable mais «étalé» dans le temps. La phase d apprentissage est la plus longue, car il faut bien connaitre le code pour l exploiter au mieux. Par contre, les résultats sont aussi là, avec un outil «4x4» qui peut s adapter à n importe quelle application, et ce très rapidement.

Conclusion 29 Idées de développements Plugin d injection Gestion plus fine des injections et de leur détection. Support de l AMF et d autres contenus. Apprentissage des requêtes et de leur séquence pour déjouer les protections anti- CSRF. Support d AMF Création d une requête «from scratch». Création d un modèle générique avec des parsers par contenu: AMF, JAVA sérialisé, etc. Intégration aux outils internes Envoi d informations directement aux outils d assistance à la rédaction du rapport (telle vulnérabilité découverte sur telle requête, dans tel contexte). Utilisation d outils tiers pour certaines opérations (analyse de l entropie des cookies, exploitation automatisée d une Blind injection, etc.).

Conclusion 30 L objectif de cette présentation n est pas de vous «vendre» WebScarab Mais de vous montrer que l utilisation d outils libres, notamment dans le domaine du pentest, apporte une flexibilité non négligeable.

Questions 31