Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Win32_Offensive_Cheatsheet — Tecniche di abuso di Win32 e Kernel per pentester | Kitploit
Strumenti/GitHubGitHub/matthieu-hackwitharts/win32_offensive_cheatsheet
Meccanismi di PersistenzaExploitEvasione IDS/IPSReverse EngineeringPost-ExploitPenetration TestingAnalisi di BinariApprendimento e FormazioneRed Teaming
Risorse Curate
Sviluppo Payload
GitHubmatthieu-hackwitharts/win32_offensive_cheatsheet

Win32_Offensive_Cheatsheet

Tecniche di abuso di Win32 e Kernel per pentester

Vedi Repository
981136173 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Cheatsheet Offensivo Win32

Tecniche di abuso di Win32 e Kernel per pentester e red teamer create da @UVision e @RistBS

Modalità sviluppatore attiva, aperto a qualsiasi aiuto :)

  • Documentazione dei binari Windows
    • Struttura PE
    • Intestazioni PE
    • Parsing PE
    • Tabella degli Indirizzi di Esportazione (EAT)
    • Risoluzione dell'indirizzo di funzione
    • Tabella degli Indirizzi di Importazione (IAT)
      • Parsing IAT
    • Tabella di Lookup delle Importazioni (ILT)
    • Abilitare il privilegio SeDebug
  • Eseguire un binario
    • Esecuzione classica di shellcode
    • Esecuzione di DLL
    • Da file RAW a PE
  • Tecniche di code injection
    • Iniezione con CreateRemoteThread
    • Process Hollowing
    • Tecnica della coda APC
    • Early Bird
    • Iniezione DLL riflessiva
    • Iniezione di DLL
    • Process Doppelganging
    • Fibers
    • CreateThreadPoolWait
    • Thread Hijacking
    • Code injection con MapView
    • Module Stomping
    • Function Stomping
  • Tecniche di hooking
    • Inline hooking
    • Hooking dell'IAT
  • Tecniche di bypass RE
    • Offuscamento di chiamate e stringhe
    • Risoluzione manuale delle funzioni
    • Hashing delle API Win32
  • Bypass EDR/Endpoint
    • Syscall diretta
    • Linguaggi di alto livello
    • Patch dell'inline hooking
    • Rilevare hook
    • Patch ETW
    • Bypass sandbox
    • Bypass del debugging
    • Tecnica VirtualProtect
    • Unhook con copia pulita
    • Hell's Gate
    • Heaven's Gate
    • Spoofing PPID
    • Process Instrumentation Callback
    • Crittografia dell'heap
    • Offuscamento del sonno
  • Basi della programmazione di driver
    • Concetti generali
    • System Service Dispatch Table (SSDT)
    • Entry point del driver
    • Input Output)
    • Comunicare con il driver
    • Firma del driver (Microsoft)
    • Callback personalizzati (ObRegisterCallbacks)
  • Programmazione offensiva dei driver
    • Patch del callback del kernel
    • Patch del processo protetto
  • Usare le API Win32 per aumentare l'OPSEC
    • Persistenza
      • Attività pianificate
    • Spoofing della riga di comando
  • Varie
    • Convenzione di chiamata x64
    • Esecuzione indiretta
      • Bypass CFG con SetProcessValidCallTargets

  • Tecniche malware/sofisticate
    • Caso di Emotet: spoofing PPID tramite WMI
    • Tecnica dei file nascosti del malware Zeus
    • Tecnica di hooking del keylogger SpyEye
    • Il più assurdo stop al malware (WannaCry)

Documentazione dei binari Windows

Strumenti utili e Siti Web/Libri/Cheatsheet

  • 🔹 https://github.com/RistBS/Awesome-RedTeam-Cheatsheet/ (Cheatsheet molto buono)
  • 🔹 https://www.ired.team/ (Fantastico cheatsheet per red team con ottime note sul code injection)
  • 🔹 https://undocumented.ntinternals.net/ (Funzioni NT non documentate)
  • 🔹 https://docs.microsoft.com/en-us/windows/win32/api/ (Documentazione ufficiale Microsoft)
  • 🔹 Windows Kernel Programming - Pavel Yosifovich
  • 🔹 https://research.checkpoint.com/ (Documenti molto interessanti su evasione, anti-debug e altro ancora)
  • 🔹 https://www.vx-underground.org/ (Contenuti fantastici sullo sviluppo di malware e sul reverse)

Struttura PE

Intestazioni PE

  • DOS_HEADER : Prima intestazione del PE, contiene il messaggio MS DOS ("This programm cannot be run in DOS mode...."), l'intestazione MZ (byte magici per identificare il PE) e del contenuto stub.
  • IMAGE_NT_HEADER : Contiene la firma del file PE, il File Header e l'Optionnal Header
  • SECTION_TABLE : Contiene le intestazioni delle sezioni
  • SECTIONS : Non è un'intestazione ma è utile sapere: queste sono le sezioni del PE

Dettagli : https://www.researchgate.net/figure/PE-structure-of-normal-executable_fig1_259647266

Parsing PE

Semplice parsing del PE per recuperare l'indirizzo assoluto di IAT e ILT:

  • Ottenere l'indirizzo base : GetModuleHandleA(NULL);
  • PIMAGE_DOS_HEADER = indirizzo base, intestazione DOS
  • PIMAGE_NT_HEADER = BaseAddress+PIMAGE_DOS_HEADER.e_lfnanew (RVA NT_HEADER)
  • IMAGE_DATA_DIRECTORY = OptionnalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT] di PIMAGE_NT_HEADER
  • IMAGE_IMPORT_DIRECTORY = IMAGE_DATA_DIRECTORY.VirtualAddress (RVA di IMAGE_IMPORT_DIRECTORY)
  • IMAGE_IMPORT_DESCRIPTOR = BaseAddress + IMAGE_IMPORT_DIRECTORY.VirtualAddress (RVA di IMAGE_IMPORT_DESCRIPTOR)
  • Indirizzo assoluto IAT : IMAGE_IMPORT_DESCRIPTOR.FirstThunk (RVA IAT) + BaseAddress
  • Indirizzo assoluto ILT : IMAGE_IMPORT_DESCRIPTOR.OriginalFirstThunk (RVA ILT) + BaseAddress

Tabella degli Indirizzi di Esportazione (EAT)

L'EAT risolve tutte le funzioni esportate dal PE e risolve anche le DLL. È definita nella struttura 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;

Si noti che l'EAT è definita in una DLL, non in un PE "reale" (un PE userà l'EAT di una DLL caricata per risolvere i puntatori alle funzioni che vuole utilizzare).

### Risolvere l'indirizzo di una funzione

**Tramite l'indirizzo della funzione**

Che aspetti? Trova questa funzione!

**Tramite il numero ordinale**

Un numero ordinale è un **indice di posizione** che individua l'indirizzo di funzione corrispondente nell'array `AddressOfFunctions`. Può essere usato per **recuperare l'indirizzo corretto della funzione**, come di seguito:

 Proviamo a trovare l'indirizzo corrispondente (Addr4) con il numero ordinale 3.

- **AddressOfFunctions** : *Addr1 Addr2 Addr3 Addr4 .... AddrN*
- **AdressOfNameOrdinals** : *2 5 7 3 ... N*
Scarica lo strumento