#!/usr/bin/expect
set timeout 30
#Edit for User
set user user
#Edit for Old Password
set old oldpassword
#Edit for New Password
set new newpassword
#get IP List from iplist.txt
set f [open "/iplist.txt"]
set data [read $f]
set wpass [open "/wrongpassword.log" w]
set nossh [open "/nossh.log" w]
set success [open "/successful.log" w]
close $f
foreach line [split $data \n] {
if {$line eq {}} continue
spawn -noecho ssh -q -o "StrictHostKeyChecking=no" [email protected]$line
expect {
"assword:" {
send "$old\r"
expect {
"assword:" {
close
puts $wpass "$line"
continue
}}
expect {
"*" {
send "user set $user password=$new\r"
expect ">"
send "\r"
expect ">"
send "quit\r"
close
puts $success "$line"
continue
}}}}
expect {
"*" {
close
puts $nossh "$line"
continue
}}
expect eof
}
close $wpass
close $nossh
close $success
Das funktionierte gut, wenn ich es teste, aber ich war tarpiting ssh anstatt es so zu blockieren, wenn ich eine Verbindung bekommen verweigert oder eine keine Route für Fehler, weil die SSH-Verbindung zum Host ist bereits vom Kunden geschlossen. Ich habe versucht, alle zusammen zu entfernen, bevor "puts $ nossh" $ line "" statt close. Ich habe auch versucht interagieren und eof erwarten, obwohl der continue-Befehl sowieso eof erwarten sollte, aber immer noch Fehler an dieser Stelle. Es funktioniert einwandfrei, wenn das Gerät ein anderes Passwort hat oder wenn kein Gerät auf der Liste verfügbar ist oder ssh ausgeschaltet ist. Es funktioniert auch gut, wenn ich die Verbindung tarpitte, die es offen lässt, aber nicht erlaubt, Verkehr zu übergeben. Es scheint, dass dies ein Problem ist, bei dem die SSH-Verbindung geschlossen wird, bevor sie den nächsten Befehl erreicht. Kann einfach nicht herausfinden, wie man es mit der nächsten IP weitermachen kann, wenn es eine ssh-Verbindung erreicht. Auch die Protokolldateien funktionieren gut, auch wenn ich tarpit, aber wenn es ausfällt, weil kein ssh es nie in die Protokolldatei für nossh schreibt, so ist das Problem genau dort, weiß nur nicht, wie es zu beheben ist.Verbindung verweigerte Auf Erwarten Script SSH