Cyber 2021/2022 G1 : Différence entre versions

De Wiki d'activités IMA
(Dessiner avec des sons)
(Encore une image en musique)
Ligne 142 : Ligne 142 :
 
== Encore une image en musique ==
 
== Encore une image en musique ==
  
Ce challenge était simple : solution à mettre sur le Wiki après le CTF.
+
Le fichier audiodump est identifié comme un wav par file ou Audacity.
 +
 
 +
Mais dans les métadonnés du fichier, il apparaît un très long texte dans le champ 'Comment' .
 +
 
 +
    exiftool audiodump.wav | grep "Comment" | cut -d ':' -f2
 +
 
 +
En utilisant la recette magique de CyberChef on retrouve une image : https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)Render_Image('Raw')
 +
 
 +
Après d'intensives recherches Google sur un "vaisseau bleu avec des crânes", nous découvrons le nom du vaisseau.
  
 
== Clef à la loupe ==
 
== Clef à la loupe ==

Version du 20 janvier 2022 à 13:42

Challenges ctf

Pour valider les challenges nous utilisons le login axel.chemin@polytech-lille.net dans l'équipe "achemin1" .

Flocons

Il faut lire les petits points descendeant sur les deux côtés de l'image

Espion dans le bus

https://blog.stayontarget.org/2019/03/decoding-mixed-case-usb-keystrokes-from.html utiliser cette partie du lien Leftover Capture Data as a column (by right-clicking on one of the entries, and selecting "Apply as Column") then File -> Export Packet Dissections -> As CSV, open the resulting file, cut the capture data column out and the double-quotes, and the first line that says "Leftover Capture Data" -or- I learned a much easier way when researching this write-up was to use tshark to extract the leftover capture data (be sure to pipe to tr -d : to get rid of the colons in the output. Redirect output to a text file, once you've confirmed it looks good. taper dans le shell : tshark -r capture-myst1.pcap -T fields -e usb.capdata | tr -d : | grep "\S" >prkeycodes.txt car nous voulons récupérer la partie Leftover Capture Data Nous avons rajouté ceci | grep "\S" pour ne pas avoir des lignes entre les résulats et nous avons redirigé (stocké) les résultats dans un fichier prkeycodes.txt Nous avons tapé ceci : cat prkeycodes.txt pour vérifier que le fichier a mis les résultats à la suite (1 résultat par ligne). créer le fichier decodeusbkeypress.py et mettre le script donné dans le lien (il a fallu faire quelques modif dans le script car dans le dictionnaire il manque 83 d'où le key error 83) Taper dans le shell : python3 decodeusbkeypress.py prkeycodes.txt on obtient le code dans le shell.

Travail de serrurerie

ans l'archive data.zip, il y a un fichier "data" .

Ce fichier est un binaire, dont la commande "file" le décrit comme :

   data: DOS/MBR boot sector; partition 1 : ID=0xb, start-CHS (0x0,32,33), end-CHS (0xc,223,19), startsector 2048, 204800 sectors; partition 2 : ID=0x83, start-CHS (0xc,223,20), end-CHS (0x41,69,4), startsector 206848, 841728 sectors

Mais l'astuce proposé est d'utiliser les Network Block Device.

Installation et démarrage du serveur et du client NBD

Ajout dans le fichier /etc/nbd-server/config :

   [export]
      exportname = /home/pifou/Axel_NBD/data
      port = 2000

Et le lancer avec

   nbd-server

Pour le client :

   nbd-client 127.0.0.1 /dev/nbd0 -name export

Il y a ces fichiers qui ont apparu

   # ls /dev/nbd
   nbd0    nbd0p2  nbd10   nbd12   nbd14   nbd2    nbd4    nbd6    nbd8
   nbd0p1  nbd1    nbd11   nbd13   nbd15   nbd3    nbd5    nbd7    nbd9

Recherche dans les NBD devices

Ensuite il faut monter les 2 périphériques :

   mkdir /tmp/axelNbd1
   mount /dev/nbd0p1 /tmp/axelNbd1
   mkdir /tmp/axelNbd2
   mount /dev/nbd0p2 /tmp/axelNbd2

Le premier système de fichier présente un seul fichier "code" avec comme contenu "TROPFACILE"

Le second système de fichier est composé d'un dossier lost+found et d'une archive zip "secret.zip" .

"TROPFACILE" n'est pas le mot de passe. Les variations de casse non plus. A ce moment là, il n'y a plus de mot de passe disponible, il est décidé de lancer une bruteforce avec

   fcrackzip --charset aA1 --use-unzip secret.zip

Spécialiste des écoutes

Le fichier téléchargé extrait.wav est bien un fichier audio, extrait a priori de l'extrait d'un candidat à la présidentielle. Son nom n'est pas le drapeau.

On entend tout de suite des sons aigues, le drapeau se trouve donc sûrement dans le flux audio. On repère très bien dans le spectre la partie haute fréquence, qui répète un motif plusieurs fois.

C'est en baissant la fréquence d'échantillonage de la piste à 48kHz que l'on retrouve l'audio caché (par effet repliement de spectre) : Potemkine - Jean Ferrat

Perçage de coffre

"file" ne donne pas d'information sur le fichier, à supposer que c'est un système de fichier chiffré avec cryptsetup (on m'a un petit peu aidé, c'est vrai) :

On peut tester le mot de passe en essayant d'ouvrir le périphérique et monter le volume :

   mkdir pointMontage
   cryptsetup open --type plain chiffre pointMontage

(Le mot de passe est demandé)

   mount /dev/mapper/pointMontage ./montage

Si et seulement si le mot de passe entré est bon, la dernière commande retourne 0.

Sinon il faut ré-essayer avec un autre mot de passe à 4 chiffres, sans oublier de refermer le périphérique :

   cryptsetup close pointMontage

Pour cela j'ai fait un fichier python, trèèèès overkill (et pas si bien).

[METTRE LE SCRIPT]

Si besoin de nettoyer :

   umount pointMontage
   rm -r pointMontage

Le fichier trouvé contient des informations bancaires

   # cat mntA/compte
   Code banque : 12345
   Code guichet : 66666
   Numéro de compte : 00001100111

On complète l'IBAN avec https://www.iban.com/calculate-iban en supposant que le propriétaire est français.

La solution : FR7612345666660000110011189

Déchiffrer le manuscrit

Commencé, utilisation de cette documentation entre autre :

https://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard/sending-keys-via-serial#raw-hid-mouse-reports-823930-11

Dessiner avec des sons

Commencé, récupération du header de l'image PGM/PPM.

   P6
   225 225
   255

Problème de décodage pour le reste.

Encore une image en musique

Le fichier audiodump est identifié comme un wav par file ou Audacity.

Mais dans les métadonnés du fichier, il apparaît un très long texte dans le champ 'Comment' .

   exiftool audiodump.wav | grep "Comment" | cut -d ':' -f2

En utilisant la recette magique de CyberChef on retrouve une image : https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)Render_Image('Raw')

Après d'intensives recherches Google sur un "vaisseau bleu avec des crânes", nous découvrons le nom du vaisseau.

Clef à la loupe

Filsss fait un sssssomme

Effectivement, zéro technique !

Existe-til encore de vraies brutes ?

Déjà vu