Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
vba2clr — Running .NET from VBA | Kitploit
도구/GitHubGitHub/med0x2e/vba2clr
Scripting & AutomationPost-ExploitationRed TeamingPayload DevelopmentAdversarial Attack
GitHubmed0x2e/vba2clr

vba2clr

Running .NET from VBA

저장소 보기
147203년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

TLDR:

VBA에서 AccessVBOM(Visual Basic 프로젝트에 대한 프로그래밍 방식 액세스가 신뢰되지 않음)을 우회한 후 AppDomain.ExecuteAssembly 또는 기타 편리한 방법을 사용하여 CLR(.NET) 어셈블리를 VBA에 로컬 및 원격으로 로드하는 다양한 방법을 실험하고 있습니다.

  • vba2clr.*.vba:
    • AccessVBOM 레지스트리 키를 1로 설정합니다.
    • Word.Application COM 개체를 인스턴스화합니다. (Excel.Application, MS PowerPoint, Access 등이 될 수 있음).
    • 문자열에서 매크로 추가 (매크로는 b64/hex로 인코딩된 ExecuteAssembly.vba에 해당)
    • wordObj.Application.Run...을 사용하여 ExecuteAssembly.vba 매크로 실행

VBA에서 .NET:

  • ExecuteAssembly.clr.2.0.vba: .NET 3.5까지

    • 필요한 mscordlib 참조를 추가합니다.
    • 필요한 개체(IDomain, ICRHost)를 인스턴스화합니다.
    • 필요한 AppDomain.ExecuteAssembly 인수를 두 개의 별도 배열(변수, 형식)로 패킹합니다.
    • DispCallFunc를 사용하여 AppDomain.ExecuteAssembly(Arg1, Arg2) (VFTable 오프셋 51)를 호출합니다. 여기서 Arg1은 ".NET 어셈블리 URL" 또는 "로컬 경로"이고 Arg2는 반환 값입니다.
    • AppDomain 메서드 VFTable 오프셋은 AppDomain IDL _AppDomain.idl에서 확인할 수 있습니다. AppDomain 인터페이스는 IUnknown 인터페이스에서 상속되므로 함수/메서드 VTable 오프셋은 세 번째 오프셋부터 시작한다는 점을 명심하세요. IUnknown에서 상속되는 인터페이스는 vtable의 처음 3개 항목이 QueryInterface, AddRef, Release 메서드로 설정되어 있기 때문입니다.
    • WinDbg 또는 IDA를 함수/메서드 VTable 오프셋을 추출하기 위한 대안으로 사용할 수도 있습니다.
  • ExecuteAssembly.clr.x.vba: .NET 2, 3.5 및 4.x를 지원합니다.

OPSEC 참고 사항:

  • Word.Application(또는 Excel.Application 등)에 대한 COM 개체를 생성하면 기본 WinWord.exe 프로세스 대신 svchost.exe의 자식 프로세스로 추가 WinWord.exe가 생성됩니다.
  • AccessVBOM 레지스트리 키는 WScript.Shell을 사용하여 COM을 통해 수정/복원되며, win32 API를 사용하는 것이 더 나은 대안이 될 수 있습니다.
  • VBA에서 win32 API를 사용하여 CLR을 호스팅하는 것은 AccessVBOM 레지스트리 키를 업데이트하는 것보다 분명히 더 안전합니다. 이 부분은 다음에 남겨두겠습니다...
  • System.CodeDom.Compiler와 같은 다른 .NET API를 사용하여 VBA에서 c# 코드를 컴파일/실행할 수 있습니다. 아래 참조를 확인하세요.

References:

  • https://github.com/jet2jet/vb2clr
  • https://github.com/med0x2e/NET-Assembly-Inject-Remote
도구 다운로드