Хакер - Спецвыпуск журнала «Хакер» #47, октябрь 2004 г.
Если взломщик надеется подольше удержать за собой максимальные права на Linux-сервере, то он должен постараться выполнить еще несколько действий. Самое главное – это изучить всю систему и найти «закладки»: программы и скрипты, установленные администратором сервера, предназначенные для поиска и ликвидации взломов. Наиболее популярны для Linux-серверов на сегодня скрипт, который следит за подтверждением входа (следует искать в /root файл конфигурации оболочки пользователя) и скрипты проверки хеш-суммы всех утилит системы. Чаще всего они запускаются с помощью cron от root, поэтому следует внимательно изучать вывод команды crontab. Если не будет найдено никаких подозрительных записей для cron, то взломщику чаще всего необходимо изучить /var/log. Именно этот каталог содержит результаты всех проверок, если они существуют, и в нем легко можно обнаружить отчеты ловушек админа. Просмотрев журнал, следует подумать об установке руткита, если, конечно, на хосте не установлена программа-ревизор. Ну а после успешного инсталла все становится проще: патченые утилиты будут прикрывать тебя и твои процессы в нужный момент, а админ будет спать спокойно, не зная, что его сервера находятся под чужой властью :-). Если же администратор попался грамотный и установил все возможные ловушки-анализаторы, то тут необходимо действовать крайне осторожно.
Учти, что даже банальный запуск mc вызовет изменения времени доступа на некоторых файлах.
Чтобы удержаться на таком защищенном хосте, необходимо быть предельно внимательным, забыть про всякие утилиты-помощники и всегда чистить логи своих действий. Причем обязательно нужно следить за программой-ревизором, то есть перед ее запуском на сервере не должно быть никаких следов действий хакера, как и самого взломщика не должно быть в системе :-). Общеизвестное правило – чем дольше изучаешь систему перед установкой каких-либо своих прог, тем больше шансов воспользоваться этими софтинами в будущем. Так складывается ситуация, что хакер встает на борьбу не только со знаниями админа, но и со всевозможными ловушками, чаще всего написанными крупными IT-специалистами.
Linux – притон хакеров? Да!Linux был, есть и будет той единственной системой, в которой хакер чувствует себя предельно просто и комфортно. Но пингвин – птица гордая, пока не пнешь, не полетит. Поэтому тем, кто действительно хочет понять всю силу и удобство Linux, прямая дорога в мир source-base дистрибутивов. Только там, пройдя через бессонные ночи, килограммы манов, ты познаешь счастье, которое позволит тебе понимать мир хакеров.
При создании системы Линус использовал единственный источник – книгу Мариса Баха «Разработка ОС UNIX».
Будь осторожен и внимателен. Админы не дремлют.Linux – это самая открытая и свободная система, но при этом ядро потенциально нарушает множество патентов, по мнению некоторых компаний (например, небезызвестной SCO).
Детище хакера-одиночки угрожает монополии софтверного гиганта.
Сервисная угроза / Атаки на конкретные службы
Докучаев Дмитрий aka Forb ([email protected])
Никто не застрахован от ошибок. В сети всегда отыщется сервер с бажным демоном. Не важно, каким именно будет сервис. Важно то, что ты в любой момент можешь его взломать, заработав на этом системные привилегии.
Инертность системных администраторов впечатляет. Админы реагируют на уязвимость в определенной службе лишь тогда, когда баг перерастает в эпидемию. В обычных случаях никто не мешает хакеру поиметь хороший ресурс через уязвимость в сервисе. Однако получить 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, что в несколько раз облегчает твою работу.