Jump to content
  • 0

Как обезопасить WORDPRESS


Jey Val Star
 Share

Question

Здравствуйте.

Есть сайт на wordpress. На хостинг сайт попал 31.12.2014. Сам хостинг Зарегистрирован 30,12,2014.

Вчера (06,01,2015) сайт заблокировали - "нарушение правил рассылка Спама".

 

В архиве сайта (от хостера) НОД 32 (8 версия) нашел только один файл - sys.php в папке темы.

 

Хостер указал что его антивирус нашел 15 файлов

 

 

/wp-content/plugins/all-in-one-seo-pack/title.php: Php.Trojan.StopPos                 

/wp-content/plugins/event-calendar-newsletter/config.php: Php.Trojan.               
/wp-content/plugins/contact-form-7/wp-contact-form-7.php: Php.Trojan.                
/wp-content/plugins/contact-form-7/includes/css/proxy.php: Php.Trojan           
/wp-content/plugins/contact-form-7/modules/response.php: Php.Trojan.S             
/wp-content/plugins/akismet/img/view.php: Php.Trojan.StopPost FOUND
/wp-content/themes/elizav/img/cache.php: Php.Trojan.StopPost FOUND
/wp-content/blog.php: Php.Trojan.StopPost FOUND
/wp-includes/feed-rss2.php: Php.Trojan.StopPost FOUND
/wp-includes/class-smtp.php: Php.Trojan.StopPost FOUND
/wp-includes/category.php: Php.Trojan.StopPost FOUND
/wp-includes/template.php: Php.Trojan.StopPost FOUND
/wp-includes/ID3/module.audio-video.matroska.php: Php.Trojan.StopPost         
/wp-includes/js/tinymce/plugins/wpgallery/img/option.php: Php.Trojan.          
/wp-includes/js/swfupload/config.php: Php.Malware.Mailbot-1 FOUND

Но этих файлов нет в архиве. И нод на них не ругался...

 

Вопрос: как обезопасить WoredPress?

 

PS доступ к админке был тупым (admin/123456) - владелец сайта должен был сам поменять (по договору).

Есть вероятность что мой комп заражен и через Filezila злоумышленник получил доступ к FTP

Link to comment
Share on other sites

25 answers to this question

Recommended Posts

  • 0

у Filezila была такая проблема, все пароли и логины от ftp хранились в открытом виде в xml файле программы.

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

Link to comment
Share on other sites

  • 0

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

короче говоря вордпресс тут вряд ли при чем.

еще как вариант посмотрите логи, и сравните даты...

Link to comment
Share on other sites

  • 0

файлы, что шли с архивом (.log) пустые.

Сами файлы с вредным кодом изменены 05,01,2015, а другие 31,12,2014.

 

Насколько я понял - скорее это дырка в ftp (залили получив доступ по ftp)?

Link to comment
Share on other sites

  • 0

а через сам wordpress (через админку) залить shell возможно?

Конечно возможно. Либо через встроенный редактор файлов (отключаемый), либо посредством установки плагина/темы с шеллом (чтобы не палиться - этот плагин-тему можно удалить потом).

 

Кроме того, в последнее время подлатали немало критических дыр, советую обновляться :) Это, кстати, относится как к Вордпрессу, так и темам/плагинам

 

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

https://wordpress.org/plugins/wordfence/

https://wordpress.org/plugins/sucuri-scanner/

https://wordpress.org/plugins/better-wp-security/

 

Link to comment
Share on other sites

  • 0

hedgehog, а разве шелл не из под рута должен запускаться? по крайней мере там права должны отличаться от php, не?

 

Не совсем :) далеко не везде ты можешь вообще как владелец сайта получить рута, а злоумышленнику это и подавно не нужно. Задача - удаленный шел, т.е. скрипт, который позволит ему через веб (пхп скрипт) получить досутп к консоли. Это позволит, например, иметь полный доступ к файловой системе и заливать разные там ботнеты, пихать мылварь и так далее. Как раз недавно такое говно вычищал...

 

Обычно это файлик с кодом, запрятанным в base64 несколько раз, возможно выполняемый через eval (который может быть "перевернут", в моем случае это было lave :) ) , который принимает команды через POST/GET и выполняет их

Link to comment
Share on other sites

  • 0

А если использовать вариант запрета выполнения скрипта в папке через htaccess?

Крутая тема  :yahoo:

 

Вот только ты это можешь сделать в аплоадах (можно и нужно), а вот все остальное тебе выйдет боком. Если запретишь выполнять скрипты, как сайт работать будет?

Link to comment
Share on other sites

  • 0

По мне так любой код популярной cms безопасен. Если сайт тем не менее был взломан через уязвимость системы, то к сожалению пользователь на 99% ничего сделать не может так как не сможет провести 100% аудит кода и исправить те критические уязвимости, которые там содержатся - это задача разработчиков и комьюнити системы.

 

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

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

Для успокоение себя у многих систем есть модуль проверки файлов движка.

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

  • Like 1
Link to comment
Share on other sites

  • 0

Добавлю мысль. Чего я сделал и всем советую. Регистрируете нового пользователя и даете ему права админа. Потом самого админа делаете простым пользователем. Злоумышленник будет пытаться подобрать пароль к логину admin. Даже если получится, то сделать с сайтом ничего не сможет.

Link to comment
Share on other sites

  • 0

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

2. нельзя допускать чтобы пароль вообще брутился - 16 символов пароля и спим спокойно

Link to comment
Share on other sites

  • 0

Может это и действенно, НО, по крайней мере у меня так:

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

2. нельзя допускать чтобы пароль вообще брутился - 16 символов пароля и спим спокойно

 

  :rofl:
Link to comment
Share on other sites

  • 0

Та я разве обижаюсь на кого когда? :)

Тем более на юмор :)

 

12 символов в пароле кстати брутятся на хорошей ферме довольно быстро, а вот уже 16 анреал - то ли годы нужны то ли десятки лет, то есть смысла нет.

 

Так же последнее время закрываю и в htaccess доступ к путям, например административное управление в друпале идет /admin/*  папки такой нет, но есть путь

<FilesMatch "^admin$">AuthName "Hello"AuthType BasicAuthUserFile /путь до файла с паролями/.htpasswdRequire valid-user</FilesMatch>

Так же по хорошему не надо пользоваться ftp либо его блокировать на время когда он ненужен
Можно еще авторизовываться по ftp только с определенного ip

делаем в корне файл ftp.allow   в котором пишем наш ip

 

в общем способов много, чтобы в случае компрометации какого-то пароля злоумышленник не смог преодолеть какой-то барьер

Link to comment
Share on other sites

  • 0

если это VDS то FTP можно вообще удалить и использовать для загрузки файлов SFTP

 

12 символов в пароле кстати брутятся на хорошей ферме довольно быстро, а вот уже 16 анреал - то ли годы нужны то ли десятки лет, то есть смысла нет.

 

тут ещё имеет значение какие наборы символов используются. 12-значный пароль состоящий только из цифр будет брутится быстрее чем состоящий из цифр и букв, а если добавить туда ещё спец символы, добавить зависимость от регистра, добавить русские буквы, тогда все становится совсем по другому.

Link to comment
Share on other sites

  • 0


делаем в корне файл ftp.allow в котором пишем наш ip

ты наверное хотел сказать: .ftpaccess ?

Да, на разных виртуальных хостингах по разному

 


если это VDS то FTP можно вообще удалить и использовать для загрузки файлов SFTP
 
 
 

12 символов в пароле кстати брутятся на хорошей ферме довольно быстро, а вот уже 16 анреал - то ли годы нужны то ли десятки лет, то есть смысла нет.

 
тут ещё имеет значение какие наборы символов используются. 12-значный пароль состоящий только из цифр будет брутится быстрее чем состоящий из цифр и букв, а если добавить туда ещё спец символы, добавить зависимость от регистра, добавить русские буквы, тогда все становится совсем по другому.

Это да, если добавить еще китайский, то и 9 символов будут устойчивы :)

Link to comment
Share on other sites

  • 0
Это да, если добавить еще китайский, то и 9 символов будут устойчивы :)

сомневаюсь что много русскоязычных знают китайский или смогут визуально запомнить пароль с иероглифами =))

Link to comment
Share on other sites

  • 0

Это да, если добавить еще китайский, то и 9 символов будут устойчивы :)

сомневаюсь что много русскоязычных знают китайский или смогут визуально запомнить пароль с иероглифами =))
А если некоторые буквы по некоторому алгоритму заменять на китайские иероглифы? Если злоумышленник получит доступ только к БД то к своему удивлению он не отбрутит ни один хеш потому как не будет рассчитывать такой подставы )
Link to comment
Share on other sites

  • 0
Если злоумышленник получит доступ только к БД то к своему удивлению он не отбрутит ни один хеш потому как не будет рассчитывать такой подставы )

 

это же "соль" обыкновенная =)

Link to comment
Share on other sites

  • 0
пускай соль, только не хранить ее в БД и соль китайская :)

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

Link to comment
Share on other sites

  • 0
так соль надо рандомную уникальную для каждого пароля...

 

Как вы себе это представляете? =)) Одновременно не хранить в базе и рандомную? )))

 

Рандомизацию можно получить привязкой пароля к определённому емейлу

$hash = md5($salt.$pass.$email);

Зодно защитит от подмены ящика в базе.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy