Achando PHP Shells PHP Exploits no seu servidor

Já tem um bom tempo que eu venho pensando em publicar este post. E como meu ânimo com a escrita técnica voltou, eu achei interessante publicar esta dica.

A algum tempo atrás acabei por administrar alguns servidores de hospedagem de sites. E como boa parte deles roda o Wordpress, e em sua maioria boa parte dos clientes nunca se preocupa com atualização, já viu né ?

Sempre apareciam problemas com alguns exploits PHP e também, os famosos PHP Shell que permitiam o uso de funções shell num diretório web, tudo via PHP.

Dá para fazer alguns ajustes nos servidores para este fim, mas … como estamos tratando de usuários e suas mágicas, problemas sempre aparecerão.

O modo mais fácil de tentar resolver este problema é logicamente rodar o clamscan diretamente nos diretórios. Caso você tenha ele instalado, atualize a base do mesmo e faça um escaneamento recursivo nos diretórios das páginas dos seus usuários.

No caso de servidores com Cpanel o padrão de arquivos de páginas é /home/usuario/public_html .

Ou seja,

nice -n 19 clamscan /home/*/public_html -r -i | grep " FOUND"

Agora para quem quiser desenvolver algum monitoramento ou coisa parecida para o seu sistema ( por exemplo, um plugin para Zabbix ou Nagios ) é só usar o comando abaixo.

Este comando, no caso está lendo o diretório corrente ( . ) .

grep ‘((eval.(base64_decode|gzinflate|$_))|$[0O]{4,}|FilesMan|GLOBALS.exit|JGF1dGhfc|IIIl|die(PHP_OS|posix_getpwuid|Array(base64_decode|document.write("\u00|sh(3(ll|11)))’ . -lroE –include=.php

Como pode ser visto o comando procura aquelas combinações comuns que sempre temos em exploits e php shells para esconder códigos que são base64_encode, gzdeflate, etc.

E caso você esteja em um servidor com o Cpanel use sempre o PATH :

/home/*/public_html/

Via DJlab