KRACK - Casser le WPA2

Cet article est une revue de l’attaque KRACK - Key Reinstallation Attack présentée par Mathy Vanhoef dans son papier. Avec cette attaque, il est possible de casser le protocole WPA2 en interceptant et décryptant des communications sans être authentifié sur le réseau. Ici, je tente de détailler le plus clairement possible le fonctionnement de cette attaque en rappelant quelques notions autour desquelles gravite l’attaque, comme le problème cryptographique qui entre en jeu, ou le 4 way handshake utilisé dans le protocole WPA2.

J’ai commencé un PoC de l’attaque sur Github qui marche de temps en temps mais qui reste très instable. Si vous vous sentez de le regarder, le comprendre, et l’améliorer, n’hésitez pas !


Lire la suite →

L'attaque XSS

Dans cet article, nous allons parler de l’attaque XSS (Cross Site Scripting) en expliquant son fonctionnement, et en quoi elle peut être réellement dangereuse. Pour cela, nous allons expliquer de manière très simple comment cette attaque fonctionne, puis nous ferons un exemple complet, concret, permettant de prendre la main sur la machine d’une victime.


Lire la suite →

Padding oracle

Nous allons dans cet article parler de la technique d’attaque du padding oracle, en utilisant le padding d’un message chiffré suite à un chiffrement par bloc utilisant le mode CBC.


Lire la suite →

sh vs bash

J’écris cet article car j’ai constaté à deux reprises un comportement que je ne comprenais pas. L’appel système

execve("/bin/sh", NULL, NULL)

me lançait un terminal bash au lieu de sh. Comme j’étais en phase d’exploitation avec une élévation de privilèges, et comme bash drop les droits par défault, je me retrouvais avec un shell qui n’avait plus les droits du binaire.

Voici alors un petit post qui me servira plus de rappel à moi-même qu’autre chose. Les deux ressources citées en fin d’article vous permettront d’aller voir un peu plus loin.


Lire la suite →

ROP - Return Oriented Programming

Cet article a pour but d’expliquer clairement ce qu’est le ROP ou Return Oriented Programming. Qu’est-ce que cette technique ? Pourquoi est-elle utile ? Quelles sont les limites ? Comment la mettre en place ? Nous allons répondre ensemble à ces différentes questions.


Lire la suite →

Rappels d'architecture

Avant d’aller plus loin, il est nécessaire de parler rapidement de l’architecture d’un ordinateur. En effet, dans le user-land, il y a une couche d’abstraction qui permet de ne pas trop se soucier de l’architecture (quoiqu’il est nécessaire tout de même de connaitre les conventions d’appel, le nombre de bits gérés etc.), or le kernel est cette couche, donc penser être capable d’écrire des exploits corrects sans connaitre les rudiments de l’architecture d’un ordinateur n’est clairement pas imaginable.


Lire la suite →

Les failles kernel

Avec l’article d’introduction sur le monde du kernel, nous avons tous les éléments théoriques généraux qui permettent de comprendre pourquoi il est intéressant de trouver des failles dans le kernel.

Nous allons donc voir maintenant quelles sont ces failles. Non, nous n’allons pas encore mettre les mains dans le cambouis. Mais ce monde est tellement vaste qu’il est nécessaire d’avoir une vue globale avant de plonger la tête la première. Vous allez voir, ça reste quand même intéressant.

Par ailleurs, si vous avez des connaissances concernant les vulnérabilités existantes dans le User-Land, vous verrez qu’il y a beaucoup de ressemblances.


Lire la suite →

Le monde du kernel

Bonjour à tous. Aujourd’hui, je commence une série d’articles qui va concerner le monde du kernel. Je signale maintenant que le livre “A guide to kernel exploitation - Exploiting the core” est la source principale de cette série.

Je l’ai lu en long, large et travers, mais il est en anglais et relativement long, donc je tente ici d’en faire une synthèse claire et digérable en français pour en faire profiter le plus de monde. J’espère qu’à la suite de cette lecture, vous aurez une compréhension suffisamment globale et profonde des rouages du kernel pour passer la barrière du copier/coller lors de lectures de tutoriaux pratiques.

Je ne me contente évidemment pas d’un simple résumé, je tente le plus possible d’ajouter des schémas ou des exemples pour rendre cette série la plus agréable à lire possible.


Lire la suite →