Introduction Nous allons ici voir 2 vulnérabilités sur RSA liés à une mauvaise génération de clé publique.
Vulnérabilité : On rappelle que $n$ et généré avec $p$ et $q$ très grand :
$n = p*q$ . On se place dans un cas idéal ou $p$ et $q$ sont cryptographiques et que donc $n$ n’est pas cassable par force brute .
La vulnérabilités réside dans le fait que $p$ et $q$ sont très proche.
Introduction Nous allons ici voir 2 vulnérabilités sur RSA liés à une mauvaise gestion des clés publiques .
Common Modulus . On suppose le schéma suivant :
On dispose de 2 chiffrés différent à partir d’un même message et d’une clé commune (n):
$c_1 = e_1^{-1} \pmod {\Phi(n)}$ $c_2 = e_2^{-1} \pmod {\Phi(n)}$ Alors si on a les égalité suivantes, alors on peut décoder le message $c_1$ ( = $c_2$):
Introduction Nous avons vu précédemment (ici) que le chiffrement RSA reposé sur 2 nombres premiers , notés $p$ et $q$. Grâce à ces deux nombres cryptographiquement grands, il était ainsi possible de générer une paires de clé $(publique/privée)$ et chiffré des messages grâce à celle-ci.
Nous allons voir ici quelques premières vulnérabilités sur le chiffrement RSA.
1) $P$ et $Q$ trop petit. On rappèle que la clé privée est :
Introduction Le chiffrement RSA est utilisé pour chiffrer des communications, il est aujourd’hui souvent utilisé pour les certificats SSL sur internet ou encore les clés de connections via le protocole ssh. Il est dit asymétrique car il fonctionne par paires de clés. Toute la sécurité de ce chiffrement repose sur le fait qu’il est aujourd’hui infiniment long de factoriser un nombre cryptographique rapidement .
Ronald Rivest, Adi Shamir et Leonard Adleman ont ainsi crée un chiffrement basé sur l’arithmétique modulaire, encore d’actualité aujourd’hui.
Introduction Voici les différents théorèmes et application pour comprendre le chiffrement RSA
Opération Modulaires L’opérateur modulo et une opération qui retourne le reste de la division euclidienne d’un nombre A par B:
$a \equiv r \pmod b$
$\Rightarrow~\exists~k \in N~|~a = b*k + r$
Si r = 0 , on dit que n divise a
Pgcd Le PGCD (ou gcd) de 2 nombres est le plus grand diviseur commun de ces deux nombres :
Oracle Tranquille 1&2 | Hackademint 2022 Nécessaires Python3 + Pwntools Descriptions : Challenge 1 : Nous avons trouvé un étrange service ouvert sur un de nos services hier. Complot des Illuminati? Prise de pouvoir des machines ? Opération marketing pour la sortie du prochain album de Justin Bieber ? Simple Oracle de déchiffrement RSA? Difficile de trancher. Pourriez-vous y jeter un coup d'œil? Challenge 2 : Le serveur semble avoir évolué depuis votre dernière enquête !
Introduction AES (“Advanced Encryption Standard”) est un chiffrement symétrique par blocs. En effet, il repose sur le chiffrement de données découpées en plusieurs partie. Ainsi il en existe plusieurs modes :
ECB CBC CFB OFB CTR CTS … Aujourd’hui, nous allons aborder une attaque présente sur l’AES en mode ECB .
Comprendre le mode ECB Comme présenté avant, ECB est un mode de chiffrement des blocs d’information.
(ECB pour Electronic Code Book)
Description Ce CTF est proposé par Intrinsec , crée par Th1b4ud et est constitué de 12 Challenges. On évolue tout au long des objectifs dans un réseau afin de compromettre toutes les machines les unes après les autres.
Thèmes Web Pivoting Blockchain (SmartContract) Forensic Prérequis Du temps Un vps de préférence Connaissance basique de CTF *J’ai appris beaucoup de choses pendant la compétition et c’est assez facile à comprendre en faisant les challenges en parallèles.
RustyTheClown 2 | leHack CTF 2022 Fichier(s) RustyTheClown Nécessaires IDA/Ghidra Python3 Flag lh_68eca3c515dbefd71ec8fec3849ba0083af806447d9f9f7cdca2a5cc Solution détaillée Analyse Statique Le challenge est un crackme . On nous demande un mot de passe et celui est modifié puis comparé avant de nous donner ou non le flag .
Désassemblons le binaire dans IDA :
Dans void rustyTheClown::main::hecc4c87ee1b9aeab() voici ce qu’on trouve d’important :
std::io::stdio::Stdin::read_line::hd0723957e63cf850(); if ( &unk_52408 ) core::ptr::drop_in_place$LT$std.
Mod ctfauth | Tjctf 2022 Fichier(s) Challenge files Challenge files Nécessaires Python3 + Ida + Ghidra Flag CTF{http_headers_amiright} Solution détaillée Partie 1: Découverte du challenge Ce challenge mélange un peu de Web et une majorité de reverse. Deux fichiers sont fournis,
Une configuration apache2 Un fichier .so Le lien d’un site web (Hébergé en local pour le writeup) Voici ce que nous avons quand nous nous rendons sur le site :