Encontrando conexões de saída do Apache / PHP

2

Um site de cliente foi recentemente comprometido e estamos analisando os danos e a exposição do ataque. Encontramos um script que está "ligando para casa" para uma URL que podemos encontrar facilmente em um log, mas isso está registrado e onde?

/usr/local/apache/logs/access_log

As conexões de saída (as de file_get_contents com um wrapper de URL, como HTTP) estão conectadas neste arquivo ou em algum lugar?

    
por Kristopher Ives 24.06.2010 / 23:01

3 respostas

1

Você pode modificar o suhosin para fazer o modo de simulação que realmente simula, em seguida, lista negra os comandos usados para abrir conexões externas. Eu postei o código consertar no outro dia, mas o tópico foi deletado.

Linha 1588 de suhosin-0.9.27 / execute.c, comente 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;
    }
}

(o wiki estragou esse código, não vai demorar para tentar descobrir isso)

O modo de simulação é o padrão:

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

adicione todos os comandos adicionais que você deseja registrar. Você receberá uma entrada de registro como:

Jun 24 06:32:07 machinexx suhosin [1086]: ALERT-SIMULATION - função dentro da lista negra chamada: exec () (atacante '11 .22.71.67 ', arquivo' /var/www/domain.com/tp/top_thumb .php ', linha 283)

De lá, pelo menos você tem um conjunto de arquivos de destino para dar uma olhada. Eu não recomendo usar a suhosina dessa maneira, mas, quando você está procurando uma agulha no palheiro, às vezes você precisa fazer as ferramentas funcionarem do jeito que deveriam.

    
por 25.06.2010 / 02:44
0

A menos que seus aplicativos / sites em PHP tenham um sistema de registro, você não pode ver quem fez o quê.

Apache ou PHP não mantêm um log de conexão de saída.

    
por 25.06.2010 / 00:42
0

yeap php e apache não registram nenhuma conexão de saída .. De qualquer forma para rodar o script php você precisa ter uma requisição do usuário. Você sempre pode ver quem lançou o script. Para monitorar as conexões de saída, você pode configurar o firewall e registrar tudo o que está sendo enviado e, em seguida, configurar o sistema de log para capturar a conexão outogoing de todos os pacotes desejados.

    
por 25.06.2010 / 02:49