Файл hosts

Урок: файл hosts.

Как мы знаем, посредством интернет-протокола компьютерные сети объединены в глобальную сеть Интернет, где каждый узел имеет уникальный сетевой адрес. В четвертой версии протокола (IPv4) используются четырёхбайтные адреса. Например, IP-адресом портала mail.ru является числовая последовательность 217.69.139.200. Однако, людям для идентификации сетевых ресурсов удобнее работать с текстовыми записями - URLами. Система доменных имен (DNS) связывает цифровые IP-адреса узлов с их доменными именами. Подробнее о доменных именах и про URL читаем урок: URL.

Для администрирования сетевых соединений в Windows и других ОС используется специальный файл hosts. Файл hosts предназначен для содержания базы приоритетных доменных имен и трансляции их в сетевые адреса хостов. Во всемирной паутине (www) хостом является веб-сервер сайта, отправляющий клиенту контент запрашиваемых страниц. Клиент, это - браузер установленный на компьютере пользователя.

Получив от пользователя запрос содержащий доменное имя ресурса, браузер сначала сопоставляет его с записями в файле hosts. Если доменное имя в файле не найдено, просматривается DNS-кэш браузера. DNS-кэш формируется из адресов посещаемых пользователем ресурсов. Использование такого накопителя ускоряет соединение с известными браузеру страницами.

Не найдя доменного имени в указанных директориях браузер перенаправляет запрос DNS-серверу. Приложение DNS-сервера преобразует доменное имя в соответствующий IP-адрес по которому и производится соединение. Так выполняется прямой запрос с трансляцией имени хоста в его IP-адрес.

Очевидно, что редактируя файл hosts можно управлять сетевыми соединениями.

По умолчанию файл hosts содержит только комментарии поясняющие правила внесения в него записей. На скриншоте показан фрагмент файла в Windows 7:

Файл hosts

Этот файл находится в системном разделе диска - С:\Windows\System32\drivers\etc\hosts. Открыв его стандартным приложением "Блокнот" можно прописывать нужные нам редиректы - перенаправления доменных имен.

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

Стандартное доменное имя localhost зарезервировано для частных адресов и определяет локальный компьютер пользователя с IP-адресом 127.0.0.1. Если сопоставить этому адресу доменное имя, запрос будет перенаправлен на локальный компьютер пользователя и соединения с целевым ресурсом не получится.

Запустим "Блокнот" с правами администратора:

Запуск

и откроем в нем файл hosts, выбрав в папке "etc" все типы файлов:

Открыть файл hosts

Теперь, дополним содержимое файла такими, например, записями:

Редактирование файла hosts

Сохраняем файл с изменениями и закрываем его. Так можно перекрыть доступ к некоторым ресурсам.

Также можно сделать перенаправления сетевых соединений на заданные IP-адреса:

Редактирование файла hosts

С такими редиректами в файле hosts пользователь вместо желанного сайта знакомств попадает на популярную ярмарку вакансий, например. Понятно, что для переадресации запросов нужно знать IP-адреса целевых хостов.

Посмотрим как можно определить сетевой адрес узла по его доменному имени.

Транслируем доменное имя в IP-адрес средствами операционной системы. С правами администратора вызываем командную строку. Для этого в строке поиска окна "Пуск" набираем cmd и из контекстного меню запускаем от админа:

Вызов командной строки

Вписываем команду ping avito.ru, нажимаем клавишу "Enter" и получаем IP-адрес ресурса:

Запрос в командной строке

Существует множество сервисов для сопоставления доменных имен с IP-адресами. Один из популярных: https://goo.gl/PjfAhI.

Записи с подменой IP-адресов в файле hosts для блокирования доступа к ресурсам или перенаправления на поддельные и посторонние сайты могут производиться и вредоносными программами запущенными на локальном компьютере.

Когда браузер не открывает доступные ранее страницы или перебрасывает на несоответствующие доменным именам сайты стоит проверить файл hosts и удалить в нем посторонние записи. Однако, вирусописатели для маскировки инфицированного файла hosts применяют некоторые дополнительные уловки.

Попробуем самостоятельно модифицировать истинный файл hosts и заменить его фальшивым подобно известным сценариям.

От имени администратора откроем новый файл приложением "Блокнот" и скопируем в него содержимое файла hosts. Сохраним этот файл в папке С:\Windows\System32\drivres\etc с именем hosts и расширением *txt:

Файл hosts.txt

Теперь откроем истинный файл hosts и пропишем в нем редиректы как на приведенных выше примерах. Сохраним изменения и закроем. Затем выделим файл, пройдем в его свойства и назначим атрибут "Скрытый":

Свойства файла hosts

Истинный файл hosts станем невидимым в папке "etc" и будет выполнять прописанные в нем сетевые соединения. А пользователь, открыв в папке копию оригинального файла увидит в нем только комментарии обозначенные значком #.

Обнаружить подмену несложно. Достаточно в параметрах папок отключить опцию скрытия расширений для файлов:

Скрывать расширения для зарегистрированных типов файлов

чтобы выявить текстовый hosts. Истинный файл hosts, как известно, не имеет расширения.

Копию hosts в конечную папку etc можно сохранить и без расширения, заменив в имени файла вторую букву на русскую "о". Для выявления подмены в этом случае, в интерфейсе настроек папок, который открывается через "Пуск"-"Панель управления"-"Параметры папок" нужно включить функцию отображения скрытых файлов и папок:

Показывать скрытые файлы, папки и диски

и в результате в папке отобразятся оба файла:

Два файла hosts в папке ets

Удаляем фальшивый и в истинном файле убираем ненужные записи.

Также, измененная посторонней программой копия файла hosts может находится и не в папке "etc". При этом в реестре прописывается директория обращения к ней.

Сочетанием клавиши "Windows" с буквой "R" откроем окно "Выполнить":

Клавиша Windows

и командой "regedit" пройдем в реестр. В реестре проследуем по ключу: HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - services - Tcpip. В этой ветке, в разделе "Parameters" увидим путь к папке с файлом hosts:

Значение параметра в реестре

В таком случае, изменяем значение параметра "DataBasePath" - прописываем правильный путь к оригинальному файлу:

Изменяем значение параметра в реестре

Перезагружаем компьютер для сохранения правки в реестре и удаляем модифицированный дубликат. Теперь, браузер будет обращаться к истинному файлу hosts в папке С:\Windows\System32\drivers\etc.

Таким образом, мы ознакомились с трюками которые применяются для фальсификации сопоставлений доменных имен использующих подмену файла hosts.

Для ускорения подключений к избранным ресурсам и блокировки доступа к нежелательным грамотно редактируем файл hosts - управляем сетевыми соединениями.

урок добавлен 28.01.2019

Яндекс.Метрика

Темы и статьи