PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache startet nicht mehr, 2 zombies auf port 80



olidem
15.11.09, 19:04
Hi
ich habe ein dringendes Problem:
ich hab einen server (debian) der läuft schon sein 166 Tagen ohne jede Änderung der Konfig problemlos. Hauptsächlich läuft ein apache drauf.

Heute nacht ist mir laut monitoring plötzlich der apache2 prozess abgekackt.

will ich ihn neu starten via
> /etc/init.d/apache2 restart
kriege ich als antwort:
Starting web server (apache2)...(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
failed!

Ok Dann
> lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 7182 www-data 3u IPv4 3286913603 TCP *:www (LISTEN)
bash 7192 www-data 3u IPv4 3286913603 TCP *:www (LISTEN)
bash 7207 www-data 3u IPv4 3286913603 TCP *:www (LISTEN)

und eben das krasse ist dass der www-data als kommando "bash" ausführt. ISt da jemand eingedrungen?
Einen der obigen prozesse konnte ich killen, die anderen beiden nicht! Ein ps aux ergab:
www-data 7192 0.0 0.0 1820 904 ? Rs Nov10 0:28 bash
www-data 7207 0.0 0.0 1820 832 ? Rs Nov10 0:20 bash

d.h. sie sind am 10. November (=vor 5 tagen) gestartet worden!!!

Muss ich reagieren?

Was war da los?

Vielen Dank für eure Hilfe im Voraus!

Viele Grüße,
Olli

BedriddenTech
15.11.09, 20:51
Zeig doch mal den Prozessbaum, welche Nutzer oder Prozess die da gestartet hat, evtl. mit allen Informationen, die Dir irgendwie wichtig erscheinen (ps auxwwwef). Und was überhaupt passiert, wenn Du eine HTTP-Anforderung an den Server schickst. Kommt dann Deine Seite, Timeout oder irgendwas ganz und gar unerwartetes?

olidem
15.11.09, 23:15
Danke für deine Antwort.

Das Problem ist, dass ich nachdem ich den ersten der 3 Prozesse gekillt hatte, den apache dann doch restarten konnte. d.h. einen Prozessbaum kann ich nicht mehr nachvollziehen.

Ich will nur der Tatsache auf den Grund gehen, dass das 3 vitale Prozesse an Port 80 gelauscht haben, die mit den Userrechten von www-data liefen und als kommando nicht /usr/sbin/apache hatten, sondern bash!!!

Was kann ich da tun? Oder, vielleicht gibt es ja eine ganz normale, plausible Situation, in der www-data bash ausführt?

Immer im Hinterkopf: Der server ist bis heute morgen ein halbes Jahr lang ohne irgend eine Wartung oder Eingriff von mir stabil gelaufen.

Vielen Dank im Voraus!
Grüße,
Olli

olidem
15.11.09, 23:33
Hi!
Jetzt hab ich folgende prozesse:

www-data 30618 0.0 0.0 8608 16 ? T 23:18 0:00 ./brk
www-data 30619 0.0 0.0 0 0 ? Z 23:18 0:00 [brk] <defunct>
www-data 31979 0.0 0.0 1620 56 ? T 23:20 0:00 ./pwned
www-data 31981 0.0 0.0 0 0 ? Z 23:20 0:00 [pwned] <defunct>

OK. und in /tmp/ siehts so aus:

> ls -l /tmp/
total 32
-rw-r--r-- 1 www-data www-data 755 Nov 15 23:18 getsuid.c
drwxr-xr-x 2 www-data www-data 1024 Nov 13 09:51 hsperfdata_www-data
-rwxr-xr-x 1 www-data www-data 2512 Nov 10 02:42 libno_ex.so.1.0
drwx------ 2 root root 1024 Nov 15 18:47 mc-root
-rw------- 1 www-data www-data 0 Nov 10 02:29 padlina.GU1fSZ
-rw------- 1 www-data www-data 0 Nov 15 23:25 padlina.W5j1xR
-rw------- 1 www-data www-data 0 Nov 10 02:31 padlina.Ycye1P
-rwxr-xr-x 1 www-data www-data 7275 Nov 15 23:20 pwned
-rw-r--r-- 1 www-data www-data 151 Nov 15 23:18 s.c
-rwxr-xr-x 1 www-data www-data 7297 Nov 10 02:42 suid
-rwxr-xr-x 1 www-data www-data 8545 Nov 10 02:42 udev

int 80h
15.11.09, 23:38
Ich würde den Server schleunigst abschalten. Sieht aus als ob da jemand Zugriff hat.
(Siehe "pwned".)

Sind denn alle Updates installiert, wenn du sagst, dass du ein halbes Jahr nicht gemacht hast?

Rain_maker
16.11.09, 00:53
Oder, vielleicht gibt es ja eine ganz normale, plausible Situation, in der www-data bash ausführt?

Oh ja, die gibt es, der ganz plausible Hack eines schlecht gewarteten Servers.


Immer im Hinterkopf: Der server ist bis heute morgen ein halbes Jahr lang ohne irgend eine Wartung oder Eingriff von mir stabil gelaufen.

Und Du glaubst also, das sei ein "Qualitätsmerkmal"?

Das klingt eher wie "schlampiger Admin", alleine wie viele Kernel-exploits gab es die letzten paar Monate?

Ja, die waren alle lokal, aber der schon angemerkte Prozess "./pwned" deutet zumindest darauf hin, daß der Angreifer eine Shell mit den Rechten des Webservers bekommen und damit dann wohl diesen Prozess gestartet hat.

//Edit: Da war die Glaskugel gut poliert, interessant, was man mit ein paar Sekunden Googlen so alles herausfinden kann:

Das hier sieht auch nicht gerade "vertrauenserweckend" aus



-rw-r--r-- 1 www-data www-data 755 Nov 15 23:18 getsuid.c
-rwxr-xr-x 1 www-data www-data 2512 Nov 10 02:42 libno_ex.so.1.
-rwxr-xr-x 1 www-data www-data 7297 Nov 10 02:42 suid
-rwxr-xr-x 1 www-data www-data 8545 Nov 10 02:42 udev

http://www.google.com/search?client=opera&rls=de&q=libno_ex.so.1.&sourceid=opera&ie=utf-8&oe=utf-8

http://www.google.com/search?client=opera&rls=de&q=getsuid.c&sourceid=opera&ie=utf-8&oe=utf-8

Herzlichen Glückwunsch, die Kiste ist fachgerecht "gerootet" worden, verursacht durch Deine Schlamperei, der Exploit ist seit _Monaten_ bekannt.

http://www.milw0rm.com/exploits/

Die Kiste kannst Du nach einer Datensicherung komplett platt machen und neu aufsetzen.

olidem
16.11.09, 09:33
Grrrr.

Gibt es nicht die Möglichkeit, einfach nen neuen Kernel zu installieren?
Ich hab heute nacht noch ein apt-get upgrade laufen lassen.
Bis jetzt scheint auch noch kein neuer pwned prozess zu laufen und das temp-verzeichnis is auch noch leer. Im zuge des apt-upgrades wurden auch die cron-jpbs zum leeren des tmp-verzeichnisses wiederhergestellt.

marce
16.11.09, 09:46
Das System ist nicht mehr vertrauenswürdig - da kann man nichts mehr retten.

Mach ein Abbild des Systems für Analyse und installiere die Kiste neu.

Und nein - es gibt keine Alternative.

Manoman
16.11.09, 09:57
bis jetzt hielt ich root und kein Plan für übertrieben, jetzt nicht mehr
du hast nämlich gar keine Ahnung !


own, owned, ownage
Engl. to own: besitzen. Häufig auch pwn.
ownen lässt sich frei übersetzen mit dominieren oder deutlich stärker spielen. owned entspricht etwa „Erwischt!“ oder „besiegt“. Ownage bezeichnet den konkreten Vorgang des ownens. Wenn es beispielsweise einem Spieler gelingt, auf überwältigende Weise eine Übermacht zu besiegen, so nennt man dies Ownage. Der Spieler ownt also seine Gegner.
Gelegentlich nutzt man den Begriff auch zur Aufwertung eines Objekts, z. B. Dieses Spiel ownt!
Wikipedia

schalte ab die Kiste !! Sofort !

olidem
16.11.09, 10:45
bis jetzt hielt ich root und kein Plan für übertrieben, jetzt nicht mehr
du hast nämlich gar keine Ahnung !

Oh, danke, Du bist soo nett.
Es gibt Menschen auf dieser Welt, die haben ein Problem, und suchen eine einfache Lösung. Linux hat mir heute mal wieder bewiesen, dass es keine einfache und sichere Lösung ist.
Wie kann jemand eine "stable" distro installieren, und dann auf einmal die Kiste komplett gehackt bekommen?

*******e Mann.

marce
16.11.09, 10:48
Wie kann jemand eine "stable" distro installieren, und dann auf einmal die Kiste komplett gehackt bekommen?
ganz einfach: Du hast nicht verstanden, was "stable" bedeutet.

-> Patches und Updates muss man immer installieren.

Du kaufst ja auch nicht ein Auto und beschwerst Dich dann nach 200000km Laufleistung über einen defekten Motor, wenn Du kein einziges mal in der Werkstatt warst und dort hast die normalen Inspektionen machen lassen, oder?

olidem
16.11.09, 15:20
Ok. Ich gebe Dir ja eigentlich recht.
Wartung muss sein.
Ich war eben der Ansicht, mit der stable distro versionen zu installieren, die die grösten lecks gestopft haben. Dem war eben nicht so.

Ich habe auf der Suche nach Details im Internet aber noch Menschen gefunden, die sich nicht einig waren, dieses Loch überhaupt als "urgent" zu taggen.
Das dürfte bei verlässlicher Software einfach nicht passieren.
Aber ich will hier keine Grundlagendiskussion vom Zaun brechen.

Vielen Dank für Eure Hilfe!

ThE_FiSh
16.11.09, 15:29
pwnd müsste übrigens ne shell sein - dh. er konnte immer wieder auf den server wann immer er oder sie wollte - und du hast garnix gemerkt.

nunja "glück" hattest du, dass der apache sich verabschiedet hat. Sonst hättest du das, mit verlaub, nie rausbekommen.
Da hat der pöse häcka irgendwas falsch gemacht - so auffällig verhält man sich doch nicht ... du du du :D

int 80h
16.11.09, 17:00
Wie schon gesagt: Mach die Kiste platt und setze sie komplett neu auf!
Du weist nicht ob der Angreifer Rootkits verwendet um seine zukünftigen Aktionen auf dem Server unbemerkt ablaufen zu lassen. Auch wenn verwendete Prozessnamen wie "pwned" nicht gerade darauf hinweisen, dass der Angreifer große Ahnung hat.

Und in Zukunft (mindestens) täglich Updates einspielen. Die Distro kann so "stable" sein wie sie will. Es werden täglich neue Exploits für allerlei Programme veröffentlicht, gegen die du ohne Updates einfach (fast) machtlos bist.

Also in Zukunft etwas mehr nach der Kiste schauen, vor allem was die Sicherheit angeht. Sonst wird deine Kiste ganz schnell als (D)DoS-Bot, Warez-Ablage oder als Proxy für Kreditkartenbetrug benutzt.

Rain_maker
16.11.09, 17:02
Oder noch besser.

Kiste abmelden und ein Webhostingpaket oder einen "managed" server mieten.

Rain_maker
16.11.09, 17:09
pwnd müsste übrigens ne shell sein - dh. er konnte immer wieder auf den server wann immer er oder sie wollte - und du hast garnix gemerkt.

Schau mal auf die Time-Stamps der Dateien in /tmp.

Der "pwned"-Prozeß ist 5 Tage _neuer_ als die ganzen anderen Dateien des Root-Exploits.



nunja "glück" hattest du, dass der apache sich verabschiedet hat. Sonst hättest du das, mit verlaub, nie rausbekommen.
Da hat der pöse häcka irgendwas falsch gemacht - so auffällig verhält man sich doch nicht ... du du du :D

Tja, der "H4xx0r", der diesen pwned-Prozeß gestartet hat, war wohl etwas dämlich, aber wer sagt Dir, daß er der erste war, der über den Webserver eine Shell bekommen hat?

Für mich sieht das eher nach einem "Zweitverwerter" aus und ganz ehrlich, wenn schon die dümmsten Srciptkieddies die Kiste "0wn3n" können, dann würde ich das nicht als "Glück gehabt" bezeichnen.

olidem
19.11.09, 09:10
Hmm.
Für mich stellt sich eher die Frage, ob das ganze ein HAcker in "persönlicher Anwesenheit" gemacht hat, oder ob es ein dummer Robot war, der einfach stupiede rumsurft bis er einen Servermit Leck findet.

Rain_maker
19.11.09, 11:54
Hmm.
Für mich stellt sich eher die Frage, ob das ganze ein HAcker in "persönlicher Anwesenheit" gemacht hat, oder ob es ein dummer Robot war, der einfach stupiede rumsurft bis er einen Servermit Leck findet.

Und welchen Unterschied macht das für das Endergebnis?

Deine Kiste wurde vollständig "aufgemacht" und der Angreifer hat Rootrechte erhalten, Punkt und Strich drunter.

Satt Dir die uninteressanteste Frage von allen zu stellen, solltest Du dafür sorgen, daß dies nicht mehr so einfach passieren kann, sollten Dir dazu die Kenntnisse/Zeit fehlen, dann Server herunterfahren, kündigen und eine Alternative wählen, die Deinen Möglichkeiten entspricht.