В этой статье мы рассмотрим с тобой атаки типа Man-in-the-Middle, а точнее метод
перенапраления SSH- и HTTP- трафика с помощью атаки Man in the Middle. Не будем тянуть кота за хвост, а перейдем к делу.

Man in the Middle (в кратце MitM, с русского языка просто - "атака посредника" или "человек
посередине") - это такой вид атаки, основанный на перенаправлении трафика между двумя машинами для перехвата информации - дальнейшего ее изучения, уничтожения или модификации. Итак, первое, что нам нужно - пакет dsniff (ссылку на пакет ты увидишь в конце статьи). Почему именно он? Да потому, что этот пакет имеет в себе все необходимые утилиты, включая sshmitm (перенаправление SSH-трафика) и httpmitm (перенаправление HTTP-трафика), которые умеют обходить следующую следующую схему безопасности: насколько тебе известно, протоколы с шифрованием данных довольно-таки "секурны" (шифрация в помощь:)) и не позволяют проводить атаки "поверх" сетевого уровня. Ключ шифрования хакеру неизвестен - данные расшифровать невозможно и вставить команду тоже. Все бы вроде ничего, да вот как
раз таки программы MitM-атак (sshmitm и httpmitm) из пакета dsniff способны обойти данную систему безопасности (обойти можно практически все). Делается это все по следующему принципу:
промежуточный хост получает запрос от клиента, "сказав" ему, что он и есть сервер, затем подключаясь к реальному серверу.
Второе, что нам понадобится - прямые руки, четвертое - самое главное - желание, ну и, конечно, жертва, то есть компьютер, который будем атаковать.

Перенаправление SSH-трафика

После подготовки инструментария, ты понял, что к чему и почему:). Доставай sshmitm - сейчас мы будем перенаправлять SSH-трафик (все, что не понял с теоретической частью - читай выше)
с помощью нее, используя недостатки сегодняшнего PKI (public key infrastructure - схема управления ключами, основанная на
методах несимметричной криптографии). Давай рассмотрим синтаксис
sshmitm:

sshmitm [-d] [-I] [-p port] host

D
разрешить отладочный вывод (то есть более расширенный режим)

I
перехват сеансов

P port
порт для прослушивания

host
адрес удаленного хоста, сеансы которого будут перехватываться

port
порт на удаленном хосте

Все вроде просто и со вкусом - ничего сложного нет:). Начнем реализовать атаку!

# sshmitm server.target.gov // указываем свой SSH-сервер
sshmitm: relaying to server server.target.gov

Так как мы не имеем реального SSH-ключа, то командный интерпретатор атакованного
выведет запрос о проверке host-ключа, все это будет выглядить примерно так:

clientmachine$ server.target.gov
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
Please contact your system administrator.

И тогда пользователь будет решать - подключаться или нет. Если да - то мы получим полный контроль над SSH-сеансом.
НО! Если юзверь ни разу не подключался к той тачке, может быть выдано следующее сообщение:

The authenticity of host "server.target.gov" can"t be established
RSA key fingerprint is
bla:bla:bla;bla;bla........
Are you sure you want ti continue connecting (yes/no)?

Тут у юзверя тоже есть два выбора - коннектиться или нет. Если да - то мы перехватили сеанс, если нет - то увы... :(.
В общем-то, атака прошла успешно, если пользователь приконнектился, а sshmitm в свою очередь запишет все пассы и логины, причем очень читабельно 🙂
Естественно, это не единственный перехватчик SSH-сеансов, но познакомившись с этим, ты без проблем освоишь и другой 🙂

Перенаправление HTTP-трафика

Сейчас мы будем перенаправлять HTTP-трафик. Опять таки, нам понадобится уже раннее подобранный инструмент: httpmitm, который прослушивает 80- (HTTP -) и 443- (HTTPS -) порты, перехватывает WEB-запросы, потом подключается к серверу и пересылает запросы компьютеру-клиенту. Также программа генерирует SSL-ключи и SSL-сертификаты с помощью OpenSSL. Затем, после попытки
приконнектится к сайту (target.gov), браузер проверит SSL-сертификат. Так как сертификаты совпадать не будут, то браузер юзверя предупредит о
неправильном SSL-сертификате. Со стороны взломщика это будет выглядеть примерно так:

#webmitm -d
webmitm: relaying transparently
webmitm: new connection from
GET [ссылка]/uzerz.php?user=hellknights&password=neskaju1qwerty HTTP/[версия]
Connection: [тип]
Host: www.target.gov
User-Agent: [информация о системе, браузере]
[итд, итд, итд]
Cookie: [кукисы]

Вот так все это выглядит со стороны -
перехватывается SSL-коннект, схватив незашифрованные данные.

Заключение

В этой статье мы рассмотрели с тобой перенаправление SSH- и HTTP- трафика, с помощью атаки Man in the Middle - четко, подробно, коротко. Другие программы перенаправления HTTP- и SSH-
трафика с помощью MitM ты освоишь быстро, если освоил и эти:)). Если, что-то было непонятно - то.

    Направляются обычно на информационные серверы предприятия, функционирование которых является критически важным условием для работоспособности всего предприятия. Чаще всего объектами DOS-атак становятся основные веб-серверы, файловые и почтовые серверы предприятия, а также корневые серверы системы DNS.

    Ложных DNS-oтветы.

    Типы атак. Перехват и перенаправление трафика

    Атаки отказа в обслуживании (DoS).

    Перехват и перенаправление трафика. Цель - направить трафик атакуемого компьютера по ложному адресу, в качестве которого может выступать адрес либо злоумышленника, либо третьей стороны.

    Ложных DNS-oтветы.

    Типы атак. Ложные DNS ответы

    Атаки отказа в обслуживании (DoS).

    Перехват и перенаправление трафика.

    Ложных DNS-oтветы. Задача злоумышленника состоит в получении доступа к корпоративному серверу. Для этого ему нужно завладеть именем и паролем авторизованного пользователя корпоративной сети. Эту информацию он решает получить путем ответвления потока данных, которые корпоративный клиент посылает корпоративному серверу.

    Внедрение вредоносных программ. Троянские программы

Троянские программы, или трояны (trojan) - это разновидность вредоносных программ, которые наносят ущерб системе, маскируясь под какие-либо полезные приложения.

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

    Внедрение вредоносных программ. Черви

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

Червь состоит из двух основных функциональных компонентов: атакующего блока и блока поиска целей.

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

Блок поиска целей (локатор) собирает информацию об узлах сети, а затем на основании этой информации определяет, какие из исследованных узлов обладают теми уязвимостями, для которых хакер имеет средства атаки.

    Внедрение вредоносных программ. Вирусы

Вирус (virus) - это вредоносный программный фрагмент, который может внедряться в другие файлы.

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

Следующий тип атак имеет целью направить трафик атакуемого компьютера по ложному адресу, в качестве которого может выступать адрес либо злоумышленника, либо третьей стороны. Потоком данных, который пользователь посылает, например, на свой корпоративный сервер или сервер банка, злоумышленник может распорядиться двумя способами. Первый состоит в том, что злоумышленник маскируется под сервера адресата, передавая клиенту ту «картинку» и те сообщения, которые тот ожидает. Так, злоумышленник может имитировать для пользователя-жертвы процедуру логического входа, получая при этом идентификатор и пароль пользователя. Эти данные в дальнейшем могут применяться для несанкционированного доступа к серверу предприятия или банка, которые и являются главной целью атаки. Второй способ заключается в организации транзита трафика. Каждый перехваченный пакет запоминается и/или анализируется на атакующем узле, а после этого переправляется на «настоящий» сервер. Таким образом весь трафик между клиентом и сервером пропускается через компьютер злоумышленника.

Рассмотрим некоторые приемы, используемые сейчас (или в недалеком прошлом) при проведении атак данного типа. Для большинства из них уже разработаны средства противодействия, и приводимые здесь описания атак носят в основном учебный характер.

Простейший вариант перенаправления трафика в локальной сети может быть осуществлен путем отправки в сеть ложного ARP-omeema. (Оставим в стороне вопрос, насколько часто может возникнуть такая ситуация, когда злоумышленник заинтересован в перехвате трафика собственной локальной сети.) В данном случае схема очевидна: получив широковещательный ARP-запрос относительно некоторого IP-адреса, злоумышленник посылает ложный ARP-ответ, в котором сообщается, что данному IP-адресу соответствует его собственный МАС-адрес.

Для перехвата и перенаправления трафика в локальной сети теоретически может также использоваться протокол ICMP. В соответствии с данным протоколом ICMP-сообщение о перенаправлении маршрута маршрутизатор по умолчанию посылает хосту непосредственно присоединенной локальной сети при отказе этого маршрута или в тех случаях, когда обнаруживает, что для некоторого адреса назначения хост использует нерациональный маршрут. На рис. 1, а применяемый по умолчанию маршрутизатор R1, получив от хоста H1 пакет, адресованный хосту Н2, определяет, что наилучший маршрут к хосту Н2 пролегает через другой маршрутизатор данной локальной сети, а именно через маршрутизатор R2. Маршрутизатор R1 отбрасывает полученный пакет и помещает его заголовок в ЮМР-сообщение о перенаправлении маршрута, которое посылает хосту H1. В сообщении содержится IP-адрес альтернативного маршрутизатора R2, который хост теперь должен использовать, посылая данные хосту Н2. Хост H1 вносит изменения в свою таблицу маршрутизации и с этого момента отправляет пакеты хосту Н2 по новому скорректированному маршруту. Для перехвата трафика, направляемого хостом H1 хосту Н2, злоумышленник должен сформировать и послать хосту HI пакет, маскирующийся под ЮМР-сообщение о перенаправлении маршрута (рис. 1, б). В этом сообщении содержится запрос о корректировке таблицы маршрутизации хоста H1, так чтобы во всех пакетах с адресом IР Н2 адресом следующего маршрутизатора стал адрес IPha. являющийся адресом хоста-злоумышленника НА. Для того чтобы хост «поверил» этому сообщению, в поле IP-адреса отправителя должен быть помещен адрес маршрутизатора R1, являющегося маршрутизатором по умолчанию. Когда пакеты, передаваемые введенным в заблуждение хостом, начнут поступать на узел злоумышленника, он может либо захватывать и не передавать эти пакеты дальше, имитируя для поддержания диалога приложение, которому эти пакеты предназначались, либо организовать транзитную передачу данных по указанному адресу назначения IРн2-Читая весь трафик между узлами H1 и Н2, злоумышленник получает все необходимую информацию для несанкционированного доступа к серверу Н2.

Еще одним способом перехвата трафика является использование ложнгях DNS-omeemoe (рис. 2). Задача злоумышленника состоит в получении доступа к корпоративному серверу. Для этого ему нужно завладеть именем и паролем авторизованного пользователя корпоративной сети. Эту информацию он решает получить путем ответвления потока данных, которые корпоративный клиент посылает корпоративному серверу. Злоумышленник знает, что клиент обращается к серверу, указывая его символьное DNS-имя www.example.com . Известно ему также, что перед тем как отослать пакет серверу, программное обеспечение клиентской машины направляет запрос DNS-серверу, чтобы узнать, какой IP-адрес соответствует этому имени.

Цель злоумышленника - опередить ответ DNS-сервера и навязать клиенту свой вариант ответа, в котором вместо IP-адреса корпоративного сервера (в примере 193.25.34.125) злоумышленник указывает IP-адрес атакующего хоста (203.13.1.123). На пути реализации этого плана имеется несколько серьезных препятствий.

Рис. 1. Перенаправление маршрута с помощью протокола ЮМР: а - сообщение о более рациональном маршруте хосту Н2 посылает маршрутизатор Я1, применяемый по умолчанию;
б - сообщение о перенаправлении маршрута на себя направляет атакующий хост НА

Рис. 2. Схема перенаправления трафика путем использования ложных DNS-ответов

Прежде всего необходимо задержать ответ DNS-сервера, для этого сервер, например, может быть подвергнут DoS-атаке. Другая проблема связана с определением номера порта клиента DNS, который необходимо указать в заголовке пакета, чтобы данные дошли до приложения. И если серверная часть DNS имеет постоянно закрепленный за ней так называемый «хорошо известный» номер 53, то клиентская часть протокола DNS получает номер порта динамически при запуске, причем операционная система выбирает его из достаточно широкого диапазона.

Заметим, что протокол DNS может использовать для передачи своих сообщений как протокол UDP, так и протокол TCP, в зависимости от того, как он будет сконфигурирован администратором. Поскольку протокол TCP устанавливает логическое соединение с отслеживанием номеров посланных и принятых байтов, «вклиниться» в диалог клиента и сервера в этом случае гораздо сложнее, чем в случае, когда используется дейтаграммный протокол UDP.

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

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

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

Современные методы хакерских атак

Многие современные атаки выполняются так называемыми методом "скрипт киддиз" (script kiddies). Злоумыщленники просто ищут в Интернете сценарии эксплойтов и запускают их против всех систем, которые только можно найти. Данные простые способы атак не требуют специальных знаний или инструкций.

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

Прослушивание сетей

Прослушивание, или снифинг (sniffing) -метод, используемый хакерами/крэкерами для сбора паролей и другой системной информации. Для работы сетевой интерфейс компьютера устанавливается в режим прослушивания смешанного трафика (promiscuous mode), т. е. сетевой адаптер будет перехватывать все пакеты, перемещающиеся по сети, а не только пакеты, адресованные данному адаптеру. Сниферы такого типа хорошо работают в сетях с разделяемой пропускной способностью с сетевыми концентраторами - хабами.

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

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

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

Перенаправление трафика

Коммутатор направляет трафик к портам на основании адреса доступа к среде передачи данных (Media Access Control) - MAC-адреса - для кадра, передаваемого по сети Ethernet. Каждый сетевой интерфейс имеет уникальный MAC-адрес, и коммутатор "знает" о том, какие адреса находятся на какому порту. Следовательно, при передаче кадра с определенным MAC-адресом получателя коммутатор направляет этот кадр к порту, к которому приписан данный MAC-адрес.

Ниже приведены методы, с помощью которых можно заставить коммутатор направлять сетевой трафик к сниферу:
ARP-спуфинг;
дублирование MAC-адресов;
имитация доменного имени.

ARP-спуфинг (ARP-spoofing). ARP - это протокол преобразования адресов (Address Resolution Protocol), используемый для получения MAC-адреса, связанного с определенным IP-адресом. Работает он следующим образом: при передаче трафика система-отправитель посылает ARP-запрос по IP-адресу получателя. Система-получатель отвечает на этот запрос передачей своего MAC-адреса, который будет использоваться системой-отправителем для прямой передачи трафика.

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

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

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

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

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

Имитация доменного имени. Существует третий способ заставить коммутатор отправлять весь трафик на снифер: нужно "обмануть" систему-отправителя, чтобы она использовала для передачи данных реальный MAC-адрес снифера. Это осуществляется с помощью имитации доменного имени.

При выполнении этой атаки снифер перехватывает DNS-запросы от системы-отправителя и отвечает на них. Вместо IP-адреса систем, к которым был послан запрос, система-отправитель получает IP-адрес снифера и отправляет весь трафик к нему. Далее снифер должен перенаправить этот трафик реальному получателю. Мы видим, что в этом случае атака имитации доменного имени превращается в атаку перехвата.

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

Снифер мог бы просматривать запросы, отправляемые через интернет, но чем дальше он от системы-отправителя, тем сложнее гарантировать, что он первым ответит на них.

Отправка всего трафика ко всем портам

Вместо всего вышеперечисленного хакер может заставить коммутатор работать в качестве хаба (концентратора). Каждый коммутатор использует определенный объем памяти для хранения таблицы соответствий между MAC-адресом и физическим портом коммутатора. Эта память имеет ограниченный объем. В случае ее переполнения некоторые коммутаторы могут ошибочно выдавать состояние "открытый". Это значит, что коммутатор прекратит передачу трафика по определенным MAC-адресам и начнет пересылать весь трафик ко всем портам. В результате коммутатор станет работать подобно концентратору (хабу).

Выполнение атак

Теперь давайте рассмотрим, что требуется для выполнения вышеперечисленных атак. В случае ARP-спуфинга, дублирования MAC-адресов или MAC-флудинга необходимо напрямую подключиться к атакуемому коммутатору. Такое подключение требуется и для имитации доменного имени.

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

Имитация IP-адреса

Как уже говорилось, правильность IP-адресов в пакетах, передаваемых по сети, не проверяется. Следовательно, хакер может изменить адрес отправителя так, чтобы казалось, будто пакет прибывает с любого адреса. Сложность заключается в том, что возвращаемые пакеты (SYN ACK-пакеты в TCP-соединении) не смогут вернуться к системе-отправителю. Следовательно, попытка имитации IP-адреса (IP-спуфинг) для установки TCP-соединения связана с серьезными трудностями. Кроме того, в TCP-заголовке содержится порядковый номер, используемый для подтверждения приема пакета. Исходный порядковый номер (initial sequence number, ISN) для каждого нового соединения выбирается псевдо-случайным образом.

Подробные сведения об атаке имитации IP-адреса

На рисунке показано выполнение атаки имитации IP-адреса. 1 - идентификация цели. 2. - определение величины приращения исходного порядкового номера (ISN). Это можно сделать, выполняя серию легальных подключений к целевой системе и отмечая возвращаемые ISN (при этом хакер рискует "засветить" свой реальный IP-адрес). Извиняюсь, с рисунком не получается, хотя верчу и так и эдак! Посильнее меня есть...


В этом уроке описаны технологии сетевого хакинга, основанные на перехвате сетевых пакетов. Хакеры используют такие технологии для прослушивания сетевого трафика с целью хищения ценной информации, для организации перехвата данных с целью атаки «человек посредине», для перехвата TCP-соединений, позволяющих, скажем, подменять данные, и выполнения других, не менее интересных действий. К сожалению, большая часть этих атак на практике реализована только для сетей Unix, для которых хакеры могут использовать как специальные утилиты, так и системные средства Unix. Сети Windows, по всей видимости, обойдены вниманием хакеров, и мы вынуждены ограничиться при описании инструментов перехвата данных программами-сниферами, предназначенными для тривиального прослушивания сетевых пакетов. Тем не менее, не следует пренебрегать хотя бы теоретическим описанием таких атак, особенно антихакерам, поскольку знание применяемых технологий хакинга поможет предотвратить многие неприятности.

Сетевой снифинг

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

Для демонстрации технологии снифинга мы применим весьма популярную программу-снифер SpyNet , которую можно найти на многих Web-сайтах. Официальный сайт программы SpyNet находится по адресу http://members.xoom.com/layrentiu2/ , на котором можно загрузить демо-версию программы.

Программа SpyNet состоит из двух компонентов - CaptureNet и PipeNet . Программа CaptureNet позволяет перехватывать пакеты, передаваемые по сети Ethernet на сетевом уровне, т.е. в виде кадров Ethernet. Программа PipeNet позволяет собирать кадры Ethernet в пакеты уровня приложений, восстанавливая, например, сообщения электронной почты, сообщения протокола HTTP (обмен информацией с Web-сервером) и выполнять другие функции.

К сожалению, в демо-версии SpyNet возможности PipeNet ограничены демонстрационным примером сборки пакета HTTP, так что мы не сможем продемонстрировать работу SpyNet в полном объеме. Однако мы продемонстрируем возможности сетевого снифинга SpyNet на примере нашей экспериментальной сети, передав текстовый файл с хоста Sword-2000 на хост Alex-З с помощью обычного проводника Windows. Одновременно на компьютере А1ех-1 мы запустим программу CaptureNet , которая перехватит переданные пакеты и позволит прочитать содержимое переданного файла в кадрах Ethernet. На Рис. 1 представлен текст секретного сообщения в файле secret.txt ; мы постараемся найти этот текст в перехваченных кадрах Ethernet.

Рис. 1. Текст секретного сообщения в окне Notepad

Для перехвата кадров Ethernet выполните такие действия.

На компьютере Alex-З запустите программу CaptureNet . В отобразившемся рабочем окне программы выберите команду меню Capture * Start (Захват * Запуск) и запустите процесс перехвата сетевых кадров.

Средствами проводника Windows скопируйте файл security.txt с компьютера Sword-2000 на А1ех-3 .

После передачи файла secret.txt выберите команду меню Capture * Stop (Захват * Стоп) и остановите процесс перехвата.

Перехваченные кадры Ethernet отобразятся в правой части рабочего окна программы CaptureNet (Рис. 2), причем каждая строка в верхнем списке представляет кадр Ethernet, а под списком отображается содержимое выбранного кадра.

Рис. 2. Кадр Ethernet содержит текст секретного сообщения

Просмотрев список перехваченных кадров, мы без труда найдем тот из них, который содержит переданный нами текст This is a very big secret (Это очень большой секрет).

Подчеркнем, что это - самый простой пример, когда записывался весь перехваченный сетевой трафик. Программа CaptureNet позволяет перехватывать пакеты, пересылаемые по определенным протоколам и на определенные порты хостов, выбирать сообщения с определенным содержимым и накапливать перехваченные данные в файле. Техника выполнения таких действий несложна, и ее можно освоить по справочной системе программы SpyNet .

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

Методы перехвата сетевого трафика

Прослушиванце сети с помощью программ сетевых анализаторов, подобных приведенной выше CaptureNet , является первым, самым простым способом перехвата данных. Кроме SpyNet для снифинга сетей используется множество инструментов, изначально разрабатываемых для целей анализа сетевой активности, диагностирования сетей, отбора трафика по указанным критериям и других задач сетевого администрирования. В качестве примера такой программы можно назвать tcpdump (http://www.tcpdump.org ), которая позволяет записывать сетевой трафик в специальный журнал для последующего анализа.

Для защиты от прослушивания сети применяются специальные программы, например, AntiSniff (http://www.securitysoftwaretech.com/antisniff ), которые способны выявлять в сети компьютеры, занятые прослушиванием сетевого трафика. Программы-антисниферы для решения своих задач используют особый признак наличия в сети прослушивающих устройств - сетевая плата компьютера-снифера должна находиться в специальном режиме прослушивания. Находясь в режиме прослушивания, сетевые компьютеры особенным образом реагируют на IР-дейтаграммы, посылаемые в адрес тестируемого хоста. Например, прослушивающие хосты, как правило, обрабатывают весь поступающий трафик, не ограничиваясь только посланными на адрес хоста дейтаграммами. Имеются и другие признаки, указывающие на подозрительное поведение хоста, которые способна распознать программа AntiSniff .

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

Ложные запросы ARP

Чтобы перехватить и замкнуть на себя процесс сетевого взаимодействия между двумя хостами А и В злоумышленник может подменить IР-адреса взаимодействующих хостов своим IP-адресом, направив хостам А и В фальсифицированные сообщения ARP (Address Resolution Protocol - Протокол разрешения адресов). С протоколом ARP можно познакомиться в Приложении D, где описана процедура разрешения (преобразования) IP-адреса хоста в адрес машины (МАС-адрес), зашитый в сетевую плату хоста. Посмотрим, как хакер может воспользоваться протоколом ARP для выполнения перехвата сетевого взаимодействия между хостами А и В.

Для перехвата сетевого трафика между хостами А и В хакер навязывает этим хостам свой IP-адрес, чтобы А и В использовали этот фальсифицированный IP-адрес при обмене сообщениями. Для навязывания своего IР-адреса хакер выполняет следующие операции.

Злоумышленник определяет МАС-адреса хостов А и В, например, с помощью команды nbtstat из пакета W2RK .

Злоумышленник отправляет на выявленные МАС-адреса хостов А и В сообщения, представляющие собой фальсифицированные ARP-ответы на запросы разрешения IP-адресов хостов в МАС-адреса компьютеров. Хосту А сообщается, что IР-адресу хоста В соответствует МАС-адрес компьютера злоумышленника; хосту В сообщается, что IP-адресу хоста А также соответствует МАС-адрес компьютера злоумышленника.

Хосты А и В заносят полученные МАС-адреса в свои кэши ARP и далее используют их для отправки сообщений друг другу. Поскольку IР-адресам А и В соответствует МАС-адрес компьютера злоумышленника, хосты А и В, ничего не подозревая, общаются через посредника, способного делать с их посланиями что угодно.

Для защиты от таких атак сетевые администраторы должны поддерживать базу данных с таблицей соответствия МАС-адресов и IP-адресов своих сетевых компьютеров. Далее, с помощью специального программного обеспечения, например, утилиты arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz ) можно периодически обследовать сеть и выявлять несоответствия.

В сетях UNIX такого рода атаку ложными запросами ARP можно реализовать с помощью системных утилит отслеживания и управления сетевым трафиком, например, arpredirect . К сожалению, в сетях Windows 2000/XP такие надежные утилиты, по-видимому, не реализованы. Например, на сайте NTsecurity (http://www.ntsecurity.nu ) можно загрузить утилиту GrabitAII , представленную как средство для перенаправления трафика между сетевыми хостами. Однако элементарная проверка работоспособности утилиты GrabitAII показывает, что до полного успеха в реализации ее функций еще далеко.

Ложная маршрутизация

Чтобы перехватить сетевой трафик, злоумышленник может подменить реальный IP-адрес сетевого маршрутизатора своим IP-адресом, выполнив это, например, с помощью фальсифицированных ICMP-сообщений Redirect. Полученное сообщение Redirect хост А должен, согласно документу RFC-1122, воспринять как ответ на дейтаграмму, посланную другому хосту, например, В. Свои действия на сообщение Redirect хост А определяет, исходя из содержимого полученного сообщения Redirect, и если в Redirect задать перенаправление дейтаграмм из А в В по новому маршруту, именно это хост А и сделает.

Для выполнения ложной маршрутизации злоумышленник должен знать некоторые подробности об организации локальной сети, в которой находится хост А, в частности, IP-адрес маршрутизатора, через который отправляется трафик из хоста А в В. Зная это, злоумышленник сформирует IP-дейтаграмму, в которой IP-адрес отправителя определен как IP-адрес маршрутизатора, а получателем указан хост А. Также в дейтаграмму включается сообщение ICMP Redirect с полем адреса нового маршрутизатора, установленным как IP-адрес компьютера злоумышленника. Получив такое сообщение, хост А будет отправлять все сообщения по IP-адресу компьютера злоумышленника.

Для защиты от такой атаки следует отключить (например, с помощью брандмауэра) на хосте А обработку сообщений ICMP Redirect, а выявить IP-адрес компьютера злоумышленника может команда tracert (в Unix это команда tracerout). Эти утилиты способны найти появившийся в локальной сети дополнительный, непредусмотренный при инсталляции, маршрут, если конечно администратор сети проявит бдительность.

Приведенное выше примеры перехватов (которыми возможности злоумышленников далеко не ограничиваются) убеждают в необходимости защиты данных, передаваемых по сети, если в данных содержится конфиденциальная информация. Единственным методом защиты от перехватов сетевого трафика является использование программ, реализующих криптографические алгоритмы и протоколы шифрования, и позволяющих предотвратить раскрытие и подмену секретной информации. Для решения таких задач криптография предоставляет средства для шифрования, подписи и проверки подлинности передаваемых по защищенным протоколам сообщений

Практическую реализацию всех описанных в Главе 4 криптографических методов защиты обмена информацией предоставляют сети VPN (Virtual Private Network - Виртуальные частные сети). Краткий обзор принципов и методов криптографической защиты можно найти в Приложении Е, а в приводится подробное описание средств криптографической защиты, предоставляемых приложением PGP Desktop Security (http://www.pgp.com ).

Перехват TCP-соединения

Наиболее изощренной атакой перехвата сетевого трафика следует считать захват TCP-соединения (TCP hijacking), когда хакер путем генерации и отсылки на атакуемых хост TCP-пакетов прерывает текущий сеанс связи с хостом. Далее, пользуясь возможностями протокола TCP по восстановлению прерванного TCP-соединения, хакер перехватывает прерванный сеанс связи и продолжает его вместо отключенного клиента.

Для выполнения атак перехвата TCP-соединения создано несколько эффективных утилит, однако все они реализованы для платформы Unix, и на сайтах Web эти утилиты представлены только в виде исходных кодов. Таким образом, нам, как убежденным практикам в благородном деле хакинга, от атак методом перехвата TCP-соединения проку не много. (Любители разбираться в чужом программном коде могут обратиться к сайту http://www.cri.cz/~kra/index.html , где можно загрузить исходный код известной утилиты перехвата TCP-соединения Hunt от Павла Крауза (Pavel Krauz)).

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

Протокол TCP (Transmission Control Protocol - Протокол управления передачей) является одним из базовых протоколов транспортного уровня OSI, позволяющим устанавливать логические соединения по виртуальному каналу связи. По этому каналу передаются и принимаются пакеты с регистрацией их последовательности, осуществляется управление потоком пакетов, организовывается повторная передача искаженных пакетов, а в конце сеанса канал связи разрывается. Протокол TCP является единственным базовым протоколом из семейства TCP/IP, имеющим продвинутую систему идентификации сообщений и соединения.

Для идентификации TCP-пакета в TCP-заголовке существуют два 32-разрядных идентификатора, которые также играют роль счетчика пакетов, называемых порядковым номером и номером подтверждения. Также нас будет интересовать еще одно поле TCP-пакета, называемое управляющими битами. Это поле размером 6 бит включает следующие управляющие биты (в порядке слева направо):

URG - флаг срочности;

АСК - флаг подтверждения;

PSH - флаг переноса;

RST - флаг переустановки соединения;

SYN - флаг синхронизации;

FIN - флаг завершения соединения.

Рассмотрим порядок создания TCP-соединения.

1. Если хосту А необходимо создать TCP-соединение с хостом В, то хост А посылает хосту В следующее сообщение:

А -> В: SYN, ISSa

Это означает, что в передаваемом хостом А сообщении установлен флаг SYN (Synchronize sequence number - Номер последовательности синхронизации), а в поле порядкового номера установлено начальное 32-битное значение ISSa (Initial Sequence Number - Начальный номер последовательности).

2. В ответ на полученный от хоста А запрос хост В отвечает сообщением, в котором установлен бит SYN и установлен бит АСК. В поле порядкового номера хост В устанавливает свое начальное значение счетчика - ISSb; поле номера подтверждения будет при этом содержать значение ISSa, полученное в первом пакете от хоста А, увеличенное на единицу. Таким образом, хост В отвечает таким сообщением:

В -> A: SYN, АСК, ISSb, ACK(ISSa+1)

3. Наконец, хост А посылает сообщение хосту В, в котором: установлен бит АСК ; поле порядкового номера содержит значение ISSa + 1 ; поле номера подтверждения содержит значение ISSb + 1 . После этого TCP-соединение между хостами А и В считается установленным:

А -> В: АСК, ISSa+1, ACK(ISSb+1)

4. Теперь хост А может посылать пакеты с данными на хост В по только что созданному виртуальному TCP-каналу:

А -> В: АСК, ISSa+1, ACK(ISSb+1); DATA

Здесь DATA обозначает данные.

Из рассмотренного выше алгоритма создания TCP-соединения видно, что единственными идентификаторами TCP-абонентов и TCP-соединения являются два 32-битных параметра порядкового номера и номера подтверждения - ISSa и ISSb . Следовательно, если хакеру удастся узнать текущие значения полей ISSa и ISSb , то ему ничто не помешает сформировать фальсифицированный TCP-пакет. Это означает, что хакеру достаточно подобрать текущие значения параметров ISSa и ISSb пакета TCP для данного TCP-соединения, послать пакет с любого хоста Интернета от имени клиента данного TCP-подключения, и данный пакет будет воспринят как верный!

Опасность такой подмены TCP-пакетов важна и потому, что высокоуровневые протоколы FTP и TELNET реализованы на базе протокола TCP, и идентификация клиентов FTP и TELNET-пакетов целиком основана на протоколе TCP.

К тому же, поскольку протоколы FTP и TELNET не проверяют IР-адреса отправителей сообщений, то после получения фальсифицированного пакета серверы FTP или TELNET отправят ответное сообщение по указанному в ложном пакете IP-адресу хакерского хоста. После этого хакерский хост начнет работу с сервером FTP или TELNET со своего IР-адреса, но с правами легально подключившегося пользователя, который, в свою очередь, потеряет связь с сервером из-за рассогласования счетчиков.

Таким образом, для осуществления описанной выше атаки необходимым и достаточным условием является знание двух текущих 32-битных параметров ISSa и ISSb , идентифицирующих TCP-соединение. Рассмотрим возможные способы их получения. В случае, когда хакерский хост подключен к атакуемому сетевому сегменту, задача получения значений ISSa и ISSb является тривиальной и решается путем анализа сетевого трафика. Следовательно, надо четко понимать, что протокол TCP позволяет в принципе защитить соединение только в случае невозможности перехвата атакующим сообщений, передаваемых по данному соединению, то есть только в случае, когда хакерский хост подключен к сетевому сегменту, отличному от сегмента абонента TCP-соединения.

Поэтому наибольший интерес для хакера представляют межсегментные атаки, когда атакующий и его цель находятся в разных сегментах сети. В этом случае задача получения значений ISSa и ISSb не является тривиальной. Для решения данной проблемы ныне придумано только два способа.

Математическое предсказание начального значения параметров TCP-соединения экстраполяцией предыдущих значений ISSa и ISSb .

Использование уязвимостей по идентификации абонентов TCP-соединения на rsh-серверах Unix.

Первая задача решается путем углубленных исследований реализации протокола TCP в различных операционных системах и ныне имеет чисто теоретическое значение. Вторая проблема решается с использованием уязвимостей системы Unix по идентификации доверенных хостов. (Доверенным по отношению к данному хосту А называется сетевой хост В , пользователь которого может подключиться к хосту А без аутентификации с помощью r-службы хоста А ). Манипулируя параметрами TCP-пакетов, хакер может попытаться выдать себя за доверенный хост и перехватить TCP-соединение с атакуемым хостом.

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

Заключение

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

Антихакер должен знать, что единственным спасением от перехвата данных является их шифрование, т.е. криптографические методы защиты. Посылая по сети сообщение, следует заранее предполагать, что кабельная система сети абсолютно уязвима, и любой подключившийся к сети хакер сможет выловить из нее все передаваемые секретные сообщения. Имеются две технологии решения этой задачи - создание сети VPN и шифрование самих сообщений. Все эти задачи очень просто решить с помощью пакета программ PGP Desktop Security (ее описание можно найти, например, в ).