Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК

Тут можно читать онлайн Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК - бесплатно полную версию книги (целиком) без сокращений. Жанр: Программы. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ТЕХНИКА СЕТЕВЫХ АТАК
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.9/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК краткое содержание

ТЕХНИКА СЕТЕВЫХ АТАК - описание и краткое содержание, автор Крис Касперский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

ТЕХНИКА СЕТЕВЫХ АТАК - читать онлайн бесплатно полную версию (весь текст целиком)

ТЕХНИКА СЕТЕВЫХ АТАК - читать книгу онлайн бесплатно, автор Крис Касперский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Такая мера действительно затрудняет атаки, но не исключает их принципиальную возможность. Существует возможность перезаписи любой области памяти как искажением регистра EBP, используемого для адресации локальные переменных, так и модификацией переменных указателей. Этого StackGuard отследить не в силах. Кроме того, если происходит переполнение буферов, в которых помещается информация, считанная из двоичного файла или принятая по сети, то отсутствует всякое ограничение на передаваемые в строке символы. А узнать значение привязки можно, например, с помощью уязвимости в функции printf (и подобным ей) и т.д.

Существуют различные способы поиска уязвимых программ. Например, с помощью дизассемблирования и тщательного изучения кода, или тривиального ввода строк переменной длины. Как уже отмечалось в главе «Технология срыва стека» недостаточно ограничится вводом максимально длинных строк. Необходимо перебирать все длины от нулевой до максимально возможной.

Манипуляция со строками разной длины - наиболее простой (но не всегда действенный) путь. Если удается подобрать строку, вызывающую исключение, то, следовательно, исследуемая программа содержит уязвимость. Но вовсе не факт, что удастся передать управление на свой код, изменить адрес возврата или каким-то иным способом проникнуть на атакуемую машину. В некоторых случаях ошибки переполнения приводят к возможности блокирования программы, но не позволяют злоумышленнику совершить никакие осмысленные действия.

Поэтому, перед атакующим стоят следующие вопросы: возможно ли искажение адреса возврата таким образом, чтобы он указывал на переданную строку? Если да, то какой байт строки попадает в буфер? Большинство операционных систем при возникновении аварийной ситуации выдают информацию, способную пролить свет на причины аварии. Род и форма выдача информации варьируются от одной операционной системы к другой, но практически всегда приводится содержимое регистров, верхушки стека, инструкции, вызвавшей исключение и номера самого исключения. Этими сведениями и может воспользоваться злоумышленник, чтобы ответить на интересующие его вопросы.

Наименее информативной оказывается Windows 2000, не сообщающая ни содержимое регистров, ни состояние стека. Однако она позволяет загрузить отладчик, с помощью которого легко получить необходимую информацию. Существует так же утилита «Dr. Watson», предназначенная для выяснения причин возникновения аварийных ситуаций. Она великолепно подходит для анализа уязвимых программ.

Ниже будет показано, как можно использовать эту информацию для проникновения на удаленный компьютер. Поскольку, после возникновения исключения ни одна операционная система не передает клиенту сведения о причине аварии (содержимое регистров, состояние стека), то все исследования необходимо проводить на локальной машине. Т.е. злоумышленник должен иметь физический доступ к своей жертве или установить на своем компьютере ту же самую операционную систему и то же самое программное обеспечение.

Если под управлением Windows 2000, в примере buff.demo.exe (на диске, прилагаемом к книге, он находится в файле “/SRC/buff.demo.exe”) ввести строку более чем из двадцати символов ‘Z’ (или любых других символов), произойдет исключение и на окне появится диалоговое окно следующего содержания (смотри рисунок 79):

Рисунок 079 Информация выдаваемая операционной системой Windows 2000 при - фото 85
Рисунок 079 Информация, выдаваемая операционной системой Windows 2000 при возникновении исключительной ситуации

“Инструкция по адресу 0x5a5a5a5a обратилась к памяти по адресу 0x5a5a5a5a. Память не может быть read”. Код символа ‘Z’ равен 0x5A, следовательно, искажение адреса возврата позволило передать управление по адресу ‘ZZZZ’ или 0x5a5a5a5a в шестнадцатеричной форме. Но какие именно байты строки затирают адрес возврата?

Это можно узнать вводом строки с различными символами, например, “ZZZZZZZZZZZZZZZ1234567” (поскольку исключение «выплевывается» только при вводе строки длинной в шестнадцать и более символов, первые пятнадцать символов оказываются незначащими, и их значение роли не играет).

Вновь возникнет исключительная ситуация и на экране появится диалог следующего содержания (смотри рисунок 081):

Рисунок 081 Инструкция по адресу 0x35343332 обратилась к памяти по адресу - фото 86
Рисунок 081

“Инструкция по адресу 0x35343332 обратилась к памяти по адресу 0x35343332. Память не может быть read”. Код символа ‘2’ - 0x32, ‘3’ - 0x33, ‘4’ - 0x34 и ‘5’ - 0x35. Следовательно, в сохраненный адрес возврата попадают шестнадцатый, семнадцатый, восемнадцатый и девятнадцатый символ вводимой строки (без учета завершающего нуля).

Остается выяснить, по какому адресу расположен буфер, содержащий строку. Однако выяснить его только лишь на основе сообщаемой Windows 2000 информации невозможно. Необходимо запустить отладчик, кликнув по кнопке «отмена» (эта кнопка появляется только в том случае, если в системе установлен отладчик, например, среда Microsoft Visual C++, необходимо отметить - SoftIce в штатной инсталляции не предоставляет такой возможности):

После всплытия окна отладчика наибольший интерес представит значение регистра указателя верхушки стека ESP. Само же содержимое стека выше регистра ESP (где и располагается веденная строка) к этому моменту чаще всего оказывается уничтожено.

На рисунке 082 показано содержимое регистров и состояния стека. Легко видеть, что в стеке на месте введенной строки находится мусор. Это происходит потому, что при возникновении исключения в стек заносятся некоторые служебные данные, затирая все на своем пути.

Рисунок 082 Основываясь на значении регистра ESP равного в данном случае - фото 87
Рисунок 082

Основываясь на значении регистра ESP (равного в данном случае 0x12FF80) легко вычислить адрес первого байта буфера, содержащего строку. Он равен 0x0012FF80 - 0x14 [332]= 0x0011FF6C.

Если попробовать ввести строку наподобие: “\xCCZZZZZZZZZZZZZZ\x80\xFF\x12”, (код 0xCC это опкод команды INT 0x3 - вызывающий отладочное исключение 0х3 - только так можно гарантировать возникновение исключения в первом же байте, получившим управление), то результат будет следующим (смотри рисунок 083):

Рисунок 083 Исключение Unknown software exemption 0x800000003 в приложении - фото 88
Рисунок 083

“Исключение Unknown software exemption (0x800000003) в приложении по адресу 0x0012FF6C”. Адрес 0x9912FF6C доказывает, что адрес возврата действительно подобран правильно и первый байт переданной строки получает управление.

Таким образом, вся информация, необходимая для вторжения на чужую машину получена, и злоумышленник может приступать к программной реализации атакующего кода, примеры которого были приведены в главе «Технология срыва стека» и дополнении «Использование срыва стека для запуска командного интерпретатора под Windows NT».

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Крис Касперский читать все книги автора по порядку

Крис Касперский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ТЕХНИКА СЕТЕВЫХ АТАК отзывы


Отзывы читателей о книге ТЕХНИКА СЕТЕВЫХ АТАК, автор: Крис Касперский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x