\date{Dernière compilation~: \today{} à \currenttime}
\usepackage{styles}
\usepackage{enumitem}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\maketitle
\clearpage
\paragraph{Prérequis}
\begin{itemize}
\item Environnement Active Directory fonctionnel~:
\begin{itemize}
\item Windows 2016 Server promu en Contrôleur de Domaine.
\item Deux postes de travail Windows 10 ayant rejoint le domaine.
Le firewall et l'antivirus doivent être désactivés.
\end{itemize}
\item Machine d'attaque.
\end{itemize}
\section{\texttt{ntlmrelayx} avec un payload Meterpreter}
En utilisant ce que vous avez appris à faire lors du TP1 et en lisant la documentation de \texttt{ntlmrelayx}, exécutez un payload de type Meterpreter (ou tout autre outil de votre choix) sur la seconde machine.
Vous pouvez également utiliser MultiRelay (inclus dans Responder) pour arriver au même résultat.
On commence par lancer \texttt{msfconsole} sur la machine d'attaque (Kali) pour disposer d'un service en écoute sur le port 9875 et prévu pour un payload Windows avec un \texttt{reverse\_tcp}~:
On relance \texttt{msfconsole}, \texttt{ntlmrelayx}, et on fait une tentative d'accès à un partage réseau inexistant, et on constate l'échec de l'attaque~:
Nous avons réussi une attaque de relai SMB via l'interception de requêtes LLMNR/NBT-NS\@.
Lorsqu'un client effectue une tentative de connexion SMB sur un partage de fichiers inexistant, la requête DNS associée est en échec.
Le fallback de cette requête est une requête LLMNR/NBT-NS qui expose les hashs NTLM de l'utilisateur.
Le mot de passe de l'utilisateur ne nous intéresse pas, on va plutôt faire un vol de session.
Pour cela, nous redirigeons la requête LLMNR/NBT-NS ailleurs, pour utiliser les droits associés à la requête et effectuer une action différente.
L'outil \texttt{ntlmrelayx} permet justement de faire cette redirection, appelée \emph{relai SMB}, et d'utiliser la redirection pour lancer une commande arbitraire.
Avec un payload \texttt{msfvenom} en guise de commande \texttt{ntlmrelayx}, on peut obtenir directement un shell Meterpreter via \texttt{msfconsole}.
Bien sûr, tout ceci repose sur le fait que le relai SMB soit possible, ce qui nécessite que la cible accepte des requêtes SMB provenant d'une source différente que prévue.
Le SMB Signing permet de vérifier l'origine et l'authenticité de la requête SMB, bloquant ainsi toute tentative d'attaque par relai SMB\@.