TReizi -_-,
04-01-2011 11:24
(ссылка)
СПИСОК ПРОГРАМ ДЛЯ ВЗЛОМА АСЬКИ!
ICQ Invisible Check
Программа показывает статус аси которую вы решили проверить, в частности самое ценное это проверка на инвизибл (невидимость).
IPDbrute (Lite/Pro) + Генераторы
Самый быстрый брутфорс паролей к аськам с возможностью вести подбор через HTTP(S)-прокси. Умеет работать в несколько потоков, поддерживает 16-ти ричные пароли, поддерживает списки uin`ов на проверку, удаляет "умершие" прокси и многое другое. В архиве содержится три версии брутфорса: IPDbrute 2.0 Lite, IPDbrute 2.0 Pro (не та, что 500$, а та что первое время на сайте лежала) и IPDbrute 1.5.191 Pro (то же самое что и платная 2.0 Pro, но без устраненных багов). Так же в архиве лежит два генератора листов (uin;passwd): Powerful GeneratoR и The Founder of Sheets 1.0. Для кучи в архиве небольшая статья для ламосов =)
Advanced UIN Regger (AUR)
В архиве находится две версии (ver.2 и ver.3) программы, которая через список проксей регает новые ICQ номера (естественно девятки =). Программа может пригодиться для регистрации большого кол-ва номера для флуда, для регистрации красивых номеров (в среднем на 100 номеров приходится одна красивая девятка), да и для особых маньяков жаждущих как можно больше номеров =) ИМХО верси 2 (Build 32) работает более лучше и быстрее.
mIRC 2.2a by IcqHackers
Переделанная версия мирка (на базе mIRC 6.12) коммандой IcqHackers. Эта версия сделана специально для андеграундного общения, в нее добавленно много полезных возможностей, таких как: Port scan, Very smart whois, Mail Checker и многих других
ICQ Fucker 1.2.1
Програма умеет: Создание/управление базами Icq Uin; Хранение в базе Uin, Пароль, Primary, Пароль на Primary; Регистрация новых Uin; Проверка пароля на Uin; Поиск по Primary E-Mail базе; Проверка статуса Uin`а (на Invisible); Сохранение параметров соединения, прокси сервера; Ретрив пароля на E-Mail;
ICQr Information 1.5
Программа выдирает из dat-файлов аськи всю возможную инфу (пароль, контакт-лист, историю и другую персональную информацию)
ICQ Password Changers
Архив содержит для удобные программы для смены пароля и удаления инфы из ась: PasChanger 2.0 и ICQ Info and Password Changer 2.0 .
Miranda Password Decryptor 1.2
Простенькая программа предназначенная для расшифровки забытого пароля популярного ICQ клиента - Miranda. Так же в архив включена утилиты mimpd, которая выполняют ту же работу, но только из коммандной строки.
ICQ2003Decrypt v1.5
Программа предназначена для выдирания паролей из ICQ 2003a/2003b/Lite. В комплекте с архивом идут исходники (Delphi, BC++, MSVC, MASM Examples) и библиотеки (DLL).
Show ICQ IP
Небольшая програмка, которая показывает IP юзера в асе. Должен заменить, что IP можно определить не у всех асек, а толкьо лишь у ICQ 2000a/b и ICQ 2001a. Так же IP определяется у юзеров забывших поставить запрет на определение IP или некоторых клонов аси. Приятно, что данная программа была написана специально по просьбе нашего сайта inf`ом.
TReizi -_-,
03-01-2011 22:17
(ссылка)
Хочу стать хакером...
Хочу стать хакером...
Бурное развитие компьютерной индустрии, внедрение компьютеров практически во все сферы жизни породили стойкий интерес к хакерам, фактически создавшим компьютерный мир, к их творчеству и культуре. Более того, многие молодые (и не очень) люди стремятся присоединиться к сообществу хакеров, но зачастую не знают, что для этого необходимо и с чего следует начать.
В мире существует сообщество, особая культура опытных программистов, сетевых администраторов, которые и ввели в употребление термин "хакер". И именно хакеры создали Интернет, Unix, World Wide Web, а также множество иных полезных вещей. И если вы стали частью этой культуры, если вы внесли свою лепту в ее развитие и получили признание, то вы и есть хакер.
Следует сделать оговорку, что существует и другая группа людей, которые везде кричат, что они хакеры, хотя в действительности не имеют к ним никакого отношения. Это те, кто промышляет взломом компьютеров, махинациями с кредитными карточками и телефонными линиями. Настоящие хакеры называют таких людей "крэкерами" и не желают иметь с ними никаких дел.
Главное различие между ними состоит в том, что хакеры создают вещи, а крекеры их ломают. Далее разговор пойдет именно о хакерах. Хакеры решают различные проблемы, верят в свободу и взаимопомощь. И для того чтобы быть принятым в это сообщество, новичку следует не только придерживаться определенных правил, но и по-настоящему верить в них. Но одного этого еще недостаточно, поэтому тот, кто хочет стать хакером, должен запомнить идеи, которые являются основой мировоззрения хакеров:
1. Мир полон интереснейших проблем, которые предстоит решить.
Быть хакером - приятное занятие, которое, однако, требует многих усилий. Хакера увлекает процесс решения всевозможных проблем, оттачивания мастерства, тренировки своего разума - в этом особенность его мышления. Поэтому человек, не обладающий данными качествами и не развивший их в себе, навряд ли станет хакером. Творческие силы такой личности скоро будут истощены деньгами, сексом, честолюбием. Кроме того, хакерам присуще некое "шестое чувство" - способность, имея минимум сведений о проблеме, извлечь из них информацию, которая помогла бы решить первую часть этой проблемы, затем следующую часть, и так, шаг за шагом, прийти к ее решению.
2. Проблемы должны решаться раз и навсегда.
Творческие силы - ценный и редкий ресурс. Он не должен расходоваться впустую для изобретения очередного велосипеда, в то время как существует много проблем, требующих решения. Поэтому хакер должен ценить творческое время своих коллег настолько, чтобы со временем у него появилось желание поделиться информацией или решением проблемы лишь затем, чтобы иные хакеры могли заняться решением новых вопросов, вместо переадресовывания старых и топтания на одном месте.
Но это вовсе не означает, что хакер должен безвозмездно делиться своими знаниями и наработками, однако те, кто поступают именно так, пользуются наибольшим уважением. В то же время нет ничего зазорного в том, чтобы своими знаниями обеспечить свое существование, достичь успеха. Главное - не превращать зарабатывание денег в самоцель.
3. Недопустимость скуки и рутинной работы.
Хакеры, да и вообще творческие личности, не станут заниматься скучной, рутинной работой, это означало бы, что они занимаются не своим делом, не решением новых проблем.
Привлечение хакеров к такой работе нельзя рассматривать иначе как пустую трату творческий усилий, что является не только досадной неприятностью, но и определенным злом. Хакер должен стремиться, насколько это возможно, избавиться от такой работы и избавить от нее других хакеров.
Но и из этого правила есть исключения: иногда хакерам необходимо заниматься работой, которая может сперва показаться скучной и неинтересной, но которая хорошо помогает "прочистить мозги" или получить опыт, иным путем неприобретаемый. И тем не менее, никто из хакеров без согласия не должен принуждать себя к скучной, неинтересной работе.
4. Недопустимость ограничения творческой свободы.
По природе хакерам чуждо принуждение. Давление, оказываемое на хакера, мешает ему заниматься интересующим его вопросом. Принудить же творческую личность заниматься чуждой ей проблемой - значит значительно снизить эффективность работы, а в итоге - получить мизерный результат. Поэтому с принуждением в творчестве следует всячески бороться как в отношении себя, так и других.
5. Профессионализм хакера.
Тяга к творчеству, недопустимость скуки и рутины, свобода в работе весьма важны для хакеров. Но не стоит также забывать о значении опыта, ума, трудолюбия. Хакер должен уважать профессионализм любого сорта, но в первую очередь - профессионализм в интеллектуальной сфере. Именно он и ценится больше всего среди хакеров.
Исходя из вышесказанного, мы можем составить представление об основных принципах хакеров. Но только лишь знание этих принципов еще не делает человека хакером. Необходимо много знать и уметь, чтобы получить признание в их кругах, поэтому не мешало бы определить, какие именно базовые навыки необходимо иметь хакеру, чтобы впоследствии стать виртуозом своего дела.
1. Умение программировать.
Несомненно, это основное требование к хакеру. На сегодняшний день существует язык программирования, знание которого необходимо каждому хакеру - это "Си". Но хакер не будет таковым, если он знает лишь один язык - ведь ему приходится сталкиваться с различными задачами и программами. Ему приходится мыслить масштабно, вне зависимости от ограничений, налагаемых тем или иным языком. Поэтому, кроме "Си", хакеру следует изучить Assembler, Lisp и Perl. Java также является весомым претендентом на вхождение в этот список. Каждый из этих языков представляет особый подход к программированию, каждый из них имеет ценность для хакера.
Тяжело дать исчерпывающие инструкции, как обучиться программированию. Одно лишь можно сказать с уверенностью: вряд ли какие-то курсы или книги смогут сделать человека хакером - именно поэтому среди хакеров так много самоучек.
2. Хакеру следует разыскать Unix и научиться им пользоваться.
Кроме Unix, в мире существуют и иные операционные системы, но они распространяются в двоичном коде, с которым нельзя ни нормально работать, ни изменять его. Пытаться "хакерить" в среде DOS, Windows, или MacOS равносильно попытке научиться танцевать в смирительной рубашке.
Кроме того, Unix - это одна из основных операционных систем, распространенных в Интернет. Следовательно, не зная Unix, весьма проблематично понять Интернет, а следовательно и стать хорошим хакером.
Именно поэтому культура современных хакеров очень тесно связана с Unix. Интернет и Unix связаны настолько тесно, что даже Microsoft обломала себе зубы, пытаясь разорвать эту связь.
Итак, найдите Unix, установите его, общайтесь с Интернет при его помощи, изучите его код, научитесь изменять его - и вы получите средства программирования (включая Lisp и Perl), которые и не снились другим операционным системам. Благодаря Unix вы получите удовлетворение от работы, наберетесь опыта, это будет важный шаг на пути к мастерству.
3. Научитесь пользоваться World Wide Web и писать HTML-код.
Основная часть работы, проделываемой хакерами, незаметна неопытному взгляду. World Wide Web, всемирная "паутина", - одно из исключений. Даже политики признают, что эта огромная игрушка хакеров изменила наше представление о мире! Хотя бы поэтому необходимо научиться работать с Web. Это не означает лишь умение пользоваться браузером (что умеют даже дети).
Следует научиться писать, используя HTML - основной стандарт WWW. Тем, кто еще не научился программировать, HTML окажет существенную помощь в учебе и приобретении навыков программирования. Можно также создать свою домашнюю страницу, но ее следует сделать интересной, содержательной, полезной для других хакеров, иначе - лучше вообще не делать, т.к. в Интернет полно подобной серости.
Cейчас мы подошли еще к одному важному вопросу: "Как получить признание в Сети?" Вариантов несколько:
- Создавать бесплатное программное обеспечение. Это первый и наиболее традиционный способ, поэтому неудивительно, что наиболее почитаемы те хакеры, кто создал большие перспективные программные продукты, отвечающие потребностям многих людей.
- Помогать в тестировании и отладке программ. В нашем несовершенном мире невольно приходится много времени проводить за отладкой программ и устранением неполадок. Хороший бета-тестер, который может умело устранить неполадки, ценится на вес золота. Поэтому новичку будет полезно найти программу в стадии доработки и принять участие в ее бета-тестировании. Это даст возможность изучить много полезного, обменяться опытом и будет содействовать росту авторитета среди хакеров.
- Распространять полезную информацию. Очень нужным является обработка и распространение полезной и интересной информации в Интернет, составление списков FAQ (наиболее часто задаваемых вопросов). Составители наиболее популярных технических списков FAQ пользуются не меньшим престижем, нежели разработчики программ.
- Помогать обслуживать работу инфраструктуры. Интернет и культура хакеров в целом основываются на стараниях добровольцев. Существует большой объем непривлекательной работы, которую, тем не менее, надо кому-то делать (администрирование, поддержка технических стандартов, содержание архивов программного обеспечения). Те же, кто берется за это дело, заслуживают внимания и уважения.
- Служить культуре хакеров вцелом.
Напоследок несколько советов:
- не выбирайте себе глупое, грандиозное имя;
- не ввязывайтесь в пламенные споры в Сети;
- не называйте себя киберпанком и не теряйте свое время на общение с теми, кто так себя называет;
- не отправляйте сообщений, где полно ошибок.
Бурное развитие компьютерной индустрии, внедрение компьютеров практически во все сферы жизни породили стойкий интерес к хакерам, фактически создавшим компьютерный мир, к их творчеству и культуре. Более того, многие молодые (и не очень) люди стремятся присоединиться к сообществу хакеров, но зачастую не знают, что для этого необходимо и с чего следует начать.
В мире существует сообщество, особая культура опытных программистов, сетевых администраторов, которые и ввели в употребление термин "хакер". И именно хакеры создали Интернет, Unix, World Wide Web, а также множество иных полезных вещей. И если вы стали частью этой культуры, если вы внесли свою лепту в ее развитие и получили признание, то вы и есть хакер.
Следует сделать оговорку, что существует и другая группа людей, которые везде кричат, что они хакеры, хотя в действительности не имеют к ним никакого отношения. Это те, кто промышляет взломом компьютеров, махинациями с кредитными карточками и телефонными линиями. Настоящие хакеры называют таких людей "крэкерами" и не желают иметь с ними никаких дел.
Главное различие между ними состоит в том, что хакеры создают вещи, а крекеры их ломают. Далее разговор пойдет именно о хакерах. Хакеры решают различные проблемы, верят в свободу и взаимопомощь. И для того чтобы быть принятым в это сообщество, новичку следует не только придерживаться определенных правил, но и по-настоящему верить в них. Но одного этого еще недостаточно, поэтому тот, кто хочет стать хакером, должен запомнить идеи, которые являются основой мировоззрения хакеров:
1. Мир полон интереснейших проблем, которые предстоит решить.
Быть хакером - приятное занятие, которое, однако, требует многих усилий. Хакера увлекает процесс решения всевозможных проблем, оттачивания мастерства, тренировки своего разума - в этом особенность его мышления. Поэтому человек, не обладающий данными качествами и не развивший их в себе, навряд ли станет хакером. Творческие силы такой личности скоро будут истощены деньгами, сексом, честолюбием. Кроме того, хакерам присуще некое "шестое чувство" - способность, имея минимум сведений о проблеме, извлечь из них информацию, которая помогла бы решить первую часть этой проблемы, затем следующую часть, и так, шаг за шагом, прийти к ее решению.
2. Проблемы должны решаться раз и навсегда.
Творческие силы - ценный и редкий ресурс. Он не должен расходоваться впустую для изобретения очередного велосипеда, в то время как существует много проблем, требующих решения. Поэтому хакер должен ценить творческое время своих коллег настолько, чтобы со временем у него появилось желание поделиться информацией или решением проблемы лишь затем, чтобы иные хакеры могли заняться решением новых вопросов, вместо переадресовывания старых и топтания на одном месте.
Но это вовсе не означает, что хакер должен безвозмездно делиться своими знаниями и наработками, однако те, кто поступают именно так, пользуются наибольшим уважением. В то же время нет ничего зазорного в том, чтобы своими знаниями обеспечить свое существование, достичь успеха. Главное - не превращать зарабатывание денег в самоцель.
3. Недопустимость скуки и рутинной работы.
Хакеры, да и вообще творческие личности, не станут заниматься скучной, рутинной работой, это означало бы, что они занимаются не своим делом, не решением новых проблем.
Привлечение хакеров к такой работе нельзя рассматривать иначе как пустую трату творческий усилий, что является не только досадной неприятностью, но и определенным злом. Хакер должен стремиться, насколько это возможно, избавиться от такой работы и избавить от нее других хакеров.
Но и из этого правила есть исключения: иногда хакерам необходимо заниматься работой, которая может сперва показаться скучной и неинтересной, но которая хорошо помогает "прочистить мозги" или получить опыт, иным путем неприобретаемый. И тем не менее, никто из хакеров без согласия не должен принуждать себя к скучной, неинтересной работе.
4. Недопустимость ограничения творческой свободы.
По природе хакерам чуждо принуждение. Давление, оказываемое на хакера, мешает ему заниматься интересующим его вопросом. Принудить же творческую личность заниматься чуждой ей проблемой - значит значительно снизить эффективность работы, а в итоге - получить мизерный результат. Поэтому с принуждением в творчестве следует всячески бороться как в отношении себя, так и других.
5. Профессионализм хакера.
Тяга к творчеству, недопустимость скуки и рутины, свобода в работе весьма важны для хакеров. Но не стоит также забывать о значении опыта, ума, трудолюбия. Хакер должен уважать профессионализм любого сорта, но в первую очередь - профессионализм в интеллектуальной сфере. Именно он и ценится больше всего среди хакеров.
Исходя из вышесказанного, мы можем составить представление об основных принципах хакеров. Но только лишь знание этих принципов еще не делает человека хакером. Необходимо много знать и уметь, чтобы получить признание в их кругах, поэтому не мешало бы определить, какие именно базовые навыки необходимо иметь хакеру, чтобы впоследствии стать виртуозом своего дела.
1. Умение программировать.
Несомненно, это основное требование к хакеру. На сегодняшний день существует язык программирования, знание которого необходимо каждому хакеру - это "Си". Но хакер не будет таковым, если он знает лишь один язык - ведь ему приходится сталкиваться с различными задачами и программами. Ему приходится мыслить масштабно, вне зависимости от ограничений, налагаемых тем или иным языком. Поэтому, кроме "Си", хакеру следует изучить Assembler, Lisp и Perl. Java также является весомым претендентом на вхождение в этот список. Каждый из этих языков представляет особый подход к программированию, каждый из них имеет ценность для хакера.
Тяжело дать исчерпывающие инструкции, как обучиться программированию. Одно лишь можно сказать с уверенностью: вряд ли какие-то курсы или книги смогут сделать человека хакером - именно поэтому среди хакеров так много самоучек.
2. Хакеру следует разыскать Unix и научиться им пользоваться.
Кроме Unix, в мире существуют и иные операционные системы, но они распространяются в двоичном коде, с которым нельзя ни нормально работать, ни изменять его. Пытаться "хакерить" в среде DOS, Windows, или MacOS равносильно попытке научиться танцевать в смирительной рубашке.
Кроме того, Unix - это одна из основных операционных систем, распространенных в Интернет. Следовательно, не зная Unix, весьма проблематично понять Интернет, а следовательно и стать хорошим хакером.
Именно поэтому культура современных хакеров очень тесно связана с Unix. Интернет и Unix связаны настолько тесно, что даже Microsoft обломала себе зубы, пытаясь разорвать эту связь.
Итак, найдите Unix, установите его, общайтесь с Интернет при его помощи, изучите его код, научитесь изменять его - и вы получите средства программирования (включая Lisp и Perl), которые и не снились другим операционным системам. Благодаря Unix вы получите удовлетворение от работы, наберетесь опыта, это будет важный шаг на пути к мастерству.
3. Научитесь пользоваться World Wide Web и писать HTML-код.
Основная часть работы, проделываемой хакерами, незаметна неопытному взгляду. World Wide Web, всемирная "паутина", - одно из исключений. Даже политики признают, что эта огромная игрушка хакеров изменила наше представление о мире! Хотя бы поэтому необходимо научиться работать с Web. Это не означает лишь умение пользоваться браузером (что умеют даже дети).
Следует научиться писать, используя HTML - основной стандарт WWW. Тем, кто еще не научился программировать, HTML окажет существенную помощь в учебе и приобретении навыков программирования. Можно также создать свою домашнюю страницу, но ее следует сделать интересной, содержательной, полезной для других хакеров, иначе - лучше вообще не делать, т.к. в Интернет полно подобной серости.
Cейчас мы подошли еще к одному важному вопросу: "Как получить признание в Сети?" Вариантов несколько:
- Создавать бесплатное программное обеспечение. Это первый и наиболее традиционный способ, поэтому неудивительно, что наиболее почитаемы те хакеры, кто создал большие перспективные программные продукты, отвечающие потребностям многих людей.
- Помогать в тестировании и отладке программ. В нашем несовершенном мире невольно приходится много времени проводить за отладкой программ и устранением неполадок. Хороший бета-тестер, который может умело устранить неполадки, ценится на вес золота. Поэтому новичку будет полезно найти программу в стадии доработки и принять участие в ее бета-тестировании. Это даст возможность изучить много полезного, обменяться опытом и будет содействовать росту авторитета среди хакеров.
- Распространять полезную информацию. Очень нужным является обработка и распространение полезной и интересной информации в Интернет, составление списков FAQ (наиболее часто задаваемых вопросов). Составители наиболее популярных технических списков FAQ пользуются не меньшим престижем, нежели разработчики программ.
- Помогать обслуживать работу инфраструктуры. Интернет и культура хакеров в целом основываются на стараниях добровольцев. Существует большой объем непривлекательной работы, которую, тем не менее, надо кому-то делать (администрирование, поддержка технических стандартов, содержание архивов программного обеспечения). Те же, кто берется за это дело, заслуживают внимания и уважения.
- Служить культуре хакеров вцелом.
Напоследок несколько советов:
- не выбирайте себе глупое, грандиозное имя;
- не ввязывайтесь в пламенные споры в Сети;
- не называйте себя киберпанком и не теряйте свое время на общение с теми, кто так себя называет;
- не отправляйте сообщений, где полно ошибок.
TReizi -_-,
03-01-2011 18:15
(ссылка)
хабы для DC
Адрес
asus-swat.no-ip.biz
mexx twilightm.no-ip.biz
equilibrium.sytes.net
217.76.190.219
217.76.190.219
druzya.no-ip.org:1209
xab.spb.ru St.
dc.misteriya.com
omsk-dc.ru
sim.sytes.net
pushkino.no-ip.org
hub.pivosik.co
dchab.com:5000 St.
kozelsk.sytes.net
79.171.127.38 Ukraine,
ruleezzzz.webhop.net
berdyanskhab.no-ip.org
favorite-hub.ru
gamersinside.no-ip.org
hub.x-42.ru
templeofsilence.no-ip.org
tyla-fear.hopto.org
moges-radchenko.webhop.net
manthub.hopto.org:441
Hurokok.no-ip.info
dc.tflop.ru
atlantishub.no-ip.org
clubhub.sytes.net
dc.masterlink.ru
general.spb.ru
dc.lanport.ru
moscows.no-ip.org
dc.avangard-hub.ru
asus-swat.no-ip.biz
mexx twilightm.no-ip.biz
equilibrium.sytes.net
217.76.190.219
217.76.190.219
druzya.no-ip.org:1209
xab.spb.ru St.
dc.misteriya.com
omsk-dc.ru
sim.sytes.net
pushkino.no-ip.org
hub.pivosik.co
dchab.com:5000 St.
kozelsk.sytes.net
79.171.127.38 Ukraine,
ruleezzzz.webhop.net
berdyanskhab.no-ip.org
favorite-hub.ru
gamersinside.no-ip.org
hub.x-42.ru
templeofsilence.no-ip.org
tyla-fear.hopto.org
moges-radchenko.webhop.net
manthub.hopto.org:441
Hurokok.no-ip.info
dc.tflop.ru
atlantishub.no-ip.org
clubhub.sytes.net
dc.masterlink.ru
general.spb.ru
dc.lanport.ru
moscows.no-ip.org
dc.avangard-hub.ru
TReizi -_-,
03-01-2011 18:06
(ссылка)
TCP под прицелом (TCP - hijacking)
Протокол TCP (Transmission Control Protocol) является одним из базовых протоколов транспортного уровня сети Internet. Этот протокол позволяет исправлять ошибки, которые могут возникнуть в процессе передачи пакетов, и является протоколом с установлением логического соединения - виртуального канала. По этому каналу передаются и принимаются пакеты с регистрацией их последовательности, осуществляется управление потоком пакетов, организовывается повторная передача искаженных пакетов, а в конце сеанса канал разрывается. При этом протокол TCP является единственным базовым протоколом из семейства TCP/IP, имеющим дополнительную систему идентификации сообщений и соединения. Именно поэтому протоколы прикладного уровня FTP и TELNET, предоставляющие пользователям удаленный доступ на хосты Internet, реализованы на базе протокола TCP.
Для идентификации TCP-пакета в TCP-заголовке существуют два 32-разрядных идентификатора, которые также играют роль счетчика пакетов. Их названия - Sequence Number и Acknowledgment Number. Также нас будет интересовать поле, называемое Control Bit. Это поле размером 6 бит может содержать следующие командные биты (слева направо):
URG: Urgent Pointer field significant
ACK: Acknowledgment field significant
PSH: Push Function
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender
Далее рассмотрим схему создания TCP-соединения (Рис 1).
Предположим, что хосту А необходимо создать TCP-соединение с хостом В. Тогда А посылает на В следующее сообщение:
1. A -> B: SYN, ISSa
Это означает, что в передаваемом A сообщении установлен бит SYN (synchronize sequence number), а в поле Sequence Number установлено начальное 32-битное значение ISSa (Initial Sequence Number).
В отвечает:
2. B -> A: SYN, ACK, ISSb, ACK(ISSa+1)
В ответ на полученный от А запрос В отвечает сообщением, в котором установлен бит SYN и установлен бит ACK; в поле Sequence Number хостом В устанавливается свое начальное значение счетчика - ISSb; поле Acknowledgment Number содержит значение ISSa, полученное в первом пакете от хоста А и увеличенное на единицу.
А, завершая рукопожатие (handshake), посылает:
3. A -> B: ACK, ISSa+1, ACK(ISSb+1)
В этом пакете установлен бит ACK; поле Sequence Number содержит ISSa + 1; поле Acknowledgment Number содержит значение ISSb + 1. Посылкой этого пакета на хост В заканчивается трехступенчатый handshake и TCP-соединение между хостами А и В считается установленным.
Теперь хост А может посылать пакеты с данными на хост В по только что созданному виртуальному TCP-каналу:
4. A -> B: ACK, ISSa+1, ACK(ISSb+1); DATA
Рис.1 Схема создания TCP-соединения
Из рассмотренной выше схемы создания TCP-соединения видно, что единственными идентификаторами TCP-абонентов и TCP-соединения являются два 32-битных параметра Sequence Number и Acknowledgment Number. Следовательно, для формирования ложного TCP-пакета атакующему необходимо знать текущие идентификаторы для данного соединения - ISSa и ISSb. Проблема возможной подмены TCP-сообщения становится еще более важной, так как анализ протоколов FTP и TELNET, реализованных на базе протокола TCP, показал, что проблема идентификации FTP и TELNET-пакетов целиком возлагается данными протоколами на транспортный уровень, то есть на TCP. Это означает, что атакующему достаточно, подобрав соответствующие текущие значения идентификаторов TCP-пакета для данного TCP-соединения (например, данное соединение может представлять собой FTP или TELNET подключение), послать пакет с любого хоста в сети Internet от имени одного из участников данного соединения (например, от имени клиента) и данный пакет будет воспринят как верный! К тому же, так как FTP и TELNET не проверяют IP-адреса отправителей, от которых им приходят сообщения, то, в ответ на полученный ложный пакет, FTP или TELNET-сервер отправит ответ на указанный в ложном пакете настоящий IP-адрес атакующего, то есть атакующий начнет работу с FTP или TELNET сервером со своего IP-адреса, но с правами легально подключившегося пользователя, который, в свою очередь, потеряет связь с сервером из-за рассогласования счетчиков!
Итак, для осуществления описанной выше атаки необходимым и достаточным условием является знание двух текущих 32-битных параметров ISSa и ISSb, идентифицирующих TCP-соединение. Рассмотрим возможные способы их получения. В том случае, когда атакующий находится в одном сегменте с целью атаки или через его сегмент проходит трафик предполагаемого объекта атаки, то задача получения значений ISSa и ISSb является тривиальной и решается путем анализа сетевого трафика. Следовательно, надо четко понимать, что протокол TCP позволяет в принципе защитить соединение только в случае невозможности перехвата атакующим сообщений, передаваемых по данному соединению, то есть в случае нахождения атакующего в других сегментах относительно абонентов TCP-соединения.
Поэтому наибольший интерес для нас представляют межсегментные атаки, когда атакующий и его цель находятся в разных сегментах сети. В этом случае задача получения значений ISSa и ISSb не является тривиальной. Далее предлагается следующее решение данной проблемы.
1. Математическое предсказание начального значения идентификатора TCP-соединения экстраполяцией его предыдущих значений
Первый вопрос, который возникает в данном случае: как сетевая операционная система формирует начальное значение ISSa ( так называемый ISN - Initial Sequence Number)? Очевидно, что наилучшим решением с точки зрения безопасности будет генерация этого значения ISN по случайному закону с использованием программного (а лучше аппаратного) генератора псевдослучайных чисел с достаточно большим периодом. В этом случае каждое новое значение ISN не будет зависть от его предыдущего значения, а, следовательно, у атакующего не будет даже теоретической возможности нахождения функционального закона получения ISN.
Однако оказывается, что подобные очевидные правила случайной генерации ISN как для составителей самого описания протокола TCP (RFC 793), так и для разработчиков сетевого ядра различных операционных систем являются далеко не очевидными. Об этом говорят следующие факты. В описании протокола TCP в RFC 793 рекомендуется увеличивать значение этого 32-битного счетчика на 1 каждые 4 микросекунды (?!). А как дело обстоит на практике? Поверьте, плохо! Например, в ранних Berkeley-совместимых ядрах ОС UNIX значение этого счетчика увеличивалось на 128 каждую секунду и на 64 для каждого нового соединения. Анализ исходных текстов ядра ОС Linux 1.2.8. показал, что значение ISN вычисляется данной ОС в зависимости от текущего времени по следующему отнюдь не случайному закону:
(1) ISN = mcsec + sec*1000000, где
mcsec - время в микросекундах;
sec - текущее время в секундах, причем отсчет его идет от 1970 года.
Вы думаете, что в других сетевых ОС лучше? Ошибаетесь! В ОС Windows NT 4.0 значение ISN увеличивается на 10 примерно каждую миллисекунду. То есть для Windows NT справедлива следующая формула:
(2) ISN = msec*10, где
msec - время в миллисекундах.
Однако больше всего автора удивил защищенный по классу B1 UNIX, установленный на многопроцессорной миниЭВМ - полнофункциональном файрволе. Эта наиболее защищенная из всех, что встречалась автору, сетевая ОС имеет также простой времязависимый алгоритм генерации начального значения идентификатора TCP - соединения. Как говорится, комментарии здесь излишни. Мало того, что в единственном базовом "защищенном"(?!) протоколе Internet - протоколе TCP, применяется простейший способ идентификации соединения, который в принципе не позволяет гарантировать надежную защиту от подмены одного из абонентов при нахождении атакующего в том же сегменте, так еще и сами разработчики сетевых ОС разрушают и без того хрупкую безопасность этого протокола, используя простые времязависимые алгоритмы генерации ISN!
Итак, в том случае, если в сетевой операционной системе используется времязависимый алгоритм генерации начального значения идентификатора TCP-соединения, то атакующий получает принципиальную возможность определить с той или иной степенью точности вид функции, описывающей закон получения ISN. Исходя из практических исследований сетевых ОС, а также из общих теоретических соображений можно предложить следующий обобщенный вид функции, описывающий времязависимый закон получения ISN:
(3) ISN = F(mсsec, msec, sec), где
mcsec - время в микросекундах (обычно, в зависимости от аппаратного обеспечения компьютера, минимальной единицей измерения машинного времени является микросекунда - в обычных IBM это так). Этот параметр циклически изменяется за секунду от 0 до 106 - 1
msec - время в миллисекундах. Циклически изменяется за секунду от 0 до 999.
sec - время в секундах. Постоянно увеличивается каждую секунду.
Исходя из формулы (3), а также из того, что микросекунда обычно является минимальной единицей измерения машинного времени в сетевой ОС, можно для удобства аппроксимации свернуть формулу (3) до следующего вида:
(4) ISN = F(mсsec)
Таким образом мы пришли к тому, что в общем случае можно считать, что значение ISN зависит от микросекунд. Данная функция (4) в силу особенностей изменения своих аргументов обычно в сетевых ОС является или кусочнонепрерывной (непрерывной на отдельных интервалах изменения аргумента) или ступенчатой. Например зависимость (1), описывающая закон получения ISN в ОС Linux, в случае приведения ее к виду (4) является кусочнолинейной, а функциональная зависимость (2), справедливая для Windows NT, - дискретной.
Итак, определившись с единицами измерения ISN и обобщенным времязависимым законом его генерации (3)-(4), мы вплотную подошли к проблеме определения вида функциональной зависимости ISN от параметра mcsec для конкретной сетевой ОС. Первый способ получения этой зависимости - анализ исходных текстов ядра операционной системы. Использование данного способа на практике обычно оказывается невозможным из-за отсутствия исходных текстов большинства ОС. Исключение составляют ОС Linux и FreeBSD, поставляемые с исходными текстами ядра.
В связи с этим предлагается другой метод получения закона изменения ISN от параметра mcsec. В этом случае сетевая ОС рассматривается исследователем как "черный ящик", к которому применяется метод тестирования "запрос-ответ": на исследуемую сетевую ОС передается серия обычных запросов на создание TCP-соединения и принимается соответствующие количество ответов с текущими значениями ISN операционной системы в каждый момент времени. При этом замеряются временные интервалы (в микросекундах) прихода ответов на запросы, то есть за какое время после отправки запроса на него придет ответ и время, прошедшее между запросами. В результате исследователем будет получена следующая таблица дискретных отсчетов ISN и соответствующих им моментов времени в мксек.:
ISN0 ISN1 ... ISNn
t0 t1 ... tn
где ISNn - значение ISN, полученное за время tn от начала эксперимента (время начала эксперимента принимается за 0). Аппроксимируя данную таблицу дискретных значений непрерывной функцией одним из известных математических методов (наименьших квадратов, например), получим с погрешностью, сравнимой с погрешностью исходных данных, непрерывную функцию изменения ISN от t, справедливую на данном временном промежутке (от 0 до tn):
(5) ISN(t) = F(t);
Эта формула в общем случае позволяет нам по предыдущему значению ISN, зная функцию изменения ISN от времени, получить следующее значение ISN. Теперь, используя данное равенство (5), атакующий может, получив в ответ на TCP-запрос текущее значение ISN для ОС в данный момент времени, математически предсказать следующее возможное значение ISN через некоторый промежуток времени.
Хотелось бы обратить внимание на следующий важный момент: чем ближе в сети находятся исследователь и тестируемая ОС, тем выше точность получения аппроксимирующей функции, так как в противном случае время за которое запрос дойдет до системы и будет выработан ISN может существенно отличаться из-за задержек в канале связи от времени передачи ответа обратно. При этом погрешность исходных данных будет увеличиваться, а точность экстраполяции - падать.
Заметим, что атакующему вовсе не обязательно проводить подобные исследования с интересующим его удаленным хостом. Достаточно только узнать тип операционной системы на предполагаемой цели атаки и получить в свое распоряжение подобную систему для определения формулы изменения ISN в данной ОС.
Что касается практических результатов, то применение описанной выше методики получения формулы ISN(t) на примере ОС Linux 1.2.8 и Windows NT 4.0 в случае нахождения в одном сегменте с данными ОС позволило определить это 32-битное значение (от 0 до 232) по его предыдущему значению для ОС Windows NT с точностью до 10, а для ОС Linux 1.2.8 с точностью примерно до 100. В следующей таблице приведены снятые в процессе эксперимента с ОС Linux 1.2.8 значения изменения ISN (а не абсолютные значения) за соответствующие промежутки времени:
t, мкс. 2759 5685 8560 11462 14303
dISN 65135 134234 202324 270948 338028
Таблица изменения значения ISN для ОС Linux 1.2.8
Следующий график, построенный по значениям из данной таблицы и справедливый для ОС Linux 1.2.8, наглядно показывает линейный характер изменения значения начального идентификатора TCP - соединения ISN на данном временном промежутке (на самом деле зависимость изменения ISN для ОС Linux 1.2.8 носит кусочно-линейный характер):
Зависимость изменения ISN от времени для Linux 1.2.8
В общем случае определив вид функций для вычисления ISN в операционных системах на сервере и предполагаемом клиенте, атакующий начинает следить за ОС сервера, ожидая подключения предполагаемого клиента. В тот момент времени, когда подключение произошло, атакующий может подсчитать возможный диапазон значений ISN, которыми обменялись при создании TCP-канала данные хосты. Так как атакующий может вычислить значения ISN только приближенно, то ему не избежать подбора. Однако, если не проводить описанный выше анализ, то для перебора всех возможных значений ISSa и ISSb понадобилось бы послать 264 пакетов, что нереально. В случае использования описанного выше анализа в зависимости от полученной степени точности и удаления атакующего от хостов потребуется послать значительно меньшее число пакетов. Например, если удалось вычислить значения ISN на операционных системах с точностью до 100, то атакующему для подмены одного из абонентов TCP-соединения достаточно послать всего 100*100 пакетов.
Далее рассмотрим ставшую уже классической удаленную атаку на r-службу, осуществление которой связано с описанными выше особенностями идентификации TCP-пакетов.
2. Использование недостатков идентификации абонентов TCP-соединения для атаки на rsh-сервер
В ОС UNIX существует понятие: доверенный хост. Доверенным по отношению к данному хосту называется сетевой компьютер, доступ на который пользователю с данного хоста возможен без его аутентификации и идентификации с помощью r-службы (r - сокращение от англ. "remote" - удаленный). Обычно в ОС UNIX существует файл rhosts, в котором находится список имен и IP-адресов доверенных хостов. Для получения к ним удаленного доступа пользователю необходимо воспользоваться программами, входящими в r-службу (например, rlogin, rsh и.т.д.). В этом случае при использовании r-программ с доверенного хоста пользователю для получения удаленного доступа не требуется проходить стандартную процедуру идентификации и аутентификации, заключающуюся в проверке его логического имени и пароля. Единственной аутентифицирующей пользователя информацией для r-службы является IP-адрес хоста, с которого пользователь осуществляет удаленный r-доступ. Отметим, что все программы из r-службы реализованы на базе протокола TCP. Одной из программ, входящих в r-службу, является rsh, с помощью которой возможно осуществление данной атаки. Программа rsh (remoute shell) позволяет отдавать команды shell удаленному хосту. При этом (что является чрезвычайно важным в данном случае!) для того, чтобы отдать команду, достаточно послать запрос, но необязательно получать на него ответ. При атаке на r-службу вся сложность для атакующего заключается в том, что ему необходимо послать пакет от имени доверенного хоста, то есть в качестве адреса отправителя необходимо указать IP-адрес доверенного хоста. Следовательно, ответный пакет будет отправлен именно на доверенный хост, а не на хост атакующего.
Схема удаленной атаки на rsh-сервер была впервые описана небезызвестным Р.Т. Моррисом-старшим (не младшим!). Она заключается в следующем (схема атаки изображена на Рис. 2.):
Пусть хост А доверяет хосту В. Хост X-Hacker - это станция атакующего.
Вначале атакующий X-Hacker открывает настоящее TCP - соединение с хостом В на любой TCP-порт (mail, echo и.т.д.). В результате X-Hacker получит текущее значение на данный момент времени ISNb. Далее, X-Hacker от имени А посылает на В TCP-запрос на открытие соединения:
1. X-Hacker (A) -> B: SYN, ISSx
Получив этот запрос, В анализирует IP-адрес отправителя и решает, что пакет пришел с хоста А. Следовательно, В в ответ посылает на А новое значение ISNb':
2. B -> A: SYN, ACK, ISNb', ACK(ISSx+1)
X-Hacker никогда не получит это сообщение от В, но, используя предыдущее значение ISNb и схему для получения ISNb' при помощи математического предсказания, может послать на В:
3. X-Hacker (A) -> B: ACK, ISSx+1, ACK(ISNb'+1) Отметим, что для того, чтобы послать этот пакет, возможно потребуется перебрать некоторое количество возможных значений ACK(ISSb' + 1), но не потребуется подбор ISSx + 1, так как этот параметр TCP-соединения был послан с хоста X-Hacker на В в первом пакете.
В случае осуществления данной атаки перед атакующим возникает следующая проблема. Так как X-Hacker посылает пакет (1) на В от имени A, то хост B ответит на A пакетом (2). А, так как хост A не посылал на хост B никакого пакета с запросом, то A, получив ответ от B, перешлет на B пакет с битом RST - закрыть соединение. Атакующего с хоста X-Hacker это естественно не устраивает, поэтому одной из атак, целью которых является нарушение работоспособности системы, X-Hacker должен вывести из строя на некоторое время хост A.
В итоге rsh-сервер на хосте В считает, что к нему подключился пользователь с доверенного хоста А, а на самом деле это атакующий с хоста X-Hacker. И хотя X-Hacker никогда не сможет получить пакеты с хоста В, но он сможет выполнять на нем команды (r-команды).
Рис.2 Подмена одного из участников TCP-соединения при атаке на rsh-сервер
В заключение автору хотелось бы привести пример реального инцидента, происшедшего в Суперкомпьютерном центре в Сан-Диего 12 декабря 1994 года, когда атакующий (небезызвестный Кевин Митник) использовал описанную выше схему удаленной атаки. Данный инцидент представляет, как кажется автору, исторический интерес и показывает что опасности, описанные в этой статье, являются отнюдь не мнимыми угрозами из Internet, а той реальностью, над которой большинство пользователей просто не задумывается и которая в любой момент может пожаловать к ним в гости.
Все описанные ниже сведения взяты из письма эксперта по информационной безопасности Цутому Шимомуры (Tsutomu Shimomura) в различные эхо-конференции.
Далее приводится перевод его оригинального письма с некоторыми сокращениями и авторскими комментариями:
"From: tsutomu@ariel.sdsc.edu (Tsutomu Shimomura)
Newsgroups: comp.security.misc,comp.protocols.tcp-ip,alt.security
Subject: Technical details of the attack described by Markoff in NYT
Date: 25 Jan 1995 04:36:37 -0800
Organization: San Diego Supercomputer Center
Message-ID: <3g5gkl$5j1@ariel.sdsc.edu>
NNTP-Posting-Host: ariel.sdsc.edu
Keywords: IP spoofing, security, session hijacking
Greetings from Lake Tahoe.
В статье Джона Маркоффа от 23.01.95 в NYT и в рекомендациях CERT CA-95:01, кажется, было достаточно много путаницы насчет того, что такое на самом деле атака с использованием подмены IP-адреса с целью подмены одного из абонентов соединения1.
1Имеется в виду статья в New York Times под названием "Data Network Is Found Open To New Threat". Следующая статья была опубликована 28 января 1995 года под названием "Taking a Computer Crime to Heart". Заключительная статья "A Most-Wanted Cyberthief Is Caught In His Own Web" опубликована 16 февраля того же года. Time Magazine напечатал две статьи под следующими громкими заголовками:
"KEVIN MITNICK'S DIGITAL OBSESSION" и "CRACKS IN THE NET: America's most wanted hacker has been arrested, but the Internet is more vulnerable than ever" (Да неужели!? Куда уж более!?).
Шумиха, поднятая американской прессой по этому незначительному поводу, была столь велика, что нам остается только удивляться насколько еще верна крылатая фраза Шекспира: "Много шума из ничего". Хотя, с другой стороны, это, можно объяснить тем, что, во-первых, в США благодаря стараниям прессы сложился легендарный образ злобного супер-хакера, этакого "монстра" киберпространства - Кевина Митника, во-вторых, это был один из редких случаев обнародования информации о случившейся удаленной атаке, в-третьих, ее осуществление удалось проследить и запротоколировать, что обычно очень не просто и, в-четвертых, с нашей точки зрения это, пожалуй, единственная известная, при этом довольно красивая удаленная атака на TCP- соединение и поэтому ей так и увлеклась пресса (истории о "тупых" атаках с перехватом пароля или попытками его подбора уже, видимо, навязли на зубах у читателя).
Здесь приведены некоторые технические подробности из моей презентации 11.01.95 в CMAD 3 в Сономе, Калифорния. Надеюсь, это поможет снять всяческое непонимание природы этих атак.
Для атаки использовалось два различных механизма. Подмена IP-адреса отправителя и математическое предсказание начального значения идентификатора TCP-соединения позволили получить доступ к бездисковой рабочей станции, которая использовалась как X-терминал.
В письмо включен log-файл, полученный с помощью программы tcpdump, с записью всех пакетов, посланных атакующим. Для краткости этот файл приводится с сокращением некоторых несущественных подробностей.
Моя конфигурация:
server = SPARC с ОС Solaris 1, обслуживающий x-terminal
х-terminal = бездисковая рабочая станция SPARC с ОС Solaris 1
target = основная цель атаки
Атака началась в 14:09:32 25.12.94. Первые попытки зондирования начались с хоста toad.com (информация взята из log-файла).
14:09:32 toad.com# finger -l @target
14:10:21 toad.com# finger -l @server
14:10:50 toad.com# finger -l root@server
14:11:07 toad.com# finger -l @x-terminal
14:11:38 toad.com# showmount -e x-terminal
14:11:49 toad.com# rpcinfo -p x-terminal
14:12:05 toad.com# finger -l root@x-terminal
Зондирование системы позволило определить, есть ли у нее другие доверенные системы для дальнейшей атаки. То что атакующий смог запустить программы showmount и rpcinfo означало, что он является пользователем root на хосте toad.com.
Через шесть минут мы видим шторм TCP-запросов на создание соединения с адреса 130.92.6.97 на 513 порт (login) хоста server. Основная цель атакующего при этом состоит в том, чтобы этими однонаправленными TCP-запросами переполнить очередь на 513 порту сервера так, чтобы он не смог отвечать на новые запросы на создание соединения. Особенно важно, чтобы сервер не смог сгененрировать TCP-пакет с битом RST в ответ на неожиданно пришедший TCP-пакет с битами SYN и ACK.
Так как порт 513 является привилегированным портом, то теперь IP-адрес хоста server.login2 может быть свободно использован атакующим для атаки с использованием подмены адреса на r-службы UNIX-систем (rsh, rlogin). IP-адрес 130.92.6.97 атакующий выбрал случайным образом из неиспользуемых адресов (ему не нужно получать пакеты, передаваемые на этот адрес).
14:18:22.516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0) win 4096
......
14:18:25.599582 130.92.6.97.628 > server.login: S 1382726988:1382726988(0) win 4096
14:18:25.653131 130.92.6.97.629 > server.login: S 1382726989:1382726989(0) win 4096
Хост server генерирует на первые 8 запросов соответственно 8 ответов, после чего очередь переполняется. Хост server периодически будет посылать эти ответы, но так и не дождется на них никакой реакции3.
2 Шимомура сейчас и в дальнейшем после имени или IP - адреса хоста через точку указывает порт назначения. Поэтому запись server.login означает хост server и порт login (513). Соответственно, например, первая из распечатки log - файла запись 130.92.6.97.600 означает, что пакет передается с IP - адреса 130.92.6.97 с 600 порта.
3 Эксперименты автора это подтвердили.
Далее мы видим 20 попыток создания соединения с хоста apollo.it.luc.edu на x-terminal.shell. Основная цель этих запросов - определить закон изменения начального значения идентификатора TCP-соединения на хосте x-terminal. Так как значение ISN увеличивается на единицу с каждым вновь посылаемым запросом, то, следовательно, эти запросы генерирует не ядро сетевой ОС. При этом очередь запросов на хосте x-terminal не переполняется, так как атакующий после каждого запроса передает пакет с битом RST, что означает "закрыть соединение".
14:18:25.906002 apollo.it.luc.edu.1000 > x-terminal.shell: S 1382726990:1382726990(0) win 4096
14:18:26.094731 x-terminal.shell > apollo.it.luc.edu.1000: S 2021824000:2021824000(0) ack 1382726991 win 4096
.......
14:18:35.395723 x-terminal.shell > apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 4096
14:18:35.472150 apollo.it.luc.edu.982 > x-terminal.shell: R 1382727009:1382727009(0) win 0
14:18:35.735077 apollo.it.luc.edu.981 > x-terminal.shell: S 1382727009:1382727009(0) win 4096
14:18:35.905684 x-terminal.shell > apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 4096
14:18:35.983078 apollo.it.luc.edu.981 > x-terminal.shell: R 1382727010:1382727010(0) win 0
Видно, что каждый последующий ответный пакет SYN-ACK, посылаемый с хоста x-terminal, имеет начальное значение идентификатора TCP-соединения на 128000 больше чем у предыдущего4 .
4 Из анализа приведенной распечатки пакетов видно, что каждое последующее начальное значение ISN на хосте x-terminal.shell отличается от предыдущего на 128000. Например, 2024256000 - 2024128000 = 128000 или 2024128000 - 2024000000 = 128000. Не правда ли, простейший закон генерации ISN?!
Далее мы видим поддельный запрос на создание TCP-соединения якобы с хоста server.login на x-terminal.shell. При этом x-terminal доверяет хосту sever и, следовательно, x-terminal будет выполнять все запросы, переданные с этого хоста (или с любого другого, подменившего хост server).
X-terminal затем отвечает на хост server пакетом SYN-ACK, и ожидает подтверждения этого пакета ACK'ом, что должно означать открытие соединения. Так как хост server игнорирует все пакеты, посланные на server.login, то поддельный пакет атакующего, подтвержденный ACK'ом, должен иметь успех.
Обычно, значение подтверждения (ACK) берется из пакета SYN-ACK. Однако атакующий, используя предсказание закона изменения начального значения идентификатора TCP-соединения на хосте x-terminal, сможет получить значение ACK без получения пакета SYN-ACK5:
14:18:36.245045 server.login > x-terminal.shell: S 1382727010:1382727010(0) win 4096
14:18:36.755522 server.login > x-terminal.shell: . ack 2024384001 win 4096
5Используя полученную математическую зависимость для предсказания значения ISN, атакующий может послать следующий пакет от имени server.login с значением ACK, равным 2024384001, вычисленным по его предыдущему значению 2024256000, добавлением к нему 128000.
Хост атакующего сейчас имеет односторонее соединение с x-terminal.shell, который считает, что это соединение открыто с server.login. Атакующий теперь может передавать пакеты с данными с верными значения ACK на x-terminal. Далее, он посылает следующие пакеты:
14:18:37.265404 server.login > x-terminal.shell: P 0:2(2) ack 1 win 4096
14:18:37.775872 server.login > x-terminal.shell: P 2:7(5) ack 1 win 4096
14:18:38.287404 server.login > x-terminal.shell: P 7:32(25) ack 1 win 4096
что означает выполнение следующей команды:
14:18:37 server# rsh x-terminal "echo + + >>/.rhosts"6
6Атакующий, завершая атаку, от имени server.login посылает на x-terminal.shell три пакета, что эквивалентно выполнению на хосте server следующей r - команды: rsh x-terminal "echo + + >>/.rhosts". Эта команда дописывает в файл /.rhosts строчку + + и делает доверенными все станции.
Всего атака заняла менее 16 секунд.
Атакующий закрывает ложное соединение:
14:18:41.347003 server.login > x-terminal.shell: . ack 2 win 4096
14:18:42.255978 server.login > x-terminal.shell: . ack 3 win 4096
14:18:43.165874 server.login > x-terminal.shell: F 32:32(0) ack 3 win 4096
14:18:52.179922 server.login > x-terminal.shell: R 1382727043:1382727043(0) win 4096
14:18:52.236452 server.login > x-terminal.shell: R 1382727044:1382727044(0) win 4096
Далее атакующий посылает RST-пакеты и, следовательно, закрывает ранее открытые "односторонние" соединения с server.login, тем самым освобождая очередь запросов:
14:18:52.298431 130.92.6.97.600 > server.login: R 1382726960:1382726960(0) win 4096
.......
14:18:54.097093 130.92.6.97.629 > server.login: R 1382726989:1382726989(0) win 4096
Хост server.login снова готов к приему запросов на создание соединения".
Автор намеренно не стал вдаваться в подробное литературное описание этого инцидента (беллетристики о Митнике написано более чем достаточно), а остановился только на технических подробностях этой удаленной атаки. В заключении приведем слова Шимомуры, сказанные им в своем интервью после поимки Митника, где он заявил следующее: "Из того, что я видел, мне он не кажется таким уж большим специалистом"7. И добавил: "Проблема не в Кевине, проблема в том, что большинство систем действительно плохо защищены. То, что делал Митник, остается осуществимым и сейчас".
7Кстати, по поводу того был ли на самом деле Кевин Митник действительно кракером высшего класса, ходит много споров. То, что он начинал как фрикер (phreaker) высшего класса, очевидно всем. Далее его кракерскую деятельность до первого похода в тюрьму трудно назвать профессиональной, так как он не отличился ничем, кроме профессионального лазанья по помойкам в поисках клочка выброшенной бумаги с паролями пользователей и заговариванием зубов сетевым администраторам по телефону, в попытках выудить у них пароли - тут он был действительно профессионалом (этому виду "атак" теперь даже дан термин: "социальная инженерия"). Однако, сидя в тюрьме, он, видимо, наконец поднабрался необходимого опыта в искусстве сетевого взлома и теперь уже вполне мог подходить под тот образ "супер-хакера", созданный американской прессой. Хотя любому специалисту очевидно, что в данном случае в связи с простейшем законом генерации ISN в ОС Solaris 1, осуществленная Кевином удаленная атака является тривиальной и, по сути, Шимомура на нее сам
В этой группе, возможно, есть записи, доступные только её участникам.
Чтобы их читать, Вам нужно вступить в группу
Чтобы их читать, Вам нужно вступить в группу