Меня взломали

#46 10 января 2013 в 00:29
Да и самое главное забыл дописать:
после того, как ломанули и прописали всякую фигню, я закинул в корень ай-болит и он сказал, что шелла нет!
#47 10 января 2013 в 00:50
Вот скриптик который проверит и поменяет все права, на папки поставит 755, на файлы 644.

Не надо забывать о пункте 3 и после работы скрипта поставить как написано.

1. ВСЕ серверное ПО должно быть ПОСЛЕДНЕЙ версии, включая CMS.
2. После установки InstantCMS на все ПАПКИ должны быть выставлены права 755, на все файлы 644.
3. После чего на директории /images, /upload, /cache, и всех вложенных в них выставляем права 777. (важно! для файлов .htaccess и index.html в этих директориях необходимо оставить права 644)
4. Для файла /includes/config.inc.php выставляем права 777 ТОЛЬКО НА ВРЕМЯ КОНФИГУГРИРОВАНИЯ! После права на этот файл должны стоять 644.
5. Владельцем ваших файлов и папок должен быть пользователь какой угодно, но НО НЕ тот от которого запускается веб сервер или работает php.
6. Для php необходимо настроить дериктиву open_basedir, ограничив директорией вашей www папки. В идеале chroot.
7. Закрыть для ВСЕХ ВСЕ порты на сервере, кроме 80 (443 при необходимости). Доступ к нужным портам из вне открыть для ваших IP или же воспользоваться другими технологиями доступа к портам.
8. Соблюдать принцип — каждый сервер для своего назначения, не нужно в один пихать все сервисы — почту, днс и т.п.
9. Разные пароли на разные доступы!!!
10. Не использовать на серверах ОС Windows.
11. Только лицензионное ПО.

Fuze

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

  1. <?php
  2. error_reporting(E_ERROR | E_PARSE);
  3. $dir = '/бла/бла/бла/бла/public_html/';// абсолютный путь
  4. class check_perms {
  5. function check_perms($curpath){
  6. if($curpath){
  7. if($dir = @dir($curpath)){
  8. while ($file = $dir-> read()){
  9. if($file != "." && $file != ".."){
  10.  
  11. $perms = substr(decoct(fileperms($curpath.$file)), 2);
  12.  
  13. if(is_dir($curpath.$file)){// если есть поддиректории то продолжаем рекурсию
  14. $this-> check_perms($curpath.$file."/");
  15.  
  16. if($perms>775 || $perms<775){
  17. if(!@chmod($curpath.$file, 0775)){
  18. $this->perms_d775 .= $curpath.$file."\n";
  19. }
  20. }
  21. }else{// файл
  22.  
  23. $ext = array_reverse(explode('.', $file));
  24.  
  25. if($ext['0']=='php' && ($perms>664 || $perms<664)){
  26. if(!@chmod($curpath.$file, 0664)){
  27. $this->perms_f664 .= $curpath.$file."\n";
  28. }
  29. }else if($ext['0']!='php' && ($perms>664 || $perms<664)){
  30. if(!@chmod($curpath.$file, 0664)){
  31. $this->perms_f664 .= $curpath.$file."\n";
  32. }
  33. }
  34. }
  35. // пытаемся сменить группу
  36. /*if($GLOBALS['group']){
  37.   $group = filegroup ($curpath.$file);
  38.   if($group!=$GLOBALS['group'] && !@chgrp($curpath.$file, $GLOBALS['group'])){
  39.   $this->group .= $curpath.$file."\n";
  40.   }
  41.   }
  42.   // пытаемся сменить владельца
  43.   if($GLOBALS['owner']){
  44.   $owner = fileowner ($curpath.$file);
  45.   if($owner!=$GLOBALS['owner'] && !@chown($curpath.$file, $GLOBALS['owner'])){
  46.   $this->owner .= $curpath.$file."\n";
  47.   }
  48.   }*/
  49. }
  50. }
  51. $dir->close();
  52. }
  53. }
  54. }
  55. }
  56. $files_map = new check_perms($dir);
  57. if($files_map->perms_d775){ echo 'Следующим директориям нужно выставить права доступа 0775:<pre>'.$files_map->perms_d775.'</pre>'; }
  58. if($files_map->perms_f775){ echo 'Следующим файлам нужно выставить права доступа 0775:<pre>'.$files_map->perms_f775.'</pre>'; }
  59. if($files_map->perms_f664){ echo 'Следующим файлам нужно выставить права доступа 0664:<pre>'.$files_map->perms_f664.'</pre>'; }
  60. //if($files_map->group){ echo 'Следующим файлам нужно выставить права доступа 0664:<pre>'.$files_map->group.'</pre>'; }
  61. //if($files_map->owner){ echo 'Следующим файлам нужно выставить права доступа 0664:<pre>'.$files_map->owner.'</pre>'; }
  62. ?>
Проверяйте, если есть желание и необходимость в нем, Можно думаю дописать что бы выставлял и пункту 3 нужные права, но там дел на 1 минуту.

Вроде все работает, но все же проверьте на тестовом любом, с любыми файлами выставив им сначала 777 допустим.
Отказ от ответственности и тд и тп, мопед не мой)))))
Прикрепленный файл
ups_6s7kk.zip 1 Кб
#48 10 января 2013 в 11:26
instantcms.ru/blogs/moi-put/delaem-slepok-sistemy.html поставить до кучи еще это и сканить утром и вечером по крону с отсылкой на мыло уведомления если что новое появилось.
#49 10 января 2013 в 11:52
вот вот, этот запустить, потом другой, потом третий....
когда можно было бы сделать компонент "безопасность" все это запускает и выводит админу инфу(который при необходимости и логи читает)
#50 10 января 2013 в 12:20

компонент "безопасность"

lezginka.ru
отличная мысль на счет отдельного компонеyта, помню подобная разработка была еще на php-nuke
#51 10 января 2013 в 18:40


3. После чего на директории /images, /upload, /cache, и всех вложенных в них выставляем права 777.

Fuze

Начал на эти папки менять права на 777 и окончательно запутался.
Например, в папках images и upload есть куча вложенных папок, в которых есть также вложенные папки — в них также менять права на 777 или не надо?
Там, например, в папке upload есть папка forum, с каждым новым сообщением на форуме в ней создается новая папка с правами 755. Это получается, что мне каждый день только в эту папку нужно залазить и менять права на 777 на каждую новую созданную тему?
Что-то тут не вижу логики.
Объясните пожалуйста.
#52 10 января 2013 в 19:00
Man, Это инструкция написана на после установки и на все дальнейшее время тудат лазить не надо. если не требует того внесение каких то изменений. Я так понимаю.
#53 10 января 2013 в 19:28
Я так и не понял, нужно ли менять права на 777 на папки, которые находятся во всей глубине:
Например, images/users/photos/medium
В папке images есть куча папок, в которых также есть папки, в которых также есть папки и в которых также есть другие папки.
#54 10 января 2013 в 23:20
Похоже, что только Fuze знает
#55 10 января 2013 в 23:25

Я так и не понял, нужно ли менять права на 777 на папки, которые находятся во всей глубине:

Man
да

  1. find /var/www/site.ru/ -type d -exec chmod 777 {} \;
#56 12 января 2013 в 16:45
у Man, нашлось через что ломали. Взлом через уязвимость JCE старой версии Joomla 1.5

хоть там и стоит инстант 1.9 версии — но он пока не причем.
#57 12 января 2013 в 17:52
Да, Инстант тут был не при чем, хотя из-за этого и не работали только сайты на Инстанте, а остальным движкам пофиг было.
#58 12 января 2013 в 18:41
picaboo, ну нифига себе… Не зря я вовремя шоп купила, надо срочно сносить джумловский шоп....))))
#59 12 января 2013 в 20:32
roflвот хотел на первую страницу этой темы перейти меня мой аваст не пускает, троян кричит здесь…
#60 12 января 2013 в 20:38
там код вируса поэтому
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожие темы

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.