منفذ Go كامل لـ Impacket - 63 أداة CLI و24 مكتبة لهجمات بروتوكولات Windows وActive Directory، مُجمَّعة في ملف ثنائي واحد بدون تبعيات.
بواسطة Jacob Paullus (@psycep_)
تطبيق Go كامل لـ Impacket - 63 أداة و24 حزمة مكتبة للتفاعل مع بروتوكولات شبكات Windows، وتعداد Active Directory، وتنفيذ الهجمات. مبني كإطار عمل Go أصلي بحيث يمكنك الترجمة مرة واحدة وتشغيله في أي مكان دون تبعيات Python.
إصدار تجريبي - تجريبي للغاية. gopacket قيد التطوير النشط. تم اختبار الأدوات الأساسية مقابل بيئات مختبر Active Directory، لكن الحالات الحدية وتقلبات البروتوكولات متوقعة. إذا لم يعمل شيء ما، يرجى اختبار نفس العملية مع Impacket جنبًا إلى جنب وتضمين كلا المخرجات في تقرير الخطأ. يساعدنا هذا في تحديد ما إذا كانت المشكلة خاصة بـ gopacket أو قيدًا مشتركًا في البروتوكول.
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. تعتمد مجموعة الأدوات العاملة ومسارات التمرير المتاحة على أعلام البناء:
| Build | Tools available | Proxying |
|---|---|---|
| Linux / macOS with cgo (default) | All 63 | proxychains (LD_PRELOAD) and/or -proxy SOCKS5 |
Linux with CGO_ENABLED=0 | 61 (sniff, split become stubs) | -proxy only (proxychains needs the libc hook) |
Windows (GOOS=windows CGO_ENABLED=0) | 60 (sniff, split, sniffer stubs) | -proxy only (no LD_PRELOAD on Windows) |
يعتمد sniff وsplit على libpcap عبر cgo؛ يعتمد sniffer على مقابس
Unix الخام. عندما يتعذر بناء أداة للهدف، يستبدل gopacket واجهة وهمية تطبع
رسالة واضحة وتخرج بالرمز 1، بحيث ينجح go build ./... دائمًا ويكون تخطيط
التثبيت متسقًا عبر المنصات.
لإلغاء التثبيت:
./install.sh --uninstall
يدعم gopacket مساري تمرير مستقلين. يمكن أيضًا تسلسلهما معًا.
تعمل جميع أدوات gopacket عبر proxychains. عادةً ما تتجاوز ثنائيات Go
proxychains لأن وقت تشغيل Go يتعامل مع DNS والشبكات داخليًا، متجاوزًا
خطافات LD_PRELOAD التي يعتمد عليها proxychains. يتحايل gopacket على ذلك
بالربط مع مكتبة C الخاصة بالنظام لعمليات الشبكة، مما يسمح لـ proxychains
باعتراض الاتصالات بشكل طبيعي.
proxychains gopacket-secretsdump 'domain/user:password@target'
proxychains gopacket-smbclient -k -no-pass 'domain/[email protected]'
-proxy)تقبل كل أداة -proxy لتوجيه TCP الصادر عبر خادم SOCKS5 دون الاعتماد على
LD_PRELOAD. المخططات المقبولة: socks5 وsocks5h. عندما لا يتم تعيين
-proxy، يتم الرجوع إلى متغيرات البيئة ALL_PROXY / all_proxy.
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 نفسه يمر عبر connect() في libc، لذا يعمل
proxychains → gopacket → -proxy → target لسيناريوهات التوجيه المتداخلة.
راجع دليل مطوري المكتبة للحصول على توثيق API الكامل، وأمثلة الكود، ونظرة عامة على البنية لبناء أدوات مخصصة فوق حزم البروتوكولات الـ 24 الخاصة بـ gopacket.
| Tool | Description |
|---|---|
| psexec | تنفيذ أوامر عن بُعد عبر إنشاء خدمة SMB |
| smbexec | تنفيذ أوامر عن بُعد عبر SMB (أكثر تخفيًا من psexec) |
| wmiexec | تنفيذ أوامر عن بُعد عبر WMI |
| dcomexec | تنفيذ أوامر عن بُعد عبر DCOM |
| atexec | تنفيذ أوامر عن بُعد عبر Task Scheduler |
| Tool | Description |
|---|---|
| secretsdump | استخراج SAM/LSA/NTDS.dit وDCSync (عن بُعد + دون اتصال) |
| dpapi | استخراج مفتاح النسخ الاحتياطي DPAPI |
| esentutl | محلل قاعدة بيانات ESE دون اتصال (NTDS.dit) |
| registry-read | محلل خلية سجل Windows دون اتصال |
| Tool | Description |
|---|---|
| getTGT | طلب TGT بكلمة مرور أو hash أو مفتاح AES |
| getST | طلب تذكرة خدمة باستخدام S4U2Self/S4U2Proxy |
| GetUserSPNs | Kerberoasting - البحث عن SPNs وطلبها |
| GetNPUsers | AS-REP roasting - البحث عن حسابات بدون pre-auth |
| ticketer | تزوير التذاكر الذهبية/الفضية |
| ticketConverter | التحويل بين صيغ ccache وkirbi |
| describeTicket | تحليل وفك تشفير تذاكر Kerberos |
| getPac | طلب وتحليل معلومات PAC |
| keylistattack | هجوم KERB-KEY-LIST-REQ (RODC) |
| raiseChild | تصعيد من النطاق الفرعي إلى الأب عبر التذكرة الذهبية |
| Tool | Description |
|---|---|
| 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، خادم، محطة عمل) |
| Tool | Description |
|---|---|
| addcomputer | إنشاء/تعديل/حذف حسابات الأجهزة (SAMR + LDAP) |
| rbcd | التلاعب بالتفويض المقيد القائم على الموارد |
| dacledit | قراءة/كتابة DACLs على كائنات AD |
| owneredit | قراءة/تعديل ملكية الكائنات |
| samedit | انتحال اسم حساب SAM (CVE-2021-42278/42287) |
| badsuccessor | BadSuccessor / تصعيد مشغل النسخ الاحتياطي |
| changepasswd | تغيير/إعادة تعيين كلمات المرور عبر SAMR وLDAP |
| Tool | Description |
|---|---|
| smbclient | عميل SMB تفاعلي (المشاركات، ls، get، put، إلخ) |
| smbserver | خادم SMB لمشاركة الملفات |
| attrib | استعلام/تعديل سمات الملفات عبر SMB |
| filetime | استعلام/تعديل الطوابع الزمنية للملفات عبر SMB |
| services | إدارة الخدمات عن بُعد عبر SVCCTL |
| reg | عمليات السجل عن بُعد عبر WINREG |
| Get-GPPPassword | استخراج كلمات مرور Group Policy Preferences من SYSVOL |
| karmaSMB | خادم SMB خبيث لالتقاط hash |
| Tool | Description |
|---|---|
| ntlmrelayx | إطار عمل NTLM relay كامل مع دعم متعدد البروتوكولات |