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

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

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

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

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

Категории

Все категории
Loading categories
FakeDns — Python MITM DNS-сервер на основе регулярных выражений с поддержкой атак DNS Rebinding | Kitploit
Инструменты/GitHubGitHub/crypt0s/fakedns
Веб-безопасностьСетевая безопасностьТестирование на ПроникновениеDNS-ФаззингRed TeamingАнализ DNS
GitHubcrypt0s/fakedns

FakeDns

Python MITM DNS-сервер на основе регулярных выражений с поддержкой атак DNS Rebinding

Репозиторий
5811454 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

FakeDns

Update 4/14/2020 - поддержка Python 2 удалена, код переведён на Python3

Теперь с round-robin и улучшенными возможностями!

Баг-репорты: @crypt0s - Twitter

[email protected] - Email

DNS-сервер на основе регулярных выражений Python!

root@kitploit:~
USAGE:
./fakedns.py [-h] -c Config path [-i interface IP address] [--rebind]

Файл dns.conf должен быть настроен следующим образом:

root@kitploit:~
[RECORD TYPE CODE] [python regular expression] [answer] [rebind answer]

Ответом может быть IP-адрес или строка self, синтаксический сахар self будет преобразован в локальный IP-адрес вашей текущей машины, например 192.168.1.100.

Если совпадения не найдено, DNS-сервер попытается разрешить запрос с помощью DNS-сервера, указанного в настройках вашей локальной машины, и передаст запрос этому серверу от имени запрашивающего пользователя.

Поддерживаемые типы запросов

root@kitploit:~
- A
- TXT
- AAAA
- PTR
- SOA

Типы запросов в разработке

root@kitploit:~
- MX
- CNAME

Разное

root@kitploit:~
- Поддерживает DNS Rebinding
- Поддерживает round-robin

Round-Robin

Реализованы правила round-robin. Каждый раз, когда клиент запрашивает подходящее правило, FakeDNS отдаёт следующий IP из списка IP-адресов, указанных в правиле.
Список IP-адресов разделяется запятыми.

Например:

root@kitploit:~
A robin.net 1.2.3.4,1.1.1.1,2.2.2.2

Это правило round-robin для robin.net, которое будет отдавать ответы, указывающие на 1.2.3.4, 1.1.1.1 и 2.2.2.2, перебирая их в этом порядке каждый раз, когда любой клиент запрашивает запись robin.net.

ПРИМЕЧАНИЕ : Эти IP-адреса не передаются клиенту в ответе списком — клиент по-прежнему получает только один IP в ответе (это может измениться позже)

DNS Rebinding

FakeDNS поддерживает правила rebinding, что по сути означает, что сервер принимает определённое количество запросов от клиента для домена до достижения порога (по умолчанию 1 запрос), а затем меняет IP-адрес на другой.

Например:

root@kitploit:~
A rebind.net 1.1.1.1 10%4.5.6.7

Означает, что у нас есть A-запись для rebind.net, которая возвращает 1.1.1.1 для первых 10 попыток. При 11-м запросе от клиента, который уже сделал 10 запросов, FakeDNS начинает отдавать второй IP — 4.5.6.7

Вы можете указать здесь список адресов, и FakeDNS будет перебирать их в режиме round-robin, как и в «обычном» правиле.

Тестирование FakeDNS в Docker

(только localhost без дополнительных шагов)

Я добился больших успехов при тестировании/разработке FakeDNS в Docker, поскольку это проще, чем запускать его напрямую на современных установках Ubuntu, на которых уже работают собственные DNS-сервисы на порту 53.

Если хотите попробовать, вы можете сделать это без особых усилий, выполнив следующие шаги:

Предполагая, что вы находитесь в каталоге FakeDns: sudo docker run --interactive --tty --volume \pwd`:/opt/FakeDns -p 5353:53/udp python:3.8 /opt/FakeDns/fakedns.py -c /opt/FakeDns/dns.conf.example. Для проверки вы можете выполнить nslookup -port=5353 testrule.test 127.0.0.1, который при первом запросе должен вернуть 1.1.1.1`

Или, если вы хотите использовать docker-compose, просто запустите docker-compose up и используйте тот же тест, что и выше.

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