Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
go-shellcode — Windows Shellcode 실행기 및 지원 유틸리티의 저장소입니다. 이 애플리케이션들은 다양한 API 호출 또는 기법을 사용하여 Shellcode를 로드하고 실행합니다. | Kitploit
도구/GitHubGitHub/ne0nd0g/go-shellcode
Payload GenerationExploitationShellcodePost-ExploitationPenetration TestingRed TeamingPayload Development
GitHubne0nd0g/go-shellcode

go-shellcode

Windows Shellcode 실행기 및 지원 유틸리티의 저장소입니다. 이 애플리케이션들은 다양한 API 호출 또는 기법을 사용하여 Shellcode를 로드하고 실행합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

go-shellcode

go-shellcode는 Windows 셸코드 실행 도구(runner)와 보조 유틸리티의 저장소입니다. 이 애플리케이션들은 다양한 API 호출 또는 기법을 사용하여 셸코드를 로드하고 실행합니다.

사용 가능한 셸코드 실행 도구는 다음과 같습니다:

  • CreateFiber
  • CreateProcess
  • CreateProcessWithPipe
  • CreateRemoteThread
  • CreateRemoteThreadNative
  • CreateThread
  • CreateThreadNative
  • EarlyBird
  • EtwpCreateEtwThread
  • NtQueueApcThreadEx (로컬)
  • RtlCreateUserThread
  • Syscall
  • Shellcode 유틸리티
  • UuidFromStringA

CreateFiber

이 애플리케이션은 Kernel32.dll의 Windows CreateFiber 함수를 활용하여 현재 애플리케이션의 프로세스 내에서 셸코드를 실행합니다. 원격 프로세스 인젝션을 피하고 CreateThread 호출을 피하려는 경우 유용합니다. 이 애플리케이션은 golang.org/x/sys/windows 패키지의 함수를 사용하지 않습니다. 가장 큰 차이점은 필요한 모든 DLL과 프로시저를 자체적으로 로드하고 프로시저의 Call() 함수를 사용한다는 점입니다.

참고: 프로세스를 종료하는 방법을 찾지 못했으며, 수동으로 종료해야 합니다.

이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateFiber.exe .\cmd\CreateFiber\main.go

CreateProcess

이 애플리케이션은 Kernel32.dll의 Windows CreateProcess 함수를 활용합니다. 프로세스는 일시 중단(suspended) 상태로 생성되고, IMAGE_OPTIONAL_HEADER 구조체의 AddressOfEntryPoint가 자식 프로세스에서 셸코드를 실행하도록 업데이트된 후 프로세스가 재개됩니다. 이는 프로세스 할로잉(process hollowing)의 한 유형이지만 기존 PE는 매핑 해제되지 않으며 ThreadContext는 업데이트되지 않습니다. 제공된 셸코드 아키텍처(x86 또는 x64)는 자식 프로세스의 아키텍처와 일치해야 합니다.

이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateProcess.exe .\cmd\CreateProcess\main.go

CreateProcessWithPipe

이 애플리케이션은 Kernel32.dll의 Windows CreateProcess 함수를 활용합니다. 프로세스는 일시 중단(suspended) 상태로 생성되고, IMAGE_OPTIONAL_HEADER 구조체의 AddressOfEntryPoint가 자식 프로세스에서 셸코드를 실행하도록 업데이트된 후 프로세스가 재개됩니다. 이는 프로세스 할로잉(process hollowing)의 한 유형이지만 기존 PE는 매핑 해제되지 않으며 ThreadContext는 업데이트되지 않습니다. 제공된 셸코드 아키텍처(x86 또는 x64)는 자식 프로세스의 아키텍처와 일치해야 합니다.

이 애플리케이션은 CreateProcess와 다른 점은 자식 프로세스에서 STDOUT 또는 STDERR로 작성된 모든 데이터를 수집하여 부모 프로세스로 반환한다는 것입니다. 데이터는 CreatePipe 함수를 사용하여 익명 파이프를 생성하여 부모와 자식 프로세스가 통신하도록 함으로써 수집됩니다. 이는 Donut과 같은 도구를 사용하여 .NET 어셈블리를 자식 프로세스에서 셸코드로 실행하고 실행된 프로그램의 출력을 검색할 때 유용합니다. 다음 명령을 사용하여 Donut v0.9.3으로 Seatbelt를 실행하는 위치 독립적 셸코드를 생성할 수 있습니다:

.\donut.exe -o donut_v0.9.3_Seatbelt.bin -x 2 -c Seatbelt.Program -m Main -p "ARPTable" Seatbelt.exe

이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateProcessWithPipe.exe .\cmd\CreateProcessWithPipe\main.go

CreateRemoteThread

이 애플리케이션은 Kernel32.dll의 Windows CreateRemoteThread 함수를 활용하여 원격 프로세스에서 셸코드를 실행합니다. 이 애플리케이션은 주입할 대상 프로세스가 이미 실행 중이어야 합니다. 테스트를 위해 -pid 명령줄 플래그를 사용하여 대상 프로세스 ID(PID)를 런타임에 제공할 수 있습니다. 운영 목적으로는 다음 코드 줄에서 0을 대상 PID로 바꿔 PID를 하드코딩하십시오:

pid := flag.Int("pid", 0, "Process ID to inject shellcode into")

이 애플리케이션은 가능한 경우 golang.org/x/sys/windows 패키지의 함수(예: windows.OpenProcess())를 활용합니다. 이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateRemoteThread.exe .\cmd\CreateRemoteThread\main.go

CreateRemoteThreadNative

이 애플리케이션은 Kernel32.dll의 Windows CreateRemoteThread 함수를 활용하여 원격 프로세스에서 셸코드를 실행합니다. 이 애플리케이션은 주입할 대상 프로세스가 이미 실행 중이어야 합니다. 테스트를 위해 -pid 명령줄 플래그를 사용하여 대상 프로세스 ID(PID)를 런타임에 제공할 수 있습니다. 운영 목적으로는 다음 코드 줄에서 0을 대상 PID로 바꿔 PID를 하드코딩하십시오:

pid := flag.Int("pid", 0, "Process ID to inject shellcode into")

이 애플리케이션은 golang.org/x/sys/windows 패키지의 함수를 사용하지 않습니다. 가장 큰 차이점은 필요한 모든 DLL과 프로시저를 자체적으로 로드하고 프로시저의 Call() 함수를 사용한다는 점입니다. 이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateRemoteThreadNative.exe .\cmd\CreateRemoteThreadNative\main.go

CreateThread

이 애플리케이션은 Kernel32.dll의 Windows CreateThread 함수를 활용하여 현재 애플리케이션의 프로세스 내에서 셸코드를 실행합니다. 원격 프로세스 인젝션을 피하려는 경우 유용합니다. 이 애플리케이션은 가능한 경우 golang.org/x/sys/windows 패키지의 함수(예: windows.VirtualAlloc())를 활용합니다. 이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateThread.exe .\cmd\CreateThread\main.go

CreateThreadNative

이 애플리케이션은 Kernel32.dll의 Windows CreateThread 함수를 활용하여 현재 애플리케이션의 프로세스 내에서 셸코드를 실행합니다. 원격 프로세스 인젝션을 피하려는 경우 유용합니다. 이 애플리케이션은 golang.org/x/sys/windows 패키지의 함수를 사용하지 않습니다. 가장 큰 차이점은 필요한 모든 DLL과 프로시저를 자체적으로 로드하고 프로시저의 Call() 함수를 사용한다는 점입니다. 이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o CreateThreadNative.exe .\cmd\CreateThreadNative\main.go

EarlyBird

이 애플리케이션은 Windows CreateProcess 함수를 사용하여 프로세스를 일시 중단 상태로 만듭니다. 자식 프로세스가 일시 중단되면 Windows QueueUserAPC 함수를 사용하여 할당된 셸코드를 가리키는 UserAPC를 자식 프로세스에 추가합니다. 그런 다음 ResumeThread가 호출되고, 이어서 문서화되지 않은 NtTestAlert 함수가 호출되어 생성된 UserAPC를 실행하고 결과적으로 셸코드를 실행합니다. 이는 AV/EDR이 감지를 지원하기 위해 함수를 후킹(hook)하기 전에 셸코드가 실행되므로 유용합니다. 참고: New 'Early Bird' Code Injection Technique Discovered. 이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

export GOOS=windows GOARCH=amd64;go build -o goEarlyBird.exe cmd\EarlyBird\main.go

EtwpCreateEtwThread

이 애플리케이션은 ntdll.dll의 Windows EtwpCreateEtwThread 함수를 활용하여 현재 애플리케이션의 프로세스 내에서 셸코드를 실행합니다. 원본 작업은 TheWover입니다. 원격 프로세스 인젝션을 피하려는 경우 유용합니다. 이 애플리케이션은 golang.org/x/sys/windows 패키지의 함수를 사용하지 않습니다. 가장 큰 차이점은 필요한 모든 DLL과 프로시저를 자체적으로 로드하고 프로시저의 Call() 함수를 사용한다는 점입니다. 이 애플리케이션은 Windows 호스트에서 프로젝트 루트 디렉터리에서 다음 명령으로 컴파일할 수 있습니다:

set GOOS=windows GOARCH=amd64;go build -o EtwpCreateEtwThread.exe .\cmd\EtwpCreateEtwThread\main.go

NtQueueApcThreadEx (로컬)

이 애플리케이션은 문서화되지 않은 NtQueueApcThreadEx를 사용하여 현재 프로세스의 현재 스레드에 "Special User APC"를 생성하여 셸코드를 실행합니다. 셸코드가 현재 프로세스에 로드되고 실행되므로 "로컬"입니다. 동일한 기술을 원격 프로세스에도 사용할 수 있습니다. 참고: 이는 Windows 7 이상에서만 작동합니다. 참고: APC Series: User APC API.

도구 다운로드