Skip to main content

ssh-break.sh

#!/bin/bash
 
# scannt in diesem Beispiel den Netzwerkbereich 192.168.10.1 bis 192.168.20.255 via SSH mit dem User root und dem Passwort <enter password to check for>
# (<enter password to check for> durch gewuenschtes Passwort ersetzen!)
 
# von
A1="192."
B1="168."
C1="10."
D1="1"
 
# bis
A2="192."
B2="168."
C2="20."
D2="255"
 
# Passwort
PASS="<enter password to check for>"
 
PROGDIR=`dirname $0`
 
rm -f $PROGDIR/login.expect
touch $PROGDIR/login.expect
chmod u+x $PROGDIR/login.expect
 
for a in `seq $A1 $A2`
do
  for b in `seq $B1 $B2`
  do
    for c in `seq $C1 $C2`
    do
      for d in `seq $D1 $D2`
      do
        trap 'exit 0' 2
        echo "Teste $a.$b.$c.$d:"
 
cat << EOF > $PROGDIR/login.expect
#!/usr/bin/expect
spawn ssh -o PubkeyAuthentication=no -o ConnectTimeout=1 -o NumberOfPasswordPrompts=1 root@$a.$b.$c.$d "uptime"
expect {
  password: {
    sleep 1
    send "$PASS\r"
    exp_continue
  } "connecting (yes/no)?" {
    send "yes\r"
    exp_continue
  } incorrect {
    send_user "invalid password or account\n"
    exit
  } timeout {
    send_user "connection timed out\n"
    exit
  } eof {
    exit
  }
}
EOF
 
        $PROGDIR/login.expect
        echo -e "#############################################################################"
      done
    done
  done
done
 
rm -f $PROGDIR/login.expect