Итак, ты каким-либо методом имеешь доступ к Linux-консоли твоего
прова (Telnet / WWW) и весьма желательно FTP доступ к удалённому
серверу. С этой задачей можно очень быстро справиться, это несложно (я
об этом писал в Xakep #3, раздел ScriptKiddle), а дальше возникает
вопрос: что можно сделать, если можешь управлять сервером (любыми
правами)?
Рассмотрим ряд возможностей, которые помогут тебе узнать очень много
дыр в сервере твоего провайдера, а при удачном стечении обстоятельств
даже порутить / завесить сервак.
Если ты в совершенстве знаешь Linux - все его особенности,
местоположение config-файлов и команды, то можешь не читать эту статью
- всё, что написано здесь, ты уже знаешь. Ну, а если ты начинающий
юниксоид и стремишься познать особенности данной OS, то эта статья для
тебя. Итак, приступим.
1. Поиск. Только поиск.
Админы - народ рассеянный, это знают все. У них нет времени даже на то,
чтобы поставить защитный атрибут на файл с паролями или другой ценной
информацией и эта информация может быть разбросана по всему серверу.
Постараемся воспользоваться этим недостатком.
На помощь всегда приходит замечательная команда find. Она позволяет
найти файлы по какому-то схожему признаку (дата создания, атрибут, имя
файла, etc). Это нам и нужно. Ты не задавал себе вопроса: нет ли на
сервере ненужной копии shadow с атрибутом 644 ? ;)
Формат команды find: find <директория начала поиска> <шаблон значение>
Шаблоны бывают разные, вот некоторые из них:
name - поиск по имени
user - поиск на принадлежность к какому-либо пользователю
group - аналогично, только с группой.
perm - поиск по атрибуту
type - поиск по типу (l - ссылка, f - файл, d - директория)
А теперь самое интересное: посмотрим, нет ли копии shadow на сервере :) Набираем команду либо через cgi-скрипт, либо в telnet`е
http://yourprov.com/path/to/script/test.pl?find -type f -name shadow
Ждём минуты 2 и смотрим на ответ сервера. Если будет что-то вроде:
/etc/shadow
/home/admin/svalka/test/shadow
то ты натолкнулся на копию password-файла. Тебе стоит только набрать:
http://yourprov.com/path/to/script/test.pl?cat /home/admin/svalka/test/shadow
и запустить John the Ripper на полную мощность ;)
2. Авторизация для сервисов.
Большинство сервисов в Linux требуют авторизации и их passwd-файлы
также могут лежать на сервере с аккаунтами пользователей (порой даже
незашифрованных). Пример: uucp, webmin, sockd и многие другие сервисы.
Чтобы посмотреть, а не запущены ли они на сервере, просто выполни команду "ps ax" и ищи нечто похожее на программу-сервис.
Допустим ты обнаружил, у твоего прова работает uucp (unix to unix
connect protocol). Щупай каталог /etc/uucp на предмет файла passwd (с
90% вероятностью он там есть) и выводи его на экран (только слюной не
захлебнись от жадности ;) ).
3. Безопасность превыше всего.
Если ты не хочешь наткнуться на своего админа, то всегда пользуйся
командой "w" или "who". Эта команда выводит зарегистрированных в
системе в данный момент пользователей и если ты увидел нечто:
root pts/0 11:00pm 44:25 0.05s ? -
то значит твой админ сейчас усердно рутит сервак :) и может, кстати,
засечь и тебя простой командой (ps ax|grep perl), но перед тем, как
закрыть твой IE aka броузер, ты можешь немного подшутить над админом и
даже вызвать у него сердечный приступ :)
Ты не знаешь, что будет, если ты заюзаешь команду: echo \"The system is
going down for halt NOW!\" > /dev/pts/0 ?
Объясняю. Вся лабуда, которую ты напишешь между \" и \" выведется на
консоль твоего доброго дяди админа, который, нервно передёрнется от
совершенно внезапно выползшей строчки (кому приятно идти на ATC и
поднимать сервер? правильно! никому:) ). Но эта шутка чревата
некоторыми
плачевными для тебя последствиями, поэтому я тебе ничего не говорил =)
4. И в заключении...
Что тебе сказать... Твоя цель надыбать root пароль и входить в консоль
под telnet или SSH протоколом ;) Это твоя заветная цель :)
И совет тебе, если ты найдёшь его, не нужно сразу делать "rm -rf /".
Пожалей админа :))
|