Конфиги от Web – это лишь верхушка айсберга. Настоящая сила находится в логах! Если поиск по Web ничего не дал, стоит попробовать поискать читабельные файлы .bash_history и.mysql_history. В первом из них можно обнаружить пароль для суперпользователя. Случается, что администратор написал неверную команду su (sy или si), а затем вслепую вбил рутовый пароль. Пароль, конечно же, сохранится в логе команд. Находка для хакера, не так ли? Кроме этого, возможен случай, при котором администратор логинится к MySQL, используя системный пароль. Таких случаев очень много, наверное, каждый третий локальный взлом происходит благодаря хорошему урожаю из лога команд :).
Теперь поговорим о MySQL. Доступ к базе – это тоже своего рода дополнительные права. Ведь в БД могут содержаться таблицы с кредитными картами, аккаунтами на какие-либо сервисы и т.п. Слюнки потекли? Еще бы :). Чтобы достать пароль от базы, особо париться не надо. В первую очередь нужно изучить PHP/CGI-скрипты на предмет конфигурационных файлов. Например, часто переменные доступа записываются в конфиг include.php.inc либо mysql.inc. Второй способ узнать пароль – прочитать .mysql_history. Очень часто администратор светит пассворд в чистом виде после выполнения команды «blabla set password=password(„пароль“)». Наконец, если не повезло, можно заняться локальным брутфорсом: залить на машину hydra и прогнать вордлист для сервиса mysql. Ведь, как известно, надежда умирает последней :).
Пошпионим?
Итак, настал тот заветный момент, когда получены абсолютные привилегии. Но на этом приключения не закончены. Обычно после взлома хакер определяется с дальнейшей тактикой: либо он троянит машину и «ложится на дно», либо атакует дальше в надежде заполучить более вкусный кусок, чем права рута. Я говорю о взломе локальной сети, которой владеть куда интереснее, чем обитать на маршрутизаторе. Но для того чтобы продвинуться вперед, взломщику необходимо узнать пароли на других серверах. Это проще всего сделать двумя способами:
1. Найти информацию об SSH-соединениях. Эти данные находятся в файле ~user/.ssh/.known_hosts. Пропарсив этот конфиг, можно приконнектиться на любой хост из списка. Пароль на соединение с большой вероятностью совпадет с системным, который можно без проблем расшифровать. А если у юзера имеются SSH-ключики, то с помощью простого суида взломщик способен соединиться с узлом без дополнительной авторизации. Правда, следует помнить, что в случае защиты ключа секретной фразой, ее можно легко расшифровать путем брутфорса по словарному листу. В этом злоумышленнику поможет утилита SSH Crack ( http://www.thc.org/root/tools/thc_ssh_crack.c).
2. Установить на сервер снифер или клавиатурный шпион. С помощью сниффинга можно легко отловить пароль на FTP– или POP3-сервис, а затем попробовать аккаунт в качестве системного.
С помощью специального модуля можно перехватить все консольные команды, включая пароли на SSH. Самый лучший клавиатурный логгер – vlogger от THC ( http://www.thc.org/download.php?t=r&f=vlogger-2.1.1.tar.gz). После загрузки модуль стирает себя из списка процессов, а затем работает в одном из двух режимов: логирование всего ввода или запись паролей (smart mode). В любом случае взломщику удастся нарыть достаточно информации, которой хватит для взлома всех станций локальной сети!
Выводы
Вот, собственно, и все основные удаленные и локальные атаки. Обычно именно эти методы и приносят взломщику успех. Ведь он точно знает, что брутфорс намного опаснее, чем сканирование портов, но когда ничего не остается делать, приходится довольствоваться самыми неблагодарными способами взлома. Матерый взломщик с помощью пары команд определит, что система не имеет тривиальных уязвимостей и получить рута в ней будет очень непростым делом. Но после двухчасового поиска злоумышленник быстро найдет пароль суперпользователя, записанный в plain-тексте. Если ты думаешь, что у крутых хакеров дар определять методы взлома, то ошибаешься. В свое время они были скрипткиди, несколько лет, набравшись опыта, человек постиг искусство взлома.
Сила НЛП
Существуют альтернативные способы взлома сервера. Один из них – социальная инженерия. Ее можно использовать как для удаленного, так и для локального взлома. Допустим, ты знаешь аську админа, и тебе позарез понадобился пароль на его сервер :). Для упрощения задачи предположим, что логин тебе известен. Можно постучаться к админу в асю и интеллигентно попросить пароль :). Правда, скорее всего, тебя пошлют куда подальше. А вот если ты начнешь издалека, подружишься с ним и попросишь помочь с настройкой какого-нибудь конфига, то это другое дело. Скажи, что даешь ему шелл на свою тачку, затем прописывай ему /usr/bin/xpasswd в качестве интерпретатора и устанавливай пустой пароль. Теперь проси его залогиниться. Естественно, что админ попросит тебе поставить нормальный шелл, но ты скажешь, чтобы он установил себе пароль самостоятельно. С большой вероятностью сисадм установит свой родной пароль, ничего не заподозрив (ведь пароли-то криптуются!). Думаю, не стоит говорить, что xpasswd – это ранее написанный тобой скрипт, содержащий в себе логирование пароля, а затем его установку в качестве системного.
Читать дальше