SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
Optimiser ses attaques Web
avec Burp Suite
Nicolas Grégoire
Agarri
Application Security Forum 2013
Western Switzerland
15-16 octobre 2013 - Y-Parc / Yverdon-les-Bains
http://www.appsec-forum.ch
2

Agenda
§ Introduction à Burp Suite
§ Test intrusif interne : WPAD
§ Sessions brèves et jetons anti-CSRF
3

Bio
§
§
§
§
§

J'ai commencé la sécurité en 1997
Je suis plus “Breaker” que “Builder”
J'ai testé des centaines de systèmes très variés
J'ai fondé Agarri il y a 3 ans
Je pirate pour mes clients et pour le plaisir

§ Accomplissements :
– Découvreur de nombreuses vulnérabilités liées à XML
–

Titulaire de dizaines d'identifiants CVE

–

Conférence « Burp avancé » (HackInParis 2013)
4

Agenda
§ Introduction à Burp Suite
§ Test intrusif interne : WPAD
§ Sessions brèves et jetons anti-CSRF
5

Introduction à Burp Suite
§ Suite d'outils dédiée à l’interception, le
relais, l'analyse, la modification et le
rejeu de trafic Web
§ Puissant et polyvalent
§ Se configure comme un proxy
§ Java (Windows, Linux, Mac OS X)
6

Introduction à Burp Suite
§ Produits similaires :
– Avant : Paros, WebScarab, Achilles
–

§
§
§
§

Aujourd'hui : OWASP ZAP

Documentation exhaustive (dont « in app »)
Mainteneur et communauté très actifs
Extensible (surtout depuis fin 2012)
Version payante (250 €/an)
7

Aperçu de l'interface
8

Outils intégrés à Burp Suite
§ Outils centraux
– « Proxy » : Configuration du proxy et vue chronologique
du trafic observé
–

« Site map » : Vue arborescente du trafic observé

§ Outils manuels
– « Repeater » : Emission d'une requête individuelle
–

« Intruder » : Emission en masse de requêtes

§ Outils automatiques
– « Spider » : Collecte passive (détection de ressources) et
active (accès récursif)
–

« Scanner » : Recherche automatique de vulnérabilités
(mode passif et/ou actif)
9

Cheminement
10

Autres fonctionnalités
§ Outils
– « Sequencer » : Analyse de la qualité d'un aléa
–

« Decoder » : Conversion URL/HTML/Base64/Hexa/Octal/Binaire/GZip + hashes

–

« Comparer » : Comparaison intuitive de messages (requêtes ou réponses)

–

« Extender » : Utilisation de plugins développés en Java, Python ou Ruby

§ Configuration
– Macros : Réalisation automatique de requêtes
–

Règles de gestion de session : Application d'une logique aux requêtes et macros

–

Réglages divers : Affichage, sauvegarde, raccourcis clavier, SSL, proxy, ...
11

Exemples simples
§ Restriction par utilisation de l'en-tête HTTP « Location »
–

Efficace dans un navigateur

–

Non honoré (par défaut) dans « Repeater »

–

Supprimable automatiquement dans « Proxy » / « Match and Replace »

§ Restriction par « Basic Auth »
–

Format « Authorization: Basic [Chaîne au format Base64] »

–

Chaîne : base64(identifiant + « : » + mot de passe)

–

Recherche par dictionnaire via « Intruder »

§ Restriction à un certain type de navigateur
–

Option native de modification de l'en-tête « User-Agent »

–

Navigateurs supportés : Internet Explorer, iOS et Android

–

Utilisable aussi sur un D-Link TM-G5240, DIR-100 ou DI-524UP ;-)
12

Agenda
§ Introduction à Burp Suite
§ Test intrusif interne : WPAD
§ Sessions brèves et jetons anti-CSRF
13

Scénario
§ Test intrusif interne
§ Mode « boîte noire »
§ Pas d'information sur le réseau
§ Pas d'information sur le domaine Windows
§ Administrateurs compétents et vigilants
§ Besoin de discrétion (surtout au début)
§ Réseau commuté (switchs et non hubs)
§ Utilisation de mots de passe solides
§ Application des correctifs (rarement à 100%)
14

WPAD : le MITM Web facile
15

WPAD : le MITM Web facile
§ WPAD : Web Proxy Automatic Discovery
§ Apparu dans Internet Explorer 5 (1999)
§ Permet à un client d'obtenir automatiquement :
– L'identité du serveur WPAD
–

Le fichier de configuration « wpad.dat »

–

La stratégie de relayage du trafic Web

§ Permet à un attaquant de se désigner comme proxy !
16

WPAD : le MITM Web facile
§ « Le réseau » fournit l'identité du serveur WPAD
§ Mécanismes :
– Option 252 en DHCP
–

Résolution via DNS ou NBT-NS / LLMNR (Vista+)

§ Si NBT-NS ou LLMNR, la requête est envoyée en broadcast !
§ L'attaquant doit être le premier (ou le seul) à répondre
17

Mise en place du MITM
§ Activer un « Listener » sur une interface externe
§ Désactiver l'interception des requêtes

§ Rediriger le trafic WPAD vers Burp
– Réponses NBT-NS / LLMNR + fourniture d'un fichier « wpad.dat »
–

L'outil « SpiderLabs Responder » fait cela très bien
18

Nous écoutons le trafic
proxyfié !
19

Analyse du trafic
§ Le trafic Web intercepté est visible dans :
– « Target » / « Site Map »
Présentation arborescente (site / URL / paramètres)
« Proxy » / « History »
●

–

●

Ordre chronologique (principalement)
20

Analyse du trafic
§ Fonctionnalités avancées de recherche dans « Target » / « Site Map »
– Bouton droit puis « Engagement tools »
●
●

« Search »
« Analyze target »
21

Analyse du trafic
§ Fonctionnalités avancées de recherche dans « Target » / « Site Map »
– Bouton droit puis « Engagement tools »
●
●

« Search »
« Analyze target »
22

Mais ...
§ Il n'y pas quelque chose qui vous choque
dans cette image ?

§ Le contenu des échanges HTTPS est visible !
– Pratique mais très peu discret
23

Besoin de discrétion ?
24

Certificat SSL invalide
25

Certificat SSL invalide
26

Non-rupture des sessions SSL
§ Fonctionnalité « SSL Pass Through » introduite en
v1.5.15 (Sept. 2013)
§ Une seule entrée vide suffit
§ Evidemment, le trafic HTTPS ne sera plus visible
27

Nous écoutons le trafic HTTP !
28

Artefacts
29

Artefacts
30

Nous écoutons discrètement
le trafic HTTP !
31

Attaques
§ Attaques passives
– Interception d'identifiants
–

Interception de cookies

§ Attaques actives
– Modification des réponses
–

Redirection vers un site différent
32

Attaques actives
§ Suppression des liens « https »
– Attaque « sslstrip » (fonctionnalité native de Burp)
§ Redirection vers un clone malicieux du site original
– Altération de la résolution DNS (fonctionnalité native de Burp)
§ Insertion ou modification de liens
– Téléchargement d'un exécutable depuis un site « fiable »
§ Insertion d'images
– Capture des hashes NTLM
–

Réutilisation via « Pass The Hash » / Cassage avec JTR ou Hashcat

§ Insertion de script
– Inclusion dans un botnet BeEF
§ Insertion de frames
– Metasploit « autopwn »
–

Exploits Java, Flash, IE, Firefox, ...
33

Extension « HTTP Injector »
§ Burp n'intègre pas de fonctionnalité de manipulation complexe des réponses
– D'où une extension dédié : « HTTP Injector »
§ Filtrage :
– La réponse est de type « HTML »
–

La destination est incluse (ou non) dans le scope

–

Une certaine chaîne de texte est présente

–

Le client n'a pas déjà été infecté (4 modes possibles)

§ Cas d'usage
– Insertion de code JavaScript (BeEF, FireBug Lite)
–

Insertion d'images ou d'iframes

–

Et tout ce qui vous passe par la tête, c'est du Python !

§ Journalisation
– Dans la fenêtre de l'extension
–

Dans « Proxy » / « History » (coloration + ajout d'un commentaire)
34

Extension « HTTP Injector »
35

Extension « HTTP Injector »
36

Extension « HTTP Injector »
37

Démo !
38

Récapitulatif
§ Configuration initiale :
– WPAD (DHCP/DNS/LLMNR/NBT-NS)
–

Proxy en écoute sur interface externe (port selon « wpad.dat »)

§ Discrétion :
– Désactivation des messages d'erreur
–

Désactivation de l'interface Web

–

Activation de « SSL Pass Through »

§ Attaques :
– Natives :
Interception d'identifiants et de cookies
●
SSL Stripping
●
Redirection vers un site différent
Avec l'extension « HTTP Injector » :
●

–

●

Modification ou insertion de liens, scripts, images ou iframes
39

Agenda
§ Introduction à Burp Suite
§ Test intrusif interne : WPAD
§ Sessions brèves et jetons anti-CSRF
40

Scénario
§ Application Web moderne
– Session authentifiée à expiration automatique
–

Jetons anti-CSRF

§ Objectif métier : recherche d'une valeur < 100
§ Objectif technique : rendre invisibles les contraintes
applicatives
– Outils manuels : « Repeater », « Intruder »
–

Outils automatiques : « Spider », « Scanner »

§ Utilisation des macros et règles de gestion de session
41

Scénario
42

Etape 1 : jeton anti-CSRF
§ La durée d'une session est >> à la durée de nos tests
§ Non impactant (tant qu'un cookie de session valide est présent)
§ Toute soumission doit donc inclure :
–

Un cookie de session valide (issu de la boîte à biscuits)

–

Un jeton anti-CSRF valide (à récupérer via macro)

–

Une valeur comprise entre 0 et 100

§ Macro :
–

Récupère la valeur d'un jeton anti-CSRF valide

§ Règle de gestion de session :
–

Insère le jeton précédemment obtenu + un cookie de session valide
43

Macro de collecte du jeton
§ Nom : « Obtention d'un jeton anti-CSRF »

§ Configuration :
–

Accéder à la page fournissant le jeton anti-CSRF
●

–

En utilisant un cookie de session valide

Puis extraire via une expression régulière la valeur de
ce jeton
44

Macro de collecte du jeton
45

Macro de collecte du jeton
46

Règle de gestion de session
§ Nom : « Mise à jour du jeton anti-CSRF »
§ Configuration :
–

Scope :
●

●

Commencer par « Repeater » afin de valider le bon
fonctionnement
Etendre aux autres outils (« Intruder », « Scanner ») en
fonction des besoins

–

Action : « Run Macro » (celle définie précédemment)

–

Mise à jour de la requête :
●

Valeur du jeton anti-CSRF extraite par macro

●

Valeur du cookie de session issu de la boîte à biscuits
47

Règle de gestion de session
48

Règle de gestion de session
49

Usage
§ Un seul thread !
§ Dans l'outil « Repeater » :
– Utilisation transparente, si le scope des règles de session est bien défini
–

Conseil : tester les macros et règles de gestion de session dans cet outil

§ Dans l'outil « Intruder » :
– Désactivation de l'option « Make unmodified baseline request »
–

Utilisation de « Grep – Extract » afin de suivre l'avancement
50

L'usage de jetons anti-CSRF
est désormais transparent !
51

Démo !
52

Etape 2 : session authentifiée
§ Toute page nécessite une session valide
§ Les sessions expirent toutes les 30 secondes
§ Une session valide est créée en soumettant un couple « identifiant /
mot de passe » valide
§ Macro :
–

Crée une nouvelle session (simple POST)

§ Règle de gestion de session :
–

C'est là que c'est (un peu) compliqué

–

Vérifie si la session est encore valide (accès à une page authentifiée)

–

Si non valide :
●

Exécuter la macro « Création de session »

●

Mettre à jour la boîte à biscuits

– Exécute les autres règles de gestion de session (dont jeton anti-CSRF)
53

Macro de création de session
§ Nom : « Création d'une session "User33" »

§ Configuration :
–

Soumettre le formulaire de connexion
●

–

Identifiant et mot de passe « en dur »

Mettre à jour le cookie « PHPSESSID » dans la
boite à biscuits
54

Macro de création de session
55

Règle de gestion de session
§ Nom : « Vérification (voire création) de la session »
§ Configuration :
–

Action : « Check session is valid »

–

Requête à émettre : n'importe quel accès à la partie authentifiée

–

Inspection de la réponse
●
●

Motif : « Remaining time: (..+) secs »

●

Type de motif : expression régulière

●

–

Lieu : corps de la réponse

Si le motif est trouvé, alors la session est valide

Si la session est invalide
●
●

–

Exécuter la macro « Création d'une session "User33" »
Mettre à jour le cookie de session dans la boîte à biscuits

Continuer le traitement (jeton anti-CSRF)
56

Règle de gestion de session
57

Règle de gestion de session
§ Requête à émettre pour vérifier l'état de la session
58

Règle de gestion de session
§ Inspection de la réponse
59

Règle de gestion de session
§ Selon validité
de la session
60

Usage
61

Les déconnexions agressives
sont désormais transparentes !
62

Démo !
63

Récapitulatif
§ Si un seul jeton anti-CSRF valide à un instant T pour chaque session
– Utiliser un seul thread, afin de ne pas « griller » le jeton courant
–

Valable de manière globale (tout Burp Suite + navigateur)

§ Considérer la boîte à biscuits comme un élément distinct
– Pas d'utilisation implicite
–

Identifiez dans vos cinématiques chaque utilisation ou mise à jour

§ En cas de problèmes
– Réduire en problèmes plus petits (séparer anti-CSRF, gestion de session, signature, ...)
–

Construire par blocs facilement testables depuis « Repeater »

–

Utiliser le « Sessions tracer » pour débugger les règles de gestion de session

–

Vérifiez la définition du scope (outil + URL) de vos règles de gestion

–

Lors de l'utilisation de l'outil « Intruder » :

Utiliser « Grep - Extract » pour suivre visuellement la progression
●
Désactiver l'option « Make unmodified baseline request »
§ Expérience
– Votre premier scénario complexe ne marchera probablement pas du premier coup
●

–

Pratiquez en lab, cela vous évitera les faux-négatifs en situation réelle !
64

Liens
§ WPAD : Web Automatic Proxy Discovery
– http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol
§ Trustwave SpiderLabs « Responder »
– https://github.com/SpiderLabs/Responder
§ Metasploit « autopwn »
– https://github.com/rapid7/[...]/auxiliary/server/browser_autopwn.rb
§ BeEF Framework
– http://beefproject.com/
§ Hashcat
– http://hashcat.net/hashcat/
§ John The Ripper
– http://www.openwall.com/john/
§ Extension « HTTP Injector »
– http://www.agarri.fr/docs/HTTPInjector.py
65

Conclusion
§ Très grande polyvalence de l'outil
– Test intrusif interne ou externe, évaluation en lab, démonstrations, ...
–

Application Web, Web-Services, client lourd, application mobile, …

§ API très riche
– Tout est possible, ou presque
–

Si la fonctionnalité désirée n'est pas présente

Relisez la doc
●
Postez sur les forums
§ Complexité élevée ... si la situation à émuler est complexe
– Les possibilités offertes par le logiciel peuvent être intimidantes
●

–

Conséquence inévitable de son adaptabilité aux conditions réelles

–

Mais la plupart des audits ne nécessitent pas les usages les plus avancés

§ Documentation
– Lisez la. Au moins deux fois. Elle le mérite ...
66

Conclusion (bis)
§ Entraînez-vous en environnement isolé
§ Objectif : configuration fonctionnelle du premier
coup lors de situations réelles
Amateurs Practice Until They Get It Right
Professionals Practice Until They Can’t Get It Wrong
67

Questions ?
68

Merci !
Contact :
nicolas.gregoire@agarri.fr
@Agarri_FR
http://www.agarri.fr/blog/
Slides :
http://slideshare.net/ASF-WS/presentations

Contenu connexe

Tendances

Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeMarie Tapia
 
La securite pour les développeurs au RMLL 2015
La securite pour les développeurs au RMLL 2015La securite pour les développeurs au RMLL 2015
La securite pour les développeurs au RMLL 2015Christophe Villeneuve
 
Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Maxime Leblanc
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)Noël
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012FastConnect
 
White paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFWhite paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFManfred Touron
 
Prévention et traitement du hack de serveurs
Prévention et traitement du hack de serveursPrévention et traitement du hack de serveurs
Prévention et traitement du hack de serveursAmen.fr
 
PSES - La securite pour les développeurs
PSES - La securite pour les développeursPSES - La securite pour les développeurs
PSES - La securite pour les développeursChristophe Villeneuve
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...
ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...
ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...Cyber Security Alliance
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertLook a box
 
Breizhcamp 2014 : Une partie de Cache-Cache
Breizhcamp 2014 : Une partie de Cache-CacheBreizhcamp 2014 : Une partie de Cache-Cache
Breizhcamp 2014 : Une partie de Cache-CacheFrederic Bouchery
 

Tendances (13)

Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme Thémée
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et php
 
La securite pour les développeurs au RMLL 2015
La securite pour les développeurs au RMLL 2015La securite pour les développeurs au RMLL 2015
La securite pour les développeurs au RMLL 2015
 
Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012
 
White paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFWhite paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRF
 
Prévention et traitement du hack de serveurs
Prévention et traitement du hack de serveursPrévention et traitement du hack de serveurs
Prévention et traitement du hack de serveurs
 
PSES - La securite pour les développeurs
PSES - La securite pour les développeursPSES - La securite pour les développeurs
PSES - La securite pour les développeurs
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...
ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...
ASFWS 2013 - Prévention et analyse de cyber attaques : Import-Module Incident...
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
 
Breizhcamp 2014 : Une partie de Cache-Cache
Breizhcamp 2014 : Une partie de Cache-CacheBreizhcamp 2014 : Une partie de Cache-Cache
Breizhcamp 2014 : Une partie de Cache-Cache
 

Similaire à ASFWS 2013 - Optimiser ses attaques Web avec Burp par Nicolas Grégoire

Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...☁️Seyfallah Tagrerout☁ [MVP]
 
Colloque cyber 2010 les botnets
Colloque cyber 2010   les botnetsColloque cyber 2010   les botnets
Colloque cyber 2010 les botnetsmichelcusin
 
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseAntonio Fontes
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
Suivi qualité avec sonar pour php
Suivi qualité avec sonar pour phpSuivi qualité avec sonar pour php
Suivi qualité avec sonar pour phpGabriele Santini
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - GenèveaOS Community
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
Spark Streaming
Spark StreamingSpark Streaming
Spark StreamingPALO IT
 
ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...
ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...
ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...Cyber Security Alliance
 
Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013
Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013
Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013Certilience
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Afnic
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piadelegue
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)Hackfest Communication
 

Similaire à ASFWS 2013 - Optimiser ses attaques Web avec Burp par Nicolas Grégoire (20)

Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
 
Colloque cyber 2010 les botnets
Colloque cyber 2010   les botnetsColloque cyber 2010   les botnets
Colloque cyber 2010 les botnets
 
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
Suivi qualité avec sonar pour php
Suivi qualité avec sonar pour phpSuivi qualité avec sonar pour php
Suivi qualité avec sonar pour php
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - Genève
 
20100114 Waf V0.7
20100114 Waf V0.720100114 Waf V0.7
20100114 Waf V0.7
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...
ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...
ASFWS 2013 - Rump session - Un serveur d'authentification forte pour $35! par...
 
Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013
Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013
Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
Cours 8 squid.pdf
Cours 8 squid.pdfCours 8 squid.pdf
Cours 8 squid.pdf
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry pi
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
 

Plus de Cyber Security Alliance

Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?Cyber Security Alliance
 
iOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce itiOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce itCyber Security Alliance
 
Why huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacksWhy huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacksCyber Security Alliance
 
Corporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomwareCorporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomwareCyber Security Alliance
 
Introducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging appsIntroducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging appsCyber Security Alliance
 
Understanding the fundamentals of attacks
Understanding the fundamentals of attacksUnderstanding the fundamentals of attacks
Understanding the fundamentals of attacksCyber Security Alliance
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemCyber Security Alliance
 
Easy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 fEasy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 fCyber Security Alliance
 
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Cyber Security Alliance
 
Offline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setupOffline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setupCyber Security Alliance
 
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...Cyber Security Alliance
 
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScriptWarning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScriptCyber Security Alliance
 
Killing any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented featureKilling any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented featureCyber Security Alliance
 

Plus de Cyber Security Alliance (20)

Bug Bounty @ Swisscom
Bug Bounty @ SwisscomBug Bounty @ Swisscom
Bug Bounty @ Swisscom
 
Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?
 
iOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce itiOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce it
 
Why huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacksWhy huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacks
 
Corporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomwareCorporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomware
 
Blockchain for Beginners
Blockchain for Beginners Blockchain for Beginners
Blockchain for Beginners
 
Le pentest pour les nuls #cybsec16
Le pentest pour les nuls #cybsec16Le pentest pour les nuls #cybsec16
Le pentest pour les nuls #cybsec16
 
Introducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging appsIntroducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging apps
 
Understanding the fundamentals of attacks
Understanding the fundamentals of attacksUnderstanding the fundamentals of attacks
Understanding the fundamentals of attacks
 
Rump : iOS patch diffing
Rump : iOS patch diffingRump : iOS patch diffing
Rump : iOS patch diffing
 
An easy way into your sap systems v3.0
An easy way into your sap systems v3.0An easy way into your sap systems v3.0
An easy way into your sap systems v3.0
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande Modem
 
Easy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 fEasy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 f
 
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
 
Offline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setupOffline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setup
 
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
 
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScriptWarning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
 
Killing any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented featureKilling any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented feature
 
Rump attaque usb_caralinda_fabrice
Rump attaque usb_caralinda_fabriceRump attaque usb_caralinda_fabrice
Rump attaque usb_caralinda_fabrice
 
Operation emmental appsec
Operation emmental appsecOperation emmental appsec
Operation emmental appsec
 

ASFWS 2013 - Optimiser ses attaques Web avec Burp par Nicolas Grégoire

  • 1. Optimiser ses attaques Web avec Burp Suite Nicolas Grégoire Agarri Application Security Forum 2013 Western Switzerland 15-16 octobre 2013 - Y-Parc / Yverdon-les-Bains http://www.appsec-forum.ch
  • 2. 2 Agenda § Introduction à Burp Suite § Test intrusif interne : WPAD § Sessions brèves et jetons anti-CSRF
  • 3. 3 Bio § § § § § J'ai commencé la sécurité en 1997 Je suis plus “Breaker” que “Builder” J'ai testé des centaines de systèmes très variés J'ai fondé Agarri il y a 3 ans Je pirate pour mes clients et pour le plaisir § Accomplissements : – Découvreur de nombreuses vulnérabilités liées à XML – Titulaire de dizaines d'identifiants CVE – Conférence « Burp avancé » (HackInParis 2013)
  • 4. 4 Agenda § Introduction à Burp Suite § Test intrusif interne : WPAD § Sessions brèves et jetons anti-CSRF
  • 5. 5 Introduction à Burp Suite § Suite d'outils dédiée à l’interception, le relais, l'analyse, la modification et le rejeu de trafic Web § Puissant et polyvalent § Se configure comme un proxy § Java (Windows, Linux, Mac OS X)
  • 6. 6 Introduction à Burp Suite § Produits similaires : – Avant : Paros, WebScarab, Achilles – § § § § Aujourd'hui : OWASP ZAP Documentation exhaustive (dont « in app ») Mainteneur et communauté très actifs Extensible (surtout depuis fin 2012) Version payante (250 €/an)
  • 8. 8 Outils intégrés à Burp Suite § Outils centraux – « Proxy » : Configuration du proxy et vue chronologique du trafic observé – « Site map » : Vue arborescente du trafic observé § Outils manuels – « Repeater » : Emission d'une requête individuelle – « Intruder » : Emission en masse de requêtes § Outils automatiques – « Spider » : Collecte passive (détection de ressources) et active (accès récursif) – « Scanner » : Recherche automatique de vulnérabilités (mode passif et/ou actif)
  • 10. 10 Autres fonctionnalités § Outils – « Sequencer » : Analyse de la qualité d'un aléa – « Decoder » : Conversion URL/HTML/Base64/Hexa/Octal/Binaire/GZip + hashes – « Comparer » : Comparaison intuitive de messages (requêtes ou réponses) – « Extender » : Utilisation de plugins développés en Java, Python ou Ruby § Configuration – Macros : Réalisation automatique de requêtes – Règles de gestion de session : Application d'une logique aux requêtes et macros – Réglages divers : Affichage, sauvegarde, raccourcis clavier, SSL, proxy, ...
  • 11. 11 Exemples simples § Restriction par utilisation de l'en-tête HTTP « Location » – Efficace dans un navigateur – Non honoré (par défaut) dans « Repeater » – Supprimable automatiquement dans « Proxy » / « Match and Replace » § Restriction par « Basic Auth » – Format « Authorization: Basic [Chaîne au format Base64] » – Chaîne : base64(identifiant + « : » + mot de passe) – Recherche par dictionnaire via « Intruder » § Restriction à un certain type de navigateur – Option native de modification de l'en-tête « User-Agent » – Navigateurs supportés : Internet Explorer, iOS et Android – Utilisable aussi sur un D-Link TM-G5240, DIR-100 ou DI-524UP ;-)
  • 12. 12 Agenda § Introduction à Burp Suite § Test intrusif interne : WPAD § Sessions brèves et jetons anti-CSRF
  • 13. 13 Scénario § Test intrusif interne § Mode « boîte noire » § Pas d'information sur le réseau § Pas d'information sur le domaine Windows § Administrateurs compétents et vigilants § Besoin de discrétion (surtout au début) § Réseau commuté (switchs et non hubs) § Utilisation de mots de passe solides § Application des correctifs (rarement à 100%)
  • 14. 14 WPAD : le MITM Web facile
  • 15. 15 WPAD : le MITM Web facile § WPAD : Web Proxy Automatic Discovery § Apparu dans Internet Explorer 5 (1999) § Permet à un client d'obtenir automatiquement : – L'identité du serveur WPAD – Le fichier de configuration « wpad.dat » – La stratégie de relayage du trafic Web § Permet à un attaquant de se désigner comme proxy !
  • 16. 16 WPAD : le MITM Web facile § « Le réseau » fournit l'identité du serveur WPAD § Mécanismes : – Option 252 en DHCP – Résolution via DNS ou NBT-NS / LLMNR (Vista+) § Si NBT-NS ou LLMNR, la requête est envoyée en broadcast ! § L'attaquant doit être le premier (ou le seul) à répondre
  • 17. 17 Mise en place du MITM § Activer un « Listener » sur une interface externe § Désactiver l'interception des requêtes § Rediriger le trafic WPAD vers Burp – Réponses NBT-NS / LLMNR + fourniture d'un fichier « wpad.dat » – L'outil « SpiderLabs Responder » fait cela très bien
  • 18. 18 Nous écoutons le trafic proxyfié !
  • 19. 19 Analyse du trafic § Le trafic Web intercepté est visible dans : – « Target » / « Site Map » Présentation arborescente (site / URL / paramètres) « Proxy » / « History » ● – ● Ordre chronologique (principalement)
  • 20. 20 Analyse du trafic § Fonctionnalités avancées de recherche dans « Target » / « Site Map » – Bouton droit puis « Engagement tools » ● ● « Search » « Analyze target »
  • 21. 21 Analyse du trafic § Fonctionnalités avancées de recherche dans « Target » / « Site Map » – Bouton droit puis « Engagement tools » ● ● « Search » « Analyze target »
  • 22. 22 Mais ... § Il n'y pas quelque chose qui vous choque dans cette image ? § Le contenu des échanges HTTPS est visible ! – Pratique mais très peu discret
  • 26. 26 Non-rupture des sessions SSL § Fonctionnalité « SSL Pass Through » introduite en v1.5.15 (Sept. 2013) § Une seule entrée vide suffit § Evidemment, le trafic HTTPS ne sera plus visible
  • 27. 27 Nous écoutons le trafic HTTP !
  • 31. 31 Attaques § Attaques passives – Interception d'identifiants – Interception de cookies § Attaques actives – Modification des réponses – Redirection vers un site différent
  • 32. 32 Attaques actives § Suppression des liens « https » – Attaque « sslstrip » (fonctionnalité native de Burp) § Redirection vers un clone malicieux du site original – Altération de la résolution DNS (fonctionnalité native de Burp) § Insertion ou modification de liens – Téléchargement d'un exécutable depuis un site « fiable » § Insertion d'images – Capture des hashes NTLM – Réutilisation via « Pass The Hash » / Cassage avec JTR ou Hashcat § Insertion de script – Inclusion dans un botnet BeEF § Insertion de frames – Metasploit « autopwn » – Exploits Java, Flash, IE, Firefox, ...
  • 33. 33 Extension « HTTP Injector » § Burp n'intègre pas de fonctionnalité de manipulation complexe des réponses – D'où une extension dédié : « HTTP Injector » § Filtrage : – La réponse est de type « HTML » – La destination est incluse (ou non) dans le scope – Une certaine chaîne de texte est présente – Le client n'a pas déjà été infecté (4 modes possibles) § Cas d'usage – Insertion de code JavaScript (BeEF, FireBug Lite) – Insertion d'images ou d'iframes – Et tout ce qui vous passe par la tête, c'est du Python ! § Journalisation – Dans la fenêtre de l'extension – Dans « Proxy » / « History » (coloration + ajout d'un commentaire)
  • 38. 38 Récapitulatif § Configuration initiale : – WPAD (DHCP/DNS/LLMNR/NBT-NS) – Proxy en écoute sur interface externe (port selon « wpad.dat ») § Discrétion : – Désactivation des messages d'erreur – Désactivation de l'interface Web – Activation de « SSL Pass Through » § Attaques : – Natives : Interception d'identifiants et de cookies ● SSL Stripping ● Redirection vers un site différent Avec l'extension « HTTP Injector » : ● – ● Modification ou insertion de liens, scripts, images ou iframes
  • 39. 39 Agenda § Introduction à Burp Suite § Test intrusif interne : WPAD § Sessions brèves et jetons anti-CSRF
  • 40. 40 Scénario § Application Web moderne – Session authentifiée à expiration automatique – Jetons anti-CSRF § Objectif métier : recherche d'une valeur < 100 § Objectif technique : rendre invisibles les contraintes applicatives – Outils manuels : « Repeater », « Intruder » – Outils automatiques : « Spider », « Scanner » § Utilisation des macros et règles de gestion de session
  • 42. 42 Etape 1 : jeton anti-CSRF § La durée d'une session est >> à la durée de nos tests § Non impactant (tant qu'un cookie de session valide est présent) § Toute soumission doit donc inclure : – Un cookie de session valide (issu de la boîte à biscuits) – Un jeton anti-CSRF valide (à récupérer via macro) – Une valeur comprise entre 0 et 100 § Macro : – Récupère la valeur d'un jeton anti-CSRF valide § Règle de gestion de session : – Insère le jeton précédemment obtenu + un cookie de session valide
  • 43. 43 Macro de collecte du jeton § Nom : « Obtention d'un jeton anti-CSRF » § Configuration : – Accéder à la page fournissant le jeton anti-CSRF ● – En utilisant un cookie de session valide Puis extraire via une expression régulière la valeur de ce jeton
  • 46. 46 Règle de gestion de session § Nom : « Mise à jour du jeton anti-CSRF » § Configuration : – Scope : ● ● Commencer par « Repeater » afin de valider le bon fonctionnement Etendre aux autres outils (« Intruder », « Scanner ») en fonction des besoins – Action : « Run Macro » (celle définie précédemment) – Mise à jour de la requête : ● Valeur du jeton anti-CSRF extraite par macro ● Valeur du cookie de session issu de la boîte à biscuits
  • 47. 47 Règle de gestion de session
  • 48. 48 Règle de gestion de session
  • 49. 49 Usage § Un seul thread ! § Dans l'outil « Repeater » : – Utilisation transparente, si le scope des règles de session est bien défini – Conseil : tester les macros et règles de gestion de session dans cet outil § Dans l'outil « Intruder » : – Désactivation de l'option « Make unmodified baseline request » – Utilisation de « Grep – Extract » afin de suivre l'avancement
  • 50. 50 L'usage de jetons anti-CSRF est désormais transparent !
  • 52. 52 Etape 2 : session authentifiée § Toute page nécessite une session valide § Les sessions expirent toutes les 30 secondes § Une session valide est créée en soumettant un couple « identifiant / mot de passe » valide § Macro : – Crée une nouvelle session (simple POST) § Règle de gestion de session : – C'est là que c'est (un peu) compliqué – Vérifie si la session est encore valide (accès à une page authentifiée) – Si non valide : ● Exécuter la macro « Création de session » ● Mettre à jour la boîte à biscuits – Exécute les autres règles de gestion de session (dont jeton anti-CSRF)
  • 53. 53 Macro de création de session § Nom : « Création d'une session "User33" » § Configuration : – Soumettre le formulaire de connexion ● – Identifiant et mot de passe « en dur » Mettre à jour le cookie « PHPSESSID » dans la boite à biscuits
  • 54. 54 Macro de création de session
  • 55. 55 Règle de gestion de session § Nom : « Vérification (voire création) de la session » § Configuration : – Action : « Check session is valid » – Requête à émettre : n'importe quel accès à la partie authentifiée – Inspection de la réponse ● ● Motif : « Remaining time: (..+) secs » ● Type de motif : expression régulière ● – Lieu : corps de la réponse Si le motif est trouvé, alors la session est valide Si la session est invalide ● ● – Exécuter la macro « Création d'une session "User33" » Mettre à jour le cookie de session dans la boîte à biscuits Continuer le traitement (jeton anti-CSRF)
  • 56. 56 Règle de gestion de session
  • 57. 57 Règle de gestion de session § Requête à émettre pour vérifier l'état de la session
  • 58. 58 Règle de gestion de session § Inspection de la réponse
  • 59. 59 Règle de gestion de session § Selon validité de la session
  • 61. 61 Les déconnexions agressives sont désormais transparentes !
  • 63. 63 Récapitulatif § Si un seul jeton anti-CSRF valide à un instant T pour chaque session – Utiliser un seul thread, afin de ne pas « griller » le jeton courant – Valable de manière globale (tout Burp Suite + navigateur) § Considérer la boîte à biscuits comme un élément distinct – Pas d'utilisation implicite – Identifiez dans vos cinématiques chaque utilisation ou mise à jour § En cas de problèmes – Réduire en problèmes plus petits (séparer anti-CSRF, gestion de session, signature, ...) – Construire par blocs facilement testables depuis « Repeater » – Utiliser le « Sessions tracer » pour débugger les règles de gestion de session – Vérifiez la définition du scope (outil + URL) de vos règles de gestion – Lors de l'utilisation de l'outil « Intruder » : Utiliser « Grep - Extract » pour suivre visuellement la progression ● Désactiver l'option « Make unmodified baseline request » § Expérience – Votre premier scénario complexe ne marchera probablement pas du premier coup ● – Pratiquez en lab, cela vous évitera les faux-négatifs en situation réelle !
  • 64. 64 Liens § WPAD : Web Automatic Proxy Discovery – http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol § Trustwave SpiderLabs « Responder » – https://github.com/SpiderLabs/Responder § Metasploit « autopwn » – https://github.com/rapid7/[...]/auxiliary/server/browser_autopwn.rb § BeEF Framework – http://beefproject.com/ § Hashcat – http://hashcat.net/hashcat/ § John The Ripper – http://www.openwall.com/john/ § Extension « HTTP Injector » – http://www.agarri.fr/docs/HTTPInjector.py
  • 65. 65 Conclusion § Très grande polyvalence de l'outil – Test intrusif interne ou externe, évaluation en lab, démonstrations, ... – Application Web, Web-Services, client lourd, application mobile, … § API très riche – Tout est possible, ou presque – Si la fonctionnalité désirée n'est pas présente Relisez la doc ● Postez sur les forums § Complexité élevée ... si la situation à émuler est complexe – Les possibilités offertes par le logiciel peuvent être intimidantes ● – Conséquence inévitable de son adaptabilité aux conditions réelles – Mais la plupart des audits ne nécessitent pas les usages les plus avancés § Documentation – Lisez la. Au moins deux fois. Elle le mérite ...
  • 66. 66 Conclusion (bis) § Entraînez-vous en environnement isolé § Objectif : configuration fonctionnelle du premier coup lors de situations réelles Amateurs Practice Until They Get It Right Professionals Practice Until They Can’t Get It Wrong