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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
inject-assembly — 기존 프로세스에 .NET 어셈블리 주입 | Kitploit
도구/GitHubGitHub/kyleavery/inject-assembly
ExploitationShellcodePost-ExploitationRed Teaming
GitHubkyleavery/inject-assembly

inject-assembly

기존 프로세스에 .NET 어셈블리 주입

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

inject-assembly - 기존 프로세스에서 .NET 실행

이 도구는 Cobalt Strike의 전통적인 fork and run 실행 방식에 대한 대안입니다. 로더는 현재 Beacon을 포함한 모든 프로세스에 주입될 수 있습니다. 오래 실행되는 어셈블리는 계속 실행되며, execute-assembly의 동작과 유사하게 출력을 Beacon으로 다시 보냅니다.

inject-assembly는 두 가지 구성 요소로 이루어져 있습니다:

  1. BOF initializer: 인수와 함께 원격 프로세스에 어셈블리 로더를 주입하는 소형 프로그램입니다. 주입을 위해 BeaconInjectProcess를 사용하므로, 이 동작은 Malleable C2 프로필이나 프로세스 주입 BOF(버전 4.5부터)로 사용자 정의할 수 있습니다.

  2. PIC assembly loader: 프로젝트의 핵심입니다. 이 로더는 .NET 런타임을 초기화하고, 제공된 어셈블리를 로드하며, 어셈블리를 실행합니다. 로더는 대상 프로세스에 새 AppDomain을 생성하여 실행이 완료되면 로드된 어셈블리를 완전히 언로드할 수 있습니다.

원격 프로세스와 Beacon 간의 통신은 명명된 파이프(named pipe)를 통해 이루어집니다. Aggressor 스크립트는 파이프 이름을 생성한 후 BOF initializer에 전달합니다.

주요 기능

  • 원격 프로세스가 종료되지 않도록 Environment.Exit()를 패치합니다.
  • .NET 어셈블리 헤더 스토핑(MZ 바이트, e_lfanew, DOS 헤더, 리치 텍스트, PE 헤더)을 수행합니다.
  • SourcePoint를 기반으로 한 무작위 파이프 이름 생성.
  • 어셈블리가 현재 프로세스에 로드되더라도 Beacon이 차단되지 않습니다.

사용법

다운로드한 후 inject-assembly.cna Aggressor 스크립트를 Cobalt Strike에 로드합니다. 그런 다음 다음 명령을 사용하여 어셈블리를 실행할 수 있습니다:

root@kitploit:~
inject-assembly pid assembly [args...]

PID로 0을 지정하면 현재 Beacon 프로세스에서 실행됩니다.

FindObjects-BOF와 같은 다른 도구를 사용하여 이미 .NET 런타임을 로드한 프로세스를 찾는 것이 좋지만, inject-assembly가 작동하는 데 필수 요구 사항은 아닙니다.

주의사항

  • 현재 x64 원격 프로세스만 지원합니다.
  • 프로그램 전체에 원격 프로세스가 중단될 가능성을 줄이기 위한 여러 검사가 있지만, 여전히 발생할 수 있습니다.
  • 기본 Cobalt Strike 프로세스 주입은 발각될 수 있습니다. 사용자 정의 주입 BOF 또는 UDRL IAT 후크를 고려하십시오.
  • 일부 어셈블리는 실행을 완료하기 위해 Environment.Exit()에 의존합니다. 이로 인해 로더의 정리 단계가 발생하지 않지만, jobkill을 사용하여 명명된 파이프를 계속 연결 해제할 수 있습니다.
  • scmain.c의 3번 또는 4번 줄의 주석을 해제하여 각각 오류 또는 상세 모드를 활성화하십시오. 이러한 모드는 셸코드 크기를 줄이기 위해 기본적으로 비활성화되어 있습니다.

참고 자료

이 프로젝트는 다음 프로젝트가 없었다면 불가능했을 것입니다:

  • CLR 관련 정의 및 구현 - https://github.com/TheWover/donut
  • Beacon 작업 인터페이스 및 프로젝트 구조 - https://github.com/SecIdiot/netntlm

기타 기능과 영감은 다음 자료에서 얻었습니다:

  • https://github.com/med0x2e/ExecuteAssembly
  • https://github.com/anthemtotheego/InlineExecute-Assembly
  • https://www.mdsec.co.uk/2020/08/massaging-your-clr-preventing-environment-exit-in-in-process-net-assemblies
도구 다운로드