xdial

Schwachstellen in SLWebMail

Kompromittierung des Systems möglich
Von xdial.de

SLWebMail ist ein Web basierendes Email-System, dass über den Microsoft Internet Information Server betrieben wird. Im Mailer wurden diverse Sicherheitslücken wie zum Beispiel Pufferüberlauf Schachstellen gefunden, die Zugang zu beliebigen Dateien ermöglichen.

Mehrere ISAPI DLL Anwendungen, die von SLWebMail benutzt werden, sind vom Pufferüberlauf Problem betroffen:

  • Modul: showlogin.dll
    Parameter: Language
  • Modul: recman.dll
    Parameter: CompanyID
  • Modul: admin.dll
    Parameter: CompanyID
  • Modul: globallogin.dll
    Parameter: CompanyID
Die Schwachstellen im Einzelnen:

Zugriff auf Dateien:
ShowGodLog.dll kann remote ausgeführt werden ohne eine Benutzer-Authentifikation. Die DLL wird von SLWebMail zur Anzeige des Logfiles benutzt. Zudem ist die Ermittlung relativer oder absoluter Pfade möglich.

Ermittlung physikalischer Pfade:
Bei der Ausführung ungültiger Anfragen an die DLL WebMailReq.dll kann der komplette physikalische Pfad zur DLL ermittelt werden. Diese Information könnte zur Vorbereitung weiterer Angriffe benutzt werden.

SMTP Engine Pufferüberlauf:
Bei der Übermittlung eines überlangen Parameters mittels ETRN Rutine wird die gespeicherte Return-Adresse im Stack überschrieben, was zu einem klassischen Pufferüberlauf führt. Die Wirkung ist ein unsicherer Call der Istrcat() Funktion. Der zugreifende Prozess auf TCP Port 25 (SMTP Port) ist slsmtp.exe. Der fehlerhafte Prozess ist slmail.exe. slsmtp.exe akzeptiert beliebige Eingaben und übergibt sie weiter an slmail.exe. Ein Überfüllen des Puffers und Überschreiben der gespeicherten "Return-Adresse" mittels einer "jmp esp" Anweisung führt zu einer Überfüllung des Puffers für den jeweiligen Benutzer, die dem Angreifer die Ausführung von schädlichen Codes ermöglicht. Das XTRN Kommando ist damit fehlerhaft.

POPPASSWD Pufferüberlauf:
Bei Verbindungen zum TCP Port 106 überschreibt ein überlanger String die gespeicherte "Return-Adresse" im Stack, was widerum zur Ausführung von schädlichen Codes benutzt werden kann.

POP3 Server Pufferüberlauf:
Bei der Benutzung eines überlangen Passwortes bei der Authentifizierung am Mail-System wird die gespeicherte "Return-Adresse" im Stack überschrieben, was ebenfalls zur Ausführung von schädlichen Codes ausgenutzt werden kann.

Im Extremfall führen die Pufferüberlaufe zum Eindringen in das darunterliegende System mit der Möglichkeit, beliebige Befehle auszuführen.

NGSSoftware hat das Problem bereits im Februar geschildert. Weitere Informationen hierzu unter: http://www.slmail.com

Zur Überprüfung auf Anfälligkeit bzgl. der benannten Sicherheitslücken hat NGSSoftware ein Test-Tool zur Verfügung gestellt, mit dem eine automatische Überprüfung durchgeführt werden kann. Das Tool steht zur Verfügung unter: http://www.ngssoftware.com/ [Link entfernt]

Grundsätzlich sollte ein Update der Software oberstes Ziel sein. Falls das Update aus besonderen Gründen nicht ausgeführt werden kann, hat NGSSoftware einen Lösungsvorschlag, um den Zugriff auf POPPASSWD und POP3 Server nur hinter der Firewall ermöglicht. Externe Zugriffe sind dann nur noch via authentifizierter VPN Verbindungen zum DMZ und darüber zum POP Service möglich:
  • Wenn ESMTP deaktiviert wird und einzig SMTP benutzt werden kann, wird die Möglichkeit der SMTP Attacke entfernt. ESMTP kann über das SLMail Konfigurations-Tool deaktiviert werden.

  • Stellen Sie sicher, dass SLMail nicht mit System- oder Administrator-Privilegien benutzt werden kann. Dies minimiert das Risiko zur Ausnutzung der fehlerhaften Funktionen, da über einen relativ schwach priviligierten Benutzer-Account keine Services auf der Maschine gestartet werden können. Sowie ein solcher Account erstellt wurde, müssen die NTFS- und Registry-Rechte entsprechend eingestellt werden, da der Server sonst nicht korrekt startet. Sie erstellen einen solchen Account und geben über die Konsole einen Befehl wie den folgenden ein:

    • C:\>net user slmail 5T@r*m4N!nsKy~ /add
    • Dieser Account wird der lokalen Gruppe "guests" zugeordnet
    • Anschließend entfernen Sie ihn aus der Gruppe "Users" mittels:
    • C:\> net localgroup users slmail /del

  • Danach werden die Rechte der Gruppen im Registrier-Editor angepasst. Öffnen Sie dazu den Registrier-Editor mittels regedit32.exe und gehen zu folgendem Schlüssel:

    • "HKEY_LOCAL_MACHINE\Software\Seattle Lab"
    • Im Menü "Security" und "Permissions" geben Sie dem "slmail" Benutzer volle Rechte "full control" (volle Kontrolle) in diesem sowie in sämtlichen Unterschlüsseln dieses Schlüssels. Anschließend können Sie den Registrier-Editor schließen.
    • Danach öffnen Sie den Windows-Explorer und navigieren zum SLMail Verzeichnis, dass sich typischerweise im Ordner "C:\Program files\SLMail" befindet.
    • Klicken Sie mit der rechten Maustaste auf das Verzeichnis, wählen "Porperties" (Einstellungen) und dort "Security" (Sicherheit) aus. Fügen Sie den "slmail" Benutzer zum Account "full control" für dieses Verzeichnis zu einschließlich aller Unterverzeichnisse.
    • Als letzten Schritt öffnen Sie das "Control-Panel" und "Administrative Tools" und markieren den Bereich "Services". Suchen Sie nach den Einträgen von "Seattle Lab POP3 Server" und "Seattle Lab SMTP Server". Stellen Sie das Login auf den Account "slmail" ein. Stoppen Sie den Service und starten ihn neu. Danach stehen die neuen Einstellungen zur Verfügung.