Получаем на халяву Интернет через ICMP протокол

Xakep, номер #045, стр. 045-049-1

Косякин Антон (deil@real.xakep.ru)

"Мам, дай денег на Инет, а?"

Тебе, случаем, это не знакомо? О-ох, ну естественно, как я мог сомневаться :). Так вот, вполне возможно, что после прочтения этой статьи тебе более не придется говорить таких слов, одновременно с этим делая ангельское лицо и невинную улыбку :). Как это ни странно, но в осуществлении цели по добыче халявного Инета тебе помогут... сами провайдеры. Однако оговорюсь - никакого криминала, давления на психику и прочего в данном способе нет. Все абсолютно законно и легально. Интересно, правда?

Кратко о технологии

Большинство провайдеров предоставляют на халяву гостевой доступ. Т.е. они дают тебе доступ в Интернет, однако сильно ограничивают тебя, иногда даже позволяют посещать только их собственный сайт. Но, как говорится, нет худа без добра: иногда случается так, что возможность пинговать произвольный IP-адрес остается (провайдер не обрубает ICMP-пакеты). Вот здесь-то и кроется их главная ошибка: что нам мешает передавать в ICMP-пакетах свои данные? Правильно - ничего :). Возникает только одна проблема - техническая реализация данной задумки. Однако не все так призрачно и туманно, как может показаться на первый взгляд: нашлись люди, которые напряглись и сделали все за нас. Как ты уже, наверное, догадался, далее пойдет рассказ о некой программе, которая поможет нам использовать оплошность админов провайдера :). Называется она X-Proxy. Скачать можно с www.xakep.ru.

Как все устроено. Для начала тебе понадобится доступ на компьютер с полноценным доступом в Интернет и Windows'ом. Как добыть такой доступ: спрашивай друзей, пытайся ломать сайты, но я не смогу помочь, ты уж извини :). Если все присутствует, то дело за малым - настроить программу. Работать с программой просто: ты устанавливаешь на сервере серверную часть X-Proxy, а клиентскую у себя. Далее следует быстрый процесс конфигурирования и собственно наслаждение результатами. Принцип работы данного ICMP-прокси заключается в следующем: клиентская часть открывает на прослушивание заданный порт, а ты в это время во всех своих браузерах и прочих программах выставляешь опцию "использовать прокси", задав локальный IP и нужный порт. Допустим, ты используешь IE и хочешь зайти на некоторую страничку. Твой браузер подключается к нашему клиенту, говорит ему, какой урл нужно загрузить. Клиент, в свою очередь, формирует ICMP-пакет (в заголовок которого прописывается команда ICMP_ECHOREPLY - ответ на пинг), записывает туда запрос браузера, а потом отсылает его серверу. Сервер, получив этот пакет, читает оттуда запрос и уже перенаправляет его на другую прокси, но уже не наш, а на обычный. Получив ответ от этой прокси, сервер сохраняет все полученные данные в новый ICMP-пакет и отправляет его клиенту, который, в свою очередь, отдает все данные браузеру. И так далее, пока IE не попросит разорвать соединение. Понимаю, запутанно, зато работает :). В итоге провайдер думает, что ты от безысходности решил пропинговать какого-то бедолагу, а ты - наслаждаешься. Итак, с теорией покончили. Перейдем к практике. Добыв X-Proxy и распаковав архив, в каталоге bin ты увидишь два конфига и три exe'шника. Несложно догадаться, что client.conf - конфиг клиента, x-proxy_c.exe - сам клиент, config.exe - конфигуратор, а остальное относится к серверу.

Содержание  Вперед на стр. 045-049-2

ttfb: 1058.5238933563 ms