Ich möchte ein Überwachungs-Plugin schreiben, das verschiedene Hosts in meinem Netzwerk überprüft, um sicherzustellen, dass das Passwort oder die interaktive SSH-Authentifizierung nicht aktiviert ist. Das heißt, ich muss Code schreiben, der:
Methoden, die entweder python oder bourne sh-Code verwenden (mit ssh
), sind für mich am interessantesten, aber auch andere Sprachen, Bibliotheken oder Hinweise werden geschätzt.
RFC 4252 , das die Authentifizierung in SSH definiert, sagt Folgendes:
Authentifizierungsmethoden werden durch ihren Namen identifiziert, wie in definiert [SSH-ARCH]. Die Methode "none" ist reserviert und darf NICHT als aufgelistet werden unterstützt. Es kann jedoch vom Kunden gesendet werden. Der Server MUSS lehnen Sie diese Anfrage immer ab, es sei denn, dem Client wird Zugriff gewährt ohne Authentifizierung, in diesem Fall muss der Server akzeptieren diese Anfrage. Der Hauptzweck des Sendens dieser Anfrage ist , um die Liste der unterstützten Methoden vom Server.
Sie können also eine Anfrage für keine Authentifizierung senden, um die Liste der unterstützten zu erhalten. Die Authentifizierung selbst erfolgt jedoch erst, nachdem bestimmte untergeordnete Aktionen stattgefunden haben (der Schlüsselaustausch ist einer davon), so dass Sie möglicherweise einen Teil des SSH-Protokolls in sh-Skript schreiben müssen, was wahrscheinlich eine nicht-triviale Aufgabe ist.
Sie können jetzt das integrierte Skript nmap
NSE namens ssh-auth-methods um dies zu tun:
Außerdem hat jemand ein ähnliches python3-Skript erstellt.
Wenn Sie * nix-Lösung benötigen, können Sie auch in OpenSSH-Quellen einsteigen. Wenn Windows für Sie geeignet ist - Sie können auch einige kommerzielle .NET-Bibliotheken ausprobieren, sie sind viel handlicher als OpenSSH-Quellen:)
Tags und Links security monitoring ssh openssh