
رفيق MitM الخاص بك لتوصيل الهجمات التي تتضمن استيلاء على DNS عبر DHCPv6 بالإضافة إلى انتحال mDNS و LLMNR و NetBIOS-NS.
رفيقك في هجمات MitM لاستهداف هجمات الترحيل التي تتضمن استيلاء DHCPv6 DNS بالإضافة إلى انتحال mDNS و LLMNR و NetBIOS-NS
pretender هي أداة طورتها RedTeam Pentesting للحصول على مواقع وسيطة (machine-in-the-middle) عبر انتحال اسم محلي وحملات استيلاء DHCPv6 DNS. تستهدف pretender بشكل أساسي أجهزة Windows، حيث يُقصد استخدامها في هجمات الترحيل، ولكن يمكن نشرها على Linux وWindows وجميع المنصات الأخرى التي تدعمها Go. يمكن الرد على استعلامات تحليل الأسماء بعناوين IP مخصصة للحالات التي تعمل فيها أداة الترحيل على مضيف مختلف عن pretender. صُممت للعمل مع أدوات مثل Impacket's ntlmrelayx.py و krbrelayx التي تتعامل مع الاتصالات الواردة لهجمات الترحيل أو تفريغ التجزئة.
اقرأ منشور مدونتنا لمزيد من المعلومات حول استيلاء DHCPv6 DNS وانتحال تحليل الأسماء المحلية وهجمات الترحيل.
للحصول على فكرة عن الوضع في الشبكة المحلية، يمكن تشغيل pretender في وضع --dry حيث يسجل الاستعلامات الواردة فقط ولا يرد على أي منها:
pretender -i eth0 --dry
pretender -i eth0 --dry --no-ra # بدون إعلانات الموجه (RA)
pretender -i eth0 --dry --no-ra-dns # مع RA ولكن بدون الإعلان عن DNS في RA
لتنفيذ انتحال تحليل الأسماء المحلية عبر mDNS و LLMNR و NetBIOS-NS بالإضافة إلى استيلاء DHCPv6 DNS مع إعلانات الموجه، قم بتشغيل pretender كما يلي:
pretender -i eth0
يمكنك تعطيل بعض الهجمات باستخدام --no-dhcp-dns (تعطيل DHCPv6 و DNS وإعلانات الموجه) و --no-lnr (تعطيل mDNS و LLMNR و NetBIOS-NS) و --no-mdns و --no-llmnr و --no-netbios و --no-ra.
إذا كان ntlmrelayx.py يعمل على مضيف مختلف (مثلاً 10.0.0.10/fe80::5)، فقم بتشغيل pretender كما يلي:
pretender -i eth0 -4 "10.0.0.10" -6 "fe80::5"
يمكن إعداد Pretender للرد فقط على استعلامات نطاقات معينة (أو كل النطاقات باستثناء معينة) ويمكنه تنفيذ هجمات الانتحال فقط لمضيفين معينين (أو كل المضيفين باستثناء معينة). يعتمد استخدام اسم المضيف على تحليل أسماء المضيف الذي يقوم بتشغيل pretender. انظر المثال التالي:
pretender -i eth0 --spoof "example.com" --dont-spoof-for "10.0.0.3,host1.corp,fe80::f" --ignore-nofqdn
لمزيد من المعلومات، قم بتشغيل pretender --help.
--spoof/--dont-spoof/--spoof-for/--dont-spoof-for تدعم أحرف البدل. بينما domain.fqdn يقوم بمطابقة حرفية فقط، فإن .domain.fqdn سيطابق domain.fqdn و sub.domain.fqdn. وبالمثل، *domain.fqdn يطابق mydomain.fqdn. استخدم *.domain.fqdn لمطابقة النطاقات الفرعية فقط. لاحظ أنه لا يمكن استخدام أحرف بدل للنطاقات الفرعية (النقطة في البداية) وأحرف بدل عادية (*) معًا.ntlmrelayx.py باستخدام العلامة -6.--stateless-ra. افتراضيًا، يظل خادم DHCPv6 قيد التشغيل ولكن يمكن تعطيله باستخدام --no-dhcp.--dont-spoof/ ولم يتم تكوين خادم DNS تصاعدي باستخدام ، لن تعلن إعلانات الموجه مباشرة عن خادم DNS مما يجعل الهجوم أقل فعالية.يمكن بناء Pretender كما يلي:
go build
يمكن أيضًا تجميع Pretancer بإعدادات مسبقة التكوين. لهذا، يجب تعديل ldflags كما يلي:
-ldflags '-X main.vendorInterface=eth1'
على سبيل المثال، يمكن تجميع Pretander لنظام Windows بواجهة افتراضية محددة، بدون إخراج ملون، ومع عنوان IPv4 للترحيل مكون:
GOOS=windows go build -trimpath -ldflags '-X "main.vendorInterface=Ethernet 2" -X main.vendorNoColor=true -X main.vendorRelayIPv4=10.0.0.10'
القائمة الكاملة لخيارات التضمين (انظر defaults.go أو pretender --help للحصول على معلومات مفصلة):
vendorInterface
vendorRelayIPv4
vendorRelayIPv6
vendorSOAHostname
vendorSpoofResponseName
vendorNoDHCPv6DNSTakeover
vendorNoDHCPv6
vendorNoDNS
vendorNoMDNS
vendorNoNetBIOS
vendorNoLLMNR
vendorNoLocalNameResolution
vendorNoIPv6LNR
vendorNoRA
vendorNoRADNS
vendorSpoof
vendorDontSpoof
vendorSpoofFor
vendorDontSpoofFor
vendorSpoofTypes
vendorSpoofSRV
vendorIgnoreDHCPv6NoFQDN
vendorIgnoreNonMicrosoftDHCP
vendorDelegateIgnoredTo
vendorToggleNameResolutionSpoofing
vendorDontSendEmptyReplies
vendorDryMode
vendorDryWithDHCPMode
vendorStatelessRA
vendorTTL
vendorLeaseLifetime
vendorRARouterLifetime
vendorRAPeriod
vendorDNSTimeout
vendorStopAfter
vendorVerbose
vendorNoColor
vendorNoTimestamps
vendorLogFileName
vendorNoHostInfo
vendorHideIgnored
vendorRedirectStderr
vendorListInterfaces
--dont-spoof-for--delegate-ignored-to--stop-after و main.vendorStopAfter).--no-host-info أو main.vendorNoHostInfo.--interfaces.--no-ipv6-lnr/main.vendorNoIPv6LNR.--spoof-for/--dont-spoof-for). يمكنك تحديد ما يجب فعله مع رسائل DHCPv6 بدون خيار FQDN عن طريق تعيين أو حذف --ignore-nofqdn.CGO_ENABLED=1) أو تطبيق Go (CGO_ENABLED=0). يمكن أن يكون هذا مهمًا لجمع معلومات المضيف لأن محلل نظام التشغيل قد يدعم تحليل الأسماء المحلية بينما لا يدعمه تطبيق Go ما لم يتم استخدام محلل stub.hostinfo/mac-vendors.txt. يتم التعرف فقط على الأسطر التي تحتوي على بادئات MAC بالتنسيق التالي: FF:FF:FF<tab>VendorID<tab>Vendor (يمكن أن يكون طول بادئة MAC عشوائيًا).--no-lnr و --spoof-types SOA لتجاهل أي استعلامات غير مرتبطة بالهجوم.krbrelayx.py على مضيف مختلف عن pretender (يشير عنوان IPv4 للترحيل إلى مضيف مختلف يقوم بتشغيل krbrelayx.py)، سيحتاج المضيف الذي يقوم بتشغيل krbrelayx.py أيضًا إلى تشغيل pretender من أجل استلام ورفض استعلام التحديث الديناميكي المرسل إلى عنوان IPv4 للترحيل.--delegate-ignored-to <خادم DNS> لتفويض الاستعلامات المتجاهلة إلى خادم DNS شرعي.--dry-with-dhcp مع --delegate-ignored-to لمراقبة استعلامات تحليل الأسماء في الشبكة دون اضطراب.--ignore-non-microsoft-dhcp. هذا ممكن لأن عميل DHCP في Windows يتضمن رقم المؤسسة الخاص بـ Microsoft 311 في خيار بائع DHCP.--toggle، يمكن تمكين وتعطيل انتحال تحليل الأسماء (DNS و mDNS و LLMNR و NetBIOS) ديناميكيًا أثناء التشغيل. هذا فعال بشكل خاص مع --delegate-ignored-to لبدء وإيقاف الهجمات دون إيقاف خادم DHCP. يمكن استخدام هذا كحل بديل عندما يتوقف عميل DHCP في Windows عن تأجير العناوين بعد فشل الوصول إلى خادم DHCP لبعض الوقت.