Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Взломали apache
 
 автор: soldier   (17.05.2011 в 18:43)   письмо автору
 
 

Использую сборку AppServ сегодня обнаружил взлом веб сервера. Хакер получил доступ к корневому каталогу www и сайтам расположенным внутри. Вывел табун коней. Из бэкапа хостинг восстановил. Как пролезли непонятно. в логах сервера в error.log вместо нормальных записей нечитаемые символы. Подскажите как обнаружить уязвимость.

  Ответить  
 
 автор: cheops   (17.05.2011 в 18:52)   письмо автору
 
   для: soldier   (17.05.2011 в 18:43)
 

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

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

  Ответить  
 
 автор: soldier   (17.05.2011 в 18:59)   письмо автору
 
   для: cheops   (17.05.2011 в 18:52)
 

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

  Ответить  
 
 автор: cheops   (17.05.2011 в 20:26)   письмо автору
 
   для: soldier   (17.05.2011 в 18:59)
 

1) SSH есть? Как вообще осуществляется доступ к серверу?
2) Сколько человек имеют доступ к серверу?
3) Это Windows или UNIX?

  Ответить  
 
 автор: soldier   (18.05.2011 в 10:08)   письмо автору
 
   для: cheops   (17.05.2011 в 20:26)
 

сервер под win2003 /доступ к серверу только у администратора. доступа по ssh нет. раскодировал лог ошибок вот что там:
"fetch" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"perl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"wget" не является внутренней или внешней
"fetch" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"cUrl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"lynx" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Системе не удается найти указанный путь.
"lwp-download" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"wget" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"fetch" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"cUrl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"lynx" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Системе не удается найти указанный путь.

  Ответить  
 
 автор: cheops   (18.05.2011 в 13:41)   письмо автору
 
   для: soldier   (18.05.2011 в 10:08)
 

Искали linux-команды. У вас обратные кавычки и фнукции exec() на сервере отключены? Если нет, то используете ли вы где-то их?

  Ответить  
 
 автор: soldier   (18.05.2011 в 17:13)   письмо автору
 
   для: cheops   (18.05.2011 в 13:41)
 

вообще я дефолтные настройки изменяю только в файлах httpd.conf и в конфигурационном файле виртуальных хостов. все остальные настройки по умолчанию. пересмотрел файлы данной функции в конфигурации не нашел. единственное в изменениях php нашел информацию о профиксенном баге
- Fixed bug #33664 Console window appears when using exec()
(Richard Quadling, Stas)

  Ответить  
 
 автор: cheops   (18.05.2011 в 19:36)   письмо автору
 
   для: soldier   (18.05.2011 в 17:13)
 

Создайте скрипт
<?php
  
echo `dir`;
?>
Он на вашем сервер что-нибудь выводит?

  Ответить  
 
 автор: soldier   (19.05.2011 в 09:30)   письмо автору
 
   для: cheops   (18.05.2011 в 19:36)
 

из корневого каталога www скрипт не работает. но будучи помещенным в каталог какого либо сайта выдает список содержимого каталога

  Ответить  
 
 автор: cheops   (19.05.2011 в 12:25)   письмо автору
 
   для: soldier   (19.05.2011 в 09:30)
 

Вот как-то так и взломали, ну или по крайней мере интенсивно использовали при взломе... вам эта возможность нужна? Чтобы PHP-код мог выполнять системные команды?

  Ответить  
 
 автор: soldier   (19.05.2011 в 13:55)   письмо автору
 
   для: cheops   (19.05.2011 в 12:25)
 

в обшем нет, как ее отключить? покопался в сети нашел несколько советов по защите апача, но видимо список был не исчерпывающим.

  Ответить  
 
 автор: cheops   (19.05.2011 в 14:02)   письмо автору
 
   для: soldier   (19.05.2011 в 13:55)
 

Можно перечислить функции, которые требуется запретить, в директиве disable_functions конфигурационного файла php.ini

  Ответить  
 
 автор: soldier   (19.05.2011 в 14:54)   письмо автору
 
   для: cheops   (19.05.2011 в 14:02)
 

disable_functions в php.ini по умолчанию не включена и не выключена просто без значения.

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.

Насколько я понимаю она должна быть либо включена либо выключена.
В сети лежит такой вариант:
disable_functions="popen,exec,system,passthru,proc_open,shell_exec"
или
disable_functions= "phpinfo,dir,readfile,shell_exec,exec,virtual,passthru,
proc_close,proc_get_status,proc_open,proc_terminate,system"
и
disable_functions = readfile,system

как сделать правильно?

  Ответить  
 
 автор: cheops   (19.05.2011 в 15:19)   письмо автору
 
   для: soldier   (19.05.2011 в 14:54)
 

Вставляйте все функции, которые вам не нужны в работе. Мне первый вариант всех больше понравился, я бы его выбрал.

  Ответить  
 
 автор: soldier   (19.05.2011 в 15:33)   письмо автору
 
   для: cheops   (19.05.2011 в 15:19)
 

сделал.

  Ответить  
 
 автор: cheops   (19.05.2011 в 15:40)   письмо автору
 
   для: soldier   (19.05.2011 в 15:33)
 

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

  Ответить  
 
 автор: soldier   (19.05.2011 в 15:44)   письмо автору
 
   для: cheops   (19.05.2011 в 15:40)
 

при попытке выполнения Warning: shell_exec() has been disabled for security reasons in C:\AppServ\www\....
Работает. Спасибо за помощь!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования