Взлом форума через вложение

Автор virtualbrest, 30 января 2014, 18:56:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

virtualbrest

Каким-то образом на форум залили вложение (2.0.7), и это при том, что вложениями могут пользоваться только пользователи с 3 и более постами. При этом в базе данных у вложения нет хозяина, тобишь 0 в соответствующей колонке id_member.

Вложение было wso.php.jpg. Файл был закодирован и помещен в папку вложений. В папке был .htaccess родной с запретом PHP. Далее были установлены 2 темы, и на них переключен форум. Что там оно дальше делало, не могу сказать, так как все снес, но архив этой гадости сделал, включая вложение.

Вопрос -

1. каким образом это стало возможным, если по идее вложения должны проверяться форумом перед загрузкой, и если это PHP - не обрабатываться.

2. как смогли узнать имя файла после того, как вложение было добавлено, имена ведь шифруются, может есть какой-то стандартный метод шифрования, которым можно воспользоваться?

Что делать?

1. Изменил папку с вложениями на выше корня сервера, соответственно оттуда из интернета ничего нельзя запустить, потому как выше корня.

Что ещё можно сделать, дабы обезопасить себя  от этого безобразия?

(root)

уверены, что у Вас apache руководствуется htaccess?
содержимое htaccess после взлома не менялось?

virtualbrest

#2
Нет, не поменялось, вроде руководствуется, так как выше форума работает сайт и на нем RewriteRule правила есть, без которых не было бы доступа к страничкам...   Но все же проверю.




Проверил. Все работает:


<Files *>
Order Deny,Allow
Deny from all
Allow from localhost
</Files>

RemoveHandler .php .php3 .phtml .cgi .fcgi .pl .fpl .shtml .asp .aspx .php4 .php5


При вызове PHP скрипта отдает 404 ошибку, по идее все как надо.

У меня есть мысли, что не этим путем был взлом, так как узнать имя файла после его загрузки проблематично, и он же там без расширения, соответственно в нем не будет работать PHP. Но тогда я не могу понять как потом удалось установить на форуме свои темы, установили 2 шт, с именем - цифрой 5 и 6, просто копии основной темы, но модифицированной под какие-то свои вредоносные дела.

(root)

Цитата: virtualbrest от 30 января 2014, 18:56:30
В папке был .htaccess родной с запретом PHP. Далее были установлены 2 темы, и на них переключен форум.
права на все папки были 0777 ?
ЦитироватьЧто ещё можно сделать, дабы обезопасить себя  от этого безобразия?
назначить владельцем всех папок root'a (или любого юзера, отличного от того, под которым выполняется апач) и поставить права 0755 везде, кроме папки вложений и аватар

virtualbrest

Да нет, права 755, и пользователь свой, но не рут конечно. На сервере больше никого, только я. За это время уже 3 необъяснимых для меня события:

1. Один из файлов стал нулевой длинны, время доступа не изменилось
2. Форум смогли как-то взломать, предположительно через закачку (описано выше).
3. Сегодня другой мой сайт (на том же хостинге) вдруг оказался с другой темой, при этом в теме никаких изменений по времени доступа (ессно первым делом проверил). Пришлось поднять просто папку темы из бэкапа.
4. Один из файлов третьего сайта, тоже на том же хостинге, с тем же пользователем (у всех один) вдруг оказался обрезанным, просто небыло куска, начала файла. Естественно сайт лег, так как файл был ключевой. Найти его стоило времени, так как пришлось тыкаться без намека, ведь время доступа к файлу не изменилось, более того, такое ощущение, что время изменения файла стало меньше, чем фактическое, когда я его мог менять...

Видимо, все это следствия одной проблемы, которая завелась на сервере.

(root)

Цитата: virtualbrest от 31 января 2014, 19:34:14
Да нет, права 755, и пользователь свой, но не рут конечно.
ключевой момент - д.б. пользователь, отличный от юзера, от которого запускается апач
Сами подумайте, если нет прав на запись, тут как ни ломай php и apache - тему не поменяешь. Единственная дырка - это папка вложений, но с ее помощью опять же повторюсь - тему не поменяешь, т.к. на папку Themes прав на запись в боевом режиме сервера быть не должно.
Напишите скрипт, дающий права на папки(условно - режим отладки), и еще скрипт, возвращающий права на папки (условно - боевой режим). Надо вам поменять тему или закачать пакет на сервер - запускаете первый скрипт, закончили мучить сервер - запускаете второй.
Цитировать
1. Один из файлов стал нулевой длинны, время доступа не изменилось
вы точно там один бываете?
теоретически можно изменить любой файл, при этом выставить время доступа любое, но для этого нужен рут
Цитировать2. Форум смогли как-то взломать, предположительно через закачку (описано выше).
3. Сегодня другой мой сайт (на том же хостинге) вдруг оказался с другой темой, при этом в теме никаких изменений по времени доступа (ессно первым делом проверил). Пришлось поднять просто папку темы из бэкапа.
4. Один из файлов третьего сайта, тоже на том же хостинге, с тем же пользователем (у всех один) вдруг оказался обрезанным, просто небыло куска, начала файла. Естественно сайт лег, так как файл был ключевой. Найти его стоило времени, так как пришлось тыкаться без намека, ведь время доступа к файлу не изменилось, более того, такое ощущение, что время изменения файла стало меньше, чем фактическое, когда я его мог менять...

Видимо, все это следствия одной проблемы, которая завелась на сервере.
логи в апаче в дебаг и наблюдайте, что делают

virtualbrest

Да один я там, посмотрел журнал, никто кроме меня на сервер не входил, буду биться дальше, спасибо за советы.

(root)

Цитата: virtualbrest от 03 февраля 2014, 10:16:02
Да один я там, посмотрел журнал, никто кроме меня на сервер не входил, буду биться дальше, спасибо за советы.
еще в официальном ФАКе есть несколько советов http://wiki.simplemachines.org/smf/I_think_I_have_been_hacked
в частности, скачать оттуда файл kb_scan.php, положить на форум и запустить сканирование под админом

virtualbrest

Нарыл в нете что надо ещё вот что:

cgi.fix_pathinfo=0

Сделал, действительно при переезде на новый сервер не добавил это в php.ini

В целом пока тихо, ещё стояли права на исполнение в папке аттачей, тоже подправил это безобразие, и напомню, вынес её за пределы WWW (тоесть выше уровня корневой директории домена).

Всем спасибо за советы.