Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК
Например, так:
· NEXT
· 223 376 « [email protected]» Article retrieved; request text separately.
Команда NEXT на единицу увеличила номер текущего сообщения. Но как быть, если хочется прыгнуть сразу в середину списка? Не вызывать же ради этого “NEXT” бесчисленное множество раз?! Конечно же, нет! Достаточно воспользоваться командой “STAT”, перемещающий указатель на любую произвольную позицию.
Следующий эксперимент демонстрирует создание нового сообщения. Для этого потребуется сервер, разрешающий постинг хотя бы в одну конференцию. Лучше всего воспользоваться специально созданной для подобных целей группой, наподобие “test”.
Простейший способ создания сообщения заключается в использовании команды «POST», вызываемой без аргументов. Например:
· Post
· 340 Ok
Сервер ожидает текста сообщения, завершаемого (как и в протоколе POP3), последовательностью «CRLF».«CRLF» [233]. Первыми идут поля заголовка [234], которые делятся на обязательные и на необязательные.
К обязательным полям относятся:
· newsgroups: одна (или больше) имен групп, куда должно быть отправлено сообщение
· from:адрес отправителя сообщения
· subject:тема сообщения
Если хотя бы одно обязательное поле отсутствует, сервер возвращает ошибку и блокирует отправление.
Например:
· post
· 340 Ok
· from:«kpnc»
· Subject:hello
·
· hello
·.
· 441 Required "Newsgroups" header is missing
После добавления недостающего поля повторная операция отправки сообщения должна завершиться успешно.
· post
· 340 Ok
· newsgroups:test.test
· from:« [email protected]»
· subject:helo
·
· Helo!
·.
· 240 Article posted
Сервер подтвердил успешность выполнения операции, но чтобы действительно убедиться в отправке сообщения, необходимо попробовать прочитать сообщение с сервера, например, следующим образом:
· GROUP test.test
· 211 1 121 121 test.test
· ARTICLE
· 220 121 « [email protected]» article
· Path: demos2!demos!dnews-server
· From: « [email protected]»
· Newsgroups: test.test
· Subject: helo
· Date: 28 Mar 2000 16:51:06 GMT
· Lines: 1
· Message-ID: « [email protected]»
· NNTP-Posting-Host: ppp-02.krintel.ru
· X-Trace: jumbo.demos.su 954262266 24659 195.161.41.226 (28 Mar 2000 16:51:06 GMT
·)
· NNTP-Posting-Date: 28 Mar 2000 16:51:06 GMT
· Xref: demos2 test.test:121
·
· Helo!
·.
Выделенная жирным шрифтом строка содержит адрес отправителя сообщения, доступный для всеобщего обозрения. Любой из подписчиков конференции (количество которых порой доходит до десятков тысяч) может применить на обладателе этого адреса одну из многочисленных атакующих программ… О том как отправить сообщение и при этом суметь остаться анонимном рассказывается в главе «Атака на NNTP-сервер».
Врезка «замечание»
Подробное изложение протокола NNTP и связанных с ним вопросов находится в технической документации RFC-1036, RFC-850 и RFC-977.
Врезка «для начинающих»
Большинство реализаций NNTP протокола поддерживают команду “HELP”, выводящую список доступных команд и иногда подробности использования каждой из них.
Команда “quit” завершает сеанс работы с сервером и разрывает соединение. Например, так:
· Quit
· 205.
O В этой главе:
O Сканирование портов
O Поиск серверов, путем изучения заголовков сообщений
O Описание программы News Hunter
Среди сотен тысяч узлов сети существует огромное количество общедоступных серверов, явно или неявно предоставляющих пользователям те или иные ресурсы. Мелкие корпорации, научные и исследовательские учреждения обычно не склонны обременять свои NNTP-сервера защитой и порой их ресурсами могут безболезненно пользоваться все остальные узлы сети…
Врезка «для начинающих»
Случайно натолкнутся на общедоступный NNTP-сервер маловероятно, а найти его с помощью служб, наподобие «Апорта» или «Altavista» очень трудно. Запрос “NNTP + free” выдаст длинный список бывших когда-то бесплатными серверов, большинство из которых уже успели прекратить свое существование или сменить политику и ограничить доступ.
Поэтому необходимо уметь самостоятельно искать необходимые ресурсы в сети. Но не проще ли обратится к специализированным сайтам, публикующим информацию подобного рода? Нет, и вот почему. Дело в том, что общедоступность большинства ресурсов связана с попустительствами администраторов. Но как только на сервер обрушивается толпа невесть откуда взявшихся пользователей, порядком напрягающих канал, политика безопасности быстро меняется и доступ закрывается. Напротив, единичные подключения, даже если и станут замечены администратором, вряд ли будут им пресекаться до тех пор, пока не станут ощутимо мешать.
Простейший способ поиска NNTP-серверов заключается в сканирование портов. Суть его заключается в следующем: выбирают некий (возможно взятый наугад) IP-адрес, например «195.161.42.149» и пытаются установить с ним TCP-соединение по сто девятнадцатому порту. Успешность операции указывает на наличие NNTP-сервера на данном узле. Если же сервер не отсутствует или не функционален, соединение установить не удастся. В случае успешно установленного соединения пытаются убедиться в бесплатности службы, иначе (сервер не установлен или не бесплатен) выбирают другой IP-адрес, и так до тех пор, пока не кончится терпение или не отыщется требуемый ресурс. Как правило, при сканировании IP адреса перебираются один за другим с убыванием или возрастанием на единицу за каждый шаг.
В зависимости от качества связи и загруженности тестируемого сервера, ответа на запрос о соединении можно ожидать от нескольких секунд до целой минуты! Поэтому, в лучшем случае скорость сканирования составит порядка шестидесяти - ста IP-адресов в минуту, а в худшем за это же время удастся проверить всего один из них.
Легко посчитать, сколько займет исследование даже небольшой подсети. В главе «Как устроен сканер портов» [235] рассказывается о некоторых способах, позволяющих ускорить процесс сканирования, но какие бы оптимизирующие алгоритмы не применялись, (например, попытки асинхронного соединения с несколькими узлами одновременно), эффективность такого подхода не может быть значительно увеличена в силу огромного числа существующих IP-адресов.
Сканирование пригодно для исследования локальных сети различных компаний, но найти с его помощью хороший NNTP-сервер в Internet очень трудно, поскольку таких серверов относительно немного, и все они достаточно равномерно распределены по пространству IP-адресов.
Врезка «информация»
Диапазон перебираемых адресов можно существенно сузить, если обратить внимание на тот замечательный факт, что все IP-адреса, принадлежащие одному провайдеру, обычно очень близки друг другу.
В следующем примере в качестве объекта сканирования [236] выступает крупного поставщика сетевых услуг (в том числе и телеконференций) Демос, публичный web-сайт которого так называется www.demos.su, (IP-адрес равен 194.87.0.48 [237])
Используя любой сканер, (например, «SuperScan», расположенный на страничке http://members.home.com/rkeir/software.html) можно исследовать узкий диапазон адресов 194.87.0.1 - 194.87.0.254 всего лишь за десяток - другой минут.
В результате этой операции обнаруживается, что Демос имеет множество промежуточных SMTP и NNTP серверов, открытых для прямого доступа! Например, таких как:
nntp://relay2.demos.su
nntp://news.ru [238]
nntp://jubo.demos.su
nntp://new2.demos.su
nntp://nntp.demos.su
Фрагмент протокола сканирования находится на диске под имением /LOG/demos/txt. Он типичен для крупного провайдера, имеющего в своем распоряжении десятки серверов.
Другой способ поиска бесплатных NNTP-серверов заключается в изучении заголовков сообщений, полученных с любого NNTP-сервера. В процессе путешествия по сети, сообщения проходят через один или несколько транзитных серверов, каждый из которых включает в заголовок свой адрес.
В определенном роде NNTP-сервер это гигантский почтовый ящик, заполненный корреспонденцией со всех сторон света. Среди транзитных серверов и серверов отправителя сообщения часто попадаются и такие, которые предоставляют бесплатный доступ всем пользователям.
Полный путь, проделанный сообщением, содержится в поле “Path”, а сервер отправителя в поле “NNTP-Posting Host”. В примере, приведенном ниже, показаны заголовки двух сообщений: (поля “Path” и “NNTP-Posting Host” выделены жирным шрифтом):
· Path: news.medlux.ru!Melt.RU!carrier.kiev.ua!news.kharkiv.net!useua!not-for-mail
· From: Nadezda Alexsandrovna « [email protected]»
· Newsgroups: medlux.trade.optika
· Subject: I am looking for a permanent wholesale buyer of women's hair 30-60 cm long of all colours. Phone in Kharkov (0572)329639, 364556, fax 329763.
· Date: Thu, 6 Apr 2000 05:01:15 +0300
· Lines: 16
· Distribution: world
· Message-ID: « [email protected]»
· Reply-To: [email protected]
· NNTP-Posting-Host: ums.online.kharkov.com
· NNTP-Posting-Date: 6 Apr 2000 02:02:11 GMT
· Xref: news.medlux.ru medlux.trade.optika:904