- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
ТЕХНИКА СЕТЕВЫХ АТАК - Крис Касперский
Шрифт:
Интервал:
Закладка:
Но старый клиент не способен соединится с telnet-сервером Windows 2000, поскольку не поддерживает NTLM аутентификацию, которую настоятельно рекомендуется использовать в целях безопасности. Со всеми же остальными задачами, описанными в этой книге, он успешно справляется.
Следующий эксперимент демонстрирует подключение к telnet-серверу hobbiton.org и регистрацию нового пользователя. Для этого необходимо выбрать пункт меню “~Подключить/Удаленная система”. Когда на экране появится диалоговое окно, изображенное на рисунке 060 в поле «Имя узла» указать «hobbiton.org» (или адрес другого узла, к которому необходимо подключиться на данный момент). Содержимое поля «порт» на данном этапе необходимо оставить по умолчанию, то есть “telnet” или ввести численное значение порта - “23” и выбрать “vt100” в «Типе терминала».
Рисунок 060 Диалог «подключение»Затем нажать кнопочку «подключить», и пару секунд появится заставка “OpenBSD” [99], и требование ввести имя пользователя и пароль (смотри рисунок 061).
Рисунок 061 Начало telnet-сессии с серверомЕсли ввести свое имя и взятый наугад пароль, сервер поругается,- не знаем мы, мол, таких проходимцев, пробуйте еще раз. Для регистрации нового пользователя необходимо в качестве имени ввести “newuser”. Сервер задаст несколько придирчивых вопросов о поле, возрасте, месте проживания и через некоторое время, варьирующиеся от десятков минут до нескольких дней, создаст новый аккаунт и пустит в систему.
Что можно сделать с помощью Perl (глава для начинающих)O В этой главе:
O История создания языка Perl
O Назначение и возможности Perl
O Демонстрация возможностей Perl
«…программисты слишком часто обвиняют в грехах именно себя. Программистам нужно меньше времени тратить на оправдания. Если программирование не интересно, мы не будем убеждать других стать программистами»
Ларри УоллНародная молва утверждает, лучше, дескать, один раз увидеть, чем сто раз услышать. Поэтому, вместо пылкой агитации за изучение языка Perl, ниже будет приведен один маленький, не самый эффектный, но достаточно оригинальный эксперимент. Как известно, большинство серверов новостей Usenet часто сильно перегружены и не отличаются завидной скоростью. А сами конференции порой содержат тысячи сообщений, просматривать которые в on-line весьма медленно и накладно.
Между тем, текстовые сообщения легко сжимаются любым архиватором в несколько раз, - будь сервер малость поумнее, - он мог бы передавать упакованный поток данных на компьютер клиента, заметно уменьшая сетевой трафик.
Но такую операцию не трудно осуществить и самостоятельно: выбрать сервер с быстрым каналом, установить на нем клиентскую программу, которая умела бы читать сообщения из выбранной конференции, упаковывать их и выкладывать на быстрый FTP, поддерживающий докачку.
Ниже приведена одна из возможных реализаций такой программы (на диске, прилагаемом к книге, она находится в файле “/SRC/nr.pl”). В качестве упражнения зайдите telnet-ом на hobbiton.org (смотри главу «Удаленное выполнение программ») и наберите следующий текст в редакторе vi:
· #!/usr/local/bin/perl· use Socket;·· #Настойки по умолчанию· #$server='mailserver.corvis.ru';· #$server='oberon.rnd.runnet.ru';· $server='news.fido7.ru';· $group='fido7.ru.nethack';· $listfile='list.txt';· $msgfile='msg.txt';·· print "NNTP Reader Version 2.0 (c) 2000 Kris Kasperskyn";· print "Open nf.cfg file…";·· #Попытка взятия настоек из файла· if (open(FH,"nr.cfg"))· {· print "OKn";· $server=«FH»;· $server=~ s/n//;· $group=«FH»;· $group =~ s/n//;·}· else· {· print "failn";·}·· print "Server [$server]:";· $tmp=«»; if (length($tmp)»2) {$server=$tmp; $server=~ s/n//;}··· print "Command (MSG|LIST|EXIT):";· $tmp=«»;·· if ($tmp=~/MSGn/)· {· print "Group [$group]:";· $tmp=«»;· if (length($tmp)»2) {$group=$tmp; $group=~ s/n//;}· getmsg();·}·· if ($tmp=~/LISTn/)· {· LIST();·}·· if ($tmp=~/EXITn/)· {· EXIT();·}·· #Сохраняем настойки в файле· if (open(FH,"»nr.cfg"))· {· print FH "$servern";· print FH "$groupn";·}· close (FH);··· sub getmsg()· {·· $cmdcount=0;· print "Connecting to $server…";· socket(NNTP, PF_INET(), SOCK_STREAM(), getprotobyname("tcp") || 6);· connect(NNTP, sockaddr_in(119,inet_aton($server))) || die;· print "ok!n";·· recv(NNTP,$rc,200,0); # Приглашение сервеа· print "$rcn";·· send(NNTP,"GROUP $grouprn",0); # Выбор группы· $group_res=«NNTP»;· if(substr($group_res,0,3)-411)· {· print "$group_resn";· die;·}· print "$group_resn";·· open(FH,"»$msgfile"); # Открыть файл сообщений· print FH "$group_resn";· $cmdcount=0;·· $reader=1; # цикл· $msgdone=0; # Сообщений прочитано·· while($reader)· {· send(NNTP,"ARTICLErn",0); # Новая статья·· while(substr(($rc=«NNTP»),0,3)!~/.rn/)· {# Чтение статьи·· if (!$rc) {print "Close connectionn";die;}· print FH $rc;·}· print FH $rc;· $msgdone++; # Следующее сообщение· print "=$msgdone;r"; # Протокол на экран·· send(NNTP,"NEXTrn",0); # Следующее сообщение· $nx=«NNTP»;·· $add=1;· while($add)· {· if (substr($nx,0,1)!~/./){$add=0;}· if (substr($nx,0,1)=~/./){$nx=«NNTP»;}··}· $nx++;·· if ($nx-422) {$reader=0;} # Выход из цикла·}·· close (FH);·· if (open(CF,"$msgfile.gz")) # Удалить файл если он уже есть!· {· close(CF);· unlink("$msgfile.gz");·}·· open(FG,"|gzip $msgfile"); # Сжать!· print "Donen";· close(NNTP);·}·· sub LIST()· {· print "Connect to $server…";· socket(NNTP, PF_INET(), SOCK_STREAM(), getprotobyname("tcp") || 6);· connect(NNTP, sockaddr_in(119,inet_aton($server))) || die;· print "okn";·· recv(NNTP,$rc,200,0);· print $rc;·· print "»LISTn";· send(NNTP,"LISTrn",0);·· open(FH,"»$listfile");· print FH "Server: $server nLIST:n";·· $cmdcount=0;·· while(substr(($rc=«NNTP»),0,1)!~/./)· {· $cmdcount++;· #if ($debug) {print "$rc«BR»n";}· print "=$cmdcountr";·· print FH $rc;·}· close (FH);··· if (open(CF,"$listfile.gz"))· {· close(CF);· unlink("$listfile.gz");·}·· print "Donen";· open(FG,"|gzip $listfile");·· close(NNTP);· print "«HR»n";·}
Запустите созданный файл командой “perl nr.pl”. На экране терминала появится следующее:
· NNTP Reader Version 2.0 (c) 2000 Kris Kaspersky
· Open nf.cfg file…fail
· Server [news.fido7.ru]:
Нажмите клавишу «Enter» или введите адрес news сервера, с которым хотите установить соединение. Затем появится следующий запрос:
· Command (MSG|LIST|EXIT):MSG
Выберете команду “MSG” для получения всех сообщений заданной конференции, или “LIST” для выдачи списка всех доступных конференций. Если выбрать команду “MSG” программа попросит ввести название конференции, сообщения которой требуется получить:
· Group [fido7.ru.nethack]:
После нажатия “Enter” начнется процесс перекачки сообщений на удаленный сервер. Если он действительно находится на быстром канале, это не займет много времени.
· Connecting to news.fido7.ru…ok!
· 200 ddt.demos.su InterNetNews NNRP server INN 2.3experimental 20-Nov-1998 ready (posting ok).
· 211 418 26550 26967 fido7.ru.nethack
· =55;
По окончании процесса в текущей директории будет создан файл “list.txt.gz” (если был запрошен список конференций) или “msg.txt.gz”, содержащий текст сообщений. Воспользуйтесь любым ftp-клиентом и выкачайте этот файл на свой локальный компьютер. Распакуйте его архиватором gzip (или совместимым с ним Winzip32) и, ради любопытства, сопоставьте размеры файла до и после упаковки, прикинув, сколько же времени удалось сэкономить.
Это довольно мирный пример, показывающий полезность Perl в повседневной жизни. Точно так можно перекачать файл с любого сервера, (например, ftp) не поддерживающего докачку, на сервер докачку поддерживающий.
Применительно к атакам подобная технология позволяет убить сразу двух зайцев. Во-первых, она обеспечивает анонимность (ведь программа исполняется от имени удаленного сервера, везде оставляя его адрес, а не IP злоумышленника), а во-вторых, многие атаки с медленного модемного канала реализовать принципиально невозможно!
Любую атаку можно свести к программной реализации, т.е. последовательность инструкций, работающих либо в полностью автономном, либо диалоговом режиме. В первом случае все необходимые установки задаются однократно до начала атаки, после чего атакующий идет пить кофе, дожидаясь окончания работы программы. А во втором требуется тесное взаимодействие с оператором - выдача промежуточных результатов, анализ ситуации и ввод очередной последовательности команд.
В сетевом программировании большую популярность завоевали интерпретаторы, не требующие предварительной компиляции программы перед ее выполнением. Интерпретаторы позволяют создавать мобильный код, одинаково хорошо работающий под управлением любой серверной платформы, разумеется, при условии, что для нее имеется реализации требуемого интерпретатора, и он установлен в системе.
Существует целое море самых разнообразных интерпретаторов, казалось бы, выбирай, - не хочу. Но большинство из них не сыскало большой популярности и известно лишь узкому кругу приверженцев. Вероятность обнаружить какой-нибудь из них на произвольно взятом сервере близка к нулю, и если нет возможности умаслить администратора системы и уговорить установить интерпретатор полюбившегося вам языка - ничего работать не будет.

