Заголовок сообщения, отправленного с помощью скрипта, должен выглядеть приблизительно следующим образом:
· Path: news.medlux.ru!not-for-mail · From: «[email protected]» · Newsgroups: medlux.test · Subject: helo · Date: 11 Apr 2000 10:33:45 GMT · Organization: Medlux InterNetNews site, Moscow, Russia · Lines: 1 · Message-ID: «[email protected]» · NNTP-Posting-Host: spider.softclub.net · Xref: news.medlux.ru medlux.test:548 · · Helo! Выделенная жирным шрифтом строка говорит о том, что отправитель сумел остаться анонимом! И в заголовке сообщения не содержится никакой информации, способной пролить свет на его происхождение, за исключением сведений оставленных им самостоятельно. Такой прием часто используют не только для сокрытия собственного адреса, но и в других целях. Например, некоторые NNTP-сервера доступны лишь из доменов *.NET, но не *.COM и тем более *.RU
Врезка «замечание» Обидно, конечно, но ни для кого не секрет, что посетители “from Russia Federation” часто считаются людьми второго сорта. Порой им закрывают доступ, отказываются предоставлять бесплатный хостинг, и вообще стараются по возможности избегать. Поэтому, некоторые ресурсы становятся доступными лишь с использованием иноземных Proxy-серверов или скриптов, расположенных в соответствующих местах. Так, отечественный сервер news://news1.demos.su/ доступен исключительно из-под домена *.net [242], а при попытке подсоединиться к нему любым другим пользователям он сообщает, разрывая соединение: · 502 You have no permission to talk. Goodbye Другой возможной причиной отказа в обслуживании становится невозможность определения доменного имени клиента по его IP адресу (Reverse Lockup). Это зависит исключительно от настоек DNS-сервера провайдера клиента, некоторые из которых не поддерживают такой возможности. В этом случае, сообщения большинства NNTP-серверов будут выглядеть приблизительно следующим образом: · 502 You have no permission to talk, (reverse dns disabled, see nodns in dnews.conf) {209.143.154.93}, Goodbye Словом, существует множество причин для использования Proxy-серверов или любых других способов введения NNTP-сервера в заблуждение. Однако списки общедоступных Proxy есть не только у пользователей, но и администраторов, которые порой включат их в «черный список». Напротив, использование скриптов не получило массового распространения, поэтому, только параноические администраторы запрещают доступ со всех серверов, предоставляющих бесплатный хостинг. Следующий пример демонстрирует подключение к узлу nntp://news1.demos.su, путем использования слегка модифицированного файла nntp_post.pl (модификация заключается в замене адрес сервера, и добавления команды “LIST” для выдачи списка доступных групп). Спустя секунду-другую после запуска скрипта в окне браузера должен появится текст, приблизительно следующего содержания: ·
201 demos2 InterNetNews NNRP server INN 1.7.2 14-Dec-1997 (DEMOS revision) ready (no posting). ·»LIST · 215 Newsgroups in form "group high low flags". demos.local.ads 0000000003 0000000004 m. В момент написания этой главы, оказалась доступна всего лишь одна конференция, но это ничуть не уменьшает значимости того факта, что удалось «достучаться» до сервера, доступ к которому при нормальном ходе вещей оставался невозможен. В качестве альтернативы можно попробовать поместить исполняемый код не на сервер, а локальную машину, владелец которой заведомо (или потенциально) имеет доступ к необходимому ресурсу.
Врезка «информация» Среди тысяч вирусов существует, по крайней мере, два, пользующихся для своих нужд ресурсами NNTP. Это печально известные «Worm.Happy» (Internet - червь) и «Win32.Parvo» (файловый). Однако установить соединение с NNTP-сервером это только половина проблемы. Гораздо важнее получить возможность создания собственных сообщений. Большинство конференций (особенно из группы Fido7) запрещают прямой постинг, и такие группы отмечаются флагом “m” (от английского moderator - ведущий конференции). Попытка проигнорировать это ограничение ни к чему не приводит. Даже если север подтвердит успешность отправки, сообщение никудане будет отправлено. Но если добавить в заголовок сообщения поле “Approved” с указанием адреса модератора (или адреса отправителя), такое сообщение, скорее всего, будет воспринято, как правильное, и без проблем добавится в конференцию. Протокол, приведенный ниже (на диске, прилагаем к книге, он находится в файле “/LOG.nntp_post.log”), демонстрирует использование поля “Approved” для отправки писем в конференцию, доступ к которой обычным способом невозможен.
· ; Устанавливается соединение с сервером news.medlux.ru по 119 порту · 200 news.medlux.ru InterNetNews NNRP server INN 1.5.1 17-Dec-1996 ready (posting ok). · ; Получение списка доступных конференций на сервере · ; и выбор любой из них, помечанной флагом m · list · 215 Newsgroups in form "group high low flags". · medlux.dept.docs 0000000173 0000000174 m · medlux.dept.lic 0000000086 0000000087 m · medlux.dept.qual.doc 0000000150 0000000151 m · medlux.doc.acc 0000001621 0000001622 m · medlux.doc.apt 0000000320 0000000321 m · medlux.doc.ministry 0000000808 0000000809 m · medlux.doc.mos 0000001722 0000001723 m · medlux.doc.rus 0000003030 0000003030 m · medlux.doc.spb 0000000367 0000000368 m · medlux.drugs.reg 0000000041 0000000042 m · medlux.drugs.safety 0000000142 0000000143 m · medlux.fido.su.medic 0000036131 0000036110 y · medlux.firmhist 0000000616 0000000600 y · medlux.health 0000001748 0000001625 y · medlux.journal.top 0000000306 0000000307 m · medlux.journal.vit 0000000113 0000000114 m · medlux.medsci.anes 0000000465 0000000442 y · medlux.medsci.cardiol 0000000572 0000000528 y · medlux.medsci.dent 0000000441 0000000406 y · medlux.medsci.dermatol 0000000488 0000000443 y · medlux.medsci.diag 0000001059 0000001004 y · medlux.medsci.endocrin 0000000495 0000000448 y · medlux.medsci.gastroent 0000000483 0000000427 y · medlux.medsci.gyn 0000000683 0000000636 y · medlux.medsci.hematol 0000000400 0000000358 y · medlux.medsci.immunol 0000000436 0000000389 y · medlux.medsci.inform 0000001250 0000001176 y · medlux.medsci.neurol 0000001093 0000000989 y · medlux.medsci.oncology 0000000652 0000000596 y · medlux.medsci.ophthalm 0000000476 0000000436 y · medlux.medsci.pediatr 0000000686 0000000650 y · medlux.medsci.pharmacol 0000000693 0000000629 y · medlux.medsci.pulmonol 0000000396 0000000359 y · medlux.medsci.san-hyg 0000000400 0000000367 y · medlux.medsci.surg 0000000674 0000000637 y · medlux.medsci.talk 0000000961 0000000906 y · medlux.medsci.therapy 0000000465 0000000429 y · medlux.medsci.urol 0000000491 0000000456 y · medlux.medsci.z 0000000654 0000000606 y · medlux.mfy.exhibitions 0000000159 0000000160 m · medlux.mfy.expo 0000000047 0000000048 m · medlux.mfy.public 0000000096 0000000097 m · medlux.misc.advert 0000002695 0000002689 y · medlux.misc.gossips 0000000470 0000000470 y · medlux.misc.jobs 0000003661 0000003620 y · medlux.newspaper.szs 0000000470 0000000471 m · medlux.newusers 0000000377 0000000375 y · medlux.postmasters 0000000137 0000000138 m · medlux.request 0000000450 0000000448 y · medlux.trade.cosm 0000001681 0000001675 y · medlux.trade.dent 0000000850 0000000847 y · medlux.trade.drugs 0000006884 0000006879 y · medlux.trade.herb 0000001340 0000001329 y · medlux.trade.lab 0000001762 0000001753 y · medlux.trade.mtechn 0000004666 0000004654 y · medlux.trade.optika 0000000904 0000000900 y · medlux.trade.rubber 0000002936 0000002928 y · medlux.medsci.contents 0000000310 0000000272 y · medlux.journal.cg 0000000040 0000000041 m · medlux.medsci.homoeopathy 0000001365 0000001253 y · medlux.fido.ru.medic.profy 0000008681 0000008678 y · medlux.test 0000000546 0000000543 y · medlux.journal.umo.science 0000000002 0000000003 m · medlux.journal.umo.z 0000000002 0000000003 m · medlux.fido.ru.baby.medic 0000010291 0000010233 y · medlux.trade.service 0000000722 0000000708 y · medlux.medsci.orthopaedics 0000000245 0000000215 y · medlux.medsci.cardiovascular 0000000119 0000000089 y ·. · group medlux.doc.rus · 211 0 3030 3030 medlux.doc.rus · ; В этой группе нет ни одного сообщения! · next · 421 No next to retrieve. · ; Действительно, здесь ничего нет! · ; Попытка создания нового сообщения · post · 340 Ok · ; Разрешение отправки? Хм, странно… · Newsgroups:medlux.doc.rus · From:[email protected] · Subject:try · · Hello,Sailors! ·. · 240 Article posted · ; Неужели сообщение было отправлено?! · group medlux.doc.rus · 211 0 3030 3030 medlux.doc.rus · ; Опаньки ! Содержимое группы ничуть не обновилось. Сообщение не было отправлено · ; Попытка отправить сообщение с использованием поля Approved. · post · 340 Ok · Newsgroups:medlux.doc.rus · From:[email protected] · Subject:Test · Approved:[email protected] · · Helo,World! ·. · 240 Article posted · ; Проверка наличия сообщения на сервере · group medlux.doc.rus · 211 1 3030 3030 medlux.doc.rus · ; На сервере появилось новое сообщение! · ; Проверка - то ли это сообщение, что было отправлено · article · 220 3030 «[email protected]» article · Path: news.medlux.ru!not-for-mail · From: «[email protected]» · Newsgroups: medlux.doc.rus · Subject: Test · Date: 8 Apr 2000 12:24:27 GMT · Organization: Medlux InterNetNews site, Moscow, Russia · Lines: 1 · Approved: [email protected] · Message-ID: «[email protected]» · NNTP-Posting-Host: ppp-18.krintel.ru · Xref: news.medlux.ru medlux.doc.rus:3030 · · Hello, World! ·. ·; Без комментариев J · next · 421 No next to retrieve. · ; Завершение сеанса · quit · 205. Это сработало! Сообщение мгновенно появилось на сервере, и спустя некоторое время оказалось разослано всем остальным [243]. К сожалению, популярное клиентское программное обеспечение не поддерживает возможности добавления поля “Approved”, и возникает необходимость создания собственного инструмента (не работать же, в самом деле, всю жизнь в окне telnet-клиента). На диске, прилагаемом к книге, содержится демонстрационный пример “/SRC/nntp/htm”, который позволяет отправлять сообщения в модерируемые конференции. Его возможности наглядно демонстрирует следующий эксперимент. Если выбрать группу «с ведущим» [244], (например, medlux.doc.rus на сервере nntp://news.medlux.ru) и попробовать отправить свое сообщение с помощью «Outlook Express», то оно с завидным упорством откажется добавляться в конференцию. Но, если использовать скрипт “NNTP Test Post”, то сообщение незамедлительно появится в группе!Рисунок 16 Результат работы скрипта, создающего новое сообщение