СТЕК 2, ПЕРЕЗАГРУЗКА Alex Shark Спецвыпуск Xakep, номер #032, стр. 032-020-2 ИМЕЕМ ИСХОДНИК Можно найти слабое место в коде проги простым перебором. Тут записать логин в 20 кило, там прописать пароль в 300 кило. Или установить соединение и послать 0x00, то есть ничего не послать. Это хорошо под мастдаем, где недоступны исходники. Для линуха все несколько проще. Самое легкое - это найти патч для линуха и посмотреть, что же он меняет. В программах на С есть несколько стандартных слабых мест. Например, имеется функция логина, в которой сам логин представлен как массив char размером в 200 байт. А тот, кто вызывает эту функцию, не проверяет длину. Тут мы и пишем в логине 5-6 кило текста и смотрим, где сглючило. Эта атака называется buffer overflow, и при записи мусора получается DoS. Есть еще одна смешная атака - тот самый "срыв стека". Для нее не надо писать в стек, достаточно взять лишнего. Например, есть такая функция printf. Чтобы вывести твое имя на экран, правильно было бы написать printf("%S",name). Но можно и проще: printf(name). Однако передай вместо своего имени строку %s%s%s%s - и ты явно увидишь кишки стека, потому что все функции пользуют один и тот же стек. Данная дырка называется format string vulnerability (нарушение формата строки). Просто программер даже не подумал о том, что внутри имени может быть форматированная строка. Результатом может быть все, что угодно. Можешь увидеть логин и шифрованный пароль или кучу интересной внутренней инфы программы. Можешь просто сорвать стек и устроить DoS, если функция не выравнивает стек при выходе. ПОЛИГОН Лучше всего при подготовке к войне устроить локальный полигон, в точности повторяющий ландшафт поля битвы. Есть два варианта. Более дорогой - это купить себе второй комп и превратить его во вражеский, установив нужную ось и настроив нужные проги. Более дешевый - поставить себе эмуля (VMWare или Virtual PC) и настроить под ним все, что надо. Главное - не забудь про сервиспаки и патчи. Если есть 5 сканеров, используй все. Потому что чем ближе ты заточишь свой комп к вражескому, тем более предсказуемый результат ты получишь. Если твой комп намертво виснет от эксплоита, то не исключено, что и настоящая жертва поступит так же. Очень редко бывает так, что локально все висит, а удаленно все остается в порядке. Чаще все бывает наоборот: локально все жужжит и летает, а через Инет происходит DoS, и приходится ждать резета. |