
Ваш напарник MitM для атак с ретрансляцией, включающий захват DNS через DHCPv6, а также подмену mDNS, LLMNR и NetBIOS-NS.
Ваш помощник MitM для атак ретрансляции с захватом DNS через DHCPv6
а также подделкой mDNS, LLMNR и NetBIOS-NS
pretender — это инструмент, разработанный RedTeam Pentesting для получения позиции «человек посередине» с помощью поддельного разрешения локальных имен и атак захвата DNS через DHCPv6. pretender в первую очередь нацелен на хосты Windows, так как предназначен для использования в атаках ретрансляции, но может быть развернут на Linux, Windows и всех других платформах, поддерживаемых Go. Запросы на разрешение имен могут быть отвечены произвольными IP-адресами для ситуаций, когда инструмент ретрансляции работает на другом хосте, отличном от pretender. Он предназначен для работы с такими инструментами, как ntlmrelayx.py из Impacket и krbrelayx, которые обрабатывают входящие соединения для атак ретрансляции или дампа хешей.
Прочитайте нашу запись в блоге для получения дополнительной информации о захвате DNS через DHCPv6, подделке разрешения локальных имен и атаках ретрансляции.
Чтобы оценить ситуацию в локальной сети, pretender можно запустить в режиме --dry, при котором он только регистрирует входящие запросы и не отвечает ни на один из них:
pretender -i eth0 --dry
pretender -i eth0 --dry --no-ra # without router advertisements (RA)
pretender -i eth0 --dry --no-ra-dns # with RA but without advertizing DNS in RA
Для выполнения подделки разрешения локальных имен через mDNS, LLMNR и NetBIOS-NS, а также захвата DNS через DHCPv6 с объявлениями маршрутизаторов, просто запустите 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 включена поддержка IPv6 с помощью флага -6.--stateless-ra. По умолчанию DHCPv6 сервер все еще запускается, но его можно отключить с помощью --no-dhcp.Pretender можно собрать следующим образом:
go build
Pretender также может быть скомпилирован с предварительно настроенными параметрами. Для этого необходимо изменить ldflags следующим образом:
-ldflags '-X main.vendorInterface=eth1'
Например, Pretender может быть собран для 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/--dont-spoof-for и не настроен вышестоящий DNS-сервер с помощью --delegate-ignored-to, объявления маршрутизаторов не будут напрямую рекламировать DNS-сервер, что делает атаку менее эффективной.--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 resolver)..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 включает в опцию поставщика DHCP корпоративный номер Microsoft 311.--toggle подделка разрешения имен (DNS, mDNS, LLMNR, NetBIOS) может быть динамически включена и отключена во время выполнения. Это особенно эффективно в сочетании с --delegate-ignored-to для запуска и остановки атак без остановки DHCP-сервера. Это можно использовать в качестве обходного пути, когда DHCP-клиент Windows перестает выдавать адреса в аренду после неудачной попытки связаться с DHCP-сервером в течение некоторого времени.