Будь как дома, путник или о фиче с домашней директорией на сайте

Будь как дома, путник или о фиче с домашней директорией на сайте

Бонжур, %username%! С этого дня к каждому посту я буду прикладывать какую-нибудь песенку. Таки дела. Запускай и читай дальше.




Давеча я столкнулся с такой фичей, о которой вкраце рассказал в докладе на PHDays IV P ( тут слайды короч )- сам доклад о различных файлах которые могут помочь злоумышленнику, а вот на одной группе хочу остановиться и рассказатьPпоподробнее, суть в том, что некоторые администраторы создают отдельного пользователя для сайта…


«А что тут такого? — спросишь ты, — это ж замечательно, наоборот мало кто так делает и это дополнительный плюсик к безопасности!».


Возможно. Просто некоторые огурцы для удобства назначаютPдиректорию сайта домашней для созданного пользователя. Ну то есть, был у нас сайт, директория его, допустим, /var/www/ololo.site. Создаём пользователя ololosha и вP/etc/passwd меняем его домашнюю директорию (/home/ololosha/) наP/var/www/ololo.site.

Я не знаю, зачем это делают, но скорее всего работать с этой учёткой становится удобнее.PЗаходишь на SSH P(удалённая консоль типа)Pи ты сразу в директории с сайтом, правильно настроил права и другие пользователи не смогут повлиять на файлы в его директории. Шик. Блеск. Но не тут-то было.


А теперь вспомним, какие вещи творятся в домашней директории пользователя.


Начнём с того, что команды в терминале записываются. Не-не-не, АНБ не атакует, это создано для удобства пользователя. Вводишь ты какую-нибудь длинную команду в консоли (например через тот же SSH) и тебе её снова нужно повторить — нажал вверх и в терминале появилась предыдущаяPкоманда, потыкал ещё пару раз вверх, а там команды как ты удалял мультики ещё на прошлой неделе. А значит история этих команд подгружается, а именно из файла .bash_history (именно с точкой, ибо скрытый ).


Посмотреть примерное содержимое такого файла можно с помощью доркаP filetype:bash_history . Там могут палиться имена файлов, пути к ним, логины и пароли, в общем красота. Что ещё хочу сказать. Даже если файл пустой сейчас, это не значит, что он будет оставаться пустым через неделю, месяц, год.


bash history 300x200 Будь как дома, путник или о фиче с домашней директорией на сайте

Какой-то рандомный bash_history из гугла


Для пользовавшихся командой less P- для вас есть отдельный файлик .lesshst, а вот тем, кто работает с СУБД, вам тоже отдельно .psql_history иP.mysql_history


 


Ещё естьPтакой файлик как .viminfo ( filetype:viminfo ) и его задача — хранить сессии при редактировании файлов, там тоже могут быть пути к файлам, в том числе и очень интересным. Файлы в директории сайта обозначаются со знака ~ (в линухе это обозначение домашней директории текущего пользователя, кагбе).


viminfo 216x300 Будь как дома, путник или о фиче с домашней директорией на сайте

Если приглядеться, вы увидите веб-шелл в директории


Иногда вообще можно встретить планировщик заданий — crontab или неотправленное письмо, которое будет лежать в файлеPdead.letter


А теперь вернёмся к SSH. В «хомяке» юзверя обычно лежит папочка .ssh, где лежит криптографическое добро.


Например,Pauthorized_keys — паблик ключи администраторов, которым можно подключаться удалённо к этой машине. В них можно узнать логины админов (а иногда и их email’ы) и… (внезапно) приватные ключи. Серьёзно, я встречал сайты, в файле /.ssh/authorized_keys лежали как паблик так и приват ключи, видимо администраторы не могли выбрать что туда засунуть icon smile Будь как дома, путник или о фиче с домашней директорией на сайте


authorized keys 300x224 Будь как дома, путник или о фиче с домашней директорией на сайте

Как-то так. Потёрт домен в логинах


А теперь подробнее о ключах. Да не от квартиры, блин, еслиPты не знаешь о каких нахрен ключах я говорю, можешь тыкнуть сюда . Так вот. Ключи обычно генерируются командой ssh-keygen, а теперь посмотри с каким именем файла сохраняются ключи? Правильно — id_rsa и id_rsa.pub (для приватного и публичного ключа соответственно). А это значит, что многие администраторы, которые подключались на другие хосты могли их просто-напросто не переименовать. Кстати, храняться они не только в папке .ssh но и в главной директории сайта.


id rsa 300x276 Будь как дома, путник или о фиче с домашней директорией на сайте

Crypto fail


А вот узнать хосты, к которым он подключался можно с помощью файла known_hosts, в итоге можно подключиться, управлять системой, взрывать дома, захватить мир. Разумеется, это список далеко не полный, можно продолжить той же папкойP.config, где софт хранит свои настройки или всякие тамP.thunderbird, .subversion, .mozilla, .skype, .filezilla (тысячи их), но врят-ли они будут установлены на сервачке. Хотя…


ВPдокладе я хотел показать так же статистику данного явления, но к сожалениюPвремени итак было мало и я неPуспел предупредить администраторов сайтов ибо их очень много. Поможешь мне %username%?

Вот скачанные bash_history, id_rsa иPauthorized_keys для сайтов входящих в TOP 1,000,000 по версии Alexa.


 



 

Какой итог? Можно, конечно, запрещать доступ к данным файлам, но мало ли какой софт может создать файл новый, неизвестный тебе файлик, который злоумышленник в итоге может прочитать.PЛучше перенести home на директорию выше. От греха подальше.


 


Будь как дома, путник или о фиче с домашней директорией на сайте данный пост отсюда: Bo0oM.ru


Безопасность Палю тему bash_history id_rsa PHDays
Alt text

Где кванты и ИИ становятся искусством?

На перекрестке науки и фантазии — наш канал

Подписаться