Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
gopacket — Полный порт Impacket на Go — 63 CLI-инструмента и 24 библиотеки для атак на протоколы Windows и Active Directory, скомпилированные в один бинарный файл без зависимостей. | Kitploit
Инструменты/GitHubGitHub/mandiant/gopacket
Фреймворки для пентестаПовышение привилегийФреймворки для эксплойтовАтаки на ПаролиЛатеральное перемещениеПост-эксплуатацияСетевая безопасностьКомандование и УправлениеRed TeamingИнструмент Удаленного Доступа
GitHub
70761801 месяц назадПроверено Kitploit
mandiant/gopacket

gopacket

Полный порт Impacket на Go — 63 CLI-инструмента и 24 библиотеки для атак на протоколы Windows и Active Directory, скомпилированные в один бинарный файл без зависимостей.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

gopacket

Автор: Jacob Paullus (@psycep_)

Полная реализация Impacket на Go — 63 инструмента и 24 библиотечных пакета для взаимодействия с сетевыми протоколами Windows, перечисления Active Directory и выполнения атак. Создан как нативный фреймворк на 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 (apt install build-essential libpcap-dev в Debian/Ubuntu/Kali, yum install gcc libpcap-devel в RHEL/CentOS или brew install libpcap в macOS). Целевым сборкам portable и windows нужен только инструментарий Go; sniff и split в этих сборках становятся заглушками, поскольку требуют libpcap. Полную матрицу см. в разделе Поддержка платформ.

Поддержка платформ

gopacket собирается на Linux, macOS и Windows. Набор работающих инструментов и доступные пути проксирования зависят от флагов сборки:

СборкаДоступные инструментыПроксирование
Linux / macOS с cgo (по умолчанию)Все 63proxychains (LD_PRELOAD) и/или -proxy SOCKS5
Linux с CGO_ENABLED=061 (sniff, split становятся заглушками)только -proxy (proxychains нужен хук libc)
Windows (GOOS=windows CGO_ENABLED=0)60 (заглушки sniff, split, sniffer)только -proxy (нет LD_PRELOAD в Windows)

sniff и split зависят от libpcap через cgo; sniffer зависит от необработанных сокетов Unix. Когда инструмент невозможно собрать для целевой платформы, gopacket подставляет заглушку, которая выводит понятное сообщение и завершается с кодом 1, поэтому go build ./... всегда завершается успешно, а структура установки остаётся согласованной на всех платформах.

Для удаления:

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

Поддержка прокси

gopacket поддерживает два независимых пути проксирования. Их также можно объединять в цепочку.

proxychains (LD_PRELOAD)

Все инструменты gopacket работают через proxychains. Бинарники Go обычно обходят proxychains, поскольку среда выполнения Go обрабатывает DNS и сетевые операции внутренне, пропуская хуки LD_PRELOAD, на которые полагается proxychains. gopacket обходит это, компонуясь с системной библиотекой C для сетевых операций, что позволяет proxychains перехватывать соединения обычным образом.

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

Внутренний SOCKS5-прокси (-proxy)

Каждый инструмент принимает -proxy для маршрутизации исходящего TCP через сервер SOCKS5 без опоры на LD_PRELOAD. Поддерживаемые схемы: 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. TCP-соединение с самим SOCKS5-прокси всё равно проходит через libc connect(), поэтому proxychains → gopacket → -proxy → target работает для сценариев вложенной маршрутизации.

Документация

Полную документацию по API, примеры кода и обзор архитектуры для создания собственных инструментов на основе 24 протокольных пакетов gopacket см. в Руководстве разработчика библиотеки.

Инструменты (63)

Удалённое выполнение

ИнструментОписание
psexecУдалённое выполнение команд через создание службы SMB
smbexecУдалённое выполнение команд через SMB (скрытнее, чем psexec)
wmiexecУдалённое выполнение команд через WMI
dcomexecУдалённое выполнение команд через DCOM
atexecУдалённое выполнение команд через планировщик задач

Дамп учётных данных и DPAPI

ИнструментОписание
secretsdumpИзвлечение SAM/LSA/NTDS.dit и DCSync (удалённо + офлайн)
dpapiИзвлечение ключа резервного копирования DPAPI
esentutlОфлайн-парсер базы данных ESE (NTDS.dit)
registry-readОфлайн-парсер кустов реестра Windows

Kerberos

ИнструментОписание
getTGTЗапрос TGT с паролем, хешем или ключом AES
getSTЗапрос служебного билета с S4U2Self/S4U2Proxy
GetUserSPNsKerberoasting — поиск и запрос SPN
GetNPUsersAS-REP roasting — поиск учётных записей без предварительной аутентификации
ticketerПодделка golden/silver билетов
ticketConverterПреобразование между форматами ccache и kirbi
describeTicketРазбор и расшифровка билетов Kerberos
getPacЗапрос и разбор информации PAC
keylistattackАтака KERB-KEY-LIST-REQ (RODC)
raiseChildЭскалация из дочернего домена в родительский через golden ticket

Перечисление Active Directory

ИнструментОписание
GetADUsersПеречисление пользователей домена через LDAP
GetADComputersПеречисление компьютеров домена через LDAP
GetLAPSPasswordЧтение паролей LAPS через LDAP
findDelegationПоиск конфигураций делегирования
lookupsidПеребор SID через LSARPC
samrdumpПеречисление пользователей через SAMR
rpcdumpДамп конечных точек RPC через epmapper
rpcmapСканирование доступных интерфейсов RPC
netПеречисление net user/group/computer через SAMR/LSARPC
netviewПеречисление сессий, общих ресурсов и вошедших пользователей
CheckLDAPStatusПроверка требований к подписи LDAP и привязке канала
DumpNTLMInfoДамп информации аутентификации NTLM из согласования SMB
getArchОпределение архитектуры удалённой ОС через RPC
machine_roleОпределение роли машины (DC, сервер, рабочая станция)

Атаки на Active Directory

ИнструментОписание
addcomputerСоздание/изменение/удаление учётных записей машин (SAMR + LDAP)
rbcdМанипуляция Resource-Based Constrained Delegation
dacleditЧтение/запись DACL на объектах AD
ownereditЧтение/изменение владельца объекта
sameditПодмена имени учётной записи SAM (CVE-2021-42278/42287)
badsuccessorBadSuccessor / эскалация через оператора резервного копирования
changepasswdСмена/сброс паролей через SAMR и LDAP

Инструменты SMB

ИнструментОписание
smbclientИнтерактивный клиент SMB (общие ресурсы, ls, get, put и т. д.)
smbserverСервер SMB для обмена файлами
attribЗапрос/изменение атрибутов файлов через SMB
filetimeЗапрос/изменение временных меток файлов через SMB
servicesУдалённое управление службами через SVCCTL
regУдалённые операции с реестром через WINREG
Get-GPPPasswordИзвлечение паролей Group Policy Preferences из SYSVOL
karmaSMBВредоносный сервер SMB для перехвата хешей

NTLM Relay

ИнструментОписание
ntlmrelayxПолноценный фреймворк NTLM relay с поддержкой множества протоколов

ntlmrelayx поддерживает:

  • Серверы перехвата: SMB, HTTP/HTTPS, WCF (ADWS), RAW, RPC, WinRM
  • Клиенты ретрансляции: SMB, LDAP/LDAPS, HTTP/HTTPS, MSSQL, WinRM, RPC
  • Атаки: secretsdump, smbexec, ldapdump, делегирование RBCD, злоупотребление ACL, shadow credentials, ADCS ESC8, addcomputer, манипуляция DNS и другое
  • Инфраструктура: SOCKS5-прокси с плагинами, учитывающими протокол, интерактивная консоль, REST API, круговой перебор нескольких целей, обслуживание WPAD

SQL Server

ИнструментОписание
mssqlclientИнтерактивный клиент MSSQL с аутентификацией SQL/Windows/Kerberos
mssqlinstanceОбнаружение экземпляров MSSQL через SQL Browser

WMI

ИнструментОписание
wmiqueryИнтерактивная оболочка запросов WMI
wmipersistЗакрепление через подписку на события WMI

Службы терминалов

ИнструментОписание
tstoolПеречисление сессий и процессов служб терминалов

Другие протоколы

ИнструментОписание
rdp_checkПроверка аутентификации RDP
mqtt_checkПроверка аутентификации MQTT
exchangerКлиент Exchange 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:NTHASHАутентификация по хешу NTLM (хеш LM может быть пустым)
-kИспользовать аутентификацию Kerberos
-no-passНе запрашивать пароль (используйте с -k или -hashes)
-dc-ip IPIP-адрес контроллера домена
-target-ip IPIP-адрес цели (при использовании имени хоста для 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 переиспользуемых протокольных пакета, которые можно импортировать независимо.

ПакетОписание
smbКлиент SMB2/3 с аутентификацией NTLM и Kerberos
ldapКлиент LDAP с привязкой NTLM/Kerberos
dcerpcКлиент DCE/RPC + 20 реализаций служб (DRSUAPI, SAMR, SVCCTL, LSARPC, WINREG, NETLOGON, DCOM, TSCH, EPMAPPER и др.)
kerberosКлиент Kerberos, подделка билетов (golden/silver), S4U2Self/S4U2Proxy
ntlmПротокол аутентификации NTLM
relayФреймворк NTLM relay (серверы, клиенты, атаки, SOCKS)
tdsПротокол TDS SQL Server
eseПарсер Extensible Storage Engine
registryПарсер кустов реестра Windows
ntfsПарсер файловой системы NTFS
securityДескрипторы безопасности, ACL, SID
dpapiСтруктуры DPAPI
mqttКлиент протокола MQTT
sessionРазбор цели/учётных данных (domain/user:pass@host)
flagsУнифицированный фреймворк флагов CLI

Отсутствующие функции (по сравнению с Impacket)

gopacket стремится к полному паритету с Impacket. Следующее пока не реализовано:

Клиенты протоколов ретрансляции:

  • Клиент ретрансляции IMAP + атака (требуется сервер Exchange/IMAP)
  • Клиент ретрансляции SMTP (требуется сервер SMTP)

Модули атак ретрансляции:

  • Атаки на политики/DP SCCM (требуется инфраструктура SCCM)

Автономные инструменты:

  • ifmap.py (сопоставление интерфейсов DCOM)
  • mimikatz.py (ограниченный Mimikatz через RPC)
  • goldenPac.py (MS14-068 — устарел на пропатченных системах)
  • smbrelayx.py (заменён на ntlmrelayx)
  • kintercept.py (перехват Kerberos)

Эти пробелы имеют низкий приоритет — большинство требуют специфической инфраструктуры для тестирования или устарели в пользу более новых техник.

Известные ограничения

Это ограничения на уровне протокола, общие с Impacket, а не ошибки gopacket:

  • Ретрансляция SMB на LDAPS не работает на пропатченных DC из-за проверки NTLM MIC (после CVE-2019-1040). Используйте вместо этого принуждение через HTTP.
  • Ретрансляция WinRM блокируется EPA (Extended Protection for Authentication) на пропатченных Server 2019+.
  • Атаки ретрансляции RPC (tschexec, enum-local-admins) требуют PKT_INTEGRITY, который недоступен в сессиях ретрансляции.
  • Ретрансляция LDAP на порт 389 не работает на DC, требующих подписи LDAP. Всегда выполняйте ретрансляцию на LDAPS (порт 636).

Подробную информацию о каждой проблеме и способах обхода см. в KNOWN_ISSUES.md.

Сообщение о проблемах и участие

Это бета-релиз. Ошибки ожидаемы, и мы приветствуем вклад.

Почему мы просим сначала протестировать с Impacket

Поскольку gopacket реализует те же сетевые протоколы, что и Impacket, значительная доля «багов» оказывается средовыми, а не специфичными для gopacket — пропатченные DC, требования подписи LDAP, EPA, PKT_INTEGRITY, подпись SMB, проверка NTLM MIC после CVE-2019-1040, отсутствующие SPN, рассинхронизация времени, особенности DNS, правила брандмауэра и так далее. Запуск той же операции с Impacket параллельно исключает среду из уравнения:

  • Если Impacket падает так же, проблема почти всегда средовая и, вероятно, уже задокументирована в KNOWN_ISSUES.md. Отчёт об ошибке не нужен.
  • Если Impacket работает там, где gopacket падает, это настоящий баг gopacket, и именно о таком мы хотим услышать.

Этот единственный шаг триажа экономит много итераций, поэтому, пожалуйста, не пропускайте его.

Подача отчёта об ошибке

  1. Запустите ту же операцию с Impacket и отметьте, успешна она или нет
  2. Перезапустите gopacket с -debug и сохраните полный вывод
  3. Анонимизируйте всё чувствительное перед публикацией. Задачи на GitHub публичны. Удалите или замените реальные имена хостов, IP-адреса, имена пользователей, хеши паролей, билеты Kerberos, доменные имена, SID и любые строки вывода, которые могут быть связаны с реальным проектом. Замена corp.internal → example.local и dc01.corp.internal → dc01.example.local допустима — сохраните структуру данных, но не идентифицирующие значения. Если сомневаетесь, отредактируйте.
  4. Откройте задачу на GitHub и включите:
    • Оба вывода (gopacket и Impacket), в виде текста, а не скриншотов, анонимизированные
    • Точную командную строку, которую вы запускали (анонимизированную)
    • ОС цели, функциональный уровень AD и любое соответствующее усиление защиты (подпись, EPA, привязка канала, уровень патчей)
    • Версию / хеш коммита gopacket

Запросы функций

Откройте задачу на GitHub с описанием сценария использования и эквивалента в Impacket (если есть). Если функция есть в списке «Отсутствующие функции» выше, укажите, какая именно — это поможет нам расставить приоритеты.

Pull request'ы

PR приветствуются. Перед открытием:

  • Запустите go build ./..., go vet ./..., gofmt -l . и go test ./... и убедитесь, что все они проходят без ошибок
  • Соблюдайте существующий стиль кода в пакете, который затрагиваете
  • Держите изменения сфокусированными — отделяйте рефакторинг от работы над функциями
  • Для нетривиальных изменений сначала откройте задачу для обсуждения подхода

Почему это важно для защитников

Злоумышленники отходят от Python. Скомпилированный инструментарий на Go и Rust (Sliver, BRC4, Geacon и специализированные загрузчики) всё чаще заменяет Impacket в реальных вторжениях. Большинство защитного инструментария и логики обнаружения были построены вокруг сетевого поведения Impacket на Python, и это покрытие размывается по мере смещения экосистемы атакующих к компилируемым языкам.

gopacket существует отчасти для того, чтобы помочь сообществу безопасности опередить это смещение. Предоставляя открытую, читаемую реализацию на Go тех же протоколов и техник, защитники и инженеры по обнаружению могут:

  • Изучать, как инструментарий на Go ведёт себя в сети, вместо того чтобы ждать, пока столкнутся с ним во время инцидента
  • Понимать различия на уровне протокола между реализациями на Go и Python, из-за которых существующие сигнатуры становятся менее эффективными
  • Проводить реалистичные учения purple team, используя тот же скомпилированный однофайловый инструментарий, который перенимают злоумышленники, вместо тестирования исключительно против Python-скриптов, которые ведут себя иначе на сетевом уровне

Разрыв между инструментарием атакующих и видимостью защитников наиболее широк, когда новый инструментарий остаётся закрытым. Открытие исходного кода gopacket сокращает этот разрыв.

Примечания

  • Аутентификация Kerberos требует действительного файла ccache (TGT или служебный билет)
  • Для Kerberos используйте полное доменное имя хоста — не IP-адрес
  • Если KRB5CCNAME не задан, инструменты будут искать <username>.ccache в текущем каталоге
  • Все инструменты поддерживают как proxychains, так и внутренний флаг -proxy SOCKS5 (см. Поддержка прокси)
  • Этот проект предназначен только для авторизованного тестирования безопасности и исследований

Лицензия

Выпущено под Apache License 2.0.

gopacket — это чистая реализация Impacket на Go; полные благодарности третьим сторонам см. в NOTICE.

Скачать инструмент