V-Server Strato und Hacker

Sinepp

Registered User
Hallo liebe Leute,

in letzter Zeit gab es öfter bei mir erfolgreiche Versuche in /tmp/ Dateien abzulegen. Auch wenn ich normalerweise glücklich über topaktuelle Filme bin, nervt es ein wenig, alle 5-7 Tage den Server neu aufzusetzen. Bisher vermute ich, dass die lieben Hacker über PHP (Session) einbrechen und fröhlich ihre Dateien auf Temp hinterlegen. Da der komplette Webspace des VServers aus einer Partition besteht, weiß ich leider nicht, wie ich die als noexec mounten kann um das typische "wget shellbind.c" etc. pepe. zu verhindern.

Erste Frage:
Wie verbiete ich den Befehl wget?

Zweite Frage:
Wie verhindere ich, dass Apache2 die ServerSignature und ServerTokens anzeigt? Ein ServerSignature Off in der /etc/apache2/httpd.conf hilft leider nicht und auch in der Datei /var/www/vhosts/domain.de/conf/vhost.conf das anzugeben bringt leider keine Besserung.

Dritte Frage:
Wie verhindere ich über diese Schwachstelle gehackt zu werden? Safe_Mode on in der php.ini und das wars? Muss dann safe_mode_gid ebenfalls an sein? Nein oder, denn so wie ich safe_mode on verstehe macht das ja ein uid/gid check...

Vierte Frage:
Ein Rootkit konnte ich bisher nicht entdecken, aus meiner Sicht der Dinge, netstat -anu usw. sei dank, machen die lieben Kerle lediglich einen Fileserver aus meinem Webserver, bisher wurde aber nur up- und nicht downgeloadet...hach welch denglisch...Ist es in dem Fall notwendig den Server komplett neu aufzusetzen? Bisher habe ich ein Backup eingespielt, welches vor dem Angriff erstellt wurde...aber langsam habe ich den Eindruck, dass es etwas gibt, was mir ein ps aux nicht erzählt...seht ihr da etwas?

Code:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0    604   244 ?        Ss   11:26   0:00 init
root     29407  0.0  0.0   1456   640 ?        Ss   11:26   0:02 /sbin/syslogd -a /var/lib/named/dev/log -a /var/lib/ntp/dev/log -a /var/l
root     29413  0.0  0.0   3984  1168 ?        Ss   11:26   0:00 /usr/sbin/saslauthd -n 2 -a pam
root     29414  0.0  0.0   3984  1168 ?        S    11:26   0:00 /usr/sbin/saslauthd -n 2 -a pam
vscan    29433  0.0  0.9  17208 14772 ?        S    11:26   0:04 /usr/sbin/clamd
root     29453  0.0  0.1   4792  1972 ?        Ss   11:27   0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid
root     29459  0.0  0.0   2076   952 ?        Ss   11:27   0:01 /usr/sbin/xinetd
root     29476  0.0  1.6  27608 25116 ?        Ss   11:27   0:04 /usr/sbin/spamd -d -c -L -x -r /var/run/spamd.pid
named    29508  0.0  0.2  12008  3100 ?        Ss   11:27   0:00 /usr/sbin/named -t /var/lib/named -u named
named    29509  0.0  0.2  12008  3100 ?        S    11:27   0:00 /usr/sbin/named -t /var/lib/named -u named
named    29510  0.0  0.2  12008  3100 ?        S    11:27   0:00 /usr/sbin/named -t /var/lib/named -u named
named    29511  0.0  0.2  12008  3100 ?        S    11:27   0:00 /usr/sbin/named -t /var/lib/named -u named
named    29512  0.0  0.2  12008  3100 ?        S    11:27   0:00 /usr/sbin/named -t /var/lib/named -u named
root     29525  0.0  0.0   2372  1136 ?        S    11:27   0:00 /bin/sh /usr/bin/mysqld_safe --user=mysql --pid-file=/var/lib/mysql/mysql
mysql    29559  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29562  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
qmails   29565  0.0  0.0   1436   468 ?        S    11:27   0:00 qmail-send
qmaill   29567  0.0  0.0   1392   448 ?        S    11:27   0:00 splogger qmail
root     29568  0.0  0.0   1392   348 ?        S    11:27   0:00 qmail-lspawn ./Maildir/
qmailr   29569  0.0  0.0   1388   360 ?        S    11:27   0:00 qmail-rspawn
mysql    29570  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29571  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
qmailq   29572  0.0  0.0   1380   320 ?        S    11:27   0:00 qmail-clean
mysql    29573  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29574  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29578  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29579  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29580  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
mysql    29581  0.0  1.2  58404 19104 ?        S    11:27   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
root     29585  0.0  1.6  28664 26256 ?        S    11:27   0:00 spamd child
root     29659  0.0  0.3  48044  5764 ?        Ss   11:27   0:00 /usr/local/psa/admin/bin/httpsd
root     29724  0.0  0.0   1668   760 ?        Ss   11:27   0:00 /usr/sbin/cron
vscan    29730  0.0  0.0   4012  1348 ?        Ss   11:27   0:00 /usr/bin/freshclam -d
vscan    30429  0.0  0.9  17208 14772 ?        S    11:33   0:00 /usr/sbin/clamd
root     17329  0.0  0.1   7844  2416 ?        Ss   14:54   0:00 sshd: mainuser [priv]
mainuser 17336  0.0  0.1   7996  2556 ?        S    14:54   0:00 sshd: mainuser@pts/0
mainuser 17337  0.0  0.1   4240  1924 pts/0    Ss   14:54   0:00 -bash
root     17356  0.0  0.0   3620  1316 pts/0    S    14:54   0:00 su
root     17357  0.0  0.1   4016  2004 pts/0    S    14:54   0:00 bash
psaadm   19024  0.0  1.0  52764 15532 ?        S    15:11   0:00 /usr/local/psa/admin/bin/httpsd
psaadm   19109  0.0  0.7  50180 11800 ?        S    15:11   0:00 /usr/local/psa/admin/bin/httpsd
root     19137  2.3  1.7  28928 26632 ?        S    15:12   1:03 spamd child
psaadm   20069  0.0  0.7  50100 11348 ?        S    15:20   0:00 /usr/local/psa/admin/bin/httpsd
mysql    22809  0.0  1.2  58404 19104 ?        S    15:49   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --p
root     22810  0.0  0.0   3548  1204 ?        Ss   15:49   0:00 /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=sine
root     23024  0.1  0.8  30712 13660 ?        Ss   15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
root     23030  0.0  0.7  29812 12368 ?        S    15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23031  0.0  0.8  30712 13756 ?        S    15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23032  0.0  0.8  30848 13920 ?        S    15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23033  0.0  0.8  30712 13780 ?        S    15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23034  0.0  0.8  30712 13772 ?        S    15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23035  0.0  0.9  30828 14312 ?        S    15:50   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23318  0.0  0.8  30712 13668 ?        S    15:54   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   23319  0.0  0.8  30712 13668 ?        S    15:54   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
root     23624  0.0  0.0   2640   932 pts/0    R+   15:58   0:00 ps aux

Ein Portscan mit nmap bring folgendes:
Code:
Discovered open port 443/tcp 
Discovered open port 25/tcp 
Discovered open port 53/tcp 
Discovered open port 80/tcp 
Discovered open port 21/tcp 
Discovered open port 995/tcp
Discovered open port 3306/tcp
Discovered open port 110/tcp 
Discovered open port 465/tcp 
Discovered open port 8443/tcp
Discovered open port 993/tcp 
Discovered open port 143/tcp
SSH ist verlegt, daher taucht es hier nicht auf, seitdem hatte ich keine wilden Versuche mehr. Manchmal versucht jemand einen FTP Zugang der ca. 10 Domains zu hacken, bisher aber erfolglos.

Bin momentan etwas ratlos, weil ich nicht weiß, wie ich die Lücke stopfen kann. Vielleicht weiß hier jemand Rat...

Danke vielmals.
Sinepp
 
Hallo,

Auch wenn ich normalerweise glücklich über topaktuelle Filme bin, nervt es ein wenig, alle 5-7 Tage den Server neu aufzusetzen.
vergleichen mit den Preisen in der Videothek ist das doch ein fairer Tausch. *SCNR*

Bisher vermute ich, dass die lieben Hacker über PHP (Session) einbrechen
Welches dicke bugintensive PHP-Paket ist denn installiert?
Wie verbiete ich den Befehl wget?
Indem Du wget löschst (rm) oder nur Root den Zugriff darauf erlaubst (chmod 700).
Wie verhindere ich, dass Apache2 die ServerSignature und ServerTokens anzeigt?
Was soll das bringen?
Wie verhindere ich über diese Schwachstelle gehackt zu werden?
Scripte reparieren. Zusätzlich (nicht anstatt!) in der php.ini (falls mehrere vorhanden in allen) allow_url_fopen und register_globals auf off.
Ein Rootkit konnte ich bisher nicht entdecken
Das haben Rootkits so an sich. Hast Du chkrootkit laufen lassen; hat aber auch nur bedingt Aussagekraft.
Ist es in dem Fall notwendig den Server komplett neu aufzusetzen?
ja.
 
PHP Version 4.3.10 ist installiert. Über welches Script und ob überhaupt über ein Script der Einbruch gekommen ist, weiß ich nicht - daher wüßte ich auch nicht mit welcher Reparatur ich ansetzen könnte.

Das Verstecken der Apache Identifizierung bringt, dass ein Hacker der leichte Beute haben will nicht sofort erfährt, welcher Apache dem Webserver zu Grunde liegt...

Das komplette Aufsetzen heißt nicht, dass ich ein Backup einspielen kann (außer ich weiß zufällig, wann der Server nicht mehr alleine war, oder?) Das Problem ist dabei, dass Strato kein PSADump dazu gepackt hat und ich daher etwas überfragt bin, wie ich die Einstellungen aus Plesk sichern kann. Meine erste Idee wäre gewesen die Verzeichnisse

- /var/lib/mysql
- /var/www/
- /var/qmail/mailnames/
- /opt/psa
- /etc/psa
- /usr/local/psa

mittels rsync in eine lokale Backupdatei zu packen und anschließend das Betriebssystem mit Plesk wieder aufzusetzen mittels Image und die entsprechenden Verzeichnisse wieder zurück zu syncen. Hat hier jemand eine bessere Vorgehensweise Plesk zu sichern, so ein System also neu aufzusetzen?

Danke,
Sinepp

EDIT: chkrootkit meldet sich nur auf "Checking `bindshell'... INFECTED (PORTS: 465)" was angeblich ok ist.

EDIT2:
<--- hier konnte ich nachlesen, dass mittels UPDATE misc SET val='false' WHERE param='disable_updater'; der Update Button aktiviert werden kann und dann kann man auch ein backup-tool installieren, was ich gerade tue...muhahaha ein Hoffnungsschimmer!
 
Last edited by a moderator:
Moin Sinepp!

Du könntest zuerst einmal herausfinden, wann z.B. eines der neusten Filme hochgeladen wurde und dann zeitgleich die Logs Deines Apaches durchschauen. Dann weißt Du ganz schnell, wer was zulässt.

Ansonsten kann ich Dir mod_evasive empfehlen, besonders wegen solch netter Sachen wie wget. ABER: Schau Dir die Regeln an und entferne, was Du nicht brauchst, denn ansonsten schraubt sich die Performance Deines Servers in den Keller.
 
Dann warte ich mal geduldig auf den nächsten Versuch und schaue mir an, was derjenige probiert hat :-)

Danke schonmal für die Antworten...ich greife auf den Thread zurück, wenn es aktuell wird...

Grüße
Sinepp
 
Installiere mod_security und gute Rules sind auf deren Homepage und gotroot zu finden.
SSH Port verschieben und Zugriff nur per SSH mit Schlüssel (gute Tuts sind ebenfalls überall zu finden)
Führe eine sog. Blacklist mit bestimmten IP Bereichen ein. Wenn du keine *Gäste* aus Asien haben willst, oder Kunden aus dem Raum hast, macht sich sowas prima.
OpenRelay vermeiden.
Es gibt sehr viel was man machen und tun kann um seinen Server sicher zu machen. Wenn du als einzigster auf dem Server drauf bist, d.h. keine zusätzlichen Kundendomains laufen, verzichte gänzlich auf Plesk. Die Performance wird es danken und du wirst gezwungen dich mehr in die Matherie einzuarbeiten ;)
Letzteres ist nicht böse oder gehässig gemeint, sollte aber ein kleiner Denkanstoss sein für dich, etwas Zeit zu investieren um (mehr) Grundwissen anzueignen.
 
mod_evasive ist auch nicht verkehrt, man kann aber bei einer guten mod_security Rule-Config auch darauf verzichten ;)
 
Hallo,

Das Verstecken der Apache Identifizierung bringt, dass ein Hacker der leichte Beute haben will (...)
... gleich weiß daß er hier richtig ist. :D

Viel beeindruckender ist es für (bzw gegen) Hacker wenn sich die Dienste auf allen Ports stets mit der aktuellsten Version melden.
 
Der Tipp mit mod_security ist gut, ich schaue mir das mal an.

Zitat:
Zitat von Sinepp Beitrag anzeigen
Das Verstecken der Apache Identifizierung bringt, dass ein Hacker der leichte Beute haben will (...)
... gleich weiß daß er hier richtig ist.
Naja, das ist Ansichtssache. Ich administriere unter anderem eine Web Application Firewall für ein weltweit opperierendes Unternehmen - dort ist es Standard, dass solche Dinge grundsätzlich rausgenommen werden (hat aber u.a. den Grund, dass es sich um eine einigermaßen heterogene Systemlandschaft handelt). Und ich finde die Idee auch für einen kleinen Server ganz gut. Aber wie gesagt: Das kann man so und so sehen. Die Frage ist auch nicht ob sinnvoll oder nicht, sondern wie unterdrücke ich das? Vermutlich mit mod_security, aber da muss ich mich erstmal einarbeiten.

Tja vielen Dank für die Tipps!

sledge: Ich nehme es Dir aber krumm, weil ich mich ziemlich intensiv mit dem Thema beschäftige und ich deinen Denkanstoß etwas anmaßend finde. Immerhin kannst du nicht wissen, ob und wieviel ich tue. Bei manch anderem mag das sicherlich zutreffen, dass er sich mehr bemühen könnte, in meinem Fall versichere ich Dir, dass ich mir bereits allergrößte Mühe gebe.

EDIT: Ich bin nicht alleine auf dem Server unterwegs, gerade meine Kunden profitieren von Plesk...
 
Last edited by a moderator:
Die Probleme die ich hatte gehen unter anderem auf die PHP Shell zurück.

Ich lege anderen Leuten wärmstens folgenden Artikel ans Herz.

Linux-Magazin - php
 
Last edited by a moderator:
Updates?

Hi Sinepp,

machst Du regelmäßig Updates Deiner SuSE Installation? Solange Du nicht weisst, wie die Angreifer in Deinen Server gelangen, bringt es auch nichts wie ein Zombie den Server Mal um Mal identisch neu zu installieren.

Ich nutze AIDE, um den Status meines Dateisystems zu überwachen. Die Datenbank signiere und verschlüssele ich mit GnuPG, mehr ist leider nicht drin auf dem VServer.

Gruß,
Tobias
 
Suse wird täglich auf Updates überprüft, das gleiche gilt natürlich auch für Virensignaturen.

Ich werde, da ich ja jetzt PSA Dump habe das Teil neu aufsetzen. Ich hatte safe_mode auf off, das war denke ich die Hauptursache...steinigt mich jetzt bitte nicht.

Grüße
Dennis
 
Aber wenn wir mal alle Ehrlich sind, müssen wir leider auch alle zugeben, das wenn ein Hacker auf den Server will, er es auch schaft, egal was für Security tools drauf sind.

Ich hatte mal das problem, das auf meinem Server "Squid" irgend wie installiert wurde, und das ding Gott und die welt irgend wie angemailt hat, was dazu führte das ich eine abmahnung bekam, obwol ich nichtmal was für konnte...

Bedenke Du bitte das wenn bei dir Kino Filme drauf geladen werden, die grünen Dich mitnehmen, und nicht denjenigen der das drauf geladen hat, mir wurde damals durch meine sicherheitslücke deutlich klar gemacht, das ich alles zu verantworten habe, das auf meinen Root ist, als ich die auseinandersetzung mit Strato hatte sagten Die mir nur Kümmern SIE sich drumm.

Lg
Marcus
 
Last edited by a moderator:
Ich bin nach über einem Jahr nun wieder auf meinen alten Thread gestoßen. Vielleicht mal am Rande - seit diesem Einbruch gab es keinen weiteren erfolgreichen Angriff (von dem ich wüßte :D )


Grüße
Sinepp
 
Back
Top