Defacement - Kundenpräsenz

Dieses Thema im Forum "Server Administration" wurde erstellt von hahni, 1. Feb. 2008.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. hahni

    hahni Active Member

    Hallo zusammen,

    leider wurde von einem Kunden die Webseite defaced! Offensichtlich hatte der Kunde einen unliebsamen Mitarbeiter, der sich so profilieren wollte.

    Ansonsten deutet nämlich nichts darauf hin, dass dem Server etwas fehlt! Meine Vermutung also: das Kennwort muss er erlangt haben, um Mist zu bauen!

    Könnte er mit Programmen wie dem "commandliner" an die "/etc/passwd" etc. gekommen sein? So hätte er die Möglichkeit, via Brute Force die Kennungen incl. Root-Pwd zu knacken...

    Auf was sollte ich noch achten und prüfen?


    Beste Grüße

    Hahni
     
  2. Till

    Till Administrator

    Das hängt davon ab, wie Du Deinen Server konfiguriert hast. Ist PHP und CGI aktiv und wie ist Dein PHP konfiguriert?

    Lass mal rkhunter drüber laufen und mach einen Portscan.
     
  3. hahni

    hahni Active Member

    Portscan und rkhunter sind negativ, also keine Auffälligkeiten. CGI und PHP sind aktiv, allerdings als safe_mode! Doch die /etc/passwd könnte ja so mittels commandliner etc. ausgelesen werden und dann auf dem heimischen Rechner via Brute Force bearbeitet werden, oder?
     
  4. Till

    Till Administrator

    Über PHP mit Safemode sollte es nicht möglich sein, da dann einige Kommandos wie exec nicht benutzt werden können und außerdem eine open basedir restriction auf das web Verzeichnis gesetzt ist. Solange also php keinen bug hat, bist du damit schonmal halbwegs auf der sicheren Seite.

    Bei CGI sieht es anders aus, darüber ließe sich die passwd Datei ggf. auslesen. Aber in /etc/passwd würde er auch nur die Usernamen finden, d.h für eine Brute Force Attacke müsste er jedes einzelne Passwort gegen Deinen Server testen, und das kannst Du z.B. mit Fail2ban oder denyhosts sinnvoll einschränken. Alle Passworte, die er für eine lokale Brute Force Attacke auf seinem Rechner benötigen würde, stehen nur in der Datei /etc/dhadow, und die kann nur root lesen und nicht der apache Prozess oder ein anderer User.
     
  5. hahni

    hahni Active Member

    Also kommt PHP schon mal nicht in Frage!

    Bei CGI stelle ich mir das eher so vor, dass er die "/etc/passwd" und die "/etc/shadow" ausliest und lokal probiert, bis er das Passwort hat, welches er dann zum Login auf meinem Server (beispielsweise auch die Root-Kennung) benötigt!
     
  6. Till

    Till Administrator

    Er kann die /etc/shadow nicht auslesen.
     
  7. hahni

    hahni Active Member

    Aha! Also auf seinem lokalen Rechner kann er es nicht weil er nicht an die entsprechenden Dateien kommt und wenn er es mittels Skript auf dem Webserver probiert, dann kann ich das mit fail2ban herausfinden, richtig?
     
  8. Till

    Till Administrator

    Nein nicht so ganz :) Er kommt auf dem Server per Script nicht an die /etc/shadow, da er nicht die notwendigen rechte dazu hat. Und falls er es per Brute Force direkt gegen einen der Server Dienste wie pop3, smtp oder SSH versucht, kannst Du ihn mit fail2ban blocken.
     
  9. hahni

    hahni Active Member

    Dann sollte ich das Package für ubuntu installieren! Scheint es ja auch für 6.06 LTS zu geben. Allerdings: gibt es für die Einrichtung ein HowTo?
     
  10. Till

    Till Administrator

    Hast Du es denn schon mal mit der Suche auf howtoforge.com versuchte ;)
     
  11. hahni

    hahni Active Member

    Klingt nach einem Seitenhieb ;)
     
  12. hahni

    hahni Active Member

    Habe nur das Paket für SuSE gefunden! Aber die eigentliche Konfiguration dürfte ja identisch sein, oder?
     
  13. hahni

    hahni Active Member

    Also die Anleitung für Suse 10.3 hat mir nicht geholfen. Läuft mit dem Paket von 6.06 LTS nicht! Ich glaube dass das fail2ban v0.6 ist... Jedenfalls habe ich das so gelesen. Es ist zwar eine ältere Version als die aktuell verfügbare, aber mit der muss es ja auch funktionieren???
     
  14. Till

    Till Administrator

  15. hahni

    hahni Active Member

    Hallo Till,

    nun, das habe ich leider nicht gesehen, weil ich auf den deutschen Seiten gesucht habe :eek:

    Aber damit werde ich es ja hoffentlich zum Laufen bringen! Ich halte dich auf jedem Fall auf dem Laufenden... ;)

    Die Version wird ja hoffentlich auch mit v0.6 laufen, die ausgeliefert wird, oder?

    Grüße

    Hahni
     
  16. hahni

    hahni Active Member

    Wie schon vermutet: es hagelt nichts als Fehler...

    ---
    Starting fail2ban: 2008-02-04 20:22:14,532 WARNING: No 'background' defined in 'DEFAULT'. Using default one: 'False'
    2008-02-04 20:22:14,532 WARNING: No 'logtargets' defined in 'DEFAULT'. Using default one: ''/var/log/fail2ban.log''
    2008-02-04 20:22:14,532 WARNING: No 'syslog-target' defined in 'DEFAULT'. Using default one: ''/dev/log''
    2008-02-04 20:22:14,533 WARNING: No 'syslog-facility' defined in 'DEFAULT'. Using default one: '1'
    2008-02-04 20:22:14,533 WARNING: No 'debug' defined in 'DEFAULT'. Using default one: 'False'
    2008-02-04 20:22:14,533 WARNING: No 'verbose' defined in 'DEFAULT'. Using default one: '0'
    2008-02-04 20:22:14,533 WARNING: No 'pidlock' defined in 'DEFAULT'. Using default one: ''/var/run/fail2ban.pid''
    2008-02-04 20:22:14,533 WARNING: No 'maxfailures' defined in 'DEFAULT'. Using default one: '5'
    2008-02-04 20:22:14,534 WARNING: No 'findtime' defined in 'DEFAULT'. Using default one: '600'
    2008-02-04 20:22:14,534 WARNING: No 'polltime' defined in 'DEFAULT'. Using default one: '1'
    2008-02-04 20:22:14,534 WARNING: No 'cmdstart' defined in 'DEFAULT'. Using default one: ''''
    2008-02-04 20:22:14,534 WARNING: No 'cmdend' defined in 'DEFAULT'. Using default one: ''''
    2008-02-04 20:22:14,534 WARNING: No 'reinittime' defined in 'DEFAULT'. Using default one: '100'
    2008-02-04 20:22:14,535 WARNING: No 'maxreinits' defined in 'DEFAULT'. Using default one: '100'
    2008-02-04 20:22:14,578 ERROR: Fail2Ban got an unhandled exception and died.
    2008-02-04 20:22:14,578 ERROR: Type: 'NoSectionError'
    Value: ("No section: 'MAIL'",)
    TB: [('/usr/bin/fail2ban', 47, '?', 'fail2ban.main()'), ('/usr/share/fail2ban/fail2ban.py', 406, 'main', 'mailConf = confReader.getLogOptions("MAIL", optionValues)'), ('/usr/share/fail2ban/confreader/configreader.py', 76, 'getLogOptions', 'v = self.configParser.getboolean(sec, option[1])'), ('/usr/lib/python2.4/ConfigParser.py', 330, 'getboolean', 'v = self.get(section, option)'), ('/usr/lib/python2.4/ConfigParser.py', 511, 'get', 'raise NoSectionError(section)')]
    2008-02-04 20:22:14,578 WARNING: Restoring firewall rules...
    ---
     
  17. hahni

    hahni Active Member

    nachdem ich aus falkos englischer anleitung für debian (setze ja ubuntu 6.06 lts ein) aus "backend = polling" -> "background = true" gesetzt habe, hat sich die fehler- und warning-liste etwas reduziert:

    ---
    Restarting fail2ban: Stopping fail2ban: done
    Starting fail2ban: 2008-02-04 20:28:17,071 WARNING: No 'logtargets' defined in 'DEFAULT'. Using default one: ''/var/log/fail2ban.log''
    2008-02-04 20:28:17,071 WARNING: No 'syslog-target' defined in 'DEFAULT'. Using default one: ''/dev/log''
    2008-02-04 20:28:17,071 WARNING: No 'syslog-facility' defined in 'DEFAULT'. Using default one: '1'
    2008-02-04 20:28:17,072 WARNING: No 'debug' defined in 'DEFAULT'. Using default one: 'False'
    2008-02-04 20:28:17,072 WARNING: No 'verbose' defined in 'DEFAULT'. Using default one: '0'
    2008-02-04 20:28:17,072 WARNING: No 'pidlock' defined in 'DEFAULT'. Using default one: ''/var/run/fail2ban.pid''
    2008-02-04 20:28:17,072 WARNING: No 'maxfailures' defined in 'DEFAULT'. Using default one: '5'
    2008-02-04 20:28:17,072 WARNING: No 'findtime' defined in 'DEFAULT'. Using default one: '600'
    2008-02-04 20:28:17,072 WARNING: No 'polltime' defined in 'DEFAULT'. Using default one: '1'
    2008-02-04 20:28:17,073 WARNING: No 'cmdstart' defined in 'DEFAULT'. Using default one: ''''
    2008-02-04 20:28:17,073 WARNING: No 'cmdend' defined in 'DEFAULT'. Using default one: ''''
    2008-02-04 20:28:17,073 WARNING: No 'reinittime' defined in 'DEFAULT'. Using default one: '100'
    2008-02-04 20:28:17,073 WARNING: No 'maxreinits' defined in 'DEFAULT'. Using default one: '100'
    .done
    ---

    Wie aber läuft fail2ban nun korrekt bzw. was muss ich einstellen?
     
  18. hahni

    hahni Active Member

    Die Fehler habe ich weggebracht, weil ich nur die unteren Sektionen kopiert habe in das Original-Config-File!

    Problem allerdings: obwohl ich bei SSH 5x das falsche Kennwort angegeben habe, wird mir trotzdem Zugriff gewährt! Oder liegt es daran, weil der SSH-Port nicht der Standard-Port ist? Wo müsste dies angegeben werden?
     
  19. Till

    Till Administrator

Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen