Accueil Solution du CTF Who Wants To Be King: 1 de VulnHub
Post
Annuler

Solution du CTF Who Wants To Be King: 1 de VulnHub

Who Wants To Be King: 1 est un CTF pour débutant. La description annonce que Google est notre ami… ça promet.

Sans spoiler, si vous êtes bloqués sur un problème de mot de passe, réferez vous à game-of-thrones/characters.json :p

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Nmap scan report for 192.168.56.57
Host is up (0.00019s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 7f552d63a8864f901f053cc99f40b3f2 (RSA)
|   256 e97111ed17fa4806a76b5bb60e1b11b8 (ECDSA)
|_  256 db7442c437c3aea05c3026cb1aef7652 (ED25519)
80/tcp open  http    Apache httpd 2.4.41
|_http-title: Index of /
| http-ls: Volume /
| SIZE  TIME              FILENAME
| 31K   2020-12-01 11:23  skeylogger
|_
|_http-server-header: Apache/2.4.41 (Ubuntu)

Toute l’énumération est résumée ici ! On télécharge donc le binaire qui est juste la version compilée de simple-key-logger: A simple keylogger for Linux systems.

On applique la commande strings dessus et on finit par trouver une chaine étrange :

1
2
3
4
5
6
7
8
9
10
11
logfile
device
Could not determine keyboard device file
ZHJhY2FyeXMK
Usage: skeylogger [OPTION]
Logs pressed keys
  -h, --help            Displays this help message
  -v, --version         Displays version information
  -l, --logfile         Path to the logfile
  -d, --device          Path to device file (/dev/input/eventX)
Simple Key Logger version 0.0.1

Le base64 se décode en dracarys. Je connais la série Game of Thrones donc je sais au moins quel est l’univers en rapport. On pourrait récupérer la liste des personnages et appliquer un brute force SSH mais le login attendu est vraisemblablement daenerys :

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ssh daenerys@192.168.56.57
daenerys@192.168.56.57's password: 
Last login: Tue Dec  1 11:38:40 2020 from 192.168.0.105
daenerys@osboxes:~$ id
uid=1001(daenerys) gid=1001(daenerys) groups=1001(daenerys)
daenerys@osboxes:~$ sudo -l
Matching Defaults entries for daenerys on osboxes:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, pwfeedback

User daenerys may run the following commands on osboxes:
    (root) NOPASSWD: /usr/bin/mint-refresh-cache
    (root) NOPASSWD: /usr/lib/linuxmint/mintUpdate/synaptic-workaround.py
    (root) NOPASSWD: /usr/lib/linuxmint/mintUpdate/dpkg_lock_check.sh

Aucun des fichiers dans cette liste n’existe.

Dans le dossier de l’utilisateur se trouve un fichier secret avec le contenu suivant :

find home, pls

C’est toujours difficile de retrouver un fichier qui n’a pas de particularités (contrairement à un binaire setuid ou un exécutable appartenant à root mais modifiable) dans un système de fichiers…

Je remarque que le fichier secret précédent ainsi que le fichier skeylogger du début datent tous les deux du 1er décembre 2020. Je vais donc utiliser find pour obtenir la liste des fichiers créés ce jour (il y en a quand même un paquet) :

1
2
3
4
5
6
7
8
9
10
daenerys@osboxes:~$ find . -type f -newermt 2020-12-01 ! -newermt 2020-12-02
./.bashrc
./.gtkrc-2.0
./.bash_logout
./.bash_history
--- snip ---
./secret
./.local/share/daenerys.zip
./.local/share/flatpak/.changed
--- snip ---

Qu’il y a t-il dans ce fichier zip ?

1
2
3
4
5
6
7
8
9
10
daenerys@osboxes:~$ unzip  ./.local/share/daenerys.zip
Archive:  ./.local/share/daenerys.zip
 extracting: djkdsnkjdsn             
daenerys@osboxes:~$ file djkdsnkjdsn 
djkdsnkjdsn: ASCII text
daenerys@osboxes:~$ cat djkdsnkjdsn 
/usr/share/sounds/note.txt

daenerys@osboxes:~$ cat /usr/share/sounds/note.txt
I'm khal.....

Cette fois il s’agit de Khal Drogo. Ici le mot de passe pour root est khaldrogo :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
daenerys@osboxes:~$ su root
Password: 
root@osboxes:/home/daenerys# cd /root/
root@osboxes:~# ls
nice.txt
root@osboxes:~# cat nice.txt 
¡Congratulation!


You have a good day!



aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1nTjhZRjBZZmJFawo=

Au final un CTF sans grand intérêt qui ne vous apprend rien de particulier.

Publié le 16 novembre 2022

Cet article est sous licence CC BY 4.0 par l'auteur.