Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Win32_Offensive_Cheatsheet — Win32 et techniques d’abus du noyau pour pentesters | Kitploit
Outils/GitHubGitHub/matthieu-hackwitharts/win32_offensive_cheatsheet
Mécanismes de PersistanceExploitationÉvasion IDS/IPSRétro-ingénieriePost-ExploitationTests d'IntrusionAnalyse de BinairesApprentissage et ÉducationRed Teaming
Ressources Organisées
Développement de Charges Utiles
GitHubmatthieu-hackwitharts/win32_offensive_cheatsheet

Win32_Offensive_Cheatsheet

Win32 et techniques d’abus du noyau pour pentesters

Voir le dépôt
98113630il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Aide-mémoire offensif Win32

Techniques d'abus de Win32 et du noyau pour pentesters et red-teamers réalisé par @UVision et @RistBS

Mode dev activé, ouvert à toute aide :)

  • Documentation des binaires Windows
    • Structure du PE
    • En-têtes PE
    • Analyse du PE
    • Table des adresses d'exportation (EAT)
    • Résoudre l'adresse d'une fonction
    • Import Address Table (IAT)
      • Analyse de l'IAT
    • Import Lookup Table (ILT)
    • Activer le privilège SeDebug
  • Exécuter un binaire
    • Exécution classique de shellcode
    • Exécution de DLL
    • Fichier RAW en PE
  • Techniques d'injection de code
    • Injection par CreateRemoteThread
    • Process Hollowing
    • Technique de file APC
    • Early Bird
    • Injection de DLL réflective
    • Injection de DLL
    • Process Doppelganging
    • Fibres
    • CreateThreadPoolWait
    • Détournement de thread
    • Injection de code par MapView
    • Module Stomping
    • Function Stomping
  • Techniques de hooking
    • Inline hooking
    • Hooking IAT
  • Techniques de contournement RE
    • Obfuscation des appels et des chaînes
    • Résolution manuelle de fonctions
    • Hachage d'API Win32
  • Contournement EDR/Endpoint
    • Syscall direct
    • Langages de haut niveau
    • Patching de l'inline hooking
    • Détection des hooks
    • Patch d'ETW
    • Contournement de sandbox
    • Contournement du débogage
    • Technique VirtualProtect
    • Unhook par copie fraîche
    • Hell's Gate
    • Heaven's Gate
    • Spoofing PPID
    • Process Instrumentation Callback
    • Chiffrement du tas
    • Obfuscation du sommeil
  • Bases de la programmation de drivers
    • Concepts généraux
    • System Service Dispatch Table (SSDT)
    • Point d'entrée du driver
    • Entrées/Sorties)
    • Communiquer avec le driver
    • Signature de driver (Microsoft)
    • Callbacks personnalisés (ObRegisterCallbacks)
  • Programmation offensive de drivers
    • Patch de callback noyau
    • Patch de processus protégé
  • Utiliser l'API Win32 pour améliorer l'OPSEC
    • Persistance
      • Tâches planifiées
    • Spoofing de ligne de commande
  • Divers
    • Convention d'appel x64
    • Exécution indirecte
      • Contournement CFG avec SetProcessValidCallTargets

  • Techniques de malware/sophistiquées
    • Cas d'Emotet : PPID Spoofing avec WMI
    • Technique des fichiers cachés du malware Zeus
    • Technique de hooking du keylogger SpyEye
    • L'arrêt le plus ridicule de malware (WannaCry)

Documentation des binaires Windows

Outils utiles, sites Web/livres/aide-mémoire

  • 🔹 https://github.com/RistBS/Awesome-RedTeam-Cheatsheet/ (Très bon aide-mémoire)
  • 🔹 https://www.ired.team/ (Excellent aide-mémoire red team avec d'excellentes notes sur l'injection de code)
  • 🔹 https://undocumented.ntinternals.net/ (Fonctions NT non documentées)
  • 🔹 https://docs.microsoft.com/en-us/windows/win32/api/ (Documentation officielle Microsoft)
  • 🔹 Windows Kernel Programming - Pavel Yosifovich
  • 🔹 https://research.checkpoint.com/ (Documents très intéressants sur l'évasion, l'anti-debug, etc.)
  • 🔹 https://www.vx-underground.org/ (Contenu génial sur le développement de malwares et le reverse)

Structure du PE

En-têtes PE

  • DOS_HEADER : Premier en-tête du PE, contient le message MS DOS ("This programm cannot be run in DOS mode...."), l'en-tête MZ (octets magiques pour identifier le PE) et du contenu stub.
  • IMAGE_NT_HEADER : Contient la signature du fichier PE, l'en-tête de fichier et l'en-tête optionnel
  • SECTION_TABLE : Contient les en-têtes de sections
  • SECTIONS : Pas un en-tête mais utile à savoir : ce sont les sections du PE

Détails : https://www.researchgate.net/figure/PE-structure-of-normal-executable_fig1_259647266

Analyse du PE

Analyse simple du PE pour récupérer l'adresse absolue de l'IAT et de l'ILT :

  • Obtenir l'adresse de base : GetModuleHandleA(NULL);
  • PIMAGE_DOS_HEADER = adresse de base, en-tête DOS
  • PIMAGE_NT_HEADER = BaseAddress+PIMAGE_DOS_HEADER.e_lfnanew (RVA de NT_HEADER)
  • IMAGE_DATA_DIRECTORY = OptionnalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT] de PIMAGE_NT_HEADER
  • IMAGE_IMPORT_DIRECTORY = IMAGE_DATA_DIRECTORY.VirtualAddress (RVA de IMAGE_IMPORT_DIRECTORY)
  • IMAGE_IMPORT_DESCRIPTOR = BaseAddress + IMAGE_IMPORT_DIRECTORY.VirtualAddress (RVA de IMAGE_IMPORT_DESCRIPTOR)
  • Adresse absolue de l'IAT : IMAGE_IMPORT_DESCRIPTOR.FirstThunk (RVA de l'IAT) + BaseAddress
  • Adresse absolue de l'ILT : IMAGE_IMPORT_DESCRIPTOR.OriginalFirstThunk (RVA de l'ILT) + BaseAddress

Table des adresses d'exportation (EAT)

L'EAT résout toutes les fonctions exportées par le PE et résout également les DLL. Elle est définie dans la structure IMAGE_EXPORT_DIRECTORY :```c
typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; // name of DLL DWORD Base; // first ordinal number DWORD NumberOfFunctions; // number of entries in EAT DWORD NumberOfNames; // number of entries in (1) (2) DWORD AddressOfFunctions; // RVA EAT and contains also RVA of exported functions DWORD AddressOfNames; // Pointer array contains address of function names DWORD AddressOfNameOrdinals; // Pointer array contains address of ordinal number of functions (index in AddressOfFunctions) } IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;

Veuillez noter que l'EAT est définie dans une DLL, et non dans un « vrai » PE (un PE utilisera l'EAT d'une DLL chargée pour résoudre les pointeurs vers les fonctions qu'il souhaite utiliser).

### Résoudre l'adresse d'une fonction

**En utilisant l'adresse de la fonction**

Qu'attendez-vous ? Trouvez cette fonction !

**En utilisant le numéro ordinal**

Un numéro ordinal est une **position d'index** correspondant à l'adresse de fonction dans le tableau `AddressOfFunctions`. Il peut être utilisé pour **récupérer l'adresse correcte de la fonction**, comme ci-dessous : 

 Essayons de trouver l'adresse correspondante (Addr4) avec le numéro ordinal 3 donné.
Télécharger l’outil