Bruteforce bei ssh?
Bruteforce bei ssh?
Hi,
mich würde mal interessieren ob die Bruteforce Methode zum Passwörter knacken auch mit ssh funktioniert.
Versucht jetzt also irgendjemand auf meinen PC per ssh einzuloggen (mal angenommen er wäre frei erreichbar) und er wüsste meinen usernamen, wie kann er dann Bruteforce anwenden?
Er hat doch keinen zugriff auf meine Passwortdateien um irgendwelche Programme drüber jagen zu lassen. Und wenn man ein Passwort bei ssh oder unix allgemein falsch eingibt, dauert es 2 Sekunden bis man wieder darf.
Also wie soll es funktionieren?
mich würde mal interessieren ob die Bruteforce Methode zum Passwörter knacken auch mit ssh funktioniert.
Versucht jetzt also irgendjemand auf meinen PC per ssh einzuloggen (mal angenommen er wäre frei erreichbar) und er wüsste meinen usernamen, wie kann er dann Bruteforce anwenden?
Er hat doch keinen zugriff auf meine Passwortdateien um irgendwelche Programme drüber jagen zu lassen. Und wenn man ein Passwort bei ssh oder unix allgemein falsch eingibt, dauert es 2 Sekunden bis man wieder darf.
Also wie soll es funktionieren?
Brute Force heisst einfach nur alles durchprobieren. Und da stoeren auch die Verzoegerungen nicht, wenn mans lange genug probiert und das Passwort simpel genug ist, kommt man irgendwann zum Erfolg.
Wenn man Brute Force dann noch um ein Dictionary erweitert, das oft benutzte Worte/Passwoerter enthaelt, gehts noch fixer.
Wenn man Brute Force dann noch um ein Dictionary erweitert, das oft benutzte Worte/Passwoerter enthaelt, gehts noch fixer.
Besteht mein Passwort also aus 5 Zeichen und nur aus Kleinbuchstaben (einer sehr schlechter Fall) dann wären 26^5 = 11881376 Kombinationen Möglich.
Dauert jeder Versuch 2 Sekunden braucht man für alle Kombinationen 23762752 Sekunden = 275 Tage. (auch wenn es schon nach 50 Tagen das richtige Passwirt wäre, so lange will doch keiner warten).
Guter Fall: 8 Buchstaben (groß und klein) = 53459728531456 Möglichkeite = 106919457062912 Sekunden = 3390393 Jahre.
Das kanns doch nicht sein.
Bruteforce basiert (so dachte ich immer) auf der Rechenleistung die heutige PC bieten. Also das Tausende von Passwörtern pro Sekunde ausprobiert werden.
Dauert jeder Versuch 2 Sekunden braucht man für alle Kombinationen 23762752 Sekunden = 275 Tage. (auch wenn es schon nach 50 Tagen das richtige Passwirt wäre, so lange will doch keiner warten).
Guter Fall: 8 Buchstaben (groß und klein) = 53459728531456 Möglichkeite = 106919457062912 Sekunden = 3390393 Jahre.
Das kanns doch nicht sein.
Bruteforce basiert (so dachte ich immer) auf der Rechenleistung die heutige PC bieten. Also das Tausende von Passwörtern pro Sekunde ausprobiert werden.
Brute Force = Rohe Gewalt. Das ist das, was manche machen, wenn ihnen nichts anderes mehr einfällt, so wie George Bush zum Beispiel. Es hat zunächst nichts mit Passwörtern zu tun.
Wieso 2 Sec warten? Men kann den Prozess parallelisieren.
Wieso würde keiner 50 Tage warten? Für den root-Zugang zu google o.ä. würden das einige...
Wieso 2 Sec warten? Men kann den Prozess parallelisieren.
Wieso würde keiner 50 Tage warten? Für den root-Zugang zu google o.ä. würden das einige...
Das Problem ist der Parser. Der ist nicht fuzzy genug.
--Klaus Knopper
--Klaus Knopper
Ich sprach ja auch von: "Bruteforce Methode zum Passwörter knacken"
Parallelisieren bedeutet mehrer ssh Verbindungen gleichzeitig öffnen?
Gibt es da keine Beschränkung?
Schafft der Hacker-PC 5 Millionen Passwörter pro Sekunde und der Wartevorgang dauert 2 Sekunden um ein neues Passwort einzugeben, muss er sozusagen 10Millionen ssh Anfragen senden um mit voller Leistung zu testen.
Wäre das theoretisch Möglich?
Ich frage deshalb so blöd, weil ich einfach wissen will, wie sicher mein Netzwerk ist, wenn es über das Internet von überall über ssh erreichbar ist.
Parallelisieren bedeutet mehrer ssh Verbindungen gleichzeitig öffnen?
Gibt es da keine Beschränkung?
Schafft der Hacker-PC 5 Millionen Passwörter pro Sekunde und der Wartevorgang dauert 2 Sekunden um ein neues Passwort einzugeben, muss er sozusagen 10Millionen ssh Anfragen senden um mit voller Leistung zu testen.
Wäre das theoretisch Möglich?
Ich frage deshalb so blöd, weil ich einfach wissen will, wie sicher mein Netzwerk ist, wenn es über das Internet von überall über ssh erreichbar ist.
Wenn du SSH gegen Brute Force absichern willst gibts 2 ganz oft genutzte Massnahmen:
1.) Den SSH-Daemon nicht auf Port 22 lauschen lassen (da gehen glaub ich 99% der automatischen Angriffe drauf los)
2.) Sowas wie fail2ban nutzen. Damit werden die IPs, von denen die Brute Force-Attacke kommt auch mal gesperrt.
1.) Den SSH-Daemon nicht auf Port 22 lauschen lassen (da gehen glaub ich 99% der automatischen Angriffe drauf los)
2.) Sowas wie fail2ban nutzen. Damit werden die IPs, von denen die Brute Force-Attacke kommt auch mal gesperrt.
Hm funktioniert fail2ban denn auch bei einem NAT Netzwerk?
Der Router ist ein kleines Gerät, also kiein PC. Er forwarded port xx zu einem Netzwerkinternen PC auf port 22 (also ssh). Wenn ich dort auf fehlgeschlagene Passwortversuche mit fail2ban checke, wird immer die IP des Routers rauskommen oder?
Der Router ist ein kleines Gerät, also kiein PC. Er forwarded port xx zu einem Netzwerkinternen PC auf port 22 (also ssh). Wenn ich dort auf fehlgeschlagene Passwortversuche mit fail2ban checke, wird immer die IP des Routers rauskommen oder?
Meistens werden allerdings keine BruteForce attacken benutzt um sich einloggen zu koennen, zumindest nicht bei automatischen Angriffen. Hier scheint man mehr auf standard-passwoerter zu setzen. Mir sind bis jetzt nicht mehr als 20 - 30 auf einen Schlag untergekommen.
Fail2ban und konsorten ist natuerlich eine adequate Methode um dem ganzen von vorn herein einen Riegel vorzuschieben.
Fail2ban und konsorten ist natuerlich eine adequate Methode um dem ganzen von vorn herein einen Riegel vorzuschieben.
Der SSH-Server funktioniert auch gleichzeitig als Samba-Fileserver. Deshalb sind dort alle User aus unserem Netzwerk angemeldet, damit sie auf die Sambafreigaben Zugreifen können.
Das dumme daran ist, dass ich keinen Einfluss habe, was für leichte Passwörter die User wählen.
Es wäre also ganz gut, dass ich dem SSH-Deamon sagen könnte, das nur ein bestimmter User sich daran anmelden darf.
Das dumme daran ist, dass ich keinen Einfluss habe, was für leichte Passwörter die User wählen.
Es wäre also ganz gut, dass ich dem SSH-Deamon sagen könnte, das nur ein bestimmter User sich daran anmelden darf.
Genau das kannst du machen. Schau dir mal in der Man-Page zu sshd_config die Option AllowUsers bzw. AllowGroups und ihre Gegenparts DenyUsers und DenyGroups an.tobb hat geschrieben:Es wäre also ganz gut, dass ich dem SSH-Deamon sagen könnte, das nur ein bestimmter User sich daran anmelden darf.
Mit diesen Optionen solltest du auf deinem Server recht genau regeln koennen, wer sich einloggen darf und wer nicht.
Als Administrator hast Du sehr wohl die Möglichkeit, die Passwortwahl zu beeinflussen. Wenn Du die Passwort-Datei mit John The Ripper o.ä. auf schwache Passwörter überprüfst, verwendest Du diese Tools für genau die Aufgabe, für die sie entwickelt wurden. Wenn denn herauskommt, dass einer der Nutzer ein schwaches Passwort hat, kannst Du den Account sperren und ihm einen entsprechenden Hinweis geben. Oder Du gibst einfach von vorne herein die Passwörter vor und sperrst den Zugriff auf die Passwartdatei für die normaln User.
Zur Parallelisierung: der schnellste ssh-BF-PW-Cracker den ich kenne (hier folgt beabsichtigter Weise kein Link, denn auch wenn sich diese Programme recht leicht finden lassen muss ich es den Scriptkiddies nicht noch einfacher machen) bringt etwa 30 PW/sec, und ich bin mir ziemlich sicher, dass das ein Limit der Server darstellt. Aber wenn jemand PW=Username verwendet, dann reicht das eben... (und mal unter uns: wer ein <8 Zeichen Passwort verwendet, macht sich auch nicht die Mühe, hier eine "beliebige" Kombination zu wählen. Da reichen dann i.d.R Namenslisten u.ä.)
Zur Parallelisierung: der schnellste ssh-BF-PW-Cracker den ich kenne (hier folgt beabsichtigter Weise kein Link, denn auch wenn sich diese Programme recht leicht finden lassen muss ich es den Scriptkiddies nicht noch einfacher machen) bringt etwa 30 PW/sec, und ich bin mir ziemlich sicher, dass das ein Limit der Server darstellt. Aber wenn jemand PW=Username verwendet, dann reicht das eben... (und mal unter uns: wer ein <8 Zeichen Passwort verwendet, macht sich auch nicht die Mühe, hier eine "beliebige" Kombination zu wählen. Da reichen dann i.d.R Namenslisten u.ä.)
Das Problem ist der Parser. Der ist nicht fuzzy genug.
--Klaus Knopper
--Klaus Knopper