[Info] Советы по защите Vbulletin и не только

ppbimix

Создатель
Регистрация
8 Янв 2008
Сообщения
12
Реакции
14
Если Вы держите свой vbulletin форум, то рано или поздно приходится думать о защите Вашего форума. Начнем:

1) Апдейтимся в самый конец своей линейки(3.5.х,3.6.х,3.7.х)

Описание: -
Почему?: JelSoft постоянно закрывает всплывшие уязвимости.

2) Переименовываем админку и модерку

Описание: Переименовываем админку, но в конфигурации ни в коем случае не пишем путь к нашей переименованной админке. Также переименовываем модерку, но её уже можно прописать в конфигурации(хотя тоже не желательно), так как она менее уязвима
Почему?: Если переименовать админку и не указать путь в конфигурации, то будет гораздо сложнее её найти и следовательно применить XSS или еще что похуже. Есть минусы: - редактирование профиля и добавление модераторов перестанут работать без ручной правки ссылок.

3) Ставим .htaccess на админку:

Описание:
a) если ip статичен, то
Код:
Код:
order allow, deny
deny from all
allow from you.ip.add.res
b) Также ставим дополнительный пароль:
Идём по ссылке: _http://vbsupport.org/htaccess.php, заполняем поля и дописываем по инструкции в наш файл htaccess.
Почему?: Дополнительное паролирование админки никогда не помешает.

4) Удаляем файлы и папки:

Описание:
a) Удаляем файлы:
/validator.php(если имеется)
/checksum.md5(если имеется)
b) Удаляем папки:
/install/
Почему?: Небезопасные файлы от нулёных версий могут дать возможность просматривать список файлов, а также папка install очень вредная=)

5) Перемещаем вложения и аватары

Описание:
Идем в админку, далее:
a) Вложения -> Метод хранения вложений
Вложения должны храниться в базе данных
Цитата:
Сейчас вложения сохраняются в базе данных
, если это не так, то переносим их туда с помощью кнопки 'Вперед'.
b) Аватары -> Тип хранения изображений пользователя
Аватары должны храниться в базе данных
Цитата:
Код:
Сейчас изображения хранятся в базе данных
, если это не так, то переносим их туда с помощью кнопки 'Вперед'.
Почему?: Линейка 3.5, если мне не изменяет память давала прямые ссылки на картинки, что ,при неправильной конфигурации хостинга, давало шанс залить через это шелл.
6)Выставляем права на папки
Описание: Если выполнен пункт 5), то теперь смело ставим права на папки custom***** 644, так как они нам тепеорь не нужны(или можете их удалить). Дальше, если Вы устанавливали vbulletin по инструкции, у вас все папке в /(корне) должны иметь права 644. Проверьте это, если не так, то выставите права 644.
Почему?: Затрудняем хакеру заливку шелла.
7) Нигде, никогда, никому не включаем опцию 'Разрешить html'.
Описание: -
Почему?: Возможность XSS атак при включенной функции.

8) Ставим .htaccess на папку includes

Описание: Ставим .htaccess на папку includes следующего содержания:
Код:
order allow, deny
deny from all
Почему?:
- если туда каким-либо образом зальют шелл, то не смогут зайти на него.
- если вас будут ддосить, то возможен такой вариант, когда интерпретатор php отваливается и остается только апач - и апача разрешает уже читать файлы php - следовательно можно будет прочитать все файлы из папки /includes/ - тот же config.php, что не очень хорошо.
9) Пихните в дир. с файлами, на которых стоят атрибуты 0777 такой хтаксесс: - (c) kerk _http://vbsupport.org/forum/member.php?u=30
Описание:
Код:
Код:
RemoveHandler .phtml
RemoveHandler .php
RemoveHandler .php3
RemoveHandler .php4
RemoveHandler .php5
RemoveHandler .cgi
RemoveHandler .exe
RemoveHandler .pl
RemoveHandler .asp
RemoveHandler .aspx
RemoveHandler .shtml
<Files ~ "\.php|\.phtml|\.cgi|\.exe|\.pl|\.asp|\.aspx|\.shtml">
Order allow,deny
Deny from all
</Files>
добавить своих хэндлеров, если необходимо
все, в этой директории никакой из перечисленных скриптов, выполнить нельзя
Почему?: -

10) Устанавливаем хак: Для просмотра ссылки Войди или Зарегистрируйся

Описание:
Импортируем хак и создаем файл: logfile_worms.txt с правами на запись вебсервера(777)
Почему?: -
Защита от кучи 'плохих' присваиваний переменных:) Подробнее в посте ниже


11) Отредактируйте config.php, впишите id администраторов в поле undeletable user(неудаляемые/неизменяемый пользователи).

Описание:
/vb/includes/config.php. Просто вписать id администраторов, после того когда внесли все необходимые изменения в профиль.
Почему?: -


12) После удаления модов/хаков не забывайте удалять файлы, которые Вы закачали вместе с ними.

Описание: -
Почему?: -


13) Никогда не сохраняйте бэкапы в папке public_html.

Описание: -
Почему?: Они будут доступны для скачивания любому, кто узнает имя бэкапа.

14) Установить плагин "Инспектор файлов". Автор - Ghost (Для просмотра ссылки Войди или Зарегистрируйся)
Описание:
Лазая по своим старым скриптам, напоролся на этот продукт -- Инспектор файлов. Это несколько модулей для vBulletin, при помощи которых можно сохранять в базе данных список существующих файлов и время от времени проверять, не изменились ли какие из них (для каждого файла сохраняется размер, владелец и права доступа) -- встроенная cron-задача уведомит администратора по почте о найденных несоответствиях. Можно сохранять в БД несколько различных копий (ревизий) списков файлов для сравнения (автоматическая проверка с уведомлением на email сверяется только с последней ревизией). Внешний вид и доступные настройки можно посмотреть на скриншотах.

INSTALL: Для установки необходимо залить два PHP-файла из архива на сервер и импортировать продукт из файла "product-gfi.xml".

UPDATE: Обновление версий не предусмотрено, так что для установки новой рекомендуется сперва удалить предыдущую версию.

З.Ы. Продукт успешно работал на всех версиях от 3.6.8 до 3.8.1 включительно. Правда ссылка в выпадающее меню в панели навигации добавлялась в разные места, но это уже мелочи.
Скачать плагин можно по ссылке: Для просмотра ссылки Войди или Зарегистрируйся или Для просмотра ссылки Войди или Зарегистрируйся (необходима регистрация)

Почему?: Незаменимая вещь в поиске шеллов на сайте, но ставить её необходимо заранее.

----------

Небольшой итог:

доступ к админке получить достаточно сложно - следовательно залить шелл через админку тоже, значит можно залить шелл через уязвимости воблы, но если лить в инклуды - там есть для некоторых хаков файлы, которые требуют 777- то у нас на папке includes стоит deny from all - шелл не заюзать!
а на остальные папки можно ставить права 644, если проделали все пункты - тогда достаточно сложно будет залить при правильной настройке chroot'инга(или как его там- на не совсем трезвую голову вылетело слово)...
также добавилась защита от самих админов, которые лазают где не попадя, тем самым сажая себя на XSS'ки и трояны.
(c) me
 

Ergoline

madao
Регистрация
28 Июл 2006
Сообщения
17
Реакции
469
Это все замечательно...
но вот если троянцы фтп-пароль уведут(понятно что надо следить... но бывает и так), то толку будет не так много - проще будет заново установить, чем вычищать:nezn: эксплоиты и т.п.
(возможно я не прав?)
 

ppbimix

Создатель
Регистрация
8 Янв 2008
Сообщения
12
Реакции
14
Подробнее к 10 пункту:
Для просмотра ссылки Войди или Зарегистрируйся устанавливаем этот хак. Перевел там пару слов:))
Оригинал на vb.org'e:
Для просмотра ссылки Войди или Зарегистрируйся
Фильтрация плохих слов
Код:
$securityrules = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(',
                   'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20',
                   'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20', 'echr=',
                   'esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', '%20mdir', 'mdir(',
                   'mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm',
                   'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(',
                   'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 'chown(', 'chgrp(',
                   'locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20', 'kill%20', 'kill(', 'killall',
                   'passwd%20', '%20passwd', 'passwd(', 'telnet%20', 'vi(', 'vi%20',
                   'insert%20into', 'select%20', 'nigga(', '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20',
                   '$_request', '$_get', '$request', '$get', '.system', 'http_php', '%20getenv', 'getenv%20',
                   '/etc/password','/etc/shadow', '/etc/groups', '/etc/gshadow',
                   'http_user_agent', 'http_host', '/bin/ps', 'wget%20', 'uname\x20-a', '/usr/bin/id',
                   '/bin/echo', '/bin/kill', '/bin/', '/chgrp', '/chown', '/usr/bin', 'g\+\+', 'bin/python',
                   'bin/tclsh', 'bin/nasm', 'traceroute%20', 'ping%20', '.pl', '/usr/x11r6/bin/xterm', 'lsof%20',
                   '/bin/mail', '.conf', 'motd%20', 'http/1.', '.inc.php', 'config.php', 'cgi-', '.eml',
                   'file\://', 'window.open', '<script>', 'javascript\://','img src', 'img%20src','.jsp','ftp.exe',
                   'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe', '.htpasswd',
                   'servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js', '.jsp', '.history',
                   'bash_history', '.bash_history', '~nobody', 'server-info', 'server-status', 'reboot%20', 'halt%20',
                   'powerdown%20', '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache', '/servlet/con',
                   '<script', '/robot.txt' ,'/perl' ,'mod_gzip_status', 'db_mysql.inc', '.inc', 'select%20from',
                   'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', 'php_', 'phpinfo()', '<?php', '?>', 'sql=',
                   '_global', 'global_', 'global[', '_server', 'server_', 'server[', '/modules', 'modules/', 'phpadmin',
                   'root_path', '_globals', 'globals_', 'globals[', 'ISO-8859-1', 'http://www.google.com/search', '?hl=',
              '.txt', '.exe', 'ISO-', '</', '>', '<', 'SELECT', 'FROM%20', 'alert', 'document.cookie', '*', 'c99shell.php', 'shell.php', 'cmd.php', 'cmd.txt',
                    'c99.gif', '/r57.txt', 'http*', '$*', '/backdoor.php', '/backdoor.gif', '/backdoor.txt', '/shell.txt',
                    'smf_members', 'sourcedir=', 'dirname=', 'CREATE%20', 'UNION%20', '_members%20', 'passwd',
                    'script', '<img', '<?', 'WHERE', 'FLOOD', 'flood', 'floodding', 'ls -', 'uname', 'phpinfo', 'cat%20',
                    'AVWS', 'avws', 'acunetyx', 'ACUNETYX', 'boot.ini', 'magic%20string', 'STRING', '/membri/',
                    '/membri2/', '/membri2', '/membri', 'r57.php?phpinfo', 'r57.php?phpini', 'r57.php?cpu', 'r57.php?',
                    '|dir', '&dir&', 'printf', 'acunetix_wvs_security_test', '=http', 'converge_pass_hash', 'st=-9999{SQl]',
                    'st=-', 'cat%20', 'include', '_path=');

И создаем файл в корне с chmod'ом 777:
logfile_worms.txt

Добавлено через 1 минуту
Это все замечательно...
но вот если троянцы фтп-пароль уведут(понятно что надо следить... но бывает и так), то толку будет не так много - проще будет заново установить, чем вычищать:nezn: эксплоиты и т.п.
(возможно я не прав?)
вопрос явно не по теме, я же пишу о защите vbulletin, а не вашего компьютера:)
 

Дмитрий Кесаев

aka Zlobniy Babko
Регистрация
10 Май 2007
Сообщения
1.332
Реакции
1.235
  • Заблокирован
  • #4
Если надо - все равно сломают. Вот на vbsupport.org - писал один, что залатался и закрылся по последнему писку моды (то что ИМХО выше описано) - один хрен турки сломали.


Добавлю от себя!!!

На файл хтаксесс - ставить атрибуты 444
 

ppbimix

Создатель
Регистрация
8 Янв 2008
Сообщения
12
Реакции
14
Если надо - все равно сломают. Вот на vbsupport.org - писал один, что залатался и закрылся по последнему писку моды (то что ИМХО выше описано) - один хрен турки сломали.
Добавлю от себя!!!
На файл хтаксесс - ставить атрибуты 444
если выполнить все пункты - то конкретно через движок воблы будет практически невозможно сломать(на самом деле сломать можно все, просто разные уровни мастерства должны быть:) ), другое дело способов много, таких как дырявый хостинг, трояны, брутфорс, другие веб-приложения помимо vbulletin или даже СИ. Тут описана хорошая защита именно для форума, хотя необходима именно комплексная защита. Сам админю достаточно крупные в рунете форумы(на VB), некоторые есть даже на 3.6.8(старый очень двиг), но похекать так никто и не смог, хотя пытались, поэтому думаю, что полезное тут все-таки есть:)
А и еще хотелось добавить сюда, чтобы админы никогда не указывали свой настоящий e-mail(т.к. обычно эти имайлы на бесплатных почтовиках(mail, yandex, gmail т т.д.), они к сожалению тоже подвержены взлому). лучше что-нить в духе nickname@nickname.come, чтобы невозможно было восстановить пароль никому;)
 

Rassell

Гуру форума
Регистрация
7 Фев 2009
Сообщения
388
Реакции
52
Это защита для нулленых версий или для лицензии тоже ? :) и еще вопрос немного не по теме: можно ли как-нибудь обезопасить себя от рипов ? то есть, чтобы мой шаблон не могли скопировать и т.д. )) ну например доступ как-нибудь куда-нибудь прикрыть :)
 

ppbimix

Создатель
Регистрация
8 Янв 2008
Сообщения
12
Реакции
14
Это защита для нулленых версий или для лицензии тоже ? :) и еще вопрос немного не по теме: можно ли как-нибудь обезопасить себя от рипов ? то есть, чтобы мой шаблон не могли скопировать и т.д. )) ну например доступ как-нибудь куда-нибудь прикрыть :)
для любых версий:)
Можно запутать html код, но умельцы всегда срипают если захотят, думаю надо защищать графически(т.е. побольше названий сайта твоего на кнопках и т.д.).
 

Rassell

Гуру форума
Регистрация
7 Фев 2009
Сообщения
388
Реакции
52
для любых версий:)
Можно запутать html код, но умельцы всегда срипают если захотят, думаю надо защищать графически(т.е. побольше названий сайта твоего на кнопках и т.д.).
Мне кажется, что название на кнопках врятли поможет )) ведь есть фотошоп и в нем можно сделать все что угодно ))) название на кнопках может только осложнить задачу для риппера ))) и может быть НЕ будет делать рип, но если захочет, то сделает ))
 

cat13

Постоялец
Регистрация
22 Мар 2009
Сообщения
84
Реакции
25
Если браузер уже загрузил страницу пару раз то все есть в хэшэ там путай не путай рисуй не рисуй на кнопках не поможет:(
 

Rassell

Гуру форума
Регистрация
7 Фев 2009
Сообщения
388
Реакции
52
Если браузер уже загрузил страницу пару раз то все есть в хэшэ там путай не путай рисуй не рисуй на кнопках не поможет:(
Мне кажется, что люди все равно придумают какую-нибудь защиту от рипов )) тем более для производителей движков это будет выгодно, так как клиенты потянуться :)
 
Сверху