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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gopacket — Impacket의 완전한 Go 포팅 - Windows 및 Active Directory 프로토콜 공격을 위한 63개의 CLI 도구와 24개의 라이브러리로, 의존성 없는 단일 바이너리로 컴파일됩니다. | Kitploit
도구/GitHubGitHub/mandiant/gopacket
Penetration Testing FrameworksPrivilege EscalationExploit FrameworksPassword AttacksLateral MovementPost-ExploitationNetwork SecurityCommand and ControlRed TeamingRemote Access Tool
GitHub
70761801개월 전Kitploit 검토 완료
mandiant/gopacket

gopacket

Impacket의 완전한 Go 포팅 - Windows 및 Active Directory 프로토콜 공격을 위한 63개의 CLI 도구와 24개의 라이브러리로, 의존성 없는 단일 바이너리로 컴파일됩니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

gopacket

작성자: Jacob Paullus (@psycep_)

Impacket의 완전한 Go 구현 - Windows 네트워크 프로토콜 상호작용, Active Directory 열거, 공격 실행을 위한 63개 도구와 24개 라이브러리 패키지. 네이티브 Go 프레임워크로 제작되어 한 번 컴파일하면 Python 의존성 없이 어디서든 실행할 수 있습니다.

베타 릴리스 - 고도로 실험적. gopacket은 활발히 개발 중입니다. 핵심 도구들은 Active Directory 랩 환경에서 테스트되었지만, 엣지 케이스와 프로토콜 특이사항은 예상되는 부분입니다. 무언가 작동하지 않는다면, 동일한 작업을 Impacket으로 나란히 테스트하고 두 출력을 모두 버그 리포트에 포함해 주세요. 이는 gopacket 특유의 문제인지 공유된 프로토콜 한계인지 빠르게 식별하는 데 도움이 됩니다.

설치

root@kitploit:~
git clone https://github.com/mandiant/gopacket
cd gopacket

# Default: Linux/macOS build + install to /usr/local/bin
./install.sh

# Run with no flags and it prompts you through the choices interactively.
# Or pick a target directly:
./install.sh --target portable   # static Linux binaries in ./dist/portable/
./install.sh --target windows    # Windows .exe cross-compiles in ./dist/windows/
./install.sh --target all        # build every target in one run

# Build without installing (native only)
./install.sh --build-only

# Or build with make
make build

기본(--target native) 빌드는 Go 1.24.13+, GCC, libpcap 개발 헤더가 필요합니다 (Debian/Ubuntu/Kali에서는 apt install build-essential libpcap-dev, RHEL/CentOS에서는 , macOS에서는 ). 및 타겟은 Go 툴체인만 필요합니다. 해당 빌드에서는 libpcap이 필요하기 때문에 와 이 스텁이 됩니다. 전체 매트릭스는 을 참조하세요.

yum install gcc libpcap-devel
brew install libpcap
portable
windows
sniff
split
플랫폼 지원

플랫폼 지원

gopacket은 Linux, macOS, Windows에서 빌드됩니다. 작동하는 도구 세트와 사용 가능한 프록시 경로는 빌드 플래그에 따라 달라집니다:

빌드사용 가능한 도구프록시
Linux / macOS with cgo (기본)전체 63개proxychains (LD_PRELOAD) 및/또는 -proxy SOCKS5
Linux with CGO_ENABLED=061개 (sniff, split은 스텁)-proxy만 (proxychains는 libc 훅 필요)
Windows (GOOS=windows CGO_ENABLED=0)60개 (sniff, split, sniffer 스텁)-proxy만 (Windows에는 LD_PRELOAD 없음)

sniff와 split은 cgo를 통해 libpcap에 의존하고, sniffer는 Unix raw 소켓에 의존합니다. 타겟용으로 도구를 빌드할 수 없을 때, gopacket은 명확한 메시지를 출력하고 종료 코드 1로 종료하는 스텁을 대체하므로 go build ./...는 항상 성공하고 설치 레이아웃은 플랫폼 간 일관성을 유지합니다.

제거하려면:

root@kitploit:~
./install.sh --uninstall

프록시 지원

gopacket은 두 가지 독립적인 프록시 경로를 지원합니다. 이들은 체이닝도 가능합니다.

proxychains (LD_PRELOAD)

모든 gopacket 도구는 proxychains를 통해 작동합니다. Go 바이너리는 일반적으로 proxychains를 우회합니다. Go 런타임이 DNS와 네트워킹을 내부적으로 처리하여 proxychains가 의존하는 LD_PRELOAD 훅을 건너뛰기 때문입니다. gopacket은 네트워크 작업을 위해 시스템 C 라이브러리에 링크함으로써 이를 우회하여 proxychains가 정상적으로 연결을 가로챌 수 있게 합니다.

root@kitploit:~
proxychains gopacket-secretsdump 'domain/user:password@target'
proxychains gopacket-smbclient -k -no-pass 'domain/[email protected]'

내부 SOCKS5 프록시 (-proxy)

모든 도구는 LD_PRELOAD에 의존하지 않고 SOCKS5 서버를 통해 아웃바운드 TCP를 라우팅하는 -proxy를 허용합니다. 허용되는 스킴: socks5 및 socks5h. -proxy가 설정되지 않은 경우, ALL_PROXY / all_proxy 환경 변수가 폴백으로 참조됩니다.

root@kitploit:~
gopacket-secretsdump -proxy socks5h://127.0.0.1:1080 'domain/user:password@target'
ALL_PROXY=socks5h://127.0.0.1:1080 gopacket-smbclient 'domain/user:password@target'

UDP 의존 기능은 -proxy 하에서 비활성화됩니다. 패킷을 조용히 유출하는 대신 말이죠 (SOCKS5 UDP ASSOCIATE는 프록시에서 거의 지원되지 않으며, UDP에 대해 프록시를 우회하면 운영자의 실제 소스 IP가 노출됩니다). 영향을 받는 기능과 그 우회 방법은 KNOWN_ISSUES.md에 문서화되어 있습니다.

체이닝: -proxy는 proxychains와 호환됩니다. SOCKS5 프록시 자체에 대한 TCP 연결은 여전히 libc connect()를 통해 이루어지므로, proxychains → gopacket → -proxy → target은 중첩 라우팅 시나리오에서 작동합니다.

문서

gopacket의 24개 프로토콜 패키지 위에 사용자 정의 도구를 구축하기 위한 전체 API 문서, 코드 예제, 아키텍처 개요는 라이브러리 개발자 가이드를 참조하세요.

도구 (63개)

원격 실행

도구설명
psexecSMB 서비스 생성을 통한 원격 명령 실행
smbexecSMB를 통한 원격 명령 실행 (psexec보다 은밀함)
wmiexecWMI를 통한 원격 명령 실행
dcomexecDCOM을 통한 원격 명령 실행
atexec작업 스케줄러를 통한 원격 명령 실행

자격 증명 덤프 및 DPAPI

도구설명
secretsdumpSAM/LSA/NTDS.dit 추출 및 DCSync (원격 + 오프라인)
dpapiDPAPI 백업 키 추출
esentutl오프라인 ESE 데이터베이스 파서 (NTDS.dit)
registry-read오프라인 Windows 레지스트리 하이브 파서

Kerberos

도구설명
getTGT비밀번호, 해시 또는 AES 키로 TGT 요청
getSTS4U2Self/S4U2Proxy로 서비스 티켓 요청
GetUserSPNsKerberoasting - SPN 찾기 및 요청
GetNPUsersAS-REP roasting - 사전 인증 없는 계정 찾기
ticketer골든/실버 티켓 위조
ticketConverterccache와 kirbi 형식 간 변환
describeTicketKerberos 티켓 파싱 및 복호화
getPacPAC 정보 요청 및 파싱
keylistattackKERB-KEY-LIST-REQ 공격 (RODC)
raiseChild골든 티켓을 통한 자식-부모 도메인 권한 상승

Active Directory 열거

도구설명
GetADUsersLDAP를 통한 도메인 사용자 열거
GetADComputersLDAP를 통한 도메인 컴퓨터 열거
GetLAPSPasswordLDAP를 통한 LAPS 비밀번호 읽기
findDelegation위임 구성 찾기
lookupsidLSARPC를 통한 SID 브루트포싱
samrdumpSAMR을 통한 사용자 열거
rpcdumpepmapper를 통한 RPC 엔드포인트 덤프
rpcmap접근 가능한 RPC 인터페이스 스캔
netSAMR/LSARPC를 통한 net user/group/computer 열거
netview세션, 공유, 로그온한 사용자 열거
CheckLDAPStatusLDAP 서명 및 채널 바인딩 요구사항 확인
DumpNTLMInfoSMB 협상에서 NTLM 인증 정보 덤프
getArchRPC를 통한 원격 OS 아키텍처 감지
machine_role머신 역할 감지 (DC, 서버, 워크스테이션)

Active Directory 공격

도구설명
addcomputer머신 계정 생성/수정/삭제 (SAMR + LDAP)
rbcd리소스 기반 제약 위임 조작
dacleditAD 객체의 DACL 읽기/쓰기
owneredit객체 소유권 읽기/수정
sameditSAM 계정 이름 스푸핑 (CVE-2021-42278/42287)
badsuccessorBadSuccessor / 백업 운영자 권한 상승
changepasswdSAMR 및 LDAP를 통한 비밀번호 변경/재설정

SMB 도구

도구설명
smbclient대화형 SMB 클라이언트 (공유, ls, get, put 등)
smbserver파일 공유용 SMB 서버
attribSMB를 통한 파일 속성 조회/수정
filetimeSMB를 통한 파일 타임스탬프 조회/수정
servicesSVCCTL을 통한 원격 서비스 관리
regWINREG를 통한 원격 레지스트리 작업
Get-GPPPasswordSYSVOL에서 그룹 정책 기본 설정 비밀번호 추출
karmaSMB해시 캡처용 악성 SMB 서버

NTLM 릴레이

도구설명
ntlmrelayx다중 프로토콜 지원을 갖춘 완전한 NTLM 릴레이 프레임워크

ntlmrelayx 지원:

  • 캡처 서버: SMB, HTTP/HTTPS, WCF (ADWS), RAW, RPC, WinRM
  • 릴레이 클라이언트: SMB, LDAP/LDAPS, HTTP/HTTPS, MSSQL, WinRM, RPC
  • 공격: secretsdump, smbexec, ldapdump, RBCD 위임, ACL 악용, 섀도 자격 증명, ADCS ESC8, addcomputer, DNS 조작 등
  • 인프라: 프로토콜 인식 플러그인이 있는 SOCKS5 프록시, 대화형 콘솔, REST API, 다중 타겟 라운드 로빈, WPAD 서빙

SQL Server

도구설명
mssqlclientSQL/Windows/Kerberos 인증을 지원하는 대화형 MSSQL 클라이언트
mssqlinstanceSQL Browser를 통한 MSSQL 인스턴스 검색

WMI

도구설명
wmiquery대화형 WMI 쿼리 셸
wmipersistWMI 이벤트 구독 지속성

터미널 서비스

도구설명
tstool터미널 서비스 세션 및 프로세스 열거

기타 프로토콜

도구설명
rdp_checkRDP 인증 확인
mqtt_checkMQTT 인증 확인
exchangerExchange Web Services 클라이언트

유틸리티

도구설명
ntfs-read오프라인 NTFS 파일시스템 파서
ping / ping6ICMP ping
sniff / sniffer네트워크 패킷 캡처
split대용량 파일 분할

인증

모든 네트워크 도구는 세 가지 인증 방법을 지원합니다:

root@kitploit:~
# Password
gopacket-secretsdump 'domain/user:password@target'

# NTLM hash (pass-the-hash)
gopacket-secretsdump -hashes ':nthash' 'domain/user@target'

# Kerberos (pass-the-ticket)
KRB5CCNAME=ticket.ccache gopacket-secretsdump -k -no-pass 'domain/user@target'

공통 플래그

플래그설명
-hashes LMHASH:NTHASHNTLM 해시 인증 (LM 해시는 비워둘 수 있음)
-kKerberos 인증 사용
-no-pass비밀번호 프롬프트 표시 안 함 (-k 또는 -hashes와 함께 사용)
-dc-ip IP도메인 컨트롤러의 IP 주소
-target-ip IP타겟의 IP 주소 (Kerberos용 호스트명 사용 시)
-port PORT타겟 포트 (기본값은 도구마다 다름)
-proxy URL아웃바운드 TCP를 SOCKS5 프록시를 통해 라우팅 (예: socks5h://127.0.0.1:1080). UDP 기능은 비활성화됨.
-debug디버그 출력 활성화

빠른 예제

root@kitploit:~
# Dump domain hashes via DCSync
gopacket-secretsdump 'corp.local/admin:[email protected]'

# Interactive SMB shell
gopacket-smbclient -hashes ':aabbccdd...' 'corp.local/admin@fileserver'

# Kerberoast
gopacket-getuserspns 'corp.local/user:[email protected]'

# Golden ticket
gopacket-ticketer -nthash <krbtgt_hash> -domain-sid S-1-5-21-... -domain corp.local admin

# NTLM relay with SOCKS proxy
sudo gopacket-ntlmrelayx -t smb://target -socks

# LDAP relay for RBCD
sudo gopacket-ntlmrelayx -t ldaps://dc01.corp.local --delegate-access

# Route all outbound traffic through a SOCKS5 proxy
gopacket-secretsdump -proxy socks5h://127.0.0.1:1080 'corp.local/admin:[email protected]'

라이브러리

pkg/ 디렉터리에는 독립적으로 임포트할 수 있는 24개의 재사용 가능한 프로토콜 패키지가 포함되어 있습니다.

패키지설명
smbNTLM 및 Kerberos 인증을 지원하는 SMB2/3 클라이언트
ldapNTLM/Kerberos 바인드를 지원하는 LDAP 클라이언트
dcerpcDCE/RPC 클라이언트 + 20개 서비스 구현 (DRSUAPI, SAMR, SVCCTL, LSARPC, WINREG, NETLOGON, DCOM, TSCH, EPMAPPER 등)
kerberosKerberos 클라이언트, 티켓 위조 (골든/실버), S4U2Self/S4U2Proxy
ntlmNTLM 인증 프로토콜
relayNTLM 릴레이 프레임워크 (서버, 클라이언트, 공격, SOCKS)
tdsSQL Server TDS 프로토콜
eseExtensible Storage Engine 파서
registryWindows 레지스트리 하이브 파서
ntfsNTFS 파일시스템 파서
security보안 디스크립터, ACL, SID
dpapiDPAPI 구조
mqttMQTT 프로토콜 클라이언트
session타겟/자격 증명 파싱 (domain/user:pass@host)
flags통합 CLI 플래그 프레임워크

누락된 기능 (Impacket 대비)

gopacket은 완전한 Impacket 동등성을 목표로 합니다. 다음은 아직 구현되지 않았습니다:

릴레이 프로토콜 클라이언트:

  • IMAP 릴레이 클라이언트 + 공격 (Exchange/IMAP 서버 필요)
  • SMTP 릴레이 클라이언트 (SMTP 서버 필요)

릴레이 공격 모듈:

  • SCCM 정책/DP 공격 (SCCM 인프라 필요)

독립 실행형 도구:

  • ifmap.py (DCOM 인터페이스 매핑)
  • mimikatz.py (RPC를 통한 제한적 Mimikatz)
  • goldenPac.py (MS14-068 - 패치된 시스템에서 구식)
  • smbrelayx.py (ntlmrelayx로 대체됨)
  • kintercept.py (Kerberos 가로채기)

이러한 격차는 우선순위가 낮습니다 - 대부분 테스트에 특수 인프라가 필요하거나 최신 기법으로 대체되었습니다.

알려진 제한 사항

이는 Impacket과 공유되는 프로토콜 수준의 제한 사항이며, gopacket 버그가 아닙니다:

  • SMB to LDAPS 릴레이는 NTLM MIC 검증 (CVE-2019-1040 이후)으로 인해 패치된 DC에서 실패합니다. 대신 HTTP 강제를 사용하세요.
  • WinRM 릴레이는 패치된 Server 2019+에서 EPA (Extended Protection for Authentication)에 의해 차단됩니다.
  • RPC 릴레이 공격 (tschexec, enum-local-admins)은 릴레이 세션에서 사용할 수 없는 PKT_INTEGRITY가 필요합니다.
  • LDAP 릴레이 to port 389는 LDAP 서명을 요구하는 DC에서 실패합니다. 항상 LDAPS (포트 636)로 릴레이하세요.

각 문제와 우회 방법에 대한 자세한 내용은 KNOWN_ISSUES.md를 참조하세요.

이슈 보고 및 기여

이것은 베타 릴리스입니다. 버그는 예상되며, 기여를 환영합니다.

Impacket으로 먼저 테스트해 보시길 요청하는 이유

gopacket은 Impacket과 동일한 와이어 프로토콜을 구현하기 때문에, "버그"의 상당 부분은 gopacket 특유의 문제가 아니라 환경적 문제로 밝혀집니다 - 패치된 DC, LDAP 서명 요구사항, EPA, PKT_INTEGRITY, SMB 서명, CVE-2019-1040 이후의 NTLM MIC 검증, 누락된 SPN, 시간 차이, DNS 특이사항, 방화벽 규칙 등. 동일한 작업을 Impacket으로 나란히 실행하면 환경을 방정식에서 제거할 수 있습니다:

  • Impacket이 동일하게 실패하면, 그 문제는 거의 항상 환경적이며 KNOWN_ISSUES.md에 이미 문서화되어 있을 가능성이 높습니다. 버그 리포트가 필요하지 않습니다.
  • Impacket은 성공하는데 gopacket이 실패하면, 그것은 실제 gopacket 버그이며 우리가 정확히 듣고 싶어 하는 것입니다.

이 단일 분류 단계는 많은 왕복을 절약하므로 건너뛰지 마세요.

버그 리포트 제출

  1. 동일한 작업을 Impacket으로 실행하고 성공 또는 실패 여부를 기록
  2. -debug로 gopacket을 다시 실행하고 전체 출력을 캡처
  3. 게시하기 전에 민감한 모든 것을 익명화하세요. GitHub 이슈는 공개됩니다. 실제 호스트명, IP 주소, 사용자 이름, 비밀번호 해시, Kerberos 티켓, 도메인 이름, SID, 그리고 실제 침투 작전과 연결될 수 있는 모든 출력 줄을 제거하거나 대체하세요. corp.internal → example.local 및 dc01.corp.internal → dc01.example.local로 대체하는 것은 괜찮습니다 - 데이터의 구조는 유지하되 식별 값은 유지하지 마세요. 의심스러우면 삭제하세요.
  4. GitHub 이슈를 열고 다음을 포함하세요:
    • 두 출력 (gopacket 및 Impacket), 스크린샷이 아닌 텍스트로, 익명화된 상태
    • 실행한 정확한 명령줄 (익명화된 상태)
    • 타겟 OS, AD 기능 수준, 관련 강화 설정 (서명, EPA, 채널 바인딩, 패치 수준)
    • gopacket 버전 / 커밋 해시

기능 요청

사용 사례와 Impacket 대응 항목(있는 경우)을 설명하는 GitHub 이슈를 열어주세요. 기능이 위의 "누락된 기능" 목록에 있다면 어느 것인지 언급해 주세요 - 우선순위를 정하는 데 도움이 됩니다.

풀 리퀘스트

PR을 환영합니다. 열기 전에:

  • go build ./..., go vet ./..., gofmt -l ., go test ./...를 실행하고 모두 깨끗하게 통과하는지 확인하세요
  • 수정 중인 패키지의 기존 코드 스타일을 따르세요
  • 변경 사항을 집중적으로 유지하세요 - 리팩토링과 기능 작업을 분리하세요
  • 사소하지 않은 변경의 경우, 먼저 이슈를 열어 접근 방식을 논의하세요

방어자에게 이것이 중요한 이유

위협 행위자들은 Python에서 벗어나고 있습니다. 컴파일된 Go 및 Rust 도구 (Sliver, BRC4, Geacon, 맞춤형 로더)가 실제 침해에서 Impacket을 점점 더 대체하고 있습니다. 대부분의 방어 도구와 탐지 로직은 Impacket의 Python 기반 네트워크 동작을 중심으로 구축되었으며, 공격자 생태계가 컴파일된 언어로 이동함에 따라 그 커버리지는 침식되고 있습니다.

gopacket은 부분적으로 보안 커뮤니티가 이러한 전환보다 앞서 나갈 수 있도록 돕기 위해 존재합니다. 동일한 프로토콜과 기법의 오픈 소스이고 읽기 쉬운 Go 구현을 제공함으로써, 방어자와 탐지 엔지니어는 다음을 할 수 있습니다:

  • 사고 대응 중에 마주치기를 기다리는 대신 Go 기반 도구가 와이어에서 어떻게 동작하는지 연구
  • 기존 시그니처를 덜 효과적으로 만드는 Go와 Python 구현 간의 프로토콜 수준 차이를 이해
  • 위협 행위자가 채택하고 있는 동일한 컴파일된 단일 바이너리 도구를 사용하여 현실적인 퍼플 팀 훈련을 실행 - 네트워크 계층에서 다르게 동작하는 Python 스크립트에 대해서만 테스트하는 대신

공격자 도구와 방어자 가시성 사이의 격차는 새 도구가 비공개로 유지될 때 가장 큽니다. gopacket을 오픈 소스로 공개하는 것이 그 격차를 좁힙니다.

참고 사항

  • Kerberos 인증에는 유효한 ccache 파일 (TGT 또는 서비스 티켓)이 필요합니다
  • Kerberos의 경우 IP 주소가 아닌 FQDN 호스트명을 사용하세요
  • KRB5CCNAME이 설정되지 않은 경우, 도구는 현재 디렉터리에서 <username>.ccache를 찾습니다
  • 모든 도구는 proxychains와 내부 -proxy SOCKS5 플래그를 모두 지원합니다 (프록시 지원 참조)
  • 이 프로젝트는 승인된 보안 테스트 및 연구 목적으로만 사용됩니다

라이선스

Apache License 2.0에 따라 릴리스되었습니다.

gopacket은 Impacket의 클린 Go 재구현입니다. 전체 제3자 감사 정보는 NOTICE를 참조하세요.

도구 다운로드