Überprüft alle bekannten Hosts erneut, sobald neue Anmeldedaten hinzugefügt werden. Dabei werden nur die neuen Anmeldedaten geprüft.
Stellt eine vollständige Überprüfung der Anmeldedaten für jeden neu entdeckten Host in die Warteschlange.
Stellt eine vollständige Überprüfung der Anmeldedaten für jeden bekannten Host in die Warteschlange, dessen SSH-Version oder Schlüsselfingerabdruck sich ändert.
Versucht die Ausführung von Befehlen sowie das Tunneln einer TCP-Verbindung.
Überprüft jede Anmeldedatum erneut unter Verwendung eines pro Anmeldedatum festgelegten scan_interval – Standard 14 Tage.
Es ist so konzipiert, dass Sie ssh-auditor discover + ssh-auditor scan jede Stunde per cron ausführen können, um eine kontinuierliche Prüfung durchzuführen.
Demos
Ältere Demo, die alle Funktionen zeigt
Demo mit verbesserter Protokollausgabe
Verwendung
Installation
root@kitploit:~
$ brew install go # or however you want to install the go compiler
$ go get github.com/ncsa/ssh-auditor
Oder aus einem Git-Klon erstellen
root@kitploit:~
$ go build
Statische Binärdatei inklusive SQLite erstellen
root@kitploit:~
$ make static
Sicherstellen, dass ausreichend Dateideskriptoren zur Verfügung stehen
root@kitploit:~
$ ulimit -n 4096
Erste Datenbank erstellen und SSH-Server entdecken
$ ./ssh-auditor addcredential root root
$ ./ssh-auditor addcredential admin admin
$ ./ssh-auditor addcredential guest guest --scan-interval 1 #check this once per day
Anmeldedaten gegen entdeckte Hosts testen
root@kitploit:~
$ ./ssh-auditor scan
Bericht darüber ausgeben, welche Anmeldedaten funktioniert haben
root@kitploit:~
$ ./ssh-auditor vuln
Erfolgreiche Anmeldedaten erneut prüfen
root@kitploit:~
$ ./ssh-auditor rescan
Bericht über doppelte Schlüsselverwendung ausgeben
root@kitploit:~
$ ./ssh-auditor dupes
TODO
Tabelle 'host changes' aktualisieren
Falschmeldungen von Geräten behandeln, die keine SSH-Passwort-Authentifizierung verwenden, sondern stattdessen die Shell dafür nutzen.
variable Wiederholungszeiten – jede Anmeldedatum hat ein scan_interval in Tagen
bessere Unterstützung für nicht standardmäßige Ports – nur discover muss aktualisiert werden, der Rest ist nicht betroffen.
möglicherweise als Daemon ausführen und eine API hinzufügen, in die Bro einhaken kann, um eine Entdeckung zu starten, sobald ein neuer SSH-Server erkannt wird.
Speicher austauschbar machen (MySQL, PostgreSQL).
zwischen einem fehlgeschlagenen Passwortversuch und einer fehlgeschlagenen Verbindung oder Zeitüberschreitung unterscheiden. Größtenteils erledigt. Dinge wie fail2ban erschweren dies.
Go-Implementierungen für den Berichtsbefehl sqlite3 hinzufügen.
Berichtsabfrage.
Diese Abfrage, die ssh-auditor vuln ausführt, lautet:
root@kitploit:~
select
hc.hostport, hc.user, hc.password, hc.result, hc.last_tested, h.version
from
host_creds hc, hosts h
where
h.hostport = hc.hostport
and result!='' order by last_tested asc