Линукс - история одного взломаИсточник: habrahabr jacob1237
Привет, мир!
Сегодня хотел бы поделиться с вами одной поучительной историей о том, как однажды мне удалось получить root-доступ к рабочему компьютеру коллеги и о том, как ужасающе просто оказалось это сделать. ПредысторияРабочий день проходил так, как обычно он проходит у любого среднестатистического разработчика: монитор, клавиатура, чай, печеньки… В общем, ничего выдающегося, как всегда, не предвиделось. Утомившись от продолжительной отладки приложения в Xdebug, я решил выйти из офиса и немного подышать свежим воздухом, чтобы хоть чуть-чуть привести голову (к тому времени уже "чугунную") в порядок. Вернувшись за рабочее место я не успел еще приняться за работу, как вдруг с соседнего стола донесся ехидный голос коллеги: - Слушай, похоже что у тебя идентификатор процесса браузера это XXXX, да? Выполнив команду ps -A / grep opera, я увидел что pid действительно именно тот, о котором говорил коллега. - Да, и что? - невозмутимым голосом ответил я. Я тут же принялся искать процессы в системе, которые могли дать удаленный шелл. Это был не SSH.
МякоткаОднажды в студеную зимнюю пору, аккурат перед самым Новым Годом, я решил что пришла пора взять реванш. Но на этот раз я хотел полностью захватить доступ к компьютеру - получить root. Новогодние приготовления в офисе создавали изрядную суету и шум. Это был самый подходящий момент, поскольку коллега после произошедшего случая стал блокировать экран, когда отходил от рабочего места. Я знал, что сегодня именно тот день, когда вероятность того, что он забудет сделать блокировку, максимально высока. Воспользовавшись небольшим "окном" в своем рабочем времени, я начал продумывать план действий по взлому. Основная проблема, которую надо было как-то решить это конечно же непосредственно получение учетной записи root, поскольку всё остальное всего лишь дело техники. Начался активный перебор идей о том, как вообще это можно сделать. У коллеги стоял Linux Mint 14 "Nadia". Версия ядра - 3.5. Хоть ядро и не такое старое, вероятность быстро найти в свободном доступе работающий локальный эксплойт близка к нулю. Из служб у него кроме Apache толком ничего не стояло, да и Apache он закрыл для наружного доступа. Откидывая идею за идеей, в итоге меня осенило! А что если попробовать самый простой и самый банальный bash alias? А теперь скрипт! Вкратце: скрипт имитирует запрос пароля sudo, перехватывает пароль и отсылает его на указанный сервер, где информация просто записывается в файл. Воспользовавшись временным отсутствием коллеги на рабочем месте, я пересел за его компьютер и начал свою "спецоперацию": 1. Создаем постоянный алиас в bashrc: Первым делом после своего возвращения, коллега, ожидая подвоха, внимательно осмотрел bash_history, и ничего не заметив, начал работать. Позже я снова дождался когда коллега выйдет из офиса и "поколдовал" над его компьютером уже от имени root, но, к сожалению, неправильно рассчитал время и прокололся! Увы, попался с поличным прямо на месте "преступления". Мы снова посмеялись, обсудили детали "взлома", а потом дружно и весело всем офисом отметили Новый Год.
ЗаключениеВ свете того, что Valve выпустила steam под linux, появилась вероятность оттока "хомячков" в сторону Linux-систем и, вместе с тем, вероятность того, что господа из "black hat" нацелят свои взоры на Linux. Поэтому хотелось бы, чтобы эта статья стала очередным напоминанием о том, что "спасение утопающих - дело рук самих утопающих". P.S. Описанный выше способ вполне может применяться и в автоматизированном виде, например при создании бот-сетей. По этому принципу вполне можно создать загрузчик, который будет лежать и покорно ждать, когда пользователь введет пароль, будь то sudo, или gksudo, а после уже превратит компьютер в "зомби-машину". |