Remova o código injetado de todos os arquivos php no diretório no Ubuntu [duplicado]

0

Eu tenho um site onde alguns códigos foram injetados em um grande número de arquivos php e removê-los manualmente não é viável devido ao número de arquivos.

Eu posso procurar um nome de variável a partir do código injetado em todos os arquivos e ele me fornece uma lista dos afetados, mas não posso colocar o código real na pesquisa, pois contém aspas duplas, aspas simples e todas tipos de personagens.

Aqui está o que eu usei para a pesquisa:

grep -Ril "ljdcvhg" 'caminho para pasta do site'

Existe alguma maneira de procurar toda a função / código injetado do php e remover? Por favor, note que sou muito novo no linux.

Eu ia colocar o código hack aqui, mas não tenho certeza se isso é permitido ou não.

Qualquer ajuda é apreciada.

    
por Mankind1023 11.07.2016 / 22:43

2 respostas

6

Como alguém que teve seu front-end baseado em PHP violado, código injetado nele, e tentou acertar a tentativa de limpar o código injetado ( após restaurando o site de um tarball limpo de o framework e as modificações que fiz), permitam-me dar algumas experiências e respostas do mundo real: a única resposta real para consertar isso é começar de novo . Tentar limpar o código será EXTREMAMENTE difícil. É provável que esteja embutido em todos os lugares e você não encontre tudo isso. Também é bem provável que o seu sistema esteja comprometido também, não apenas o PHP, mas o próprio sistema central pode ter softwares maliciosos sendo executados nele, baixados através do código injetado e ofuscado.

A solução testada e comprovada, que também é comumente aceita como a única opção sensata em situações como essas, é Soltar de órbita * e começar de backups limpos ( ou código controlado por versão) . Não apenas o código do site, mas também o próprio servidor. Código injetado em um site PHP pode estar executando qualquer coisa, desde simples portscanning até instalações completas de malware no próprio sistema operacional, até rootkits. Portanto, comece de novo, apagando o servidor, ative a base de código do site e restaure o código clean Version Controlled ou o último backup limpo que você possui.

(TL; DR, não tente remover todo o código injetado, apenas comece novamente em um servidor limpo e restaure a partir de backups ou dados do repositório controlados por versão)

Note that I've also breached my own site in a private lab, and proven that obfuscated code can be used to download malware to the host server and to clients visiting the infected server... this is why you should nuke the environment and start over from clean backups. Then, subsequently patch up the hole that was used to inject code on the site.

* Se você não sabe o que isso significa, "Nuke-lo de órbita" é um termo coloquial que basicamente significa desligar o site, desligar o servidor e apagar todo o disco rígido e começar de novo uma nova instalação do servidor e a base de código do site.

    
por 11.07.2016 / 23:00
0

O que você pode tentar fazer é o seguinte:

  • Obtenha um editor PHP profissional com formatação de código, por exemplo, PHPEclipse, PHP Storm ou NuSphere, ou até mesmo o Notepad ++, no Linux é o Kate e no MacOS é o TextMate
  • Você pode pesquisar todos os arquivos por strings dadas e removê-las
  • Você também pode formatar o código novamente (formatador de código, incluindo HTML), para que você possa ver o que há de algo ofuscado
  • Se você puder ver o código destacado, ele também será útil, por exemplo. tudo o que não está destacando corretamente pode ser algo ofuscado
  • Você precisa ler todo o código corretamente
  • O
  • Editor ajudará você a proteger o código de explorar ainda mais
  • Você precisa inspecionar o concurso de todos os arquivos, incluindo imagens, se não houver código PHP ou JS em imagens PNG ou JPEG.
  • Pode ser necessário atualizar o tempo de execução do PHP para algo com correções atualizadas ou até mesmo migrá-lo para o PHP7 mais recente e mantê-lo atualizado.
  • Você pode usar o Cloud Flare para se defender contra exploits
  • Você pode considerar hospedagem diferente ou conta recriada
  • Às vezes, o php.ini ajuda a impor limites e restrições
  • Se você usou software não personalizado, pode fazer o download da versão mais recente e com patch e tentar mesclar com o que você tem, por isso, ele é corrigido
  • Às vezes, por exemplo no Wordpress você pode habilitar o autoupdate

Além disso, seu servidor pode estar comprometido para que você possa tentar reconstruí-lo. Por exemplo. reprovisionar a máquina virtual.

Você também pode tentar solicitar ajuda fazendo o upload do site no GitHub, que pode ser removido posteriormente e, em seguida, pode ser revisado por pares. O banco de dados não seria necessário, é uma disputa com certeza. Seria bom ler os logs e ver como ele foi explorado.

A violação do site nem sempre é também uma violação do servidor. Se houve erro bobo no código PHP, isso não significa que houve vulnerabilidade do kernel que foi explorada.

Em resumo, você deve editá-lo no editor e revisá-lo corretamente e, em seguida, ele será classificado e, eventualmente, ele pode ser corrigido também e, em seguida, manter o backup toda vez que você alterar alguma coisa. Não há como ser classificado com um comando, além de precisar ser corrigido também. Isso envolve trabalhar com o código-fonte como de costume, e não com o grep.

    
por 12.07.2016 / 00:00