Текст книги "Спецвыпуск журнала «Хакер» 47, октябрь 2004 г."
Автор книги: Хакер Журнал
сообщить о нарушении
Текущая страница: 8 (всего у книги 21 страниц)
Linux – «притон» хакеров / Коротко о главном
Dr_Vint (vint@vpost.ru)
Linux – система, написанная хакерами и для хакеров? Почему не FreeBSD, не OpenBSD, не Windows, а именно Linux притягивает хакеров всего мира? Что можно делать и чего делать нельзя на захваченной машине?
История
Шел далекий 1991-й год. На рынке решений для домашних пользователей наблюдалась монополия Microsoft. Windows 3.1 и DOS правили миром ;-). Конечно, находились энтузиасты, использующие другие системы, но их было очень мало. Компьютеры уже стали доступны многим, и росло число программистов, готовых ринуться в бой за идею. Благодаря Fido хакеры с разных концов света уверенно держали связь между собой и искали применение своему интеллекту. Мир как будто ждал чего-то… А тем временем мало кому известный студент факультета компьютерных наук Хельсинского университета Линус Торвальдс изучал операционные системы, современные компьютеры, языки программирования, просматривал мегабайты исходных кодов. Он учился. Когда пришло желание работать, у Линуса уже был огромный запас знаний по многим аспектам IBM PC. Так сложилось, что ни одна из существующих систем не удовлетворяла запросов хакера, и он решил писать свою. Тем более Линус считал, что полученный опыт поможет ему начать и заложить базис ядра. И действительно, после месяцев упорной и кропотливой работы Fido-сообществу были представлены исходники ядра, для сборки которого использовалась ОС Minux. Эта самая первая версия 0.0.1 ОС Linux стала той «критической массой», которая смогла разбудить программистов и хакеров от спячки и организовать работу. Код ядра начал расти и развиваться. Чуть позже добавляется загрузчик, своя файловая система и основные утилиты. В результате, мы имеем то, что называется модным словом «Linux».
Анализ зарождения системы
Тебе, наверно, интересно, для чего я так вольно и очень кратко рассказал историю Linux? Это вступление должно подвести нас к главному выводу: ядро ОС Linux написано хакерами и для хакеров. Действительно, основанный программистом-одиночкой проект попал в руки огромного количества грамотных программистов, которые хотели использовать свой PC с максимальной отдачей. Для них компьютер не был инструментом – для них это цель, а не средство. Дух свободы и творчества пронизал систему. Линус предугадал такой ход развития и выпустил свое творение под открытой лицензией. Именно эти ключевые моменты сформировали всю ОС.
Linux сегодня
Сейчас мы наблюдаем бум популярности системы Linux. Интернет кричит, что это лучшая ОС как для серверов, так и для домашнего использования. Но так ли это на самом деле? Действительно, сейчас GNU/Linux представляет собой очень мощную и надежную систему с огромным количеством приложений. Причем это все доступно абсолютно бесплатно и в виде исходных кодов. Но повсеместному внедрению Linux мешает то, что пользователи должен иметь желание учиться. А таких мало… Но не пасующие перед трудностями иногда полностью переходят на Linux. Таким образом, система подтверждает свое звание ОС для хакеров.
Что хакеры находят в Linux
Так почему же именно Linux притягивает хакеров всего мира? Объяснить это лучше всего, сравнивая эту ОС с другими системами. Начнем, пожалуй, с самой близкой ОС – FreeBSD. Как ты знаешь, это тоже свободно распространяемая, POSIX-совместимая, доступная в исходных кодах система, то есть она имеет все основные преимущества Linux. И, кроме этого, у нее есть большой плюс: она разрабатывалась не с начала девяностых, а гораздо раньше, при этом очень неглупыми людьми. Кажется, все указывает на явное превосходство FreeBSD. Но есть одно большое но: развивать и дополнять эту BSD-систему могут только избранные разработчики ядра. А значит, далеко не каждый желающий программист может отправить свой участок кода для включения в ОС. С Linux все проще: если ты профи, то твоя работа будет оценена по достоинству и добавлена в ядро, при условии что это действительно полезная наработка.
Решение о выпуске нового релиза Linux принимается исключительно централизованно.
Причем дистрибутив не будет отправлен на реализацию до тех пор, пока множество бета-тестеров по всему миру не заявит об отсутствии ошибок в релиз-кандидате. Таким образом, FreeBSD выпускается достаточно редко, а значит, все новые идеи включаются в нее только после тщательного тестирования. В то время как хакеры, двигая прогресс, подчиняют его себе – используют свои разработки в повседневной работе, тем самым всегда оставаясь «на острие атаки». В итоге FreeBSD не стала «притоном» гениев. Аналогично обстоят дела и с OpenBSD. Хоть эта платформа более открыта, но ее «секьюрность» и постоянный аудит не дают ей возможности развиваться вместе с компьютерным миром. Поэтому и эта ОС не стала пристанищем свободомыслящих талантов ;-(. О Windows говорить как-то даже не хочется… Система, ориентированная на домохозяйку, не может быть гибкой, удобной и интересной компьютерному андеграунду. Остальные системы практически не представляют никакого интереса: либо они мало распространены, либо закрыты и недоступны для модификации. Так что же получит хакер, выбрав для себя ОС Linux? Прежде всего, свободу – свободу выбора, свободу творчества, свободу от монополий и регламентов производителей. И уже только потом очень сильную сетевую ОС.
Почему админам симпатична эта система
Администраторы все чаще выбирают Linux для своих детищ. И это легко объяснить. Админ получает, во-первых, очень стабильную ОС. Во-вторых, постоянное обновление и совершенствование не только системы, но всего сетевого ПО. Полный контроль над операционной системой привлекает грамотных системщиков, правда, достичь этого удается только в таких дистрибутивах, как Gentoo или LFS, но тотальная власть над системой реальна. Отсутствие всевозможных «закладок» и «меток», абсолютная прозрачность межсетевого взаимодействия позволяет Linux-админам спать спокойно. И все это дополняется огромным количеством документации, как в интернете, так и в бумажном варианте, как на английском, так и на русском языке. Этот список преимуществ Linux над другими *nix-системами можно продолжать довольно долго. Но! Раз есть админы и хакеры, то должны быть атаки и взломы, не так ли? Хотя система очень стабильна и продуманна, иногда можно слышать об удачных взломах Linux-хостов. Кто же виноват в том, что ОС отдается в руки хакера? Попробуем разобраться в этом.
Взлом Linux. Как такое бывает?
Чаще всего взломы и успешные атаки на Linux можно объяснить либо неграмотностью, либо ленью админа. Грамотно настроенная и вовремя обновляемая система практически неуязвима.
Какие возможны атаки? Сначала поговорим о самой простой. Реализовать взлом несложно, достаточно почаще посещать security-сайты и отслеживать изменения на top-страницах эксплоитов. При обнаружении новой удаленной уязвимости сразу же начинать искать эксплоит, а, пока его еще не разработали, исследовать сервера на предмет этой уязвимости. Конечно, в твоем сетевом анализаторе этой уязвимости еще нет, и поэтому придется поработать головой: провести полное сканирование хоста на предмет выяснения версии сервисов. При обнаружении бажного релиза ожидать свеженького эксплоита и успевать брать root-шелл. Вообще, лучше немного оптимизировать процесс поддержания тебя в курсе всех изменений на security-фронте. Есть два варианта: простой – подписаться на рассылку, сложный – написать скрипт, который будет отслеживать изменения на заданных тобой Web-ресурсах по IT-безопасности, а в случае обновления автоматически скидывать тебе свежачок на мыло или мобильник (для этих целей можно использовать готовый софт, о котором мы неоднократно писали). Атака на незнание системщика гораздо сложнее. Хакер должен знать Linux и его сервисы гораздо лучше администратора хоста, он должен понимать всю модель взаимодействия сетевых компонентов между собой и с системой. Профессиональные хакеры работают именно так: изучают ОС в совершенстве, атакуют сервера редко, но метко. Успех определяется соотношением твоих IT-знаний и IT-знаний администратора. Собственно, больше принципиальных способов атаки нет. Все остальные варианты представляют собой модификации этих двух.
Что можно делать со взломанной системой
Самое первое, что следует сделать при удачном входе, – это проверить, нет ли сейчас админа в системе. Команда 'who' позволяет узнать всех пользователей, работающих с системой в данный момент. Таким образом, если root уже зарегистрирован, то хакеру лучше уйти. Действовать дальше нужно только в том случае, если root на своем рабочем месте не обнаружен ;-). Следующий этап – разобраться с системой логирования и регистрации пользователей сервера. Я знаю администраторов, которые так опасаются за свой сервер, что создали скрипт, который при входе root в систему сразу отправляет администратору сообщение на мобильник, в котором содержится время входа, IP-адрес, с которого произошла регистрация, и номер виртуальной консоли, на которой работает сейчас суперюзер. Кроме этого, если не будет подтверждена регистрация, то сеанс завершится через определенный промежуток времени! Реализовано это с помощью следующего скрипта: при входе он создает определенный файл, и, если он не будет удален через некоторое время, программа считает, что произошел взлом сервера и скидывает псевдоадмина с терминала, отправляет предупреждение о критической ситуации настоящему администратору на мобильник. Поэтому сразу при входе нужно внимательно изучить содержание домашнего каталога и просмотреть все файлы, отвечающие за регистрацию. Их имена зависят от оболочки-интерпретатора. Затем – изучение лог-файлов и их очистка. Это первые шаги. Я не случайно так подробно описал одну из ловушек администратора – атакующий должен быть готов ко всему и очень хорошо знать атакуемую ОС. Без этого любой админ сможет рано или поздно вычислить и наказать взломщика. При любых действиях в системе следует анализировать результат предельно внимательно.
Даже невинное создание папки в каталоге /tmp может выдать атакующего с потрохами (это очень просто реализуется встроенными средствами аудита ФС).
Поэтому если ты создаешь рабочий каталог для себя, то после окончания сразу удаляй и чисти логи всех операций. Самое главное – это научиться думать, как администратор хоста, причем как грамотный администратор. Если взломщик недооценивает противника, рано или поздно он будет пойман. Поэтому бди!
Чего нельзя делать со взломанной системой
Никогда не следует менять пароль на учетную запись root. Это самое большое желание малограмотных скрипткидисов. Думая, что, сменив рут-пароль, они заблокируют доступ к серверу законного администратора, они очень глубоко ошибаются. Если админ не сможет с утра войти в систему – Linux не захочет опознать его пароль, то возможны два варианта. Если опыта и знаний немного, то он посчитает, что просто забыл ключ. Если же админ – матерый малый, то он сразу же узреет во всем атаку и будет восстанавливать пароль, параллельно усилив защиту до такого уровня, что любой скрипткиди скорее прохачит общественный сортир, чем его хост ;-). Кстати, процедура восстановления пароля предельно проста: загружаемся с CD или дискеты, монтируем разделы сервера, смотрим /etc/passwd, удаляем запись пароля root, отмонтируем винт, ребутимся в Linux, логинимся с пустым пассом. Таким образом, 10-минутная остановка сервера стоит тебе бессонной ночи и утраты этого сервака – при восстановлении пароля защита будет усилена.
Не рекомендую добавлять пользователей на взломанную систему. Просто очень многие администраторы опасаются за безопасность своего хоста и ставят ловушку на команду «adduser», которая отправляет сообщение на почту всякий раз при создании аккаунта пользователя, да и это еще не все. Некоторые сервера имеют сильную связь с остальными машинами сети: например, хакер взломал Dial-in сервер провайдера, добавил своего пользователя, прописал скрипты, выдержал паузу и захотел попользоваться плодами своего труда. Но не тут-то было: сервер его пускает, но при попытке запуска сессии PPP процесс умирает по тайм-ауту. Причина проста до безобразия – машина, принимающая звонки, не имела на своем хосте базы пользователей! Весь биллинг был на отдельном сервере, который и записывал в логи подозрительные запросы на несуществующего пользователя. После нескольких таких ошибок админ получил письмо с вырезкой лог-файла. И, как следствие, хакер лишился доступа на Dial-in. Поэтому не повторяй чужих ошибок и никогда не добавляй пользователя, не разобравшись, как устроен весь механизм взаимодействия серверов. Не ставь руткитов, не изучив сервер полностью. Это грозит полной утратой аккаунта – ночные проверки безопасности, постоянные лог-анализы, сравнение хеш-функций у основных утилит гарантированно выдадут действия взломщика. Чтобы этого не случилось, изучай систему как можно тщательней. Кроме этого, категорически запрещается убивать процессы сервера. Даже такой вредный и опасный для хакера демон, как syslog, должен крутиться в системе, когда он что-то там делает. Причина банальна – очень часто при остановке критических процессов они перезапускаются, а, если падают и во второй раз, – отправляют сообщение админу на мобильник, в котором приведена информация о том, что случилось, кто и откуда работает в системе, что делает и т.д. Как нельзя убивать чужие сервисы, так нельзя и запускать своих демонов на сервере. Точнее, это делать можно и нужно, но только после установки соответствующих руткитов, которые смогут скрыть активность левых приложений на хосте.
Удержание root-аккаунта
Если взломщик надеется подольше удержать за собой максимальные права на Linux-сервере, то он должен постараться выполнить еще несколько действий. Самое главное – это изучить всю систему и найти «закладки»: программы и скрипты, установленные администратором сервера, предназначенные для поиска и ликвидации взломов. Наиболее популярны для Linux-серверов на сегодня скрипт, который следит за подтверждением входа (следует искать в /root файл конфигурации оболочки пользователя) и скрипты проверки хеш-суммы всех утилит системы. Чаще всего они запускаются с помощью cron от root, поэтому следует внимательно изучать вывод команды crontab. Если не будет найдено никаких подозрительных записей для cron, то взломщику чаще всего необходимо изучить /var/log. Именно этот каталог содержит результаты всех проверок, если они существуют, и в нем легко можно обнаружить отчеты ловушек админа. Просмотрев журнал, следует подумать об установке руткита, если, конечно, на хосте не установлена программа-ревизор. Ну а после успешного инсталла все становится проще: патченые утилиты будут прикрывать тебя и твои процессы в нужный момент, а админ будет спать спокойно, не зная, что его сервера находятся под чужой властью :-). Если же администратор попался грамотный и установил все возможные ловушки-анализаторы, то тут необходимо действовать крайне осторожно.
Учти, что даже банальный запуск mc вызовет изменения времени доступа на некоторых файлах.
Чтобы удержаться на таком защищенном хосте, необходимо быть предельно внимательным, забыть про всякие утилиты-помощники и всегда чистить логи своих действий. Причем обязательно нужно следить за программой-ревизором, то есть перед ее запуском на сервере не должно быть никаких следов действий хакера, как и самого взломщика не должно быть в системе :-). Общеизвестное правило – чем дольше изучаешь систему перед установкой каких-либо своих прог, тем больше шансов воспользоваться этими софтинами в будущем. Так складывается ситуация, что хакер встает на борьбу не только со знаниями админа, но и со всевозможными ловушками, чаще всего написанными крупными IT-специалистами.
Linux – притон хакеров? Да!
Linux был, есть и будет той единственной системой, в которой хакер чувствует себя предельно просто и комфортно. Но пингвин – птица гордая, пока не пнешь, не полетит. Поэтому тем, кто действительно хочет понять всю силу и удобство Linux, прямая дорога в мир source-base дистрибутивов. Только там, пройдя через бессонные ночи, килограммы манов, ты познаешь счастье, которое позволит тебе понимать мир хакеров.
При создании системы Линус использовал единственный источник – книгу Мариса Баха «Разработка ОС UNIX».
Будь осторожен и внимателен. Админы не дремлют.
Linux – это самая открытая и свободная система, но при этом ядро потенциально нарушает множество патентов, по мнению некоторых компаний (например, небезызвестной SCO).
Детище хакера-одиночки угрожает монополии софтверного гиганта.
Сервисная угроза / Атаки на конкретные службы
Докучаев Дмитрий aka Forb (forb@real.xakep.ru)
Никто не застрахован от ошибок. В сети всегда отыщется сервер с бажным демоном. Не важно, каким именно будет сервис. Важно то, что ты в любой момент можешь его взломать, заработав на этом системные привилегии.
Инертность системных администраторов впечатляет. Админы реагируют на уязвимость в определенной службе лишь тогда, когда баг перерастает в эпидемию. В обычных случаях никто не мешает хакеру поиметь хороший ресурс через уязвимость в сервисе. Однако получить shell после однократного применения эксплоита удается далеко не всегда. С твоего позволения, я рассмотрю особенности демонов включая их стойкость к различным эксплоитам.
Дырявый FTP
Начнем с самого низкого системного порта. На двадцать первом порту расположился интересный демон FTP. Ты хочешь поломать его, но вот беда: не знаешь, какой FTPD выдержит атаку, а какой – нет. Публичные эксплоиты встречаются для двух служб: WuFTPD и ProFTPD. Несмотря на дырявость они до сих пор используются админами в работе. Поговорим о каждом релизе в отдельности.
Wu-FTPD. В старых версиях сервера таится несколько критических уязвимостей, направленных, в основном, на переполнение буфера. Эксплуатирование основано на пересылке слишком длинной команды с shell-кодом, в результате чего у сервиса напрочь срывает крышу. В результате атаки взломщик получает полноценный rootshell (не стоит забывать, что подавляющее число демонов работают из-под root’а). В простом случае тебе достаточно скачать эксплоит под уязвимую версию и запустить его с определенными параметрами. Через некоторое время ты получишь права суперпользователя. Но довольно часто бывает, что админ специально подменил баннер FTPD. По понятным причинам администратор не хочет, чтобы его взломали, поэтому обзывает демон загадочным именем, против которого хакер не найдет нужного эксплоита. К счастью, Wu-FTPD обладает признаками, которые отличают его от сервисов других производителей. Чтобы определиться в названии сервиса, зацепись на него и попробуй залогиниться. Затем напиши команду quit. Если это действительно Wu, то ты увидишь полную статистику по переданным данным (причем номер команды будет равняться числу 221). Кроме этого, в случае анонимного захода Wu-FTPD обязательно проинформирует тебя о правильности email-адреса, который задается в качестве пароля. Подобная дружелюбность позволит вывести сервер на чистую воду. И, наконец, эксплоиты. Конечно же, абсолютно все версии WuFTPD уязвимы, но в публичных источниках ты можешь найти сплоит для взлома релиза 2.6.2 (www.security.nnov.ru/files/0x82-wu262.c). Придется довольствоваться тем, что есть.
Что касается ProFTPD, то эта служба еще дырявее. Существует эксплоит для предпоследнего релиза 1.2.9rc2, что говорит о некомпетентности программистов. Самая популярная ошибка в демонах FTPD – переполнение при передаче длинного параметра какой-либо команде. Но последний эксплоит ориентирован на срыв буфера во время закачивания ASCII-файла. Я протестировал работу этого чудного эксплоита (www.security.nnov.ru/files/10.04.proftpd_xforce.c) на версии 1.2.9 и легко получил удаленного root'а. Одна проблема – в публичном эксплоите содержится всего две мишени (таргета :)). Хочешь большего? Тогда качай файл www.security.nnov.ru/files/proft_put_down.c. Он снабжен брутфорсом, поэтому является универсальным для всех конфигураций.
Если админ меняет баннер от ProFTPD, это не говорит о том, что хакер не обнаружит баг. Демон выдает себя с потрохами фразой «Anonymous Login ok» при передаче анонимного логина. Для справки: все остальные FTPD вместо слова «Anonymous» пишут «Guest». Когда-то я раскусил службу именно по этой отличительной особенности. Чего и тебе желаю :).
SSH – ностальгия по взлому
Следующий сервис, который я опишу, – это sshd. Он висит на 22-м порту и служит для удаленного подключения к серверу. Служба снабжена защитным алгоритмом шифрования, поэтому хакер никогда не отловит пароль, передающийся демону. Что касается стойкости ко взлому, то в наше время sshd практически неуязвим. Пару лет назад хакеры написали эксплоит x2 (www.security.nnov.ru/files/x2.tgz), который уже давно находится в публичных источниках. Он позволяет взять удаленного root’а. Это удавалось, если версия SSH совпадала с релизом, забитым в target. Эксплоит содержал аж 46 целей, правда, на практике удавалось получить root’а лишь в 5-6 из них. Что удивительно, даже сейчас можно встретить уязвимые версии демона (с 1.5-1.2.27 по 1.2.33) в различных локальных сетях. Стоит лишь получить доступ к маршрутизатору и просканить баннеры всех сервисов локальной сети. Кто знает, может тебе и повезет…
Telnetd – древний сервис от древних админов
Сейчас мы займемся взломом telnetd. Несмотря на то что это старый сервис, он используется на многих unix-like-машинах. Почему же админы его не сносят? Все просто – они оставляют демон в качестве резерва, фильтруя его от внешнего мира. В этом случае ты не законнектишься на сервис, однако сможешь без проблем получить локального root’а, если атакуешь сервер другим способом. Впрочем, бывают и исключения. К примеру, в Солярке телнет – вообще сервис по умолчанию, поэтому 23-й порт на таких серверах светится всегда. От тебя требуется воспользоваться услугами одного из двух эксплоитов. Первый называется 7350logout (http://examples.oreilly.de/english_examples/networksa/tools/7350logout), он переполняет буфер в telnetd, засоряя его некорректными данными. Зловредный бинарник способен взломать службу в Солярках 5.6-5.8 за несколько секунд. Второй эксплоит с именем holygrail (http://examples.oreilly.de/english_examples/networksa/tools/holygrail.c) ломает Соляры 5.5-5.7 удаленно и 5.8 локально. Заюзать эти сплоиты несложно. Достаточно лишь передать им параметры хоста и версии операционки. Кстати, версия Солярки всегда указана в баннере telnetd, что в несколько раз облегчает твою работу.
Бажный демон telnet’а встречается в других системах. Например, во FreeBSD. Для определенных версий FreeBSD существует специальный эксплоит, переполняющий буфер в сервисе. Итог – удаленный root на уязвимой системе. Сейчас такой демон в глобале не встретить, раритетные системы существуют разве что в локальной сети какой-нибудь фирмы.
Служба постепенно замещается защищенным SSHD, поэтому судьба telnetd предрешена. Думаю, через пару лет ты вообще забудешь, что когда-то существовал подобный демон. А пока – атакуй сервера, админы которых не позаботились о безопасности.
WWW – источник всех бед
Обратимся к самой популярной глобальной службе – WWW. Думаю, не стоит говорить, что наиболее часто используемый демон в unix-like-операционках называется Apache. Несмотря на его относительную стабильность баги в Apache существуют. Точнее, не в самом сервере, а в его многочисленных модулях. Начнем с самого популярного – mod_php. Баг довольно старый, но грех о нем не вспомнить. К тому же, бажные версии модулей можно встретить в сети до сих пор. Итак, ошибка в компоненте заключается в обработке внешних параметров. Если хакер пересылал хитрый запрос любому скрипту, модуль мог открыть shell с командным интерпретатором. Так и происходило, правда, перед этим эксплоит долго перебирал запросы. Еще один баг затаился в протоколе OpenSSL. Хакеры быстро реализовали эксплоит для mod_ssl, который позволял брать права WWW-сервера. После длительного ажиотажа многие админы обновили библиотеки SSL, в результате чего уязвимость потеряла свою остроту. Раритетный эксплоит называется OpenFuck, вторую его версию ты можешь скачать по адресу http://packetstormsecurity.org/0304-exploits/OpenFuckV2.c.
Хочешь баг посвежее? Держи! Брешь актуальна для связки Apache 2.x с mod_perl. Модуль, позволяющий добиться акселерации при запуске CGI-сценариев, содержит утечку важных файловых дескрипторов. Сейчас я наглядно объясню, к чему это может привести. Для эксплуатирования жертвы хакеру придется добиться локальных привилегий. Это нужно для того, чтобы иметь доступ к WWW-каталогу и заливке скрипта (думаю, подойдут права nobody в web-shell’е). Взломщик пишет сценарий, который рождает подпроцесс, а затем останавливает httpd. Затем потомок становится демоном, имитирующим работу Web-сервера. На все запросы клиентов он отвечает, что админа поимели :). Подобное описание всех шагов хакера можно найти на странице www.securitylab.ru/42355.html.
Давай теперь поговорим о других библиотеках. Не так давно стал уязвим компонент mod_gzip (www.security.nnov.ru/files/85mod_gzip.c), который служит для сжатия контента перед передачей. Уязвимость была обнаружена в конце лета прошлого года. Через банальное переполнение буфера злоумышленник может порождать процессы под правами nobody. Для этого хакеру требовалось послать определенные данные, включающие параметр Accept-Encoding. Неважно, на какой системе крутится Apache – баг таится как в FreeBSD, так и в RedHat, Mandrake, SuSE. Все потому, что эксплоит снабжен брутфорсом, который каждый раз перебирает адрес возврата. В случае его успешного определения злоумышленник получит интерактивный shell. При этом версия модуля не должна быть выше 1.3.26. Поразительно, но даже сейчас баг актуален. За примерами далеко ходить не надо, просто взгляни на скриншот.
Бывает, что и в самом Apache встречаются баги. Даже при отсутствии дополнительных библиотек. Это показала критическая уязвимость в OpenBSD/NetBSD, позволяющая брать shell через дырявый httpd (www.security.nnov.ru/files/apache-nosejob.c). Правда, сейчас найти уязвимый сервер практически невозможно.
Другие службы
Я перечислил основные службы, большинство из которых установлены практически на каждом сервере. Однако существуют и другие уязвимые сервисы, пусть и не такие важные. Тебе придется их поискать в различных сетях, а после этого нещадно взломать :).
1. IRC. Демоны ircd расположены на многих машинах, а их стойкость к атакам оставляет желать лучшего. Например, недавно был обнаружен баг в популярном hybrid-ircd, который позволяет удаленно убить сервис. Эксплоит публичный (http://addict3d.org/index.php?page=viewarticle&type=security&ID=1416), но перед тем как его скомпилировать, тебе придется исправить ошибки в исходном коде. Этакая защита от скрипткидисов. Рассказывать о том, как править исходник, я не буду – додумаешься сам. Подскажу лишь, что тебе придется перенести объявления переменных из середины процедуры в ее начало. После того как ты скомпилишь эксплоит, натрави его на какую-нибудь жертву (сервер, где установлен гибрид) и жди результата. Долго ждать не придется: непропатченный демон быстро уйдет в core dump.
2. CVS. Ты никогда не мечтал взломать разработчиков софта? Служба CVS создана для синхронизации исходных кодов, поэтому часто ставится на сервера разработчиков какого-либо проекта. Хакеры нашли в демоне склонность к переполнению буфера. Это показал несложный анализ строки, посылаемой серверу. Багоискатели установили, что выделение памяти происходит не под всю строку, а с некоторым запасом. Таким образом, грамотно составленный запрос позволяет повторно обратиться к функции дырявого CVS. С каждым вызовом злоумышленник может перезаписать память произвольными данными, а затем обратиться к ним. Думаю, ты понимаешь, что произойдет, если ты обратишься к коду, открывающему shell и запускающему /bin/bash. Именно это и реализовано в эксплоите. Кстати, он является публичным и давно ждет тебя по адресу www.xakep.ru/post/22450/cvs_linux_freebsd_HEAP.txt.
3. mySQL. База данных всегда была лакомым кусочком для хакеров, ведь в ней можно найти ценную информацию. До последнего времени для демона mysqld вообще не было эксплоитов, но хакеры терпеливо ждали. Наконец, был обнаружен изъян в свежих релизах сервиса. Если хакер пошлет демону хитрый авторизационный пакет, то функция сравнения неверно изымет из него пароль. Собственно, пароль в этом случае будет представлять собой строку нулевой длины, сравнение с которой даст положительный результат. Как следствие, хакер сможет бороздить просторы БД без какой-либо авторизации :). Команда RuSH выпустила скомпилированный mySQL-клиент, который позволяет логиниться к базе без знания пароля. Только вот версия демона должна быть 5.0 либо не превышать 4.1.3. Сливай mysql по адресу www.xakep.ru/post/23047/mysql_exploit.zip.
4. Shoutcast. Я думаю, что многие из читателей слушают внутрисетевое радио в своей локальной сети. Ты когда-нибудь задумывался, что служба Shoutcast, шлющая тебе звук по сетевым проводам, давно стоит на учете у хакеров? Если нет, то пришло время провести небольшой ликбез :). Баг таится в плохом анализе переменных icy-name и icy-desc, которые отвечают за имя и описания передаваемого файла. Никто же не мешает тебе воткнуть, скажем, /bin/sh вместо названия. Эксплоит можно найти по следующей ссылке: http://www1.xakep.ru/post/14351/exploit.txt. Тестируй эксплоит в своих локальных сетях и наводи злободром на различных серверах.
5. Rsync. Частенько вместо FTP админы используют утилиту rsync. Недавние релизы rsync содержат критический баг, который позволит тебе повысить локальные привилегии. А все из-за отсутствия проверки в функции strcpy(), которую можно отыскать в коде socket.c. Баг актуален только для Linux, поэтому если тебе попалась машинка с навороченным ядром и старым rsync – все в твоих руках. Скачивай (www.xakep.ru/post/21234/exploit.txt), компилируй, запускай и наслаждайся ;).
404 not found
Что я слышу: ты не нашел бажного сервиса? Немедленно перечитывай эту статью, а затем нацеливай nmap на неизведанную сетку. И тебе обязательно улыбнется удача! Не забывай, что многие админы подменяют баннер сервиса, пытаясь скрыть его версию. Но ты выведешь его на чистую воду! Тестируй эксплоиты на якобы неуязвимых сервисах, возможно, это простая подделка. И никогда не забывай обращаться за помощью к сайтам по уязвимости – часто там содержатся дельные статьи по взлому. Прими к сведению, что умный взломщик никогда не отчаивается, ибо знает основные слабости сисадмов.







