Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix (https://forum.antichat.xyz/forumdisplay.php?f=43)
-   -   Возможные уязвимости хостеров. Apache. (https://forum.antichat.xyz/showthread.php?t=7348)

Егорыч+++ 22.06.2005 19:03

Возможные уязвимости хостеров. Apache.
 
Тема, которая довольно интересна.

99% хостеров работают на основе Apache. К сожалению у апача в плане безопасности много недостатков, воспользоваться которыми может взломщик.

Потенциальные уязвимости:

1) Возможность просмотреть, кто хостится на вашем сервере(или не вашем).

2) Возможность соседа забраться ваш ваш файл у которого права 755.

3) Непонятно зачем нужный режим php - SafeMode.

4) Возможность обхода mod_security или модулей, которые следят за безопасностью.

5) Чтение логов. Заранее понятная структура папок.

и т д.

Постепенно введу в курс дела. Если есть у кого, что добавить сейчас пишите тут.
__________________
http://antichat.ru/pic/inf.jpg
Редактировать/Удалить сообщение

nerezus 22.06.2005 20:04

(1) и (2)
хм, я бы не сказал, что это недостатки, это обычное разграничение прав

(3)
это вообще не при чем :)

(5)
А это достоинство ;)

Егорыч+++ 22.06.2005 21:54

Хорошо. Собственно это сворее недостатки. Лукавство хостингов, о чем они не говорят.

Например.
по 1)

На многих хостингах можно получить список акаунтов просто командой
cat /etc/passwd. Для примера валуехост. Вот часть файла.

vispar95:*:2370:1000:vispar95:/pub/home/vispar95:/usr/local/bin/bash narina:*:2372:1000:narina:/pub/home/narina:/usr/local/bin/bash betaneli:*:2377:1000:betaneli:/pub/home/betaneli:/usr/local/bin/bash cmo144:*:2378:1000:cmo144:/pub/home/cmo144:/usr/local/bin/bash ark53:*:2379:1000:ark53:/pub/home/ark53:/usr/local/bin/bash jaluzi90:*:2380:1000:jaluzi90:/pub/home/jaluzi90:/usr/local/bin/bash dvision:*:2383:1000:dvision:/pub/home/dvision:/usr/local/bin/bash pes75:*:2384:1000:pes75:/pub/home/pes75:/usr/local/bin/bash fbgroup5:*:2386:1000:fbgroup5:/pub/home/fbgroup5:/usr/local/bin/bash zabor76:*:2391:1000:zabor76:/pub/home/zabor76:/usr/local/bin/bash plsamara:*:2392:1000:plsamara:/pub/home/plsamara:/usr/local/bin/bash eyeinst1:*:2393:1000:eyeinst1:/pub/home/eyeinst1:/usr/local/bin/bash proton29:*:2395:1000:proton29:/pub/home/proton29:/usr/local/bin/bash flexi42:*:2396:1000:flexi42:/pub/home/flexi42:/usr/local/bin/bash august68:*:2397:1000:august68:/pub/home/august68:/usr/local/bin/bash babsley2:*:2403:1000:babsley2:/pub/home/babsley2:/usr/local/bin/bash demark61:*:1001:1000:demark61:/pub/home/demark61:/usr/local/bin/bash lens62:*:1002:1000:lens62:/pub/home/lens62:/usr/local/bin/bash ppb:*:3307:8081:Petr Pokryshev:/home/ppb:/usr/local/bin/bash ecogermet:*:1008:1000:ecogermet:/pub/home/ecogermet:/usr/local/bin/bash batuto:*:3308:3308:Yan Batuto:/home/batuto:/sbin/nologin skspad:*:1019:1000:skspad:/pub/home/skspad:/usr/local/bin/bash leokan:*:1005:1000:leokan:/pub/home/leokan:/usr/local/bin/bash nreal72:*:1034:1000:nreal72:/pub/home/nreal72:/usr/local/bin/bash lifearmy:*:1036:1000:lifearmy:/pub/home/lifearmy:/usr/local/bin/bash bystrov:*:1039:1000:bystrov:/pub/home/bystrov:/usr/local/bin/bash cheget76:*:1042:1000:cheget76:/pub/home/cheget76:/usr/local/bin/bash balta110:*:1045:1000:balta110:/pub/home/balta110:/usr/local/bin/bash rbmspa69:*:1053:1000:rbmspa69:/pub/home/rbmspa69:/usr/local/bin/bash zaur66:*:1059:1000:zaur66:/pub/home/zaur66:/usr/local/bin/bash max:*:3311:3311:Maxim Sergeev:/home/max:/usr/local/bin/bash mirraya9:*:1065:1000:mirraya9:/pub/home/mirraya9:/usr/local/bin/bash mbaclub:*:1073:1000:mbaclub:/pub/home/mbaclub:/usr/local/bin/bash ggau85:*:1033:1000:ggau85:/pub/home/ggau85:/usr/local/bin/bash gax67:*:1081:1000:gax67:/pub/home/gax67:/usr/local/bin/bash lifearmy:*:1093:1000:lifearmy:/pub/home/lifearmy:/usr/local/bin/bash stor:*:3312:3312:Pavel Storozhev:/home/stor:/bin/tcsh staff799:*:1098:1000:staff799:/pub/home/staff799:/usr/local/bin/bash orendom8:*:1101:1000:orendom8:/pub/home/orendom8:/usr/local/bin/bash snd:*:3313:3313:Sergey Daniloff:/home/snd:/sbin/nologin titeleco:*:1111:1000:titeleco:/pub/home/titeleco:/usr/local/bin/bash strong:*:1133:1000:strong:/pub/home/strong:/usr/local/bin/bash labreact:*:1004:1000:labreact:/pub/home/labreact:/usr/local/bin/bash kabanov:*:1007:1000:kabanov:/pub/home/kabanov:/usr/local/bin/bash mgorod:*:1020:1000:mgorod:/pub/home/mgorod:/usr/local/bin/bash

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

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

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

Егорыч+++ 23.06.2005 17:59

Пункт 3)

Многие хостеры ограничивают пользователя запуская PHP к Safemode. Этот режим как бы делает безопасным работу php, но никак не безопасную работу для сервера хостера. Поэтому если у вам не получается полазить по серверу с помощью PHP, вы можете это попробовать сделать с помощью Perl. Вполне возможно, что хостер что нибудь забыл.

Егорыч+++ 24.06.2005 13:47

4) Возможность обхода mod_security

В общем модуль обходится вообще без проблемм. Да он фильтрует GET и POST переменные, да и вообще еще довольно много параметров, но этот модуль не в состоянии отследить простую вещь.

<?
echo system("cat /etc/passwd");
?>

nerezus 24.06.2005 14:09

system() при SafeMode не работает :) :)

Егорыч+++ 24.06.2005 14:12

Ну есть еще и перл...

Егорыч+++ 24.06.2005 15:36

Кстати есть один прикол я так. Есть хостер masterhost. По умолчанию все клиенты у него находятся в php - Safemode. И в тоже время ими же предлагается "Если вам это не нравится можете поставить свой Php". Делается там это довольно просто. И естественно PHP будет работать без Safemode. В чем тогда смысл этого сейф моде я не лично вообще не понимаю.

nerezus 24.06.2005 15:47

>В чем тогда смысл этого сейф моде я не лично вообще не понимаю.
в нескольких фишках типа safe_mode_allowed_env_vars, safe_mode_protected_env_vars, safe_mode_exec_dir, safe_mode_include_dir, safe_mode_gid

он типа проверяет права файла и юзера на соответствие ;)

маразматично

Егорыч+++ 24.06.2005 15:56

Цитата:

Сообщение от nerezus
>В чем тогда смысл этого сейф моде я не лично вообще не понимаю.
в нескольких фишках типа safe_mode_allowed_env_vars, safe_mode_protected_env_vars, safe_mode_exec_dir, safe_mode_include_dir, safe_mode_gid

он типа проверяет права файла и юзера на соответствие ;)

маразматично

А ну да кажется понял. Типо при установке своего php начинают работать типа system, exec но в тоже время в апаче действуют переменные safe_mode

nerezus 24.06.2005 16:26

не =)

safe_mode к апачу не относится, это фича пхп

Код:

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


Краткое разъяснение конфигурационных директив.

safe_mode
Включает/отключает защищенный режим в PHP.
По умолчанию в защищенном режиме при открытии файла выполняется проверка значения UID. Для того, чтобы немного смягчить это условие и выполнять проверку GID, необходимо установить значение on для флага safe_mode_gid. Определяет, использовать или нет проверку UID (FALSE) или GID (TRUE) проверку при обращении к файлу.


safe_mode_include_dir
При подключении файлов, расположенных в указанной директории и всех ее подкаталогах, проверка на соответствие значений UID/GID не выполняется (В случае, если установленная директория не указана в include_path, необходимо указывать полный путь при включении).
Начиная с PHP 4.2.0 значением этой директивы может быть список каталогов, разделенных двоеточием (точкой с запятой на windows-системах), что аналогично синтаксису include_path.
Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет подключать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/".


safe_mode_exec_dir
В случае, когда PHP работает в защищенном режиме, system() и другие функции для выполнения системных команд и программ отклоняют выполнение программ, находящихся вне данной директории.


safe_mode_allowed_env_vars
Возможность устанавливать переменные окружения - потенциальная брешь в безопасности. Значением этой директивы является список префиксов, разделенных двоеточиями. В защищенном режиме пользователь может модифицировать только те переменные окружения, имена которых начинаются с одного из указанных префиксов. По умолчанию, пользователю доступны переменные, которые начинаются с префикса PHP_ (например, PHP_FOO=BAR).
Замечание: В случае, если этой директиве указать пустое значение, пользователь получит возможность модифицировать любую переменную окружения!


safe_mode_protected_env_vars
Эта директива содержит список переменных окружения, разделенных двоеточием, значение которых пользователь не сможет изменить, используя функцию putenv(). Значения этих переменных остаются защищенными, даже если их модификация разрешена директивой safe_mode_allowed_env_vars.


open_basedir
Ограничивает список файлов, которые могут быть открыты в PHP, указанным деревом директорий независимо от того, используется защищенный режим или нет.
Каждый раз, когда скрипт пытается открыть файл, например, при помощи функции fopen() или gzopen(), проверяется месторасположение файла. В случае, если он находится вне указанного дерева директорий, PHP отказывает в открытия файла. Все символические ссылки распознаются и преобразуются, поэтому обойти это ограничение при помощи символических ссылок невозможно.
Специальное значение . указывает, что базовой следует считать директорию, в которой расположен сам скрипт. В этом случае следует быть осторожным, так как рабочую директорию скрипта можно легко изменить при помощи функции chdir().
Опция open_basedir может быть отключена в конфигурационном файле httpd.conf (например, для некоторых виртуальных хостов) точно таким же образом как и любая другая директива: "php_admin_value open_basedir none".
Для Windows-систем разделителем списка директорий служит точка с запятой. Для всех других операционных систем в качестве разделителя используется двоеточие. В случае, если PHP работает как модуль веб-сервера Apache, все указания open_basedir для родительских директорий наследуются.
Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет открывать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/".
По умолчанию разрешен доступ ко всем файлам.


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


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


qBiN 24.06.2005 17:18

Цитата:

Сообщение от Егорыч+++
Есть хостер masterhost. По умолчанию все клиенты у него находятся в php - Safemode. И в тоже время ими же предлагается "Если вам это не нравится можете поставить свой Php". Делается там это довольно просто. И естественно PHP будет работать без Safemode. В чем тогда смысл этого сейф моде я не лично вообще не понимаю.

Вот смотри,мне не нужно выключение сейф мода,естественно дабы не нажить геморой я не буду "ставить свой Php" в итоге-кому нужно отключения сейф моде те его сделают,а кому не нужно-те усложняют жизнь хакерам,а себе нисколько..
Цитата:

Кстати есть один прикол я так
Я прикола не вижу...

qBiN 24.06.2005 17:20

Цитата:

Сообщение от nerezus
system() при SafeMode не работает :) :)

Если не ошибаюсь то можно использовать passthru...Или я ошибаюсь???

nerezus 24.06.2005 17:28

qBiN, ошибаешься

Егорыч+++ 24.06.2005 17:33

Да я знаю, что safe_mode относится к php. Я просто подумал что параметры прописанные в httpd.conf каким то образом будут перекрывать параметры своего php.

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

kir0k 24.07.2005 17:07

Хочется ещё добавить, что потенциальной уязвимостью многих хостеров является
значение allow_url_fopen, выставленное в on в настройках PHP, что делает возможным удалённый php-Инклюдинг при наличии бажного скрипта.


Время: 16:21