Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТПАСБ / Лекции / lec6-4h.doc
Скачиваний:
75
Добавлен:
24.02.2016
Размер:
904.19 Кб
Скачать

Носов В.В. "Технології аудиту інформаційних систем"

Лекція 6. Методи і засоби сканування вузлів мережі

Навчальні питання

1. Концепція протоколів стека TCP/IP

2. Виявлення відкритих мережних портів

3. Ідентифікація запущених TCP- и UDP-служб

4. Визначення операційної системи

Час: 4 акад. г.

Література

  1. Беспроводные линии связи и сети.: Пер. с англ. – М.: Издательский дом "Вильямс", 2003. с.100 – 117

  2. Мак-Клар Стюарт, Скрембрей Джоел, Курц Джордж. Секреты хакеров. Безопасность сетей – готовые решения. :Пер. с англ. – М.: Издательский дом "Вильямс", 2002. с. 53 – 86.

Вступ

С помощью ICMP- или TCP-зондирования мы установили, какие компьютеры исследуемой сети подключены к Internet. Кроме того, вся требуемая информация собрана также и с использованием запросов ICMP. Теперь можно перейти к этапу сканирования портов этих компьютеров, но сначала рассмотрим концепцию протоколов стека TCP/IP.

  1. Концепція протоколів стека tcp/ip

На рис. 1 показано, как протоколы TCP/IP сконфигурированы для осуществления связи. Общее средство связи может состоять из множества сетей, каждая из них часто называется подсетью. Для соединения компьютера с подсетью используется некий протокол доступа к сети, например логика Ethernet. Он позволяет хосту посылать данные через сеть другому хосту или, если хост принадлежит другой сети, маршрутизатору. Для этого во всех конечных системах и маршрутизаторах реализуется протокол IP. Он действует как ретранслятор, перемещая блок данных от одного хоста к другому через один или несколько маршрутизаторов. Протокол TCP, наоборот, реализуется только в конечных системах и отслеживает блок данных с целью обеспечения надежной доставки данных соответствующему приложению.

Рис. 1. Концепция TCP/IP

Для организации успешного соединения каждый объект системы должен иметь уникальный адрес. Фактически требуется два уровня адресации. Каждый хост подсети должен иметь уникальный глобальный подсетевой адрес для доставки данных нужному хосту. Каждый процесс хоста должен также иметь адрес, уникальный для этого хоста, что позволяет протоколу сквозной передачи (TCP) доставлять данные соответствующему процессу. Адреса, используемые в последнем случае, называются портами.

Стеком протоколов TCP/IP называют набор сетевых протоколов, используемых в Интернет.

В этом стеке различают несколько уровней, и протоколы высокого уровня всегда базируются на протоколах более низких уровней.

В самом низу находятся физический уровень и канальный уровень. Пример протокола — Ethernet, описывающий передачу данных по коаксиальному кабелю или витой паре. Протоколы этих уровней обычно реализуются на уровне железа, например в сетевой карте компьютера.

Выше идёт сетевой уровень, где находится протокол IP, описывающий структуру сети и доставку пакетов.

Ещё выше — транспортный уровень, где находится протокол TCP, использующийся для передачи данных. Эти протоколы обычно реализуются на уровне Операционной Системы.

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

Ip протокол

IP — протокол, лежащий в основе Интернета, его название так и расшифровывается: Internet Protocol.

Согласно протоколу, каждый узел в сети имеет свой IP адрес, состоящий из 4-х байт и обычно записываемый как n.n.n.n

Каждый узел напрямую «видит» только узлы в своей подсети, с «похожими» адресами (подробнее см. Маска подсети). А другим узлам он передает пакеты через промежуточные узлы — Маршрутизаторы.

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

TCP протокол

TCP протокол базируется на IP для доставки пакетов, но добавляет две важные вещи:

  • установление соединения — это позволяет ему, в отличие от IP, гарантировать доставку пакетов

  • порты — для обмена пакетами между приложениями, а не просто узлами.

Протокол TCP предназначен для обмена данными — это «надежный» протокол, потому что:

  • Обеспечивает надежную доставку данных, так как предусматривает установления логического соединения;

  • Нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организовывает повторную передачу;

  • Делит передаваемый поток байтов на части — сегменты - и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.

TCP-соединение

Соединение начинается с handshake (рукопожатия):

  1. Узел A посылает узлу B специальный пакет SYN — приглашение к соединению

  2. B отвечает пакетом SYN-ACK — согласием об установлении соединения

  3. A посылает пакет ACK — подтверждение, что согласие получено

Рис. 2. При установке TCP-соединения происходит обмен тремя сообщениями: (1) клиент отправляет серверу пакет SYN, (2) получает от сервера пакет SYN/ACK и (3) отправляет серверу пакет АСК

После этого TCP соединение считается установленным, и приложения, работающие в этих узлах, могут посылать друг другу пакеты с данными.

«Соединение» означает, что узлы помнят друг о друге, нумеруют все пакеты, идущие в обе стороны, посылают подтверждения о получении каждого пакета и перепосылают потерявшиеся по дороге пакеты.

Для узла A это соединение называется исходящим, а для узла B — входящим.

Отметим, что эти термины не имеют никакого отношения к входящему или исходящему трафику. Они показывают только инициатора соединения, то есть направление самого первого пакета (SYN). Любое установленное TCP соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны.

Порт

Сетевой порт — условное число от 1 до 65535, указывающее, какому приложению предназначается пакет.

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

Узел назначения, получив пакет, смотрит на порт назначения и передает пакет соответствующему у себя приложению.

Использование портов позволяет независимо использовать TCP протокол сразу многим приложениям на одном и том же компьютере.

Клиентом называют приложение, которое пользуется каким-то сервисом, предоставляемым другим приложением — Сервером, обычно на удаленном компьютере. Практически всегда клиент начинает исходящие соединения, а сервер ожидает входящих соединений (от клиентов), хотя бывают и исключения.

Сервер при запуске сообщает Операционной Системе, что хотел бы «занять» определенный порт (или несколько портов). После этого все пакеты, приходящие на компьютер к этому порту, ОС будет передавать этому серверу. Говорят, что сервер «слушает» этот порт.

Клиент, начиная соединение, запрашивает у своей ОС незанятый порт во временное пользование, и указывает его в посланных пакетах как порт источника. Затем на этот порт он получит ответные пакеты от сервера.

Таким образом, сервер:

  • слушает на определённом порту, заранее известном клиенту;

  • занимает этот порт всё время, пока не завершит работу;

  • об IP адресе и номере порта клиента узнаёт из приглашения, посланного клиентом.

Клиент:

  • заранее знает IP адрес и порт сервера;

  • выбирает у себя произвольный порт, который освобождает после окончания соединения;

  • посылает приглашение к соединению.

UDP

UDP — это ещё один протокол транспортного уровня. Он тоже базируется на IP и тоже использует порты, но в отличие от TCP он не устанавливает соединений и не требует подтверждения получения каждого пакета.

Поэтому пакеты могут теряться или приходить в неправильном порядке. Зато этот протокол быстрее и использует меньше ресурсов.

На UDP обычно базируют прикладные протоколы, которым скорость доставки данных важнее надежности, например для передачи потокового видео, общения голосом или онлайновых игр.

Прикладные протоколы

Большинство прикладных протоколов базируется на TCP.

У многих протоколов прикладного уровня для серверов определены стандартные порты, используемые по умолчанию. Самые известные прикладные протоколы и их стандартные порты:

  • HTTP — основой протокол всемирной паутины (TCP порт 80);

  • SMTP — протокол пересылки почты (TCP порт 25);

  • FTP — протокол передачи файлов (TCP порт 21);

  • DNS — протокол сопоставления доменных имен IP адресам (UDP порт 53).

Благодаря использованию стандартных портов мы можем набирать в браузере адреса Web-серверов и не указывать порт — наши браузеры сами добавляют стандартный номер порта. Например, адрес http://www.example.com/ на самом деле полностью выглядит так: http://www.example.com:80.

Разумеется, стандартный — не значит обязательный. Практически во всех прикладных протоколах можно указать серверу слушать произвольный номер порта. Правда, тогда этот номер уже указывать обязательно, например http://www.example.com:8080.

Соседние файлы в папке Лекции