«Техника сетевых атак»

Вид материалаКраткое содержание

Содержание


Исходный текст NR.PL
I remember the good old days, when computers were mainframes, analysts were magicians, and programmers punched cards...
Дисплеи - это отдельная история - кубинские не работали, когда было жарко, советские, когда холодно...
Подобный материал:
1   ...   43   44   45   46   47   48   49   50   51

Исходный текст NR.PL




  • @ECHO off
  • perl -x -S "%0"
  • goto end
  • #!perl
  • #line 6
  • print "TCP SpyServer Version 2.0 Copyright (c) 2000 Kris Kaspersky\n";

  • #Клиент\серверный шпион
  • use Socket;

  • #Настойки по умолчанию
  • $local_port = 110;
  • $remote_port = 110;
  • $server = 'mail.aport.ru';

  • #Попытка взятия настоек из файла
  • if (open(FH,"tcpspy"))
  • {
  • $local_port=;
  • $local_port =~ s/\n//;
  • $remote_port=;
  • $remote_port =~ s/\n//;
  • $server=;
  • $server=~ s/\n//;
  • }

  • print "Порт локального сервера \t[$local_port]:";
  • $tmp=<>; $tmp=~ s/\n//;if ($tmp>0) {$local_port=$tmp;}

  • print "Порт удаленного сервера \t[$remote_port]:";
  • $tmp=<>; $tmp=~ s/\n//;if ($tmp>0) {$remote_port=$tmp;}

  • print "Адрес сервера (none нет) \t[$server]";
  • $tmp=<>; $tmp=~s/\n//;
  • if (length($tmp)) {$server=$tmp}

  • #Сохраняем настойки в файле
  • if (open(FH,">tcpspy"))
  • {
  • print FH "$local_port\n";
  • print FH "$remote_port\n";
  • print FH "$server\n";
  • }
  • close (FH);

  • # 666 - особый код для Эхо-сервера
  • if ($server=~/none/) {$server=666;}

  • #Создаем сокет для локального сервера
  • socket(SERVER, PF_INET, SOCK_STREAM, 6);
  • setsockopt(SERVER, SOL_SOCET, SO_RESEADDR,1);
  • $my_addr = sockaddr_in($local_port, INADDR_ANY);
  • bind(SERVER, $my_addr);

  • #Слушаем....
  • listen(SERVER,1);
  • while(1)
  • {

  • print "Ожидание подключения...\t\t";
  • #Определяем адрес клиента
  • $client_addr=accept(CLIENT, SERVER);
  • ($clint_port,$client_ip) = sockaddr_in($client_addr);
  • print "+OK [IP:",inet_ntoa($client_ip),"]\n";

  • $one=CLIENT;

  • $connect=1;

  • if ($server!=666)
  • {# Прокси-схема с удаленным сервером
  • print "Соединение с узлом $server...\t";
  • socket(RSERVER, PF_INET(), SOCK_STREAM(),6);
  • connect(RSERVER, sockaddr_in($remote_port,inet_aton($server))) || die;
  • print "+OK\n";
  • $two=RSERVER;

  • }
  • else
  • {# Эхо-сервер
  • print "Установка эхосервера...\t\t+OK\n";
  • $two=CLIENT;
  • }

  • $x='foo';
  • open(LOG,">>tcpspy.log");
  • #Обработка текущего подключения
  • while($connect)
  • {
  • $rin='';
  • vec($rin, fileno($one),1)=1;
  • $timeout=5;
  • $nfound=select($rout = $rin, undef, undef, $timeout);
  • if (vec($rout, fileno($one),1))
  • {
  • #Слушаем ответ клиента
  • recv($one,$x,10000,0);
  • if (!length($x)) {$connect=0;}
  • else
  • {

  • if ($x=~/#HALT_OFF/) {send($two,"HANDUP",0);die;}
  • print "$one$x";
  • print LOG "$one$x";
  • #Говорим это серверу
  • send($two,"$x",0);
  • }
  • }
  • else
  • {#Меняем сервера с клиентом
  • ($one,$two) = ($two,$one);
  • }
  • }
  • print "\n-ERR:Соединение разорвано\n";
  • close(CLIENT);
  • close(RSERVER);
  • close(LOG);
  • }
  • __END__
  • :end




1 . «UNIX не был создан для того, чтобы мешать кому-то делать глупости, ведь это помешало бы умным людям делать умные вещи» Doug Gwyn

2 Тогда еще ARPANET

4 От английского слова “creeper” – ползучее растение, ленточный конвейер. В русскоязычной литературе эта программа известна под именем «Вьюнок»

5 В дословном переводе «Монстр из печенья» - герой популярной детской передачи Sesame Street

6 Сетевые черви существовали еще и до Морриса. Если бы не масштабы эпидемии его творение так бы и осталось ничем незамеченным

7 которые возникли намного позднее

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

9 Вадим Антонов

10 Если непривилегированный пользователь получит право модификации файла паролей, он сможет изменить пароль администратора (или другого пользователя) и несанкционированно войти в систему

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

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

13 Но «высшей» еще не обозначает сложной

14 Впрочем, все это не мешает использовать книгу для «диванного чтения» и получать от этого удовольствие

15 От английского “hack” – рубить, разрубать; кромсать; разбивать на куски, надрубать; наносить резаную рану, а так же тонкая ювелирная работа, верх совершенства

16 Ну, по-русски они клацали, а по-американски хацкали

17 Словом, киберпанков

18 А могут считать, но публично утверждать обратное

19 Сигареты, пиво и отращивание волос еще никого не сделали хакером

20 Хакеры, хакеры…

21 Шутка, конечно, но чего не бывает в жизни…

22 Точная статистика варьируется от одного источника к другому, поэтому, конкретные цифры здесь не приводняется

23 Любопытно, но выдержки из этой работы непонятным образом попадают в монографию Николая Безрукова «Компьютерные вирусы», изданную гораздо позже – в 1989 году, но без ссылок на первоисточник!

24 К слову сказать, диплом не является свидетельством образованности – деградация высших учебных заведений – тема для отдельного длинного разговора

25 “…когда он (хакер –КК) охвачен своей манией, он не может говорить ни о чем, кроме своей программы. Но единственный момент, когда он счастлив, время, проведенное за пультом управления вычислительной машины. И тогда он не станет беседовать ни с кем, кроме машины» Дж. Вейценбаум

26 “Хакинг дает Кевину Минтику чувство самоуважения, которого ему не хватает в реальной жизни. Алчность и стремление навредить тут ни при чем...” Гарриет Розетто, директор реабилитационной службы

27 Автор этой книги не всегда разделяет мнения психологов, перечисленные в этой главе

28 Вот почему среди хакеров практически никогда не встречается женщин

29 Жизнь проходит независимо от того, протекает ли она за решением задачи или хождением на открытом воздухе – КК

30«Inside the mind of Dark Avenger» by Sarah Gordon

31 Иа-Иа

32 Как хакер, кончено

33 Во избежание искажений атмосферы произведения, текст не переведен.

34 Слабительное, одним словом

35 Пускай заключительные приговоры в подобных случаях – незавидная экзотика, но все же…

36 С помощью cookie

37 Во всяком случае «кто предупрежден, – то вооружен»

38 В противовес аппаратным, совершаемым кусачками

39 То есть гостевых правах с минимальными привилегиям

40 Конечно, для этого придется обзавестись сервером и выделенным каналом, но, вполне вероятно, вложенные в атаку средства окупятся продажами ворованной информацией

41 Равно, как и сервер, специально предоставленный для взлома

42 Иными словами дифференцированное программное обеспечение или гетерогенная сеть в отличие от гомогенной (одно-ранговой)

43 API – Application Program Interface – Интерфейс Прикладных Программ

44 Здесь приходится использовать термин дейтаграмма, что бы не вызвать противоречия

45 См. второй том книги

46 com/~zen/satan/satan.phpl

47 Хорошее место, траву прямо на улице курят. Что и объясняет особенности берклеского юникса. (Антонов - старший.)

48 Впрочем, некоторые GNU программы успешно перенесены на платформу Windows. Например, редактор EMACS.

49 Но очень, очень желательно

50 “Что такое комп дома в собственном монопольном использовании, без перфокарт и начальника машины современная молодежь не поймет – они этого времени уже не застали...” Сергей Пустовойтов

51 " I remember the good old days, when computers were mainframes, analysts were magicians, and programmers punched cards..." Philip Fites, Peter Johnston, Martin Kratz "Computer viruses crises"

52 Точнее, практически идентичен. Но объяснение причин различий потребовало бы много места

53 И, кстати, в то время самой быстрой в мире.

54 Самой же операционной системе отводилась только половина из них – 16 килобайт

55 Именно эта идея использовалась в IBM PC

56 Подразумевается градусов

57 По сравнению с аналогичными программами, написанными на ассемблере. Но и в этом случае его стоимости составляла десятки и сотни тысяч долларов

58 Вернее, сам проект назывался MAC, а MUTLICS – его единственное детище

59 Windows NT поддерживает «копирование при записи», а Windows 95 нет

60 Т.е. объявить файл частью виртуальной памяти, расположенной на диске. Подробнее об этом можно прочитать в книге Джеффри Рихтера «Windows для профессионалов»

61 Сам язык BCPL был разработан Мартином Ричардсом

62 Имеется ввиду компания Novell, выкупившая у AT&T лицензию на код UNIX, а вовсе не сама AT&T

63 Надежность всегда была главным достоинство продуктов Microsoft (безо всякой иронии)

64 А.П. Руднев

65 Хорошее место, траву прямо на улице курят. Что и объясняет особенности берклеского юникса. (Антонов - старший.)

66 « Дисплеи - это отдельная история - кубинские не работали, когда было жарко, советские, когда холодно...»

67 256 килобайт оперативной памяти, 5 мегабайт накопитель

68 Тем не менее, MISS была успешно перенесена с ЕС ЭВМ на IBM PC и даже использовалась узким кругом поклонников, но несовместимость с MS-DOS и UNIX воспрепятствовали ее распространению

69 Вадим

70 Давидов «Вся правда о Демосе»

71 Брат Вадима

72 Современная вариация на тему БЭСМ-6

73 Клон VAX-730

74 torvalds@kruuna.helsinki.fi

75 Высказывание пренадлежит Линусу

76 А во вторую очередь уже обращает внимание на удобство инструментария

77 Впрочем, многие администраторы ее используют и… «пока все работает»

78 То есть, как раз правильный

79 Ну, почти бы не возникало

80 Так же известное под именем обработчик

81 Как и в MS-DOS

82 То есть, конечно, существует, но прикладным приложениям она недоступна

83 GNU рекурсивно расшифровывается как GNU Not Unix.

84 Смотри Wipro UWIN Version 2.0 User Guide

85 В штатную поставку Windows 2000 входит и telnet-сервер

86 А еще говорят, что в UNIX нет никакой черной магии

87 Вывести содержимое файла /etc/passwd на экран

88 Здесь и далее цитируется оригинальная документация по CYGWIN

89 И правильно – привыкайте работать в командной строке

90 Ложь – искусство умолчания

91 Все точно так, как и в MS-DOS, только наклон черты в другую сторону

92 К слову сказать, в MS-DOS команда dir *1* выведет все файлы, а не только те, в имени которых присутствует единица

93 Сокращение от visual interface

94 «Машинная программа выполняет то, что вы ей приказали делать, а не то, что бы вы хотели, чтобы она делала» Третий закон Грида

95 Ну почти любой

96 По тем временам

97 Подробнее это рассмотрено в главе «Технологии срыва стека»

98 По-английски Local Echo

99 Если сервер не находится в дауне (с ним, как и с большинством остальных бесплатных ресурсов, это случается гораздо чаще, чем хотелось бы),

100 Точнее, генерируется случайное 12 битное число, преобразуемое в два читабельных символа

101 Строго говоря, привязка может состоять только из символов 0-9 и A-z, но это бы усложнило реализацию и приведенный пример стал бы менее нагляден

102 «- Не очень-то надежная защита, - задумчиво сказала Лиза» John Warley Press Enter.

103 Современные версии UNIX уже не ограничивают длину пароля восемью символами, но выбирать длинные пароли категорически не рекомендуется, – это значительно снижает криптостойкость. К сожалению, внятно объяснения потребовали бы много места и знаний глубоких криптографиии.

104 Необходимо отметить, во многих версиях UNIX shadow по умолчанию выключен, и все пароли содержатся в общедоступном файле passwd

105 Вернее, почти любой. Об ограничениях можно прочитать в главе «Технология срыва стека»

106 Ну разве администратор окажется совсем уж криворуким

107 Thompson K. Reflections on trusting trust CACM, 1984,v.27, No 8, pp.761-764 (Перевод Н.Н. Безрукова)

108 Добавляет нового пользователя kpnc с пустым паролем

109 Victim – по-английски жертва.

110 Ну не грохать же после этого администратора?!

111 Технически правильно говорить о секциях или областях, но термин «сегмент» более привычен для читателей, знакомыми с микропроцессорами Intel 80x86

112 Если бы современные операционные системы не блокировали обращения прикладных программ к портам ввода-вывода, было бы возможно, используя контроллер DMA, нейтрализовать защитный механизм.

113 «Можно сделать защиту от дурака, но только от неизобретательного» Закон Нейсдра

114 Если отладка - процесс удаления ошибок, то программирование должно быть

процессом их внесения. Э. Дейкстра

115 Реже, какого ни будь экзотического языка

116 Да, уже в то время Microsoft ухитрилась стать монополистом.

117 А она ее и не выдержала. Даже сейчас не смотря на всю прелесть Microsoft Visual C++, он так и не стал стандартом де-факто.

118 Занимавшимся доселе текстовыми процессорами

119 Ну почему же не позволяли? Позволяли еще как, путем хитроумных технических извращений, но скорости работы это не прибавляло.

120 Порядка 500$

121 Апрель 1980 года

122 Это не первый и не последний случай переманивая талантливых программистов под свое крыло.

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

124 Тут уместно вспомнить NDOS от Symantec – пользующейся большой популярностью на западе.

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

126 В своей книге «Дорога в будущее»

127 PC Magazine N97-6 "Взгляд в прошлое" Рубен Герр

128 В октябре 1983

129 GW-BASIC, разработанный годом раньше, не в счет. Формально он поддерживал графику, но графической средой не являлся.

130 Первые Macintosh появились на рынке в 1984 году

131 Но IBM среди них не было

132 Впрочем, Windows в те времена была всего лишь графическим расширением MS-DOS

133 PC Magazine N97-6 "Взгляд в прошлое" Рубен Герр

134 В то время Microsoft не уставала повторять, что будущее принадлежит UNIX и всеми силами пыталась «раскрутить» пользователей PC на эту операционную систему

135 Любопытно, насколько же нужно повысить производительность, чтобы пользователи этого не заметили?

136 Близкую к современным версиям Microsoft Office

137 Билл Гейтс «Дорога в будущее»

138 «Почему Microsoft победит Netscape» Джон Дворак

139 так бы хотелось в это поверить!

140 Если не считать огромного количества новых ошибок, отсутствовавших в Windows NT 4.0

141 Компания Microsoft же на своем сайте пытается доказать, что утверждение «Windows 2000 – это просто очередная ОС» всего лишь миф и не более. (ссылка скрыта)

142 Впрочем, и Windows 2000 его, возможно, не обеспечит то же

143 Кстати, если в слове “VMS” сдвинуть все буквы на одну позицию вправо, получится “WNT”

144 А все что не удается отключить выламывается с корнем

145 Разумеется, речь идет только о продуктах Microsoft

146 Ну кому в двухтысячном взбредет в голову устанавливать на своей машине MS-DOS?

147 И что же это за сервер такой?

148 Глава «Атака на DNS сервер» помещена во второй том «Техники сетевых атак»

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

150 А перехват трафика возможен как в локальных, так и глобальных сетях: ни широковещательная среда Ethernet, ни протоколы TCP/IP не защищают от этого.

151 Почему не смогут? Смогут, еще как – читайте дальше.

152 В Windows 2000 автоматический вход в систему установлен по умолчанию

153 Вообще-то алгоритм выбора сервером протокола зависит от множества обстоятельств и в некоторых случаях может не совпадать с описанным.

154 В переводе с английского «отклик», «отзыв», «требовать пароль» (воен.)

155 Если клиент поддерживает только PC Network Program 1.0

156 Строго говоря, это утверждение верно в том, и только в том случае если функция f инъективна (одному значению функции соответствует только один аргумент). А, поскольку, хеш функция наверняка не инъективна, возможна такая ситуация, когда xx1, но f(x)=f(x1). Однако вероятность подобной коллизии пренебрежительно мала и ее не берут в расчет.

157 В самом же деле, ведь не возможно по LM-хешу угадать NT-хеш

158 Именно так и поступают операционные системы Windows 95 и Windows 98 (и даже сама Windows NT для соединения с другой NT в конфигурации по умолчанию)

159 строка нулей шифруется алгоритмом DES, а роль ключа играют семь символов пароля

160 Очевидно, взлом DES не относится к атакам на Windows NT

161 если под операцией подразумевать вычисление функции DES и сравнения полученного результата с исходным хеш - значением

162 Пояснение: что бы перебрать каждый из семи символьных паролей в худшем случае потребуется 1+k+k2+k3+k4+k5+k6+k7 операций. Поскольку, имеется два семи символьных пароля, то потребуется вдвое больше операций: 2*(1+k+k2+k3+k4+k5+k6+k7). Но в среднем пароль удается найти вдвое быстрее, отсюда – 2*(1+k+k2+k3+k4+k5+k6+k7) * ½ == 1+k+k2+k3+k4+k5+k6+k7

163 Стоит заметить, даже старые версии UNIX ограничивают пароль восемью символами, различая при этом заглавные и строченые буквы!

164 Ну куда же Microsoft без ошибок!

165 А не абстрактных операций

166 А можно послать ей письмо, содержащее Java код, и, если почтовый клиент жертвы поддерживает отображение HTML-писем, то на требуемую ссылку злоумышленник сможет завести атакуемого самостоятельно

167 В Windows 2000 это упущение уже исправлено

168 Резервная копия хранится в упакованном виде

169 Или их хеши

170 Подробности в статье Q129457 базы знаний

171 А по умолчанию они у него есть.

172 Правда, в такой конфигурации Windows 2000 обгоняет по скорости Windows 98, которая просто не знает как ей распорядится с таким количеством оперативной памяти

173 И находятся же такие горячие головы!

174 Ну чем не коммунизм в чистом виде?

175 Кроме сотни-другой игрушек

176 По сравнению с Windows 95

177 Сам запустил – сам и виноват!

178 Каждый член этой последовательности получается циклическим сдвигом значения предыдущего на семь бит влево

179 Ну почему не возможно? Возможно, но это выходит за рамки данной книги

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

181 Хорошая же защита, однако!

182 А нулевое значение равносильно отсутствию пароля

183 Но все равно очень и очень много!

184 Или в электронной форме. Сути это (понятное дело!) не меняет

185 Круглая скобка говорит «не включая последний элемент», т.е. [0x0,0xFF) равносильно 0x0..0xFE.

186 Kluge – Устройство, программа или часть программы, которые теоретичски не должны работать, но почему-то работают. Словарь Лингво

187 Такие пакеты называют