Назад | Перейти на главную страницу

Поиск исходящих подключений из Apache / PHP

Недавно был взломан клиентский веб-сайт, и мы анализируем ущерб и уязвимость от атаки. Мы нашли сценарий, который «звонит домой» по URL-адресу, который мы можем легко найти в журнале, но регистрируется ли он в журнале и где?

/usr/local/apache/logs/access_log

Исходящие соединения (от file_get_contents с оболочкой URL, например HTTP), зарегистрированной в этом файле или где-нибудь?

Вы можете изменить suhosin для режима симуляции, который фактически имитирует, а затем занести в черный список команды, используемые для открытия внешних соединений. На днях я опубликовал исправление кода, но тема была удалена.

Строка 1588 файла suhosin-0.9.27 / execute.c, закомментируйте goto execute_internal_bailout;

if(SUHOSIN_G(func_blacklist) != NULL) {
    if(zend_hash_exists(SUHOSIN_G(func_blacklist), lcname, function _name_strlen+1)) {
        suhosin_log(S_EXECUTOR, "function within blacklist called: %s()", lcname);
        // goto execute_internal_bailout;
    }
}

(вики исказила этот код, не тратя времени на попытки разобраться в этом)

Режим моделирования по умолчанию:

suhosin.simulation = on
suhosin.executor.func.blacklist = include,include_once,require_once,open,file_get_contents

добавьте любые дополнительные команды, которые вы хотите зарегистрировать. Вы получите такую ​​запись в журнале:

24 июня 06:32:07 machinexx suhosin [1086]: ALERT-SIMULATION - функция из черного списка называется: exec () (атакующий '11 .22.71.67 ', файл' /var/www/domain.com/tp/top_thumb.php ' , строка 283)

Оттуда, по крайней мере, у вас есть набор целевых файлов, на которые можно посмотреть. Я не рекомендую использовать сухосин таким образом, но, когда вы ищете иголку в стоге сена, иногда вам нужно заставить инструменты работать так, как они должны.

yeap php и apache не регистрируют никаких исходящих подключений .. В любом случае для запуска php-скрипта вам необходимо получить запрос от пользователя. Вы всегда можете увидеть, кто запустил скрипт. Чтобы отслеживать исходящие соединения, вы можете настроить брандмауэр и регистрировать все, что выходит за рамки ограничений, а затем настроить систему журналов для отслеживания исходящих соединений из каждого пакета, который вы хотите.

Если ваши приложения / веб-сайты на PHP не имеют системы журналирования, вы не сможете увидеть, кто что сделал.

Apache или PHP не ведут журнал исходящих подключений.