[CTF NDH 2018 Quals] Write-Up – Network : Kebab STO

01
avril
2018
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: Cryptanalyse / Cryptologie / CTF / Events / NDH / NDH2k18   /   Pas de commentaire

Présentation d’un write-up de résolution du challenge « Network – Kebab STO » des qualifications du CTF de la Nuit du Hack 2018.

Le weekend du 31/03/2018 se déroulait les pré-qualifications pour la Nuit du Hack 2018 sous forme d’un CTF Jeopardy. Ayant eu l’occasion et le temps d’y participer avec quelques collègues et amis, voici un write-up de résolution d’un des challenges auquel nous avons pu participer.

  • Catégorie : Network
  • Nom : Kebab STO
  • Description : The challenge consists in finding the flag into a network capture.
  • URL : tcp://kebabsto.challs.malice.fr:8888/
  • File : kebabsto.pcapng (149.66kB – c714bd030c959275df197ca7a392c21d3f68fa9fd6a161ab7ffa5e896ef7f0eb)
  • Points : 350

Ce challenge consistait en une analyse d’un fichier pcapng fourni et d’en extraire le flag. Un service TCP sur le domaine kebabsto.challs.malice.fr:8888 était également disponible.

En ouvrant avec Wireshark ce kebabsto.pcapng, on creuse tout d’abord au niveau des objets qui peuvent être exportés. De là on remarque que deux fichiers sont exportables via des échanges « HTTP » :

HTTP objects

HTTP objects

Le premier, correspond au code source HTML d’un « index of » référençant un unique fichier « kdsqfkpdsdf », et le second est ce fichier lui-même « kdsqfkpdsdf » que nous pouvons donc récupérer.

Ce fichier s’avère être un fichier ZIP que l’on extrait :

kdsqfkpdsdf identification

kdsqfkpdsdf identification

Avant de poursuivre sur l’analyse de ce fichier ZIP, continuons de creuser le PCAPNG initial. Celui-ci contient plusieurs requêtes d’échange d’email (IMAP) que l’on peut suivre :

IMAP exchange

IMAP exchange

Cet échange IMAP est authentifié, crédentiels aisés à récupérer (c’est toujours ça) :

AHRvbWF0ZUBkZWJpYW4ueW8AdG9tYXRlMTIz
Base64 decode : tomate@debian.yo:tomate123

De plus, à la fin de l’échange IMAP, une pièce jointe est présente en base64 :

IMAP attachement

IMAP attachement

On décode et récupère le fichier via un outil online :

Decode IMAP attachement

Decode IMAP attachement

Ce fichier est également une archive ZIP comprenant deux fichiers :

  • docs/pubkey.pem : une clé publique de 1024bits semblant résistante à toutes nos attaques RSA (factordb, Wiener, etc.).
  • docs/cipherText : un texte chiffré au format décimal

Un mail au sein des échanges IMAP/SMTP est également intéressant. Celui-ci précise ce que réalise le service TCP sur le port 888 indiqué par le challenge :

They also retrieved a public key and an interesting cipher text
(attached documents).

Besides, they also found a service at mydomainndh.ndh (port 55555) which
decrypts every text encrypted with the public key, apart from the
interesting one.

Mis à part la co(q)uille sur le port (8888 au lieu de 5555), on comprend que le fichier « pubkey.pem » équipe le service TCP online pour déchiffrer tout message chiffré qu’on lui transmettrait. Effectuons un test avec le « cipherText » récupéré :

72873754879996948796542757182427480866384878894019674005699447004829908491467629529161961884224325941110935083467870715412599916138560976722953815670278067115980556377912852138532905866093650699880301357138301236748217037629036311469031537013958415575513723738671978421707050599317605219729945496472798064172

On se connecte au service 8888 en TCP, soumettons ce cipherText et recevons un retour que l’on s’empresser de décoder en ASCII :

8888 service

8888 service

Nous obtenons ce qui ressemble fortement à un mot de passe, à voir comment et quand l’utiliser…

Revenons-en au fichier kdsqfkpdsdf récupéré au sein d’échange HTTP et qui s’avère être un ZIP. Il contient le fichier lkdjflknezcz qui est également un fichier PCAP :

lkdjflknezcz file

lkdjflknezcz file

Analysons le via Wireshark :

lkdjflknezcz PCAP file

lkdjflknezcz PCAP file

De nombreux échanges Wifi chiffrés par WPA avec un point-d’accès du nom de « wifiAccess » semblent visibles. Des paquets d’authentification sont présents. Tentons de casser la clé via la traditionnelle wordlist rockyou.txt :

Aircrack

Aircrack

Bingo, la clé WPA est « abcdefgh ». Déchiffrons le fichier PCAP à partir de cette clé :

Airdecap

Airdecap

Puis analysons son contenu :

  • Des trames semblent supprimées (nous ne voyons que des acquittement TCP) ;
  • D’autres échanges IMAP avec des authentifications (fromage@debian.yo:fromage123) ;
  • Des échanges « FTP » avec le transfert d’un fichier que nous récupérons au format hexadécimal :
FTP file

FTP file

On régénère le fichier transmis par FTP via un script Python et l’analysons :

FTP file analysis

FTP file analysis

De nouveau un fichier ZIP ! Seulement celui-ci semble protégé par un mot de passe. Essayons ceux trouvés jusqu’à présent (tomate123, fromage123, la clé WPA, ainsi que celui via le service sur le port 8888) :

Unzip password

Unzip password

YES ! C’est celui issu du service TCP sur le port 8888, à savoir « Th1s1s2P@ss_W0rd%M0f0 ». Un nouveau fichier est extrait slkfdsflj contenant du texte ASCII :

Flag Kebab STO

Flag Kebab STO

Salutations à toute l’équipe, on remet ça quand vous voulez 😉 // Gr3etZ

  • Google Plus
  • LinkedIn
  • Viadeo
Yann C.

About the Author : Yann C.

Consultant en sécurité informatique et s’exerçant dans ce domaine depuis le début des années 2000 en autodidacte par passion, plaisir et perspectives, il maintient le portail ASafety pour présenter des articles, des projets personnels, des recherches et développements, ainsi que des « advisory » de vulnérabilités décelées notamment au cours de pentest.