U.S. Cyber Command Valentine’s Day 2021 Crypto Challenges (Puzzle 9)

Pour la Saint Valentin 2021, l'U.S. Cyber Command propose dans un tweet de résoudre une douzaine de puzzles de cryptographie. Cliquez ici pour les récupérer. Une excellente initiative qui suscitera peut-être des vocations...
Pourquoi ne pas s'y essayer ? Nous verrons bien où cela nous mène... Je publierai sur ce site les solutions auxquelles je serai parvenu, sous la forme des notes prises chemin faisant, rendant donc compte d'éventuels errements, ce qui sera plus vivant.
Aujourd'hui, la solution du puzzle 9.

Continuer la lecture de "U.S. Cyber Command Valentine’s Day 2021 Crypto Challenges (Puzzle 9)"

U.S. Cyber Command Valentine’s Day 2021 Crypto Challenges (Puzzle 9)

U.S. Cyber Command Valentine’s Day 2021 Crypto Challenges (Puzzle 7)

Pour la Saint Valentin 2021, l'U.S. Cyber Command propose dans un tweet de résoudre une douzaine de puzzles de cryptographie. Cliquez ici pour les récupérer. Une excellente initiative qui suscitera peut-être des vocations...
Pourquoi ne pas s'y essayer ? Nous verrons bien où cela nous mène... Je publierai sur ce site les solutions auxquelles je serai parvenu, sous la forme des notes prises chemin faisant, rendant donc compte d'éventuels errements, ce qui sera plus vivant.
Aujourd'hui, la solution du puzzle 7.
Continuer la lecture de "U.S. Cyber Command Valentine’s Day 2021 Crypto Challenges (Puzzle 7)"
U.S. Cyber Command Valentine’s Day 2021 Crypto Challenges (Puzzle 7)

Boucle d’événements et multithreading dans Node.js

En un peu plus d'une dizaine d'années, Node.js s'est imposé comme un élément central des architectures Web. A en lire des articles inventoriant les grandes entreprises qui l'utilisent, comme ici, Node.js est utilisé par Netflix, eBay, PayPal, et j'en passe.
Node.js
Joli succès pour cette technologie sortie de l'esprit de Ryan Dahl, qui a su repenser "out of the box" une manière de fonctionner des serveurs HTTP que plus personne ou preque n'interrogeait, se reposant dessus comme sur un acquis.
Pourtant, en dépit de sa popularité, il apparaît que les bases du fonctionnement de Node.js sont très mal maîtrisées. Au coeur du sujet : le fonctionnement de la boucle d'événements, et la place qu'elle laisse au multithreading.
Retour à base, pour tenter de comprendre non seulement ces aspects, mais aussi les raisons pour lesquelles ils peuvent être encore méconnus.
Continuer la lecture de "Boucle d’événements et multithreading dans Node.js"
Boucle d’événements et multithreading dans Node.js

Hackflash #5 : Ecrire un shellcode

Un shellcode est un petit programme dont il faut déclencher l'exécution, généralement en écrasant l'adresse de retour d'un programme dans la pile (la valeur de EIP empilée par le CALL du programme appelant) au moyen d'un buffer overflow.
Ecrire un shellcode
Qu'est-il attendu d'un shellcode, et quelles sont les contraintes qui imposent son écriture en assembleur ?
Continuer la lecture de "Hackflash #5 : Ecrire un shellcode"
Hackflash #5 : Ecrire un shellcode

Hackflash #4 : Déboguer avec GDB : un bref didacticiel

Qui veut en apprendre plus sur le shell coding ne peut faire l'économie de se mettre à l'assembleur et d'apprendre à déboguer des programmes écrits en C ou C++ avec le très fameux GNU Project Debuger, "GDB" pour les intimes.
Bien évidemment, les didacticiels pour apprendre à utiliser GDB sont légion. Toutefois, pourquoi ne pas apporter une pierre de plus à l'édifice en présentant aussi succinctement que possible les principales commandes afin de faciliter une première prise en main, qui permet d'approcher le monstre avant de rentrer dans les entrailles de sa documentation ?
Dans ce petit didacticiel, il s'agira donc de déboguer un programme C des plus élémentaires compilé avec GNU Compiler Collection, "GCC" pour les intimes, dans Kali Linux.
Continuer la lecture de "Hackflash #4 : Déboguer avec GDB : un bref didacticiel"
Hackflash #4 : Déboguer avec GDB : un bref didacticiel

Utiliser le client Xdebug en ligne de commandes

Le déboguage d'une application écrite en PHP n'a longtemps rien eu d'évident : on multipliait les echo. Fort heureusement, il existe désormais une solution : Xdebug.
Dans un article précédent, il a été question de la manière de configurer Apache et PHPStorm pour déboguer dans cet IDE.
Or, il aussi possible d'utiliser Xdebug en dehors du contexte d'un IDE. Pour cela, il suffit d'utiliser le client Xdebug en ligne de commandes. A la limite, il est fort instructif de tenter de l'utiliser avant même d'utiliser Xdebug dans PHPStorm ou tout autre IDE, tant cela permet de mieux comprendre comment Xdebug peut fonctionner.
Continuer la lecture de "Utiliser le client Xdebug en ligne de commandes"
Utiliser le client Xdebug en ligne de commandes

Apollo 11, le documentaire du dépassement

Comment échapper au spectacle lamentable d'un humanité de rampants, empêtrés dans de querelles intestines qu'ils reconduisent sans cesse en dépit de la démonstration flagrante que l'Histoire leur en donne de la futilité ; enfin merde, se faire la guerre pour s'accaparer un bout de territoire ? pour imposer ses idées, ou pire, ses valeurs, voire, plus pathétique encore, sa religion ? A défaut de parvenir à coexister paisiblement avec autrui, ne viendra-t-il à l'esprit de personne de vivre et mourir sagement dans son coin ? Quand se faire oublier sera-t-il enfin érigé en principe de vie ?
Paradoxalement, c'est quand elle s'est ainsi abaissée sous l'animal, ou pour le dire très opportunément, lorsqu'elle est tombée plus bas que terre, que cette humanité semble trouver le ressort nécessaire pour s'élever au-dessus d'elle. C'est du moins ce que donne à voir l'aventure de la conquête spatiale, qui est avant tout le produit du génie de la guerre. De fait, si l'on veut bien admettre que l'Humanité est animée de la rage de se répandre, alors la guerre est bien cet accélérateur de l'Histoire que décrivait Lénine, et pour aussi lamentable que ce soit, il faut admettre qu'au fond, elle nous sert. Ruse de l'Histoire, dira-t-on.
Ainsi, c'est alors que la guerre froide bat son plein que l'Amérique va trouver l'énergie de s'ébrouer enfin. Humiliée par les réussites de l'URSS, d'autant plus insolentes que la dictature exercée par le Kremlin lui permet de (faire) taire tous ses échecs, elle se lance à son tour dans la conquête spatiale et parvient, le 20 juillet 1969, à faire vivre à l'Humanité un moment, ce pourquoi elle demeure encore à ce jour une nation indépassée : dans le respect des hommes, car Apollo n'est pas un radeau de la Méduse jeté en pleine mer, en arracher à cette Terre pour les faire marcher sur la Lune.
Continuer la lecture de "Apollo 11, le documentaire du dépassement"
Apollo 11, le documentaire du dépassement

Root Me : racine-moi, si tu l’oses !

Lorsque je me suis intéressé à la sécurité informatique, je n'ai pas bien su pas où attaquer la chose. Finalement, je me suis décidé à l'attaquer à sa racine, Root Me étant là pour ça.
Le site de Root Me, avec son trop cool de logo
La sécurité informatique est un vaste domaine, c'est le moins que l'on puisse dire, d'autant plus que certains s'emploient à l'étendre joyeusement. Sans doute, dans la vie professionnelle, il faut savoir ravaler son domaine d'expertise pour l'accorder aux couleurs du temps, quitte à forcer un peu sur la peinture. Reste que cela ne va pas sans générer une certaine confusion. Pourquoi pas un "Grenelle du cul", avait proposé Roselyne Bachelot, lassée que l'on promette un Grenelle sur tout. On voit l'idée.
Pour y mettre un pied – dans la sécurité informatique, pas au cul –, j'ai déterminé que je partirai de la base, c'est-à-dire de la technique, et qu'après avoir acquis un vernis, je ferai des choix. Toutefois, passé un certain temps à lire quelques documents et regardé quelques vidéos portant essentiellement sur les techniques d'intrusion analysées par des pentesteurs, il m'est apparu impossible de vraiment assimiler des connaissances sans m'adonner à une pratique assez intense, les sujets, même à ce niveau et dans cette spécialité, étant trop divers.
Pirater le réseau WiFi du voisin étant exclu, les MOOC m'ont semblé tout indiqués. Reste qu'après en avoir tâté un peu, je n'ai pas trouvé la motivation pour m'y investir plus que quelques heures. Le problème, c'est que ce n'était pas le challenge. On était loin de l'ambiance demoparty, "elite rulez", ou "l337 rUl32" comme on dit maintenant, et tout ce qui tire vers le haut parce que c'est compliqué, et parce que c'est reconnu. Sorti de l'arène, le gladiateur s'ennuie.
Le salut devait venir d'ailleurs. Au hasard d'une rencontre – enfin, c'était une réunion traitant de cyberdéfense, donc le caractère fortuit est somme toute très relatif –, j'ai eu l'occasion de rencontrer quelqu'un pratiquant quelque chose de tout à fait passionnant, le forensics. Le gaillard, à qui j'ai exposé mon problème, m'a alors renvoyé sur Root Me.
Mise à jour du 30/08/2020 : 6 600 points, enfin "Programmer" 🙂 Tout développeur devrait faire cet effort, tant cela permet de se bouger les neurones et d'être gentiment humilié.
Mise à jour du 30/01/2020 : Cet article a été rédigé il y a quelques mois, et n'est publié que maintenant sur ce blog pour être synchrone avec sa publication dans Programmez! Depuis, l'eau a coulé sous les ponts, m'étant adonné à bien d'autres challenges sur Root Me. Cryptanalyse, Web-client, Web-serveur et stéganographie pour l'heure : je confirme qu'ils sont tout aussi instructifs et prenants !
Continuer la lecture de "Root Me : racine-moi, si tu l’oses !"
Root Me : racine-moi, si tu l’oses !

Hackflash #3 : Dumper les heaps avec volatility

Nul ne peut prétendre s'investir sérieusement dans le forensics sans apprendre à utiliser volatility. Ce merveilleux outil sert à extraire toute sorte d'informations d'un dump de la mémoire d'une machine, capable qu'il est d'y retrouver les traces de structures de l'OS.
Volatility
Un travail souvent demandé à l'outil, c'est dumper les heaps d'un process, dans l'espoir que l'analyse de ces dernières permettra de trouver des traces de l'activité d'un utilisateur. L'exemple classique est le texte qu'un utilisateur était en train d'écrire dans le Bloc-Notes.
Etrangement, volatility ne permet pas d'emblée de procéder à un dump aussi sélectif. Heureusement, il suffit de bidouiller légèrement le code d'un plug-in pour y arriver.
Continuer la lecture de "Hackflash #3 : Dumper les heaps avec volatility"
Hackflash #3 : Dumper les heaps avec volatility

Hackflash #2 : Lister les segments d’un JPEG

Un grosse astuce en matière de stéganographie consiste à dissimuler des données dans un fichier image. Dans le cas d'un JPEG, il s'agira de jouer avec les segments.
Le flag est dans le JPEG...
La technique de base pour trouver ces données cachées est assez pénible, puisqu'elle consiste à passer en revue le contenu du fichier avec un éditeur hexadécimal tel que l'incontournable HxD.
Fort heureusement, il est possible d'automatiser cela en quelques lignes de Python...
Continuer la lecture de "Hackflash #2 : Lister les segments d’un JPEG"
Hackflash #2 : Lister les segments d’un JPEG