ЖУРНАЛ ХАКЕР

ФАК

Спецвыпуск Хакера, номер #007, стр. 007-064-8


29. Что такое buffer overflow?

Buffer overflow - переполнение буфера. Разновидность атак, при которых серверному софту намеренно передаются данные такой длины, на прием которых он заведомо не рассчитан. Происходит переполнение буфера, принимающего данные. Тот кусок данных, который не вписался в буфер, портит организацию стека, в котором он (буфер) сидит, отчего у проги происходят всякие глюки. Но это отстой - так ты максимум завесишь прогу. А вот будет конкретно рулить, если передать ей данные, подобранные так, чтобы стек не просто сорвало, а чтоб "торчащие" из буфера данные, которые должны представлять собой машинный код, заменили собой данные в стеке памяти таким образом, при котором они в итоге получат управление. Тогда считай, что ты выполнил этот самый машинный код на серваке. А что он будет делать - это уже твоя фантазия :). Найти такую дыру в серверном софте ОЧЕНЬ сложно - хорошо написанный софт проверяет, чтобы принимаемые данные соответствовали нужной длине. Однако, если ты окажешься настолько крут, что найдешь в какой-нибудь часто юзаемой админами проге такую дыру, то можешь считать себя самым настоящим профессиональным-гуру-элитным хацкером. Это не шутка. Большинство хакеров юзает уже найденные кем-то дыры buffer overflow. А

находить новые дано далеко не всем!!! Для этого надо в первую очередь достать и изучить исходники софта, в котором ты собираешься искать дыру. Потом надо написать эксплоит, который все это реализует (не руками же на каждом новом серваке повторять). Ты, наверное, думаешь, что такие баги попадаются раз в тысячу лет и то в самых дрянных прогах? Тогда ты ошибаешься. Сходи на

какой-нибудь сайт с эксплоитами и посмотри: дыры buffer overflow находятся в таких крутых и популярных прогах, что прямо глаза на лоб лезут.

30. Что такое шелл (shell)?

Шелл - это то, что дает тебе возможность удаленно работать. Админ сервера, на котором ты хочешь получить шелл, должен выдать тебе логин и пароль - учетную запись (это и есть шелл, в общем-то). Ты прителнетишься к серваку своим telnet-клиентом, введешь там эти логин и пароль и... получишь возможность выполнять команды на нем. В зависимости от того, какие права твоему логину назначит админ (иначе говоря - насколько привилегированный шелл ты будешь иметь), ты сможешь выполнять те или иные действия, команды. Все это получило название шелл, потому что через протокол telnet ты работаешь с командным интерпретатором, с shell'ом. Telnet - это протокол эмуляции терминала: работая через него, ты работаешь точно так же, как ты работал бы, если бы сидел в одной комнате с сервером за обычным реальным терминалом (монитор+клава), подключенным к этому серверу, и имел бы учетную запись юзера. Так сложилось, что под словом "шелл" подразумевают

Назад на стр. 007-064-7  Содержание  Вперед на стр. 007-064-9