[ Alex WebKnacKer ] Хакинг и антихакинг - защита и нападение. Книги удк 004. 056. 5Alex WebKnacKer
Скачать 42.38 Mb.
|
TCP/IP Для построения современных глобальных сетей наиболее широко используется набор протоколов под общим названием TCP/IP (Transmission Control Protocol/Internet Protocol - Протокол управления Интер- нета), который также весьма удобен для построения локальных сетей. Он используется на протяжении десятилетий в сети Интернет и других сетях - предшественницах Интернета, доказав свою эффективность для организации сверхкрупных сетей. Дополнительным достоинством является то обстоятельство, что в отличие от протокола NetBEUI, который является собственностью фирм IBM и Microsoft, - всеобщее достояние. Расширения и дополнения коор- динирует рабочая группа инженеров Internet (Internet Engineering Task Force - IETF), используя механизм запроса комментариев (RFC - Request for Comments). Гибкость протокола TCP/IP позволяет вначале установить его в локальной сети небольшого размера, а затем расширить эту сеть до сотен и тысяч пользователей. Управление TCP/IP требует знаний и опыта, однако если число устройств, подсоединенных к локальной сети TCP/IP, не превышает сотни, управление сетью с помощью средств, встроенных в Windows 2000, не состав- ляет труда. К сети TCP/IP может быть подключено множество устройств с сете- вым доступом, например, персональный компьютер, брандмауэр, маршру- тизатор, концентратор, сетевой принтер. Каждое такое устройство называется 344 Быстро и легко. и Антихакинг хостом, и все хосты в сети TCP/IP имеют собственный уникальный адрес, называемый IP-адресом, по названию протокола Интернета IP. Важнейшее свойство протокола - Маршрутизатор - это устройство, связывающее друг с другом локальную и глобальную сети или две локальные сети. Если пакеты, отправленные одним из сетевых компьютеров, предназначены для компьютера данной локальной сети, маршрутизатор перехва- тывает их и направляет в эту же сеть, в противном случае пакеты направляются в другую сеть. Для эффективной маршрутизации сетей TCP/IP разработана специальная структура сетевых IP-адресов. При подключении хоста к сети TCP/IP ему присваивается IP-адрес, который состоит из идентификатора сети и идентификатора хоста. • Идентификатор сети, или сетевой адрес, определяет хосты, подсоединенные к одной локальной сети, связанной с глобальной сетью посредством маршрути- заторов. • Идентификатор хоста, или адрес хоста, уникальным образом определяет каждый хост локальной сети. Каждый IP-адрес представляет собой 32-разрядную величину, включающую четыре октета - поля из восьми битов; для представления IP-адреса в удобочитаемой форме каждый октет преобразуется в десятичное число, лежащее в диапазоне от 0 до 255. Полученные четыре числа представляются точечно- десятичной нотацией, т.е. записываются в порядке старшинства октетов, разделенных точками, например, 204.209.43.2. Когда какая-либо локальная сеть подключается к Интернету, ей при регистрации присваивается уникальный сетевой адрес, а компьютерам - уникальные адреса хостов. Следует учесть, что идентификаторы сети и хостов не могут содержать все биты равными 1 или 0, поскольку такие IP-адреса зарезервированы для специальных целей. Группы связанных IP-адресов объединяют в классы, обозначенные буквами А, В, С, D и Е. • Адреса класса А присваиваются сетям с большим количеством хостов. Первый бит первого октета IP-адреса всегда равен 0. Следующие 7 битов первого октета содержат идентификатор сети. Остальные 24 бита, состав- ляющие три последних октета, представляют идентификатор хоста. Таким образом, в класс А могут входить 126 сетей, содержащих до 16 777 214 хостов. • Адреса класса В присваивают сетям среднего размера. Два старших бита первого октета представляют собой двоичную комбинацию «10». Следующие Приложение D 345 14 битов содержат идентификатор сети. Остальные 16 битов (т.е. два последних октета) образуют идентификатор хоста. Таким образом, в класс В могут входить 16 384 сетей, содержащих не более 65 534 хостов. • Адреса класса С присваивают небольшим сетям. Три старших бита сетей класса С равны комбинации «110». Следующие 21 бит образуют идентификатор сети, остальные 8 битов последнего октета содержат идентификатор хоста. Таким образом, класс С может содержать до 2 097 152 сетей, содержащих до 254 хостов. • Адреса класса D используются для групповой IP-рассылки сообщений. Четыре старших бита ГР-адреса класса D содержат двоичную комбинацию «1110», а остальные биты содержат адрес, используемый при групповой рассылке. • Адреса класса Е отведены для будущего использования и определяются двоичной комбинацией в старших четырех битах. Во всех этих классах для использования доступно только ограниченное подмножество значений компонентов. Например, фактически существует не более 50 адресов класса А, принадлежащих, в основном, создателям Интернета - министерству обороны США, некоторым телекоммуникационным компаниям. Для адресов класса В доступны значения первых компонентов 128 - 191, а для класса С доступны значения 191 - 223. Значения первых компонентов выше 223 зарезервированы. Если машине требуется единственный IP-адрес, он предоставляется поставщиком услуг Интернета из его адресов класса В или С. Структура ГР-адреса упрощает маршрутизацию. Например, если компьютер, подключенный к локальной сети, имеет адрес класса С, трафик, направленный на IP-адрес, у которого первые три октета отличаются от первых трех октетов данной локальной сети, направляется в Интернет. Трафик же с одинаковыми тремя первыми октетами остается в локальной сети. С помощью любую сеть можно разделить на подсети, связанные между собой маршрутизаторами. Для этого каждой подсети присваивается уникальный идентификатор подсети, образуемый из части битов, отведенных под идентификатор хоста. Чтобы маршрутизатор знал, какая часть идентификатора хоста отведена под идентификатор подсети, используется так называемая маска подсети. Маска подсети - это двоичное 32-х разрядное значение, позволяющее отличить в любом IP-адресе идентификатор сети от идентификатора хоста. Каждый бит в маске подсети определяется так: все биты, соответствующие идентификатору сети, устанавливаются в 1, а все биты, соответствующие идентификатору хоста, устанавливаются в 0. Для определения адреса подсети по и маске подсети используется побитовая операция AND над битами ГР-адреса и маски подсети. Операция AND действует так: если два сравниваемых бита равны 1, результат равен 1; во всех 346 Быстро и легко. Хакинг и остальных случаях результат равен 0. Ниже представлен результат подсчета адреса подсети по IP-адресу 130.57.190.42 и маске подсети 255.255.248.0. Маска подсети Идентификатор подсети 10000010 11111111 10000010 00111001 11111111 00111001 10111110 11111000 10111000 00101010 00000000 00000000 В результате получаем ГР-адрес 130.57.184.0. С помощью маски подсети можно достичь большей гибкости в организации локальной сети. Однако назначение IP-адресов и масок подсети клиентских компьютеров и управление ими может вызывать немалые затруднения. Для облегчения этой задачи в Windows NT/2000/XP включена поддержка протокола динамической конфигурации компьютера (DHCP - Dynamic Host Configuration Protocol), позволяющая автоматизировать распределение сетевым хостам. Более подробные сведения об организации и настройке подсетей можно почерпнуть в одном из многочисленных руководств по сетевым технологиям. Уровни TCP/IP По существу, протокол TCP/IP представляет собою множество протоколов, помещенных в стек протоколов один поверх другого. Каждый из этих протоко- лов имеет собственное предназначение. Для упрощения работы с этими прото- колами они подразделяются на четыре уровня. • Прикладной уровень, объединяющий сеансовый уровень, уровень представ- ления и прикладной уровень модели OSI. • Транспортный уровень, совпадающий с транспортным уровнем модели OSI. • Межсетевой уровень, соответствующий сетевому уровню модели OSI. • Уровень сетевого интерфейса, объединяющий канальный и физический уровень модели OSI. В нескольких последующих разделах последовательно рассматриваются все уровни модели TCP/IP вместе с дополнениями, внесенными в операционную систему Windows 2000. Прикладной уровень стека протоколов ТСР/ГР обеспечивает приложениям доступ к службам других уровней и определяет протоколы обмена данными между приложениями по сети Таким образом, этот уровень определяет Приложение D 347 метод подключения компьютера к сети а также службы, используемые для предоставления доступа к общим ресурсам взаимодействующих сетевых компьюте- ров. Прикладной уровень собирает всю эту информацию, а затем передает ее на транспортный уровень - следующий уровень стека протоколов TCP/IP. Базовыми протоколами прикладного уровня являются следующие: • HTTP (Hypertext Transfer Protocol - Протокол передачи гипертекста) - обеспечивает передачу файлов Web-страниц. • FTP (File Transfer Protocol - Протокол передачи файлов) - реализует загрузку файлов из сети Web. • SMTP (Simple Mail Transfer Protocol - Простой протокол передачи почты) - применяется для передачи сообщений и вложений электронной почты. • Telnet - протокол эмуляции терминала, используемый для регистрации на удаленных хостах. • DNS (Domain Name System Система имен доменов) - обеспечивает преобразование имен хостов в IP-адреса. • RIP (Routing Information Protocol - Протокол маршрутной информации) - применяется для обмена информацией между маршрутизаторами. • SNMP (Simple Network Management Protocol - Простой протокол сетевого управления) - обеспечивает сбор информации от сетевых устройств для управления сетью. Для передачи данных по протоколу в операционной системе Windows 2000 реализованы два основных средства: Windows Sockets Windows), или просто Winsock, и протокол NetBT (NetBIOS поверх TCP/IP). Выбор средства определяется типом приложения. Средства Winsock используются приложениями (называемыми приложениями Winsock) для установления двунаправленного канала связи, используемого для отсылки и приема данных. В каждом связываемом таким образом компьютере создается точка стыковки, называется сокетом. Если соединение устанавливается по протоколу TCP/IP, каждому назначается адрес Интернета и номер порта, фиксирующего службу или приложение для работы с соединением. При установлении связи между двумя приложениями Winsock используются двух типов: потоковый сокет, для которого в качестве транспортного протокола используется протокол TCP, и сокет, для которого в качестве транспортного протокола используется протокол (User Datagram Protocol - Протокол передачи дейтаграмм пользователя). 348 Быстро и легко. Хакинг и Антихакинг Средства Winsock реализуют программный интерфейс приложений (Application Programming Interface - API), определяемый промышленным стандартом. Когда службы или приложения обращаются к этому интерфейсу, он предоставляет им набор подпрограмм, которые и определяют, каким образом и куда отсылать данные. В итоге для установления связи между двумя компьютерами, средства Winsock выполняют следующие операции: 1. Для использования сокета запущенные в компьютере службы с помощью средств Winsock регистрируют номера портов. После регистрации служба получает возможность ожидать обращения к ней, прослушивая все сообще- ния, посылаемые на данный порт, а средства Winsock знают имя протокола, IP-адрес и номер порта, необходимые для установления связи с данной службой. 2. Приложения, установленные на различных сетевых компьютерах, предоставляют протокол, IP-адрес и номер порта, необходимые Winsock для установления двунаправленного канала связи. В отличие от служб, прило- жения не регистрируют точные значения номеров портов. Вместо этого они используют любой свободный порт с номером выше 1024. 3. Далее средства Winsock определяют тип устанавливаемого двунаправленного канала связи (потоковый или и создают двунаправ- ленный канал связи. 4. Средства Winsock передают информацию о двунаправленном канале связи на нижние уровни модели OSI, которые устанавливают соединение между двумя компьютерами. 5. На компьютере-получателе эта информация отсылается вверх через уровни TCP/IP на порт, номер которого соответствует запрошенной службе. Средства Winsock предоставляют службе номер сокета и номер порта) приложения на компьютере-отправителе. 6. Теперь оба компьютера используют открытые сокеты для обмена данными. Подробнее оба типа сокетов и транспортные протоколы обсуждаются далее, в разделе «Транспортный уровень». Основное преимущество использования соке- тов Windows над протоколом NetBT заключается том, что двунаправленный канал связи позволяет компьютерам обмениваться пакетами данных напрямую, что значительно экономит время и увеличивает пропускную способность сети. NetBT Протокол NetBT (NetBIOS поверх объединяет два различных протокола - NetBIOS (Network Basic Input Output System - Сетевая базовая система ввода- вывода) и TCP/IP. Протокол NetBIOS обеспечивает операционной системе Windows возможность выполнения следующих функций: Приложение D 349 • Управление именами. Чтобы приложение могло связываться по сети со службами, каждому компьютеру необходимо имя NetBIOS, которое назы- вают также именем компьютера. Имена NetBIOS позволяют идентифи- цировать каждый сетевой компьютер, что обязательно для передачи данных. • Передача данных. Для отсылки и приема данных в NetBIOS используют транспортный протокол, который управляет протоколом уста- новления логического соединения, означающего, что транспортный протокол должен гарантировать отсылку и прием данных. • Управление сеансом. Чтобы задать условия передачи данных на основе логических соединений, оба компьютера обязаны установить сеанс связи. Для передачи данных средства NetBIOS используют собственный транспортный протокол NetBEUI (NetBIOS Extended User Interface - Расширенный пользова- интерфейс NetBIOS). Протокол TCP/IP также управлять передачей данных через интерфейс NetBIOS с помощью транспортных прото- колов TCP и Кроме того, протокол TCP позволяет устанавливать и управ- лять сеансами связи NetBIOS. Однако в протоколе TCP/IP не предусмотрен метод интерпретации имен NetBIOS, хотя он требуется многим сетевым службам Windows. Разработчики Microsoft устранили эту несовместимость протоколов NetBIOS и TCP/IP с помощью протокола NetBT. Протокол NetBT управляет именами сетевых компьютеров путем регистрации имен NetBIOS через порты с номерами 137, 138 и 139. Например, когда загружается компьютер с определенным именем NetBIOS, например, Compl, протокол NetBT регистрирует его имя путем отсылки широковещательного сообщения через порт 137. После этого остальные компьютеры, поддержи- вающие NetBIOS, будут знать, что к компьютеру Compl можно получить дос- туп через порт 137. Когда компьютер отключается, его имя освобождается еще одним широковещательным сообщением, после чего оно может использоваться другими компьютерами. Приложения, поддерживающие NetBIOS, для передачи информации используют протокол NetBT, а протокол NetBT для передачи информации на транспортный уровень используют интерфейс (Transport Driver Interface - Интерфейс транспортного драйвера). Интерфейс TDI служит простейшим каналом связи между клиентом NetBT (т.е. приложением NetBIOS) и средствами транспортно- го уровня. Средства Winsock также используют интерфейс TDI. Как мы уже говорили, для отсылки информации на другой компьютер средства Winsock используют IP-адреса и номера портов. Однако в приложениях для указания имен хостов TCP/IP чаще используют названия, более понятные для людей. Поэтому чтобы средства низшего уровня модели OSI могли правильно пересылать между компьютерами данные, прикладной уровень должен обеспечить преобразование имен хостов в IP-адреса. Эта операция прикладного уровня называется разрешением имен хостов. 350 Быстро и легко. и Антихакинг Разрешение имен хостов Протокол TCP/IP назначает каждому компьютеру уникальное иерархическое имя, которое позволяет идентифицировать данный компьютер в сети. Как правило, пользователям неизвестны Web-сайтов, а для обращения к нужному сайту они используют более удобные адреса протокола HTTP (см. RFC 2616). Адрес HTTP состоит из названия протокола, применяемого для обмена информацией с хостом, имени хоста и некоторой дополнительной информации. Например, адрес http://www.microsoft.com означает, что в Интернете имеется хост с именем www.microsoft.com, доступ к которому обеспечивается протоколом HTTP. Получив такое имя хоста, приложение (например, Web-браузер) должно передать информацию средствам на нижнем уровне OSI, которые обеспечивают связь с указанным хостом (например, сервером Интернета), причем в понятной для них форме. Для этого средства Winsock включают в себя библиотеку программ, называемых интерфейсами API (Application Programming Interface - Интерфейс прикладного программирования). Выбор используемого интерфейса зависит от приложения, но в любом случае эти программы преобразуют (т.е. разрешают) имена хостов в ГР-адреса, которые затем позволяют средствам Winsock открыть сокет для связи. Средства Winsock и NetBT используют различные методы разрешения имен. Рассмотрим их по порядку. Разрешение Для преобразования имени хоста в IP-адрес средства Winsock действуют следующим образом. Вначале функция API из набора интерфейсов Winsock просматривает специальный текстовый файл с именем HOSTS. Если в файле HOSTS будет найдено требуемое имя хоста с сопоставленным ему задача решена. Если нужного имени хоста в файле HOSTS не найдено, средства Winsock запрашивают службу DNS (Domain Name Service - Служба имен доменов). Если оба метода не сумеют разрешить имя хоста, функция API попытается сделать это с помощью методов разрешения имен протокола NetBIOS. Файл HOSTS представляет собой простой текстовый файл со списком адресов и соответствующих им имен хостов. Поскольку компьютер может выполнять в сети разные задачи, каждому IP-адресу в списке файла HOSTS могут быть сопоставлены несколько имен хостов. Файл HOSTS находится в папке и его имя не имеет расширения. |