ТЕОРИЯ ЛЕГКОГО ХАКА - n0ah (noah@real.xakep.ru) Спецвыпуск Xakep, номер #025, стр. 025-004-1 Насколько я помню, у нас в Спеце еще никогда не было аналитических статей. Нам просто не нравится корень этого слова – "аналит" :). Аналит, анал... ну, в общем, ты меня понял ;). Сейчас я попытаюсь сделать над собой усилие и предложить твоему вниманию первую в Спеце аналитическую статью. Попробуем разобраться, что это за зверь такой – легкий хак – и чем он отличается от тяжелого. Но сначала придется разобраться с самим понятием "хак". Понятие это очень широкое, поэтому разбираться с ним можно бесконечно. Давай условимся, что "хак" или "взлом" – это определенный набор действий, которые выполняет хакер, в результате чего нарушается безопасность и/или работоспособность компьютерной системы. Под компьютерной системой можно понимать все, что угодно: и внутреннюю сеть какой-нибудь конторы, и отдельно взятый почтовый ящик, и DNS-сервер, и UIN аськи. Теперь посмотрим, что это за "определенный набор действий". Это процесс, который как и любой другой процесс имеет свои ключевые моменты. Они следующие: 1. Выбор цели; 2. Изучение цели; 3. Анализ результатов изучения; 4. Определение уязвимости (уязвимостей); 5. Выбор инструмента (инструментов), необходимых для эксплуатации обнаруженной уязвимости; 6. Эксплуатация уязвимости (уязвимостей); 7. Получение информации о положительном результате взлома. Это рецепт, приятель. И он работает! Приведу два примера: Пример 1: взлом DNS-сервера. 1. Выбор цели: Сосед попросил хакера изменить таблицу имен DNS-сервера компании, откуда его уволили. 2. Изучение цели: хакер просканил DNS-сервер сканером. 3. Анализ результатов изучения: после сканирования оказалось, что DNS-сервер также является почтовым сервером. 4. Определение уязвимости (уязвимостей): версия sendmail сервера оказалась уязвима к удаленному эксплоитингу. 5. Выбор инструмента (инструментов), необходимых для эксплуатации обнаруженной уязвимости: хакер зашел на багтрак и скачал оттуда один из подходящих к этой уязвимостей эксплоитов. 6. Эксплуатация уязвимости (уязвимостей): хакер скомпилировал эксплоит, натравили его на сервак, зашел телнетом и изменил таблицу DNS-имен. 7. Получение информации о положительном результате взлома: хакер и сосед вместе запустили браузер и проверили, действительно ли домен компании теперь ведет не на сайт компании, а на www.fuckyou.com. Пример 2: увод UIN'а. 1. Выбор цели: хакер выбрал красивый шестизначный юин. 2. Изучение цели: посмотрел в инфо. 3. Анализ результатов изучения: обнаружил там прописанное мыло на hotmail.com. 4. Определение уязвимости (уязвимостей): проверил на hotmail.com и оказалось, что такое мыло не зарегистрировано. 5. Выбор инструмента (инструментов), необходимых для эксплуатации обнаруженной уязвимости: залез браузером на hotmail.com и зарегал там мыло. 6. Эксплуатация уязвимости (уязвимостей): зашел на сайт icq.com и попросил прислать ему "забытый" пароль на мыло. 7. Получение информации о положительном результате взлома: открыл почтовик и получил письмо от системы напоминания паролей icq. Это два совершенно разных примера, но оба они идеально подходят под наш рецепт. Я привел эти примеры, чтобы доказать универсальность этого рецепта. Не буду ручаться за все 100%, но мне кажется, что 97% всех взломом подходят под этот рецепт. По сути, что мы делаем, когда взламываем что-либо по этому рецепту – мы берем цель и _примеряем_ к ней различные уязвимости (все, какие мы знаем и какие на наш взгляд применимы к данной цели). Это не легкий взлом. Практика показывает, что намного выгоднее, легче делать все наоборот: брать уязвимость и _примерять_ ее к различным целям. Сразу отвечу, почему это легче: целей много, а уязвимостей мало (тем более известных какому-то конкретному хакеру). Чтоб ты почувствовал разницу, приведу два примера: |