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

Тема в разделе "vBulletin", создана пользователем ppbimix, 24 сен 2009.

  1. ppbimix

    ppbimix Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    11
    Симпатии:
    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 (Перейти по ссылке)
    Описание:
    Скачать плагин можно по ссылке: Перейти по ссылке (необходима регистрация)

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

    ----------

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

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

    Ergoline madao

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

    ppbimix Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    11
    Симпатии:
    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 минуту
    вопрос явно не по теме, я же пишу о защите vbulletin, а не вашего компьютера:)
     
  4. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

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


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

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

    ppbimix Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    11
    Симпатии:
    14
    если выполнить все пункты - то конкретно через движок воблы будет практически невозможно сломать(на самом деле сломать можно все, просто разные уровни мастерства должны быть:) ), другое дело способов много, таких как дырявый хостинг, трояны, брутфорс, другие веб-приложения помимо vbulletin или даже СИ. Тут описана хорошая защита именно для форума, хотя необходима именно комплексная защита. Сам админю достаточно крупные в рунете форумы(на VB), некоторые есть даже на 3.6.8(старый очень двиг), но похекать так никто и не смог, хотя пытались, поэтому думаю, что полезное тут все-таки есть:)
    А и еще хотелось добавить сюда, чтобы админы никогда не указывали свой настоящий e-mail(т.к. обычно эти имайлы на бесплатных почтовиках(mail, yandex, gmail т т.д.), они к сожалению тоже подвержены взлому). лучше что-нить в духе nickname@nickname.come, чтобы невозможно было восстановить пароль никому;)
     
  6. Rassell

    Rassell

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

    ppbimix Создатель

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

    Rassell

    Регистр.:
    7 фев 2009
    Сообщения:
    288
    Симпатии:
    45
    Мне кажется, что название на кнопках врятли поможет )) ведь есть фотошоп и в нем можно сделать все что угодно ))) название на кнопках может только осложнить задачу для риппера ))) и может быть НЕ будет делать рип, но если захочет, то сделает ))
     
  9. cat13

    cat13 Постоялец

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

    Rassell

    Регистр.:
    7 фев 2009
    Сообщения:
    288
    Симпатии:
    45
    Мне кажется, что люди все равно придумают какую-нибудь защиту от рипов )) тем более для производителей движков это будет выгодно, так как клиенты потянуться :)