Удаленное проникновение: состояние DoS и переполнение буфера
В этом разделе мы немного поговорим о том, как может разворачиваться ситуация в том случае, если взломщику не удастся подобрать пароль к интересующей его системе. В таких случаях у него есть несколько возможностей. Первая из них состоит в поиске скрытого недостатка архитектуры NT, которым можно было бы воспользоваться для удаленного проникновения и получения доступа к системе. Вторая заключается в генерации состояния DoS (DoS – отказ в обслуживании), – последней надежды неудачливого взломщика.
Удаленное переполнение буфера
О Windows NT ходят легенды, что в ней существуют многочисленные секретные "лазейки", с помощью которых можно получить статус администратора любой удаленной системы. На самом деле в настоящее время известно лишь несколько подобных недостатков, которые при определенных условиях могут дать подобный эффект, однако все они относятся к приложениям, а не к самой системе Windows NT. Чем это объясняется, то ли относительной "молодостью" NT, то ли архитектурой, заложенной в нее разработчиками Microsoft, – это спорный вопрос.
С точки зрения удаленного проникновения самые тяжелые последствия способна вызвать ошибка переполнения буфера (buffer overflow). Более подробно переполнение буфера будет рассматриваться в главе 14, а сейчас для продолжения обсуждения достаточно сказать, что переполнение буфера возникает тогда, когда программы не способны адекватно отслеживать длину вводимых данных. В таких случаях избыточные данные записываются поверх части стека центрального процессора. Если это произойдет не случайно, а в результате передачи в качестве избыточных данных соответствующих команд, то новый код может привести к выполнению операций, подобранных высококвалифицированным программистом. Одной из наиболее значимых статей, посвященных проблеме переполнения буфера, является работа Алефа Вана (Aleph One) Smashing the stack for fan and profit. Ее можно найти по адресу http://phrack.infonexus.com/archive.html. К другим статьям о переполнении буфера системы Windows относятся Tao of Windows Buffer Overflow хакера Дилдога (Dildog), Win32 Buffer Overflows Барнаби Джека (Barnaby Jack) в Phrack 55, а также статьи членов группы CIS (Cerberus Information Security).
Переполнение буфера можно отнести к одному из двух основных классов: удаленное и локальное. Для достижения локального переполнения требуется доступ к консоли, и его обычно могут осуществить лишь интерактивные пользователи. Удаленное переполнение буфера является гораздо более опасным. Такой возможностью могут воспользоваться взломщики, имеющие нулевые привилегии на целевом компьютере и находящиеся на любом узле сети. Как правило, удаленное переполнение буфера связано с размещением на целевой системе "полезного груза" (т.е. кода, помещенного в стек центрального процессора), что впоследствии позволяет взломщику удовлетворить практически любые свои желания. В табл. 5.3 приведены некоторые наиболее известные публикации об ошибках переполнения буфера системы NT и других программных продуктов компании Microsoft.
Теоретически, учитывая огромный объем и сложность исходного кода Windows NT, в нем должно существовать довольно много изъянов подобного рода. Однако, как видно из табл. 5.3, между двумя изданиями этой книги практически не появилось новых хакерских программ, вызывающих переполнение буфера самой операционной системы NT/2000. В то же время, как видно из табл. 5.3, службы (IIS) и приложения (Outlook) системы Windows являются достаточно уязвимыми. Поэтому не стоит рассчитывать на абсолютную защищенность операционной системы: все возрастающий поток исследований проблемы переполнения буфера Win32 в любой момент может привести к прорыву обороны.
Таблица 5.3. Некоторые публикации о выявленных ошибках переполнения буфера Windows.
Мишень и разработчики программы взлома | Адрес URL | Принцип действия |
---|---|---|
Netmeeting 2x, группа хакеров Cult of the Dead Cow (cDc) | http://www.cultdeadcow.com/cDc_files/cDc-351 | Проверка концепции, сводящаяся к загрузке графического файла с узла cDc |
NT RAS, группа Cerberus Information Security (CIS) | http://www .infowar.co.uk/mnemonix/ntbufferoverruns.htm | Открытие окна командной строки с привилегиями System |
winhlp32, группа CIS | http://www.infowar.со.uk/mnemonix/ntbufferoverruns.htm | Запуск командного файла с привилегиями System |
IISHack, компания еЕуе | http://www.eeye.com | Выполнение заданного кода на Web-сервере, работающем под управлением NT US |
Oracle Web Listener 4.0, группа CIS | http://www.cerberus-infosec.co.uk/advowl.html | Удаленное выполнение команды с привилегиями System |
Outlook GMT, лаборатория Underground Security Systems Research (USSR) | http: //www.ussrback.com/labs50.html | Переполнение буфера за счет выполнения заданного кода при синтаксическом анализе электронного сообщения |