Solution de U03 pour Dérèglement

intro forensics windows

12 janvier 2025

Un fichier au format Microsoft Office corrompu nous est fourni et on nous demande de retrouver son contenu…

Nous essayons de l’ouvrir avec Libre Office, à tout hasard, mais la tentative de récupération n’est pas couronné du succès tant attendu.

Nous essayons diverses commandes pour nous faire une idée du contenu :

file 2021-fcsc-reglement_de_participation.docx
2021-fcsc-reglement_de_participation.docx: Microsoft OOXML

xxd -len 512 2021-fcsc-reglement_de_participation.docx
00000000: 504b 0304 1400 0800 0800 b070 8a52 0000  PK.........p.R..
00000010: 0000 0000 0000 8905 0000 1300 2000 5b43  ............ .[C
00000020: 6f6e 7465 6e74 5f54 7970 6573 5d2e 786d  ontent_Types].xm
00000030: 6c55 540d 0007 8c94 7160 168f 7160 8c94  lUT.....q`..q`..
00000040: 7160 7578 0b00 0104 e803 0000 04e8 0300  q`ux............
00000050: 00bd 934f 4fc3 300c c5ef 7c8a aa57 b444  ...OO.0...|..W.D
00000060: dcbb 5d80 2bec b03b ca12 7704 f24f 713a  ..].+..;..w..Oq:
00000070: b66f 8fd3 8d0a a112 c628 bbc6 7eef e767  .o.......(..~..g
00000080: 39cd 1db4 a233 a9ba df25 70a8 bd9b d73b  9....3...%p....;
00000090: 6bea ead6 3b7a 48ab 7d80 792d 4230 5a8a  k...;zH.}.y-B0Z.
000000a0: 4465 9eab 7cd1 8ce8 2218 2c08 b74e 311f  De..|...".,..N1.
000000b0: c091 41eb a315 0967 41c8 57b1 0146 cabe  ..A....gA.W..F..
000000c0: 079f 75c0 ebef 09c1 6dbe 00b4 253d cfef  ..u.....m...%=..
000000d0: e38a 9700 e392 be40 9ac7 2dc4 a815 544b  .......@..-...TK
000000e0: 11d3 83b0 d4c0 9f72 12ce 26ce 3346 525e  .......r..&.3FR^
000000f0: 2ea3 0fc8 c998 95f7 3e82 f36d ab25 9047  ........>..m.%.G
00000100: 6749 c220 c756 a066 812c 2126 0da7 b1a5  gI. .V.f.,!&....
00000110: 8ff0 7bf8 47d6 ac3e 8d78 58eb 302e 355e  ..{.G..>.xX.0.5^
00000120: 60c5 9f71 7fda ee9b 8f8a 624a 40d4 6e43  `..q......bJ@.nC
00000130: b30f 152b b42b 4c60 4169 c1fb abbb 61e7  ...+.+L`Ai....a.
00000140: dc23 a6bd 019c 3ec0 c1b7 30b9 ebec 1a22  .#....>...0...."
00000150: 354f cf1e ac0b 7884 94a8 e33f 921f 9d0b  5O....x....?....
00000160: f095 589b 337e c54f e496 bc7a eb23 faaa  ..X.3~.O...z.#..
00000170: e1d9 1717 ef50 4b07 0841 60bc fa24 0100  .....PK..A`..$..
00000180: 0089 0500 0050 4b03 0414 0000 0000 009b  .....PK.........
00000190: 6c8a 5200 0000 0000 0000 0000 0000 0009  l.R.............
000001a0: 0020 0064 6f63 5072 6f70 732f 5554 0d00  . .docProps/UT..
000001b0: 07d7 8d71 60a9 8e71 6088 8e71 6075 780b  ...q`..q`..q`ux.
000001c0: 0001 04e8 0300 0004 e803 0000 504b 0304  ............PK..
000001d0: 1400 0800 0800 975c 8a52 0000 0000 0000  .......\.R......
000001e0: 0000 0502 0000 1000 2000 646f 6350 726f  ........ .docPro
000001f0: 7073 2f61 7070 2e78 6d6c 5554 0d00 07ae  ps/app.xmlUT....

La commande file reconnaît le fichier comme étant de type Microsoft OOXML, même si le fichier semble être corrompu.

La commande xxd nous informe que le fichier commence par 504b 0304, correspondant aux caractères PK... Ceci est typique des fichiers .zip et ce format de fichiers est souvent repris comme format de container par des applications pour stocker des fichiers.

Nous tentons de lire son contenu grâce à la commande unzip -l:

unzip -l 2021-fcsc-reglement_de_participation.docx
Archive:  2021-fcsc-reglement_de_participation.docx
  Length      Date    Time    Name
---------  ---------- -----   ----
     1417  2021-04-10 14:05   [Content_Types].xml
        0  2021-04-10 13:36   docProps/
      517  2021-04-10 11:36   docProps/app.xml
      652  2021-04-10 13:54   docProps/core.xml
        0  2021-04-10 13:36   _rels/
      573  2021-04-10 11:36   _rels/.rels
        0  2021-04-10 13:36   word/
        0  2021-04-10 13:36   word/_rels/
      981  2021-04-10 11:36   word/_rels/document.xml.rels
     5956  2021-04-10 14:00   word/document.xml
     3313  2021-04-10 11:36   word/styles.xml
     5321  2021-04-10 11:36   word/numbering.xml
      208  2021-04-10 11:36   word/settings.xml
     1106  2021-04-10 11:36   word/fontTable.xml
        0  2021-04-10 13:36   word/media/
   131579  2021-04-10 11:36   word/media/image1.jpeg
---------                     -------
   151623                     16 files

Nous utilisons la commande unzip -p qui va extraire tous les fichiers contenus dans l’archive ZIP vers le pipe ensuite, nous utilisons la commande grep avec une expression régulière pour extraire le flag et l’afficher.

Le script suivant réalise les opérations nécessaires :

#!/bin/bash

set -e

if [ ! -f 2021-fcsc-reglement_de_participation.docx ]; then
    wget https://hackropole.fr/challenges/fcsc2021-forensics-dereglement/public/2021-fcsc-reglement_de_participation.docx -O 2021-fcsc-reglement_de_participation.docx
fi

unzip -p 2021-fcsc-reglement_de_participation.docx | grep --only-matching 'FCSC{.*}'

Le résultat est le suivant :

--2025-01-12 01:23:19--  https://hackropole.fr/challenges/fcsc2021-forensics-dereglement/public/2021-fcsc-reglement_de_participation.docx
Resolving hackropole.fr (hackropole.fr)... 51.91.236.193, 2001:41d0:301::28
Connecting to hackropole.fr (hackropole.fr)|51.91.236.193|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 93740 (92K) [application/vnd.openxmlformats-officedocument.wordprocessingml.document]
Saving to: ‘2021-fcsc-reglement_de_participation.docx’
2021-fcsc-reglement_de_participation.docx          100%[================================================================================================================>]  91,54K  --.-KB/s    in 0,03s
2025-01-12 01:23:19 (2,65 MB/s) - ‘2021-fcsc-reglement_de_participation.docx’ saved [93740/93740]

FCSC{xxxxxxxx}