Пред исотрия..
Был человек, скрипт у него был.. однажды туда кто-то залез.
Мне заплатили не мало денег за его полную проверку, приведения в порядок, закрытие дырок
приведение в читабельный и пару доработок.
Скрипт жил очень долго спокойно.
На прошлой неделе объявился человек, сообщивший мне содержимое баз, отписался пару раз в новостях
и натворил еще пару милых дел.
Два дня я переписывал по новой всё вдоль и поперек, проискал все возможные инъекции , XSS , бэкдоры
и что только не искал. Пересмотрел каждый из сотни файлов построчно, включил magic_quotes наконец,
поменял все пароли от всех баз, от всех ФТП, от всех контрольных панелей, поменял названия всем файлам, изменил расширения, переписал mod_rewrite .
на следующий день повторилось всё по новой..
Причём ново испеченный хакер выходил в открытый контакт по асе, не ставил никаких требований,
иногда бесполезно коммантировал некоторые участки кода..
Сообщил мне какие домены припаркованны на том же аккаунте и новые пароли от базы.
решил проверить все логи - ничего особенного в них не нашёл. Решил заманить его.
Создал на сервере файл phpinfo предложил посмотреть под предлогом "проверить конфигурацию сервера" , а потом найти его п в логах и дальше фильтровать по ним.
В ответ получил сообщения вида "Яяя ? Нет.. я их уже давно видел phpinfo иначе я бы не залез"..
Чуть позже он решил снизойти до того, чтобы зарегистрироваться на этом сайте.. наконец то я получил его йп.. и опять ничего подозрительного в логах не нашёл. Не в посещениях своих "бэкдоров", ни в логах ошибок.. Через 10 минут странствий по сайту, он сообщил что ему хватит и он удаляется..
Через минуту записи о нём в базе не было..
Ну я обрадовался.. полетел смотреть логи .. сейчас то я точно его поймаю..
На этот раз, там не только ничего подозрительно не было, но там вообще ничего не было..
На следующий день он мне сообщил уже все доммены припаркованные к другому аккаунту, моему персональному и показал содержимое нескольких скриптов. Сказал что виноват вообщем то хостер.
на вопросы что да как не отвечал
А я тем не менее пришёл я к выводу что действительно виноват хостер.
Потому что как минимум open_basedir стоит на директорию моего аккаунта .
Одного из его сообщений было следуюзего содержания:
<<
только скажу сразу что в логах меня нигде нет а если и как-то найдут то файлы закодированы и без ключа не смогут раскодировать. так что писать хостеру нет смысла
>>
Разумеется я попробовал получить доступ к файлам выше своей домашней, в ответ на все попытки разумеется получал access denied ,кроме папки /tmp
содержимое которой я досконально на всякий случай изучил.
остаётся теперь такой важный вопрос, что же такого он увидел в этом phpinfo() , или сказал он это просто так, но тем не менее получил контроль над содержимым файлов на сервере.
Менять содержимое он сказал не может, а вот читать он может, и я в этом вполне убедился..
Я даже не буду спрашивать как, но вопрос в том, как теперь выбрать правильно хостера
с которым я не буду подвержен такой фигне..
--
Просто мысли
что он мог увидеть в phpinfo ? Неправильно настроенный open_basedir ?
Чем могла быть вызвана проблема ? Направильными правами на папки ?
На запись прав у него нет, есть на чтение..
По моим эскпериментам делается это не из другого пользовательского аккаунта, а значит он как то внедрил что на сервер.
Пока писал абзац выше, он признался что это не программа, а самописный скрипт..
Запустить его он мог либо через дырку в чьём то аккаунте, которую ему еще нужно было найти.
Судя по гуглу его аси - он рнр программист. Активности по другим языкам у него не заметил.
Возможно он запускал какуюто системную комманду, доступ к которой разрешил себе каким то образом. Есть у кого идеи ? phpinfo прикладываю
1. valenok - 12 Февраля, 2009 - 18:12:38 - перейти к сообщению
2. EuGen - 12 Февраля, 2009 - 18:18:55 - перейти к сообщению
На phpinfo ссылка битая
3. valenok - 12 Февраля, 2009 - 18:20:29 - перейти к сообщению
поправил
--
disable_functions no value no value
Как там будет format C;/ по unixовски ?
--
disable_functions no value no value
Как там будет format C;/ по unixовски ?
4. EuGen - 12 Февраля, 2009 - 18:22:29 - перейти к сообщению
rm -Rf /
Ссылка все еще битая
Ссылка все еще битая
5. valenok - 12 Февраля, 2009 - 18:26:54 - перейти к сообщению
исправил еще раз
6. EuGen - 12 Февраля, 2009 - 18:30:38 - перейти к сообщению
А что за /home/lord?
+
http://www[dot]linux[dot]org[dot]ru/view-mes[dot][dot][dot]sp?msgid=1690256
там пропатчено?
+
http://www[dot]linux[dot]org[dot]ru/view-mes[dot][dot][dot]sp?msgid=1690256
там пропатчено?
7. valenok - 12 Февраля, 2009 - 18:35:32 - перейти к сообщению
/home/lord домашняя папка аккаунтов виртуального хостинга
насчёт пропатчено не знаю. Проверю.
насчёт пропатчено не знаю. Проверю.
8. EuGen - 12 Февраля, 2009 - 18:37:59 - перейти к сообщению
Судя по всему, имеет место атака с точки зрения ОС, то есть уровня за пределами PHP. Вряд ли без участия хостера можно "заткнуть" такую дыру. Это, правда, мое первое впечатление
+
disable_functions readfile,system,exec,fopen,file_get_contents,fgets
что-то в этом роде (может не помочь, если сделать у одного аккаунта)
+
disable_functions readfile,system,exec,fopen,file_get_contents,fgets
что-то в этом роде (может не помочь, если сделать у одного аккаунта)
9. valenok - 12 Февраля, 2009 - 18:40:13 - перейти к сообщению
EuGen хостер то и будет затыкать, но если еще не заткнул, то я пожалуй помогу ему заткнуть во благо остальных..
echo exec('ls -l /home/user1/domains/domain.ru/public_html/index.php');
-rw-r--r-- 1 user1 user1 7216 Feb 11 19:56 /home/user1/domains/domain.ru/pu blic_html/index.php
user1 и domain.ru я заменил немного.
Выглядит достаточно важны..
echo exec('ls -l /home/user1/domains/domain.ru/public_html/index.php');
-rw-r--r-- 1 user1 user1 7216 Feb 11 19:56 /home/user1/domains/domain.ru/pu blic_html/index.php
user1 и domain.ru я заменил немного.
Выглядит достаточно важны..
10. EuGen - 12 Февраля, 2009 - 18:47:54 - перейти к сообщению
То есть всем можно чтение делать .. странно
Для файлов хватило бы и исполнения процессом веб-сервера. Для каталогов - только чтение (даже исполнение, то есть листинг запрещен).
Для файлов хватило бы и исполнения процессом веб-сервера. Для каталогов - только чтение (даже исполнение, то есть листинг запрещен).
не сработает?)