Итак, ты каким-либо методом имеешь доступ к 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 /". Пожалей админа :))