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
vba2clr — Esecuzione di .NET da VBA | Kitploit
Strumenti/GitHubGitHub/med0x2e/vba2clr
Scripting e AutomazionePost-ExploitRed TeamingSviluppo PayloadAttacco Avversario
GitHubmed0x2e/vba2clr

vba2clr

Esecuzione di .NET da VBA

Vedi Repository
14720123 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

TLDR:

Solo sperimentando diversi modi per caricare assembly CLR (.NET) in VBA localmente e remotamente usando AppDomain.ExecuteAssembly o qualsiasi altro metodo utile dopo aver aggirato AccessVBOM (l'accesso programmatico al progetto Visual Basic non è attendibile) da VBA.

  • vba2clr.*.vba:
    • Imposta la chiave di registro AccessVBOM a 1
    • Crea un'istanza di un oggetto COM Word.Application. (potrebbe essere Excel.Application, MS PowerPoint, Access ..ecc.).
    • Aggiunge una macro da stringa (la macro corrisponde a ExecuteAssembly.vba codificato in b64/hex)
    • Esegue la macro ExecuteAssembly.vba usando wordObj.Application.Run...

.NET da VBA:

  • ExecuteAssembly.clr.2.0.vba: Fino a .NET 3.5

    • Aggiunge i riferimenti mscordlib richiesti
    • Istanzia gli oggetti richiesti (IDomain, ICRHost)
    • Impacchetta gli argomenti richiesti di AppDomain.ExecuteAssembly in due array separati (variabili, tipi).
    • Usa DispCallFunc per chiamare AppDomain.ExecuteAssembly(Arg1, Arg2) (offset VFTable 51) dove Arg1 è l'"URL dell'assembly .NET" o "Percorso locale" e Arg2 è il valore di ritorno.
    • Gli offset VFTable dei metodi di AppDomain possono essere verificati sull'IDL di AppDomain _AppDomain.idl; tieni presente che l'interfaccia AppDomain eredita dall'interfaccia IUnknown, quindi gli offset VTable di funzioni/metodi partono dal terzo offset in poi, questo perché le interfacce che ereditano da IUnknown hanno le prime 3 voci nella loro vtable impostate sui metodi QueryInterface, AddRef, Release.
    • WinDbg o IDA possono anche essere usati come alternative per estrarre gli offset VTable di funzioni/metodi.
  • ExecuteAssembly.clr.x.vba: supporta .NET 2, 3.5 e 4.x

Note OPSEC:

  • La creazione di un oggetto COM per Word.Application (o Excel.Application ..ecc.) comporterà la generazione di un WinWord.exe aggiuntivo come processo figlio di svchost.exe invece del processo principale WinWord.exe.
  • La chiave di registro AccessVBOM viene modificata/ripristinata via COM usando WScript.Shell; usare le API win32 potrebbe essere un'alternativa migliore.
  • Ospitare il CLR usando le API win32 in VBA è ovviamente più sicuro che aggiornare la chiave di registro AccessVBOM; lascerò questo per un altro giorno...
  • Altre API .NET come System.CodeDom.Compiler possono essere usate per compilare/eseguire codice C# da VBA; controlla il riferimento qui sotto;

Riferimenti:

  • https://github.com/jet2jet/vb2clr
  • https://github.com/med0x2e/NET-Assembly-Inject-Remote
Scarica lo strumento